就如上篇文章所表述的一样,我不认为学校是培养程序员的合适场所。我觉得学徒制才是正道。
然而从另外一个角度来说,我并不认为语言仅仅是单纯的工具,实际上语言对人的思维和作事情的方式还是会有很大的影响的。比如对于gof,java社区就很看重,而dotNET社区就可以认为gof可有可无,cpp社区现在很可能认为gof是不完整的半吊子工程,而函数编程社区则根本就可能认为gof纯粹就是一个bug。时间也是一个参数,也就是说随着时间的过去,同一个人对同样的东西也会发生变化。
我不认为一个程序员应该被语言束缚住手脚,但是我确实认为一个程序员如果仅仅使用一种语言那么就必然会被语言所束缚。而显然语言层面最近和以前都是热点,不断的有新或者旧的概念被人们从不同的角度加以应用。特别是从时间的角度看,很多语言已经比以前发生了很多质的变化。
不过又有另外的问题,那就是语言如果是平台,那么问题就不仅仅是语言的问题。显然java和dotNET都遇到了这个问题。也就是说,当我们面临语言和平台的双重束缚,如果我们没有一个比较完整的见识,我们就很可能会被工具压在一个角落而不能施展拳脚。
当然我也承认,学习一门新的语言是要付出成本的,而掌握一个平台可能要付出更大的成本。但是我可以负责任的说,这些付出是完全有价值的,也是必要的。即便你不会脱离这个语言,更不会使用另外的平台,这句话一样成立。
因此你才会听到有人说,每年学习一门新的语言是必要的。
然而从另外一个角度来说,我并不认为语言仅仅是单纯的工具,实际上语言对人的思维和作事情的方式还是会有很大的影响的。比如对于gof,java社区就很看重,而dotNET社区就可以认为gof可有可无,cpp社区现在很可能认为gof是不完整的半吊子工程,而函数编程社区则根本就可能认为gof纯粹就是一个bug。时间也是一个参数,也就是说随着时间的过去,同一个人对同样的东西也会发生变化。
我不认为一个程序员应该被语言束缚住手脚,但是我确实认为一个程序员如果仅仅使用一种语言那么就必然会被语言所束缚。而显然语言层面最近和以前都是热点,不断的有新或者旧的概念被人们从不同的角度加以应用。特别是从时间的角度看,很多语言已经比以前发生了很多质的变化。
不过又有另外的问题,那就是语言如果是平台,那么问题就不仅仅是语言的问题。显然java和dotNET都遇到了这个问题。也就是说,当我们面临语言和平台的双重束缚,如果我们没有一个比较完整的见识,我们就很可能会被工具压在一个角落而不能施展拳脚。
当然我也承认,学习一门新的语言是要付出成本的,而掌握一个平台可能要付出更大的成本。但是我可以负责任的说,这些付出是完全有价值的,也是必要的。即便你不会脱离这个语言,更不会使用另外的平台,这句话一样成立。
因此你才会听到有人说,每年学习一门新的语言是必要的。