& c6 c: \: Y' f⑥作为进阶学习编程语言的附加要求,其它语言建议也学习下,学之前可以先看《冒号课堂》(告诉你各种范式语言之间的关系,让你对编程语言有一种截然不同的全新视野的掌握)。 7 f& A! H3 X* S8 n& W0 L8 ?9 S3 Z
(如果学习者注意的话,会发现我说的学习顺序都是沿着语言和某些技术的,为什么呢?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如【真正】学完了C++或C#的话,就不单指学完了C++或C#,而是把多种语言范式都学习了一遍,以及现代的程序开发思维(因为里面用到了很多让学习者一劳永逸的技术))1 e/ s( G' p9 z* Z/ f. e
* n, {, x0 d" I6 K
以上5个步骤都是基础大步骤,要解决的话要没1-2年应该不够。5 A0 S+ p6 k6 j0 Y$ x4 ~# z
与此同时,要尽快选出文中学习者感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向会有什么损失,因为计算机很多分支是相通的,只有学习者把分支方向深入进去,才能真正理解很多理论的实践意义。并且一旦学习者在某个分支领域形成了较强的优势(比如,到公司里只有学习者这方面最强),那么学习者就是稀缺人才。 0 y4 d0 a6 A r 9 Y( ^$ ^; }* W7 } 关于大方向的细分步骤就暂时先说到此处,有兴趣学习者的主要就是要把我说的这几个基础步骤先解决,同时平时要注重大方向理论结合实际去编码和开发。 e% u+ ], z! F
6 A( a- o1 _3 {5 ] }; j
+ R& F5 n+ Z* `& b) r6 }% X
# w& k: J; Y; K% ^9 i
⑦最后,再从资本论的角度去度量一下为什么要深入至少1-2门技术,而非只是泛泛的都学。 ! e* z7 \2 V; j3 C8 x, z' v4 D* w, n) z( j
q# m7 R: N3 M0 }, p, O. f4 C+ R* S) {
! N3 j; B) j$ ~, u' _6 f
1.一个公司不需要一个功能对应的所有可选技术类型,通常只要其中1-2种(就如服务器脚本语言,为了便于开发维护和人员更替,也都是集中在1-2种 * u5 E( P. v# y8 s: ~6 \ & ?% g& \ E/ m2 J2.就算会N种技术,一个时间段只能从事其中一种工作 $ ~. L3 R- f9 L" k) F) S2 e8 |
3.完全不用担心自己好不容易深入的技术公司正好不用(你进公司之前,不光是公司选你,你也在选公司),另一方面,技术也是相通的,深入一个再深入另一个同类技术,是【极其】容易的(建立在时间+实践)。% B9 h# S' `/ z' T) T
; ^6 N b# L; u2 f6 S4.泛学的东西,你能用1个月、半个月、1星期、几天学会,别人也能(再者,学会不难,熟练成习惯并转化为开发效率,才是问题,因为这不是技巧问题,而是时间成本问题),那么这就完全没有竞争优势了,你泛学了N种技术,而公司正好需要其中之一时,别人只要投入也同样这么短的时间就能临时追上你的泛学程度的步伐,何必呢?而你要赶上别人花了几年的深入程度的东西,不可能只需要花几个月(除非你之前早已深入了类似的东西,但这就推翻了你是在泛学的前提,所以不用考虑这种情况)。 H: p3 G+ B7 ?; g
& O' I% D- I5 T- @
5.我评估两个人之间的领域能力的差距是这么来的:一个人如果想超过另一个人的某个分支领域能力,要花多久?如果要花几天或几个月,说明差距不大,如果要花几年,就是很大的能力差距了。(时间是衡量能力的最终极标准:当然建立在正态分布和个体特殊差异之上)( h# r+ v3 U9 m, f
4 S+ _1 p% P. I" o0 j! n6 X 1 W g o' G( G$ Z: [+ i; h. c2 p# r4 C- _1 L/ i6 x! d
曾经有人问我,怎么才算深入的学习了某东西,有个专攻JAVA的人问我这个问题("如何彻底深入理解JVM”),我不假思索就果断的回答他:要真的深入一个东西,只需要实现一个类似的东西。 & U4 `7 U% |, V Z& f A$ s& W. P% R* ?
他还是没对上号,然后当时我进一步说:如果你能实现一个类似于JVM的东西,不就代表你深入理解了JVM吗?2 X+ j/ F) r5 O4 x7 [
8 O/ w! N" J: Z7 n9 y: D! N u
9 X l' q, [5 J- P5 p: g
9 {- e% G7 K1 {7 j- k6 z2 I
5 y. q: Z6 Z$ |- x W7 Y- X
' @9 b8 k* V3 x; U% x# ~" kPS: $ Y% n* c# |3 n% B0 }5 k- s7 `2 J4 z8 i* z$ Q2 t
此篇内容是基于我之前原创回答别人的一个百度问题然后补充后的一个结果(http://zhidao.baidu.com/question/217195737.html),大家有任何技术上想喷的尽量喷+BS(当然,以上学习和认知思路并非唯一的,但至少我认为是多种学习路径中较为可行的)。 0 m; c: v2 j+ f+ M, h# o ! s0 o O/ T% E, M# U% ]- M% g; W