我我的是一个程序员,关注web、分布式和数据处理。
我将web看作最流行的、自然跨平台的展示和可视化技术,将分布式看作程序协做、协做程序的最适架构,将数据处理看做须要基础、技巧、认知、视野以及领域知识兼而有之的事,因此作数据处理,会提高基础、技巧、认知、视野以及领域知识。
这些都是废话,还挺绕,但理解废话,对我来或,可能不是那么简单的事。html
我认为能力的提高来自厚积,因此对于基础的东西,应该保持持续的热情。
认为基础应该包括但远不限于:
数据结构和算法、
算法、
网络(tcp/ip、p2p、http等等)、
计算机体系和操做系统(内存管理、高速缓冲与缓存、线程与并发、资源与争用、CPU周期、局部性原理等等)。
认为以上基础永远没有精通一说,至少在我这个智力层次看来。好比你看到严蔚敏数据结构了,挺好,你又看了算法导论了,更好,能看看普林斯顿的算法,你挺不错,你又看了些论文,而你确实又用vim、emacs、vs、eclipse或者sublime敲了,那你应该能够一眼就看出满世界的博客的算法文章中的纰漏和层次,那你仍是有点功力了。java
知识结构的重要性与项目经验会相互影响。一样的项目,相似的角色,由于知识结构的不一样,带来的提高和总结也会不一样,这种提高对于下一个项目或者更复杂的项目带来的裨益也会有所差异,更长的时间之下,这种差异巨大到值10W仍是100W。
有十年工做经验,仍是一件事重复了十年,差异可能就在这里。程序员
认为相似“精通java”之类的说辞是存在的,但不谈JVM是耍流氓。类库和框架的熟悉来自工程和项目,能够熟悉一个简单的API,也能够追着理解AOP,能够应用地很简单也能够很复杂。若是关注性能的场景,那么应该自觉地关注JVM。可是JVM是浩大的工程,因此理解它是一个长期的过程,因此精通是一件比较困难的事。可是不少经常使用的场景,好比BufferedReader和FileChannel、mmap均可以是I/O的一种选择,何者更加适合,每每要看虚拟机里面和操做系统作了些什么,才会理出最佳实践,附带的,对Xss、Xmx、directMemory之类的简单配置也会有更深的理解。同时有助于看到基于虚拟机的语言的局限,好比HBase的BlockBuffer自己是提升读取的效率的设计,但由于JVM的堆和GC机制,这个设计可能会拖垮HBase。
这一点一样应该适用于C#&CLR。web
工做了多年的人都会认为或者自恃本身在某些方面达到精通的水准,有的人的确达到了,但附带着会有些装、虚伪和极爱抖机灵,他不会和你好好地探讨问题。这种人可能会存在于朋友、同窗、同事、上司当中,一个程序员不会活在独立的容器之中,除了在实力方面要保持自信和谦逊以及付出更多的努力以外,还要注重坚持本身的一些原则而不受一些不够正能量的企业文化、圈子文化影响,作本身,才能更好的对待技术,才能给雇主带来更佳的气场感觉和实际价值。
这个世界不缺少喷子,有的喷子自己也很厉害,甚至比本身厉害的多,这是他们活着的方式,情绪控制不是什么技巧,你理解的越透彻,你就越能看清什么是喷子,什么是恨铁不成钢。算法
关于技术实用论,总有一种观点是没去过美国就不该该知道星条旗。好比,不是每一个公司,每一个程序员都会接触到大数据,可是人类在没有飞天的远古,就已经经过图腾和壁画来开启文明的探索和解读了,这种东西,实际上是信仰的力量,说俗一点就是兴趣所在,再俗一点,就是机会老是留给有准备的人,愿意不肯意准备看态度和理解,准备了能不可以未来用得上,看机遇,实力和运气都挺重要,但运气你控制不了。vim
人类的大部分知识来自间接渠道,好比阅读书籍、观看媒体、道听途说,离开了学校,但并无离开知识的媒介。好的知识来源,比好的学习方法更加剧要,这一般也是牛逼的院校和不牛逼的院校的主要区别。有的学校的老师在微博还在成长的阶段就开始讲授社会计算了,若是你没有这个知识渠道,应该不会认识到ETL、数据挖掘和倒排索引的意思,可能你已经熟练的修改、添加、编译lucene了。
可是,再好的知识,离开了实践,均不会获得升华,认为一个好的程序员,应该关注代码和实现,但应该摒弃简单copy原则,虽然copy大多数状况下对付工做够用了。私下里,一段关键代码写个十来遍真傻,挺蠢的,但若是每种写法有个思考和理解在里面,有选择地这么作了,再看设计模式和重构,哦,真是这么回事,用茴香豆的方式当傻子不是那么不堪忍受的事,至少理解了什么是错误,什么是差异,也给你创造了工做以外的提高场景。设计模式
不少人持这种观点,中国人,技术都是差的,也是写不出hadoop的,挣钱最重要,但本身又以为本身很厉害。
其实将写出hadoop和挣钱做为标准,这个观点自己就太局限了,人这辈子,钱固然重要,写出能用的hadoop仍是写出mini操做系统仍是mini虚拟机,都没必要太当回事,阅读源码和本身实现所营造出的理解深度天上地下,这种愚公移山的作法,更多在于逼迫你去了解更多、更准、更深入。大部分hadoop专家,其实都是仅仅看了源码而已,就已经能出书了,事实上不少公司在实际中也只是跑一些很简单、很成熟的挖掘算法,爱奇艺的工程师作线性回归也是实用便可,大部分公司仍是在处理日志,有时候想了很牛逼的算法,尚未换成SSD重要,因此没那个环境,没那个条件,就不研究了?我想不是的。
关于挣钱,我以为,只要兴趣所在,能把事作好,钱本身就会来。收入上不去,每每是作的事情就不在高收入的那个区间,写程序很难出富翁。说实话,外围一天的消费可能就是你工资的好几倍,不用说外围的收入了。夜总会想玩的high一点不开两瓶路易十三,可能还会被小姐骂伪土豪,你不送你喜好的红、蓝、绿牌花束,你都很差意思和她回小区或者宾馆探讨遗传算法。
那么和外围一块儿探讨遗传算法的王总、李工的收入更不是写程序的能够比的了。
因此不要太刻意地把写程序这件事和挣钱挂起来,局限了你挣钱的本事。http://www.cnblogs.com/foreach-break/p/be_a_real_programmer.html缓存