关于学习程序设计
——by karottc
引子
前段时间去参加了几个公司的笔试、面试,结果并不如自己预想的那样好。在应聘的过程中也结识了一些同龄人,让自己的内心颇不平静,因为大家都是同是搞技术的,自己内心难免会有些小小的比较,再加上一些面试的感觉,发现自己并非自己想象的或者说预期的那样,甚至里自己的心里估计还有很远的距离。所以利用最近闲下来的一两周时间,思考了些自己这几年在学校软件工程这个专业到底学到了啥,当然这期间也看了些大牛的博客,不过好像自己的思路依然不是很清晰。
关于程序设计语言
个人认为学程序设计,自然先得学会至少一门语言,达到一定层次以后才可以不受语言的限制。可能是我们学校开的课程的原因,比较喜欢C/C++,一直都比较排斥java、c#等这些语言,虽然做过一些java、c#的项目,但是依旧没有好感,对没有好感的语言自然学的不好。然后这段时间看到了前几年linus抨击C++的文字以及国内的激烈讨论的文字(以前也看过,只是基本快遗忘了,然后这段时间又看到了,正好自己也在想这方面的问题,所以又看了一遍),用句孟岩大大的话说,其中不乏有营养的文字,确实如此。如果说C和C++也能打的如此激烈,那其他的语言还有活路么。冷静的思考下,其实自己接触到太少太少,就算HTML、javascript这些,我懂得也太少,从上次做C#项目的过程中,我已经在慢慢接受java、C#这类语言,说明自己的思想在发生变化,所以我本人很同意alan prelis的话,Alan Perlis 曾说: “如果编程语言不能影响你的编程思维,那就不值得去学.”“语言之争”是一直都存在的话题,所以我也去过多理会,所谓存在即合理,每种语言自有它的用武之地。
从那些有营养的文字了解到,自己曾以为学的还可以的C/C++,其实不然,这也就难怪会在面试时不是很顺的原因了,任何人的文字都是个人色彩的,云风、孟岩、刘未鹏等等都是根据自己经验体会而写的文字,初读上去都很有道理,写得很好,多读几次时就会发现一些问题,这也是别人的经验只能当做参考,自己的问题还得自己思考才行。很多事果然写出来就会清晰很多,本来在脑袋中比较乱的思路,现在好多了。所以语言,自己还是在C/C++上继续深入吧!
关于平台
这也是一个必须面对的问题,因为写程序不可能漫无目的,也就是windows或linux或其他的系统得选一个作为主要的开发平台。根据自己的感觉,一直觉得windows的应用程序没有啥兴趣,对游戏开发也不感兴趣,虽然在windows下也写过游戏、MFC的软件、WPF实现的软件(确实是软件,因为自己还做了个简单的安装程序),用openCV写过一点图像处理方面的东西,用java写过一些web方面的东西,比如用SSH做的管理系统之类的,即使这样,对windows也是一点不喜欢。好在折腾linux了不少时间,也写过些程序,用了之后就很喜欢linux,在上面做一些C/C++的开发是比较好的选择,因为自己喜欢!
专一:深入提高
这次找实习的总结就是,自己不够深入,虽然面比较广,很多方面的项目或者程序都写过,但是却不是很有底气拿出手,所以后面的事自然是要深入提高,不然永远是挨打的局面。其实正如大师的非凡能力来源何处和十年学会程序设计这两篇文章一样,要想成为大牛,专注、坚持下去是必不可少的,虽然也知道,但是因为浮躁却很难做到专业,所以也只能自己依靠强大的信念支撑下去。
所以感觉自己需要有一个清晰的目标,比尔·盖茨就以目标清晰明确著称,不仅在战略制定上,“每个人桌面上都有一台PC”,而且居然还体现在招聘上——“如果你读完了TAOCP,那么就给我投简历吧”。要提高自己只能是多看书、多动手,看书提高理论,动手实践,如在GitHub上参与项目。只要一步一个脚印的走下去就行了!
原文出处:http://www.cnblogs.com/karotte/archive/2012/06/17/about_programming.html
2012年6月16日