英文原文:Things a Software Developer Must Invest In
在下面这些事情中付出你的时间和精力,然后期待着好的结果吧。
0. 关注你的健康
毫无疑问,软件开发是一项最需要久坐的工作之一,每天在电脑前要坐 8 到 16 个小时,中间几乎没有休息,这就很容易长肉。而肥胖很很可能会引起其它的疾病,心脏病就是其中一种严重的疾病。当然,你可以通过一些锻炼避免它,比如花点儿钱去办一张健身卡。
长时间不符合人体工程学的打字姿势,会造成软件开发人员重复性的肌肉损伤,比如腕管综合征。你应该每隔几个小时的打字后就活动伸展一下手腕,防止这样的损伤,或者选择买带有手腕保护功能的鼠标和键盘。总盯着屏幕也会给你的眼睛带来压力,这就是为什么建议你戴一副防闪光的眼镜而不是普通眼镜的原因(假设你是戴眼镜的)。
1. 提高你的数学能力
数学可以提高你的逻辑思维能力,拓宽解决问题的角度,还有培养你的耐心。有一些数学分支,比如离散数学,可以直接应用到软件开发上,还有一些可能你会忘记,但也没关系,看你是从事的是哪个领域的开发了。比如说,游戏开发人员经常会用到物理和微积分,但我作为一名企业应用的开发人员,就很少有能用上它们的地方。无论怎样,数学能力的提升可以让你变得更优秀,做更好的程序员。
2. 提高你的英语水平
所有编程语言,脚本语言和标记语言都是英文的,而且像 Linux 这样的开源项目的注释通常也都是英文的。世界各地的开发人员都在使用英语来合作开发,针对国际客户的开发者都必须学习英语,因为这样才能够将业务需求转化为实际的解决方案。明白了吧,英语对开发者而言就和二进制对于计算机一样。
3. 一个属于自己的域名和网站
你不觉得有一个属于自己的邮箱地址很酷吗?不是那种像 something@yahoo.com 或someone@gmail.com [email protected]�人中脱颖而出,关键是每年只需要花很少的钱就可以实现它。我买的这个 lambdageek 域名只花了 13 美金,个人域名还能给你的个人品牌,也就是你自己,增添自信和专业性,让潜在的用户或者同事了解到你。当然这一切的前提都是你的域名不是像什么 hotmale-loves-chicks.com 一样瞎起的。
4. 一个活跃的 Github 账号
Github 账号对于程序员而言,就如同作品集对于艺术家一样。有了它,其它的就不需要说什么了。
5. 一台好的设备
你没有听说过程序员没有自己的电脑的吧?我也没听说过。没有自己电脑的程序员就好比没有激光剑的绝地武士一样。我说的一台好的电脑至少得有 4GB 内存,我比较推荐的是 4000 刀的 Macbook Pro,当然不排除那些有极端需求的特例。
6. 足够快的网速
网络对于程序员就像氧气一样,所以没有网络的世界就好比断了空气供给,是无法忍受的。一个稳定的网络连接可以让你多学习,看在线视频,泡泡论坛,然后及时关注 Hacker News 上的最新文章。
7. 阅读经典的计算机科学书籍
有一些书我认为是软件开发领域的经典之作:
计算机程序的构造和解释(Structures and Interpretations of Computer Programs)
代码大全2(Code Complete 2)
程序员的修炼之道(Pragmatic Programmer)
重构-改善既有代码的设计(Refactoring)
算法导论(Introduction to Algorithms)
离散数学及其应用(Discrete Mathematics and Its Applications)
人月神话(Mythical Man Month)
8. 学士学位
一个本科学历能够增加找到工作的概率,无论是新的毕业生还是刚辞职准备找下一份工作的人都一样。想像一下这样的情况:很多毕业生都在争抢一份工作,那么一个在校生的简历是不是更容易被忽视呢?
9. 资格认证(可选)
资格考试可以检验你某一方面的技术能力,而通过了某项认证意味着这个人在某一方面有着比较深入的了解,而恰好这方面是一个企业认可的。有一些公司会给有相关认证的程序员提供更高的薪水,当然,也有些公司根本就不在乎这些。比如说,作为一名有资格认证的 Java 程序员说明你对 Java 语言还是有比较好的理解,但同时它不意味着你可以直接将你的理解转为解决问题的能力。所以,一些公司更看重个人的思考能力,而非某种编程语言的经验,因为编程语言可以学得很快,但是解决问题能力的培养不是一朝一夕的。