现在的位置: 首页 > 综合 > 正文

开发语言学习经历

2012年10月17日 ⁄ 综合 ⁄ 共 3637字 ⁄ 字号 评论关闭

    我接触电脑比较晚的,大学以前知道电脑就是镇上开的电脑游戏机室,那时候电脑能干什么,为什么会这么流行这种概念都是一塌糊涂。现在说起来总是觉得电脑工程师的职业是小时候从没想到过的。
    大一的上学期就有上机课了,开始不知道搞什么好,看从发达地区过来的同学由于中学有基础,打起键盘来噼噼啪啪比我快就特羡慕,特别是计算机老师用投影上课的时候,给我们演示microsoft word操作,看他打字键盘都不看,心想哪天能有这水平就好了。大一上学期上完了,上机课印象最深的就是机房老师的絮叨:开机要先开显示器,再开主机;关机要先关主机,再关显示器;没事不要老重启电脑;不要像关电视机一样关电脑。
    大一下学期开始有Pascal的教学了,那时候程序是啥东西也不太清楚,反正要学就学了。上机就干点这样的正经事,把书上的程序写到Turbo Pascal里,看看运行出来的和书上写的是不是一样。每次看到那个蓝底黄字的屏幕就有点晕,经常想做什么事情都忘了。大一学完的时候,看到这个还是晕,但字好像打快了一点。而对于Pascal的理解,就记得老师经常提到的什么值参和形参。
    真正不晕的时候是大二自己买电脑后,我当时就想:不能老这么整,纸上写好程序了在写到电脑上,那以后写程序还天天带着笔和纸啊,一定要习惯在电脑前思考。大二开始了C语言的教学,由于之前上网看见别人说Pascal不行,C语言正当时,就不怎么理会以前学的Pascal了,专心学了C。那时候书本刚发在手上,趁开学的时候教学活动还没正常展开,就把课本花两星期看了一遍。以前有点Pascal的基础,应该叫结构化程序设计的思想,看起来还是有点感觉,有些地方似懂非懂。接触新东西就是这样,要牢牢记住非要重复好几遍才可以。

    这时候可以开始在自己的电脑上写C语言程序了,同样是蓝底黄字,头已经不晕了。初期就是把书上的东西敲到里面,运行一下看结果。Turbo C里面的菜单有什么用,一点也不知道。老师也从没说怎么调试自己的程序,自己也更不知道还有调试这回事了。C语言的老师还是大一教Pascal的老师,中年人,就是那种课本上有什么教什么的那种了。这样搞了一段时间,觉得太乏味了,于是到图书馆去找资料。有一次找到一本有点破的书《Turbo C大全》,厚厚的,里面讲了很多我不知道的东西:图形程序,系统调用,C语言的库函数用法等。还有一些集成开发环境的使用说明。没说的,借回去看了。借的时候还特意留意一下,这本书这么破,之前还有谁看过,结果发现上一个借书人就是我们系2班的,我不得不佩服别人比我行动的早。结果就是这本书,打开了我的编程之窗,让我知道了什么是BreakPoint,什么是Step In/Step Over,Watch,实际上已经开始我的Debug之旅了。
    接下来的路就好走很多了,书上不明白的地方,Debug看看内存,想像一下线性地址的样子,于是就明白了。慢慢的大二上学期要完了,C语言的课本我也看过五遍了,代码也差不多写了千把行,基本上可以认为较熟练掌握了。有一次有同学问老师C语言对以后找工作帮助大不大,老师就说其实C语言还没有Pascal用的多。我当时对这个结论很不满意,一是和自己在网上看到的评价不一致,二是我花在里面的时间也太多了。但实际上我没有意识到他说的Pascal是Delphi,而他说的C语言只得是纯粹的C语言开发。后来我在网上论坛看贴,求证过多处,支持C的人还是多,最后我就决定继续前进。
    大二的时候搞C语言课程设计,很多同学都不知道怎么做,理论和实践脱节的太远了,这时候我好像不知不觉就成了高手。当时分几组,我们一起互相学或者互相抄,最后跌跌撞撞的也过关了。而同系的2班也冒出一个高手,就是在我之前借书的兄弟。有时候沾沾自喜时,是对自己付出后收获的一种奖励,但你周围总有一些和你同样勤奋甚至在各方面都超越你的人。
    大三开始教汇编和操作系统,数据库,基本上以专业为主了。由于以前的基础打得不错,一切都理解起来很快。这时候自己开始学C++了。开始是纯粹的C++,从Borland C++ 3.1开始的,看了好几本书,对C++这种面向对象的设计总是一知半解,明明用C语言很快就能搞定的事情,非要弄个类出来解决。看的最多的书就是Think In C++,中文版的,翻译的不咋地。而且这本书也不是针对初学者讲的,网上说好就买了。后来终于有一天悟道了,前进了一大步。学习新东西是痛苦的,特别是坡度过陡的,重要的是重复重复再重复。这时候自然要开始选平台了: Windows Or Linux,Windows用的多,自然选这个了。又有两个工具比较,Borland C++ Builder和Visual C++。周围没人问,问了别人也不知道,不过可能也是和高年级的认识的人少。又到网上去找哪种好,于是知道了大家都知道的一句话”聪明的程序员用Delphi,真正的程序员用VC“。我走的C++的路线,于是自然选VC了。学习MFC又是一段痛苦而郁闷的过程,最后在买了N本Windows编程书和看过N多网站论坛后,还是克服了。
    大学读到这个阶段,大家都准备考证书了,大三上学期有个消息传来,说我们系有个兄弟过了程序员,急忙问是谁。
