给想当程序员的大二学生的建议--转帖

背景:最近我在Groupon公司的一项新职务是为公司招募优秀的开发人员。我是Groupon开发团队的代言人,负责发布招聘信息、回答问题等。过去的一周,我对两个询问夏季实习工作的学生进行了回复。

下面是我在回复他们的邮件中的感觉值得公开发表的一些建议:

如果你在大二的时候就已经开始接触外面的公司,我认为你做的很对,你就应该这么早为你今后的职业生涯打基础。很多人都是等到毕业的前两个月(甚至更晚)才考虑这个问题。即使你没有实习的机会,你也要获得一些外面的工作印象。

如果你想学习一种成熟的技术,先看书仍然是推荐的做法。理论和实践之间是相互平衡的,书本上是经过完善的符合实际的描述,会让你对一种技术有一个全面的连贯认识了解。如果你想学Rails,Web开发敏捷之道——应用Rails进行敏捷Web开发 这本书会教会你如何在一周内开发出一个功能齐全的电子商务网站。当然,有时候实践是先于理解的(甚至有时候你不实践就无法理解)。


千万不要寄希望于在课堂上学习一种新语言新技术。计算机专业的课程有自己的目标,是要给你一个广泛的理论基础,是针对某些特殊的课题。很多的技术(如源代码管理,服务器管理,nginx配置等)和语言(很多学校只教C和Java)永远不会出现在课堂上。在公司里,你经常会根据业务的需要或个人事业的需要即时学一些新东西,所以,如果你想以后事业上有所斩获,现在你就要开始学习一些课外的知识。

不要只关注一些特殊的语言和框架,要学一些多样的编程技术。像计算机程序的构造和解释 (免费在线阅读 http://mitpress.mit.edu/sicp/full-text/book/book.html) , 代码整洁之道, 程序员修炼之道 等就是这样的好书。

如果你对上面一条只是一眼掠过,最好还是再读一下!读读SICP,看看视频讲解,这些训练会让你成为一名出色的程序员。

至少学一种“冷僻”的语言。它会让你学到很多从像Java这样主流的语言中学不到的东西。我个人喜欢Lisp这种语言,而Land of Lisp这本书是一个非常好、非常有趣的学习这种语言的教材。

做一个工程。这个工程不必非常有意义或非常重要,只是为了实践!比如写一个能找到离你最近的星巴克的搜索器。为你的学习小组开发一个小组事物管理系统网站。开发一个能完成拼图任务的自动机器人软件。只是为了动手去做,把工程发布到网上,把代码放到GitHub上,把你做的事情写出来,发表在你的博客上。这会让你留下一个对编程感兴趣的公众形象,这对一些招聘单位具有非常非常大的吸引力,尤其是在面试的时候。这也是你锻炼写作的机会,让你知道你每过一年都有哪些进步。

接触自己领域里的开发人员。感谢Google的存在,如果有你的研究领域的研讨会,5秒钟内就能搜到它们。如果你找不到,也许是这些事情太耗时或难于组织。你可以作为一个志愿者为这样的会议出把力,如寻找会议地点等,或你来组织。这种事情并不是很难,只是要你付出很多时间,要有信心。这种事情会让你获得很好的信誉,和他人保持联系,一起工作,一起进步。

要说的就是这些。买100块钱的书,做一年的课余练习,你会变成一个对招聘单位来说比最优秀的学生还更具有吸引力的大学生!

原帖地址:http://www.aqee.net/advice-to-a-college-sophomore-programmer/

你可能感兴趣的:(给想当程序员的大二学生的建议--转帖)