我所能理解的编程境界

记得我初中的时候,就深深被市面上琳琅满目的游戏吸引住了,从国产经典单机游戏《仙剑》、《武林群侠传》、《刀剑封魔录》,到ps2主机游戏《战神》、《实况》、《凡人物语》,还有网络游戏《DNF》、《CF》、《魔兽世界》等等游戏让我花费了不少心血、体验到多款游戏的魅力,当时也诞生了制作游戏的念头(年轻人谁不爱幻想),构思了一款角色扮演游戏,背景大概是七个神创造了人,而人类意图摆脱神的统治,开始暗暗地训练一些人类勇士要去挑战七神,而玩家就是扮演者人类勇士,这个游戏背景应该是一个初中生所能想到的很高水准了吧。。。于是,我在网上搜索了怎么制作游戏,在百度知道看了不少回答,都提到要编程要学习C语言什么的,从那天起,命运悄悄在观察着我,不动声色地推我走向学习计算机之路。


在很长的一段时间里,我都以为C语言就是计算机的一切,不知其他人是否有同样的感觉,刚接触计算机时,以为语言即编程,编程即语言,语言大过天,特别是C语言这种在语言界处于老大地位的高级语言。直到学会语言后才发现:语言只是工具。在没开窍前,很傻,一直在、花了很大力气在学习语法,当语法几乎都掌握得时候,觉得自己好像还不会做东西,“学会C语言了,怎么做做不出一个软件啊”、“怎么做一款游戏啊”、“我又把书本的代码敲一遍了,怎么感觉我只会写代码做数学题”等等想法、问题慢慢浮现,直到理解了语言只是一个工具的时候,才知道发现自己多么单纯,要学习的东西还多着呢。


我觉得,理解了语言只是工具这个概念,相当于第一境界已经达到了。


那么第二境界是什么?那就是掌握图形界面的编程。如果你是学C语言,总不能做一款黑色框框的产品给客户用吧,所以需要学习图形界面编程,比如MFC、Qt这些框架来写软件的界面布局,比如学习HTML、CSS来设计网页,比如学习安卓编程来做安卓客户端等等,总之能做出一个界面出来,就算简单做一个按钮来点击,也会觉得非常有成就感,瓶颈期轻松度过,走进第二境界。因为如今软件以几百数量每日增加,每个人都习惯性地认为软件都是有界面的,没有界面的不叫软件,连计算机学生也不例外。所以学会图形界面的编程,才会觉得自己在做软件,否则长期以往,会以为自己在用代码做数学题,积极性容易被打击。


当意识到界面并非软件的全部时,步入了第三境界。


界面不过是将UI元素摆到适合的位置,并做一些反馈性的动画、声音效果,还有获取数据显示到界面上,并不是软件真正的、有具挑战的、最有意思的逻辑处理。意识到这一点时,达到了第三境界。这个时候,你会看到,身边大多数的人都是处于第二境界,因为突破第三境界要学习的东西很多,比如操作系统、设计模式、代码重构、数据库等等偏应用层面的东西,还没包括汇编语言、接口标准、数模转换这些底层的东西。简单来说,当深刻意识到计算机其实是:集成电路->机器语言->汇编语言->高级语言->操作系统->软件应用->图形界面->网络通信->联网软件,大致的发展过程,那么在高级语言之前的部分,可以不学(不然学几年都学不完),而上面说过,学了一门高级语言跟图形界面编程就可以达到第二境界(这个境界相对容易达到,市场上的培训机构大多针对这两个方面),那么想要达到第三境界,必须将操作系统、网络通信这两块的知识补上,那么就可以达到第三境界。


第四境界是什么?很多大神都说过一句话:“学的不是编程,而是编程思想”。具有了编程思想,相当于学会了所有计算机语言,掌握了所有工具的使用方式。


这个境界最牛逼的地方在哪里呢?比如现实上使用量较大的框架、类库、破解程序,就是这类人写的。这个境界的人极大推进了计算机应用的发展,让应用开发变得更加简单、高效。让我们头疼已久的数据结构、算法,在他们面前简直是小儿科;让我们搞不清楚的机器学习、软件虚拟化的原理,在他们面前简直是小儿科;让我们看不懂的外国新开源技术教程,在他们面前小作停留就翻译了出来,概念表述的准确极大给有兴趣的人提供了中文学习资料等等。这个境界的人大多是公司的技术核心,有半路出家学编程的、有寒窗苦读的硕士博士、甚至有还不到10岁的小孩子,总之,这些都是极为聪明的人。


比第四境界高的是什么样的人?我觉得应该是比尔盖茨、林纳斯这些牛逼的大神吧!

你可能感兴趣的:(程序员与人文)