古黑币0 个
成长值15400 点
金币6516 个
精华贴4 个
从前车马很慢,书信很远,一生只够爱一个人,但是可以纳很多妾啊!
Hacker News 上面,有人问:"新人进入软件行业,应该学什么?"
' y) k; J+ w) i- X
7 f: h4 O2 r' y$ x9 P! ~很多热心人提供建议。有人说:6 ?: g; V+ Q/ [ j* ~- g" L0 G
你应该好好学习一门语言。精通一门计算机语言,可以让年轻工程师脱颖而出。这不仅对日常工作很有帮助,也有利于以后学习其他语言。学习的东西包括:设计模式、调试、性能、生态系统、标准库等等。 9 B; n6 J G% Q" T2 H: e7 ]& V
1 d6 M( S ]# f) T1 Z0 J; q
立刻有人提出相反的建议。# N; R" m" \* o2 v- x
+ u/ Z7 l) ~0 \& Q' {, a) ~* t
我建议学习几种彼此非常不同的语言。例如 Java,Go 和 JavaScript。你要学到精通其中每一种语言,能够独立地从头搭建一个新项目,在该语言的生态系统中完成所有开发工作。 + g) m' j: z0 R S) j6 L
3 X) L: X0 u" e8 Q- Z有人举出几种必须掌握的工具。4 o% d% M# n" X% d, S3 D% N! [) x
* x9 n' x7 e) T7 L& @1 y7 T学习 SQL,你将能够使用任何与数据库相关的软件。" ?4 K5 T+ _" k0 P/ l6 h+ [
学习 HTML,你将能够创建一个通用的用户界面。
" Q) l$ z+ R% N9 P3 \. S学习 GIT,你将能够与他人分享您的工作。9 D8 t! a8 l# Y* |) p- F
学习 Unix shell,你将能够部署所有的东西。
0 s2 [% b. ]7 o% _6 c% }
$ K+ y$ N' s0 Z不少人赞同这种说法:- q! m* ~' t/ F1 }1 A
大多数职业(从医生到电工),多年的经验等同于多年的专业知识。但是在软件开发中,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变得毫无价值,因为它们大部分都是实施的细节。最终,所有这些年,你确实积累了一些一般性的经验,但与具体实施相关的知识,你都不再掌握了。, d3 P7 C4 C9 |/ b7 p+ b7 t
" w, L, ~% n- k6 U
唯一留下的是那些基本的东西,你应该专注于软件开发的核心知识和数学知识,您的这些技能会不断增长,而不是随着技术潮流的变化而消失。
, m' h- u. k/ L
( \& J) ~1 V$ J, Z9 M: G我最喜欢的是下面这个建议:
% O2 p8 ^& M% `不要让自己太忙碌。不过,说起来容易做起来难。* P6 e8 x: W9 e( u, J A! Q
; H7 s+ ^, f. E
我们雇用新毕业的工程师时,会派给他们很多琐碎的工作,使他们饱和。他们会逐渐忘记大学里学到的课程,全部注意力都集中在手头的工作。很多人倾向于通过忙碌程度来评价自己,我相信这是一个死亡陷阱。
. Z- j: v* a) C, C6 N( }4 D( Z+ u- x
|
|