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