HackerNews上面,有人问:"新人进入软件行业,应该学什么?'
很多热心人提供建议。有人说.
"你应该好好学习一门语言。精通一门计算机语言,可以让年轻工程师脱颖而出。这不仅对日
常工作很有帮助,也有利于以后学习其他语言。学习的东西包括:设计模式、调试、性能、
生态系统、标准库等等。
立刻有人提出相反的建议。
"我建议学习几种彼此非常不同的语言。例如Java,Go和JavaScript0你要学到精通其中每
一种语言,能够独立地从头搭建一个新项目,在该语言的生态系统中完成所有开发工作。
有人举出几种必须掌握的工具。
学习SQL,你将能够使用任何与数据库相关的软件。学习HTML,你将能够创建一个通用的
用户界面。学习GIT,你将能够与他人分享您的工作。学习Unixshell,你将能够部署所有
的东西。
不少人赞固这种说法。
"大多数职业(从医生到电工),多年的经验等同于多年的专业知识。但是在软件开发中,技
术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变
得毫无价值,因为它们大部分都是实施的细节。最终,所有这些年,你确实积累了一些一般
性的经验,但与具体实施相关的知识,你都不再掌握了。
唯一留下的是那些基本的东西,你应该专注于软件开发的核心知识和数学知识,您的这些技
能会不断增长,而不是随着技术潮流的变化而消失。
我最喜欢的是下面这个建议。
"不要让自己太忙碌。不过,说起来容易做起来难。
我们雇用新毕业的工程师时,会派给他们很多琐碎的工作,使他们饱和。他们会逐渐忘记大
学里学到的课程,全部注意力都集中在手头的工作。很多人倾向于通过忙碌程度来评价自
己,我相信这是一个死亡陷阱。