最近关于编程又有了许多新想法,想写在这里,作为一个小小总结。
首先,关于C++和java,我要否定两个观点。之后,我要记下我心目中对于编程之大格局的认识。
一、否定:C++是计算机专业毕业生的专利,而java是IT民工的代名词
现在这个时代,转行IT的人很多,培训出来的,跨专业自学的。水平参差不齐。这些人大多是自认为IT行业很赚钱而来的,结果真正学了编程之后,要有很多人被淘汰,还有更多人被慢慢淘汰。而其中,学java的占很大一部分。为何是java呢?首先在于web开发的火热,膨胀了了市场对java程序员的需求。其次在于java web开发相关的框架很多,这些框架容易理解,容易上手(虽然熟练掌握也不是那么简单)。相比较而言,C++语法的复杂、艰深,开发的高要求导致了更高的标准。这个标准简单讲,就是你至少要有一定计算机专业基础。
也正因此,很多C++程序员就骄傲起来,觉得自己在这个行业中属于非同一般的地位。觉得自己因使用C++而高贵,尤其是和那些培训、自学出来的java程序员相比。他们觉得C++只有一部分人可以做,而java谁都可以做。
我要首先否定这个观点。
第一,java容易上手,那是因为java这个语言设计的高级、优雅且尊重“人性”;C++语法复杂,无非是因为C++只追求运行效率,而不怎么在乎程序员,说白了C++是为“机器”设计的编程语言,而不是为程序员设计的。
第二,java容易入门,使用便捷,并不代表java的技术低级!正相反,java的技术一样可以高不可攀。拿web举例,人们觉得web开发无非就是用spring、struts、hibernate三大框架搞个网站,是属于IT民工要做的活。 然而一切技术都有高下之分。三大框架的确简单,但真正精通熟练应用也要下一番苦功的。而在三大框架之上,高性能网站构建、并发、缓存、数据库优化等等名词所代表一切才真正代表着web开发的技术水平和境界!而往底层讲,要精通java虚拟机的机制原理,也绝不只是一两年功夫搞得定的!
所以,低级的C++程序员一样是低级程序员,而高级的java工程师同样可以成为大牛。
糟糕的C++程序员也只能用C++写出烂代码,而优秀的java工程师同样可以用java写出诗歌的美丽和优雅。
二、否定:C++和java是两种技术路线,要想登上高峰,就只能专注一种,否则就是贪多嚼不烂
这样的看法其实多少有些迷信的成分,好像武侠小说里常常写一些高手,一辈子专注于某把破刀破剑破棒子却一辈子无敌。所以人们常觉得在IT行业,最好专注于某项技术、某种编程语言、某种开发环境以至于某天达到炉火纯青的地步。例如,我高中时候还一度以为自己要将汇编作为一生追随的技术。现在想起来挺幼稚的。
与那种想法相反,编程高手往往都是技术多面手,因为他们已经不局限于某种语言或某个平台了,他们已经做到对各种技术融会贯通、游刃有余。例如我现在在华为的主管也是java、C++都玩的6的。
否定完这两种我一直讨厌的观点,算是长出一口恶气,最后,谈下我心中的编程大格局!
在编程方面,我一直有两个大的方向,一是向上,不断专研java技术,追求最尖端的web开发技术。高性能网站的构建与数据库优化技术,将会是我的追求。
另外一个方向是向下,扎根地下、深入底层:自制操作系统、Linux开发,甚至是深入Linux内核。编程语言方面,C、C++以及jvm以至于自制编程语言,甚至编译原理。
这就好比一棵树的成长。枝干长多高,根就要扎多深!根扎多深,枝干才能长多高!
这就是我的编程大格局!
附上《头文字D》里我最喜欢的一段台词。这部动画里,有技术者所追求的一切:热情、执着与疯狂。