程序员

我收到了不少新手的来信,他们都希望能成长为一名真正的程序员。我绝对不是第一个谈论这个话题的人,所以,我不知道应该做哪方面的补充。不管怎样,下面的是一些一直记在我心头的、有必要读一下的建议:

  • 找其他开发人员合作开发:我们正处在科技历史上第一个绝好的时代,你几乎不用在意在哪工作、为谁工作。只要你有一个还过得去的网络,你就可以和另外一个在世界任何角落里的人一起来完成某段程序。我知道,越来越多的有经验的开发人员开始把他们的一部分时间投入到这种知识共享里。我的朋友Evan Light特地留出了时间来开发一个帮助Ruby爱好者合作行动的网站。我从事这样的事情也有一段时间了。你想开发一些FLOSS程序吗?发邮件给我,我们会帮你准备些东西。
  • 阅读经典著作:《代码大全(第二版)》, 《程序员修炼之道》, 《程序设计实践》, 《设计模式》等。
  • 阅读WikiWiki (有时也被称作WardsWiki):这一条怎么强调也不为过。经常我会感觉到所有我学到的真正关于编程的知识都是在浏览这些网站的过程中慢慢的学到的。
  • 学习别人的代码:GitHub万岁!如果你会一点Ruby,想从别人整理好的现成经验入手,你可以读一下《Best of Ruby Quiz》。
  • 参与开发者论坛:如果没有这样的网站,创建一个。讨论问题。我不在意你认为自己是一个多么菜的菜鸟。没有任何一种形式能比通过讨论一个问题来学习这个问题更有效的方法了。
  • 写博客:不要在意是否是原创。互联网上很多非常有用的博客都是广泛的搜集程序员的经验和错误,以及如何克服这些问题的博客。反省是学习过程中最重要的一件事情,写博客能帮助你反省。会出乎你的意料,你不久就会收到你的读者的反馈。
  • 我相信你之前听说过这一条:参与开源项目,修改其中的bug或捐献代码。
  • 丢硬币。是头像就选择Vim,否则选择Emacs:学习使用这些编辑器。应该让这两种编辑器伴随你余下的编程生涯。强大灵活的编辑器会让好程序员更好。
  • 多学习几种编程语言:但起初应该先学一种语言。你应学习一种重要的语言,它能让你对编程语言有个大致的认识,让你第一天就爱上编程,你需要花大量的时间去学习这种语言中的各种知识,否则你漏掉知识点或不久就会忘记。一旦你掌握了这种语言,你需要学习新的语言来验证在第一种语言中学到的知识。尽量选择风格迥异的语言。我曾看过Seven Languages in Seven Weeks这本书,它让我认识了各种各样的编程模式,很好的书。
  • 订阅跟你使用的语言和平台相关的邮件新闻:人们有时会忘了,在各种博客,Hacker News,以及Twitter里,还有一个精彩的充满讨论的世界。邮件列表是一个很通用、很有用的来比较各种讨论观点的工具。
  • StackOverflow是你的朋友。
  • 不要花太多的时间去研究所谓的“最好的“工具:我曾经愚蠢的花上数天或数周去为某个项目找出一种”最好“的框架来提高开发效率。不要落入这种陷阱。当你还是一个不太熟练的程序员时,选一种大家都在用的语言和框架。重要的是当你遇到瓶颈是你知道如何处理。之后你才可以去寻找一种完美的…
  • 寻找实习机会。
  • 以及最基本的:练习,练习,练习。在班上练,在家里练。锻炼编程基本功。编程跟其它技术一样:最终,一切归结于练习。