对程序员说点实在话
-
我个人是一个程序员,关注web、分布式和数据处理。
我将web看做最流行的、天然跨平台的展现和可视化技术,将分布式看做程序协作、协作程序的最适架构,将数据处理看作需要基础、技巧、认知、视野以及领域知识兼而有之的事,所以做数据处理,会提升基础、技巧、认知、视野以及领域知识。
这些都是废话,还挺绕,但理解废话,对我来说,不是那么简单的事。 -
我认为能力的提升来自厚积,所以对于基础的东西,应该保持持续的热情。
认为基础应该包括但远不限于:
数据结构和算法、
算法、
网络(tcp/ip、p2p、http等等)、
计算机体系和操作系统(内存管理、高速缓冲与缓存、线程与并发、资源与争用、CPU周期、局部性原理等等)。
认为以上基础永远没有精通一说,至少在我这个智力层次看来。比如你看到严蔚敏数据结构了,挺好,你又看了算法导论了,更好,能看看普林斯顿的算法,你挺不错,你又看了些论文,而你确实又用vim、emacs、vs、eclipse或者sublime敲了,那你应该可以一眼就看出满世界的博客的算法文章中的纰漏和层次,那你还是有点功力了。 -
知识结构的重要性与项目经验会相互影响。同样的项目,类似的角色,因为知识结构的不同,带来的提升和总结也会不同,这种提升对于下一个项目或者更复杂的项目带来的裨益也会有所差别,更长的时间之下,这种差别巨大到值10W还是100W。
有十年工作经验