请不要跟微软混
个人的痛苦经历告诉我,跟微软混要做好心理准备.
在大一时用vb6.0跟老师做各种商业项目,学得很起劲,可以熟练用vb+SQL2000独立做项目时,.net横空出世了.
大家都知道vb.net和vb6.0根本不兼容,完全是两套思想.
于是实验室里的我们几个和老师同时开始学习vb.net
其中有几个细节终身难忘.
1 我们学习.net那叫一个痛苦,感觉以前学的vb6.0完全没用了,全部需要重新学习,而且.net这么复杂,自学起来真是花不少时间。
2 我很注意观察老师,老师和我们完全不是一种情况,边随意查查msdn,边做一个几十万的项目,一个礼拜左右,项目竟然基本完成......
我当时思考:
1 跟着微软,如果每过几年它一更新,就要把原有的知识扔掉大半去学习新的不知所以然的复杂的东西,我觉得可能20岁,头脑还行,30岁呢?继续勉强挣扎么?那40岁时呢?比如哪天微软宣布下一代技术,我是不是还要从头痛啃?
2 老师为什么看来仅仅是“熟悉”,而我们却要“学习”?
因为老师以前写这些系统都用Borland C++,开发虽然繁琐,但早期的项目都是这么直接调用操作系统系统API来做的。只是后来发觉既然有vb,pb 这样的rapid tool,招个人培训周期也短,容易上手,为什么不呢?
3 自己做软件是为了什么?大家都说这是一个青春行业,看样子跟微软混.net结局是可以看到的。正如现在的北大青鸟,随便一个退伍军人也成,培训几下都能做ERP,那以后的收入大家能高么?这是很显然的道理,越复杂的东西,门槛越高,竞争越不激烈,当然越值钱,当然学习起来要付出更大的努力。反之亦然。
当时一度对软件开发失去兴趣,毕业后际会巧合,又进入软件行业,不过我不会再选择.net。做了C/C++和汇编,行业不提了。关键总结下后来的发现:
1 越复杂的、越接近计算机本质的技术,越具有不变性。你看C/C++标准库几十年有多少变化?你看看各种通信底层算法近几十年有多大变化?通信框架近30年有多大变化?我发现这些东西30年来几乎没变多少。卡马克90年代初使用的BSP树现在做室内场景渲染还是用它......汇编我也不说了,CPU虽然发展快,但其实还是很慢的。
2 越是复杂根本的技术越容易积累出有价值、可复用的东西。
3 多年的学习发现,知识分两类,一类是可以突击学习的,一类是必须经过积累的。而技术基本都可以突击,惟有基本理论,包括数学、物力、算法这些是很难突击的,必须经过扎实的积累。
早上要赶7点的飞机,写得有点草,请大家见谅,衷心希望中国的程序员实力越来越强,成为让微软畏惧的存在。