不出大家所料,就是在我前面借书的兄弟。那时候我们还不是很熟悉,也不住一层楼,但这次一定要好好认识了。那时候我们是从没想过找培训机构搞题库这种方式Pass的,能考过要付出很多努力。以前我更本没想这么多要考什么,但现在不同了,大家都在准备考,我也加入了。自己估算了一下,程序员应该没问题,准备明年的高程吧。定下计划就开始弄了,看了高程的考纲,对应的买了一些书籍,每天抽点时间学里面的东西。但还是大多时间都放在了VC的学习上。同寝室的兄弟也被带动,开始学学工作后用的武器,方便以后找工作。有学C++ Builder的,有学C#的,那时候.net刚抬头,到处做宣传。那时候挺羡慕学BCB和C#的,VC里弄个老半天弄出来的功能,用这两兵器三下两下就搞定了。几次都差点诱惑到那边去了,就因为几次碰到别人听说我搞VC时夸了几句,凭这点虚荣感过了最困难的时候。陷入困境的时候阿Q一下或找几个不太懂的人吹吹牛,让别人戴戴高帽子,也不失为一个坚持的好方法。
    大四的上学期,高程考完后,题目答的不错,特别是下午的编程题,做好后很快就出来了。那时候才感觉到,学习不是为了考试,考试只是检验自己学习效果的一种方式而已,真正的考试是解决生活中的问题。由于感觉不错,就不担心这个,去参加招聘会找工作,也挺顺利。后来成绩下来,Pass。我们系过了两个,一个是我,另一个大家也猜到了,而这个兄弟家里条件不太好,大学里一直借用别人的电脑写程序。

    工作后一直用VC,但都做些应用层的东西,吃力不讨好。于是在.net如日中天的时候,学了几个月的.net开发,也了解一些这种先进工具的设计逻辑。用.net写过几个小程序,但显然不适合桌面应用,而Web开发不是自己擅长的,所以没有很用功的去学。当时学的时候是.net 1.1,到2.0的时候很多和1.1已经不兼容了,而且有些.net的应用方向Microsoft也一直在调整中,现在好像是到3.5了,也加了很多新功能,但我现在已经没学了。偶尔和别人聊起来的时候知道一点,有点这方面的话题。
    现在空余的时候写点应用型的小工具,显然VC做这个事情效率是很低的,就想到了BCB,反正都是C++,只不过用Delphi的VCL而已。当工具写了一个雏形的过程中,发现很多大家都抱怨的问题,很难用,而且网上找到的帮助资源也很少,最后不得已改到Delphi,还好改的算早,工作量不是很大。Delphi的学习很平滑,一个星期基本就熟练使用没问题。Delphi的设计者设计了C#,VCL库的使用和.net库的使用有很多相似之处,这个也是快速掌握的一个条件。
    语言用过几种,都还属于主流,也见过很多用其他语言的朋友。工作几年后,特别的大公司里,熟练用哪种语言不是主要的谋生技能,主要看业务逻辑的熟练程度。大公司的系统和产品线都是很庞大,能真正了解这些产品设计逻辑和改动对各模块风险的人是非常少的,而这些公司能做这么大,就是把这些有经验的人当宝贝一样留住。很多人说中国的IT业没有积累,但IT公司想做大没有积累是不行的。最近很多人讨论Google的浏览器和IE之间的战争,我也有兴趣下载了Google的产品使用,但感觉和IE还是有很大差距,毕竟微软积累这么多年也不是白干的。据说Google只用两种语言开发产品:Java和C++,而我相信不只是Google,很多大公司都是选这两种。语言并不重要,重要的是感兴趣的公司对它的使用程度。如果要去Google工作,学Java或C++,如果要到IBM工作,那我也不知道,看看IBM的招聘广告吧。如果现在满意自己的工作,那多花些时间去专注业务吧,只有这个才能把自己推向职业的更高平台。

抱歉!评论已关闭.