zoukankan      html  css  js  c++  java
  • 程序员修炼之道--从小工到专家(一)

      

      这个假期里看了一下这本书,乍一看名字,觉得这就是比较鸡汤类的书吧,但是在看了一部分之后,忽然感觉到,以前的自己真的是很无知,一直就没有认识到做一个真实的项目的困难性,也根本就没有真正的认识到怎么去做一个合格的程序员。就像是推荐这本书的人在前言中说的那样: 如果一本书能够全面的、清晰的总结你从实践中获得的各种认识、总结你从其他书里散乱的读到的技术和方法,这本书就一定不是无益的。对我而言,《程序员的修炼之道》这本书就是我在程序员启蒙路上的重要导师。下面我说一下我的在读这本书时候的感悟。

      一、注重实效的哲学

      注重实效的程序员的特征:主要体现在处理问题、寻求解决方案时的态度、风格、哲学上,他们总是能越出问题去思考。

      注重实效的程序员成功的关键在于他们总是对自己所做的事情负责。

      

      1、我的源码让猫给吃了

      a.注重实效的程序员对他自己的程序员生涯负责,并且不害怕承认无知和错误。

      

      b.即使在最好的项目中,尽管有彻底的测试、良好的文档和足够的自动化,出错是难免的事情。一旦发生这样的事情,我们要设法尽可能职业地处理他们,要诚实坦率。我们可以为自己的能力自豪,但是对我们的缺点——还有我们的无知和我们的错误——我们一定要诚实。

      c.要提供各种选择,而不是各种借口,不要说事情做不到,在你大声说他之前,先设法把蹩脚的借口清除出去。

      不论怎么样,诚实和勇敢都是一个程序员最基本的品质。你可以不是一个最顶尖的人才,但必须是一个诚实的人,一个你敢于正视自己错误的人。

      

      2、软件的熵

      a.熵是一个物理学概念,指的是某个系统中“无序”的总量。当软件的无序性增长时,称为“软件腐烂”。促使他腐烂的因素有很多,最为重要的是项目者的心理。

      b.不要容忍破窗户  ( Don’t Live with Broken Windows )  当你看到糟糕的设计、错误的决策和糟糕的代码时,一定要及时修正它们。

      3、石头汤与煮青蛙

      a.做变化的催化剂 Be a Catalyst for Change

      b.记住大图景 Remember the Big Picture

      4、做足够好的软件

      a.我们没办法做到十分完美,但可以训练自己,编写出足够好的软件,对你的用户、对未来的维护者、对你的内心安宁来说足够好。但是足够好并非意味着不整洁或制作糟糕的代码。

      b.要让你的客户参与权衡,使质量成为需求问题。因为大部分的客户,宁愿用上有“毛边”的产品,也不愿意长时间的等待。

      c.不要因为过度修饰和过于精益求精损毁完好的程序。也许代码不够完美,但是不要担心,他不会完美。

      5、你的知识资产

      a.你的知识和经验是最重要的职业财富,但它们是有时效的资产。随着你的知识价值的降低,对你的公司和客户来说,你的价值也在降低。

      b.管理知识资产与管理金融资产类似:

      1) 定期投资。即使投资量很小,习惯自身也和总量一样重要。

      2) 多元化是长期成功的关键。你知道的不同的事情越多,你就越有价值。但作为底线,你需要知道你目前所用的技术的各种特性,同时不要就此止步

      3) 在保守的投资和高风险、高回报的投资之间取得平衡。不要把所有的技术放在一个篮子里。

      4) 低买高卖,以获取最大回报。在新兴技术流行之前学习它就可能和找到被低估的股票一样困难,但所得到的就和那样的股票带来的一样。

      5) 周期性地重新评估和平衡资产。

      6、交流

      What do you want them to learn

      What is their interest in what you’re got to say

      How sophisticated are they

      How much detail do they want

      Whom do you want to own the information

      How can you motivate them to listen to you

  • 相关阅读:
    To Do List
    Linux 替换文本中对空格为下划线
    Jumpserver开源堡垒机
    用jmeter编写脚本做实时线上监控
    Supervisor使用详解
    Python模块之pysnooper
    Java读取json文件并进行处理
    IOS APP自动化测试 真机测试 遇到的坑
    测试人员入职必须了解的东西包括下面一些内容
    linux 和MacBook下的批替换
  • 原文地址:https://www.cnblogs.com/yandashan666/p/10424119.html
Copyright © 2011-2022 走看看