|
|
Author: 茹枫
Copyright GameRes
http://www.gameres.com
未经许可,严禁转载
我学程序n久,学多了就bt,就反感,就浮躁,看到什么就不爽什么。
但是我曾经也是一个有着远大理想的青年,现在晚3:00,我就给各位真正的程序初学者说个故事吧。
这不是一个鬼故事,但很恐怖,首先你知道学习程序开发到底要多久吗?
我已经过了6个春秋,还是觉得差的太远,程序开发是什么,太缥缈了~~
更加恐怖的事情是我偏偏一个真真正正天才型的技术人,程序编写多么无聊,多么枯燥,我都坚持了6个春秋,这不是天生作技术人是什么?
我相信大家都抱着21天,或者3个星期就学会程序开发,然后月薪3000好了。清醒点吧,同志们!我见过那些学了1年的同学,技术也还可以,能够做出一些实用的程序出来,毫不讳言,比我强。但请别怀疑我的智慧,也不要怀疑我的努力,我不认为我学习能力和执著会输给任何一个正常人。
这是天意,因为时代不同了,你们比我更加幸运,可以接触更多高手和研读更多更好的资料。那是不是现在就可以1年半载就成为一个合格的程序员呢?我相信绝少有这种人,这种人不需要天才,而需要环境。现在的环境不允许1年半载就诞生一个程序员,就如我那时候不允许我那么快成长,就算努力又怎样。
要想做一个程序员,首先得准备好3年以上的时光,并且这三年也不是轻轻松松像读大学那样就过去的,要准备多思多做多看。3年我对各位可是期望很高的~我绝不是想危言耸听,好消灭潜在的敌人,我是好人,况且像我这种学了那么久还一事无成的人,这样做对环境又有何改善。
很多写给初学者的文章,勉励是够了,但事实没有强调;我不明白作者是不是觉得自己那么辛苦才有点成绩,就希望通过哄骗来隐瞒事实,不让自己的痛苦吓跑了后来者。
这很仁慈,但没意义。
人一生注定要做一件事,同时这件事注定又耗费他一生的精力和时间。
别以为跑得了,这是避无可避的,如果讨厌做程序员,那么快快走人,如果还怕吃苦,劝你早点觉悟。
故事说完了,希望还没吓得屁滚尿流的人,能听一下技术上的建议。
我不想落俗套,也不想各位将我说得认为是什么成才公式,必经之路。方法有千万种,事实也有千万种看法,我只希望使大家能思考。
想做程序员一定要明白程序员是做什么的,不只是要明白你心里想的那些,更加要明白程序员在社会的地位,在公司的地位。没有你理想地位的职业是不能作为理想的,他最多是权宜之计,最多是个爱好。
然后需要真正了解程序员具体的工作,而不是看表面,看他作出东西出来很帅。尤其要明白,程序员不等同于电脑或计算机,你喜欢电脑,未必要做程序员。
表面上程序员是设计许多古灵精怪的软件,而事实上程序员具体的工作就是打字,而且是打英文,而且是数学公式。
希望你还在~
你第一件事,就是会打字,不用很快,但在qq吵架别丢脸就行了。然后学习使用开发程序的那套工具,最重要是知道做程序的过程,1,打字,2,编译,3,解决文字错误,4,重复编译和除错过程,5,编译成功,6,发布程序给朋友测试
然后专心学习程序语言。
首先挑选一个合适的语言,这个语言不用很帅,因为很可能等你学会他已经不再帅了。最重要是经典,何谓经典,首先是资格老,然后是简单,最后是用途广泛。首推c语言,他现在不够帅,但它在开发界也许会比你留得久。
语言的学习,是一个适应和运用的过程。语言的问题不是“难“,不是技巧,而是文化修养。文化真是个很难解释的词,但你很快就会体会到程序员独特的文化,那就是简单就是美。简单体现在协调统一。不管从代码的风格还是设计思想,都要贯彻一个标准。
如何快速掌握一套语言规则?规则是一套公式,什么意思,就是一套填空题,a+b=c,现在让你填a,b,c具体是什么数,相信并不是什么难题吧。
当你熟悉每一个语言符号的用法,就是你表现的时候了。这时候是最不爽的,假设你会说3千个汉字,你会不分时间,不分地点,不按规则,一个接一个全说出来吗?是的,你会了,但是你找不到使用的理由。
你仍然需要学习非语法层次的东西,那就是如何运用。我找不到不推荐"数据结构和算法“的理由。数据结构是什么东西?其实他就是接近最终成品的最后一个阶段。程序设计是什么,从什么开始,到哪里结束:从我们运用语法,写出数据结构,并写出相应算法而已,决不为难你。
很多人不重视数据结构,是因为没能用宏观来看待自己的代码,只要我们将自己所处理的任何一个变量都视为数据结构,而处理的过程视为算法,那么我们就会发现,从算法和结构的角度去看,我们现在的布局是多么的不精美,多么的死板,根本不能算是“变式”,而是“定式",如果你还有程序员的尊严,一定不能容忍自己沦为打字工人.
当你善用数据结构,善用函数处理数据,而不是专门调用别人的函数去打印一行“我是程序员”,或画一些3角形,那么你就真正拥有了一样技能。数据就如程序的血液,血液不流通,那么程序就是死的。
善用是一种怎样的境界阿,但是我不推荐各位追求这种境界,而忽视了其外一些内容。团队开发。设计模式。重构。我不清楚到底为何程序员需要学习那么多方面的知识,但我知道以后一定会有更多的知识需要我们去探讨。
说到底,什么才是真正对初学这有帮助的呢?我认为最好的助学剂,还是一份经典书目(请相信我,不要支持国产,除非我也写):
c++深思录
c++编程的艺术,清华版的
The Design and Evolution of C++ //C++语言的设计和演化
C++ Primer //《C++ Primer (3RD)中文版》
Essential C++ //Essential C++ 中文版
The Practice of Programming //程序设计实践
Thinking in C++ //C++编程思想
Effective C++ //Effective C++中文版
More Effective C++ //More Effective C++中文版
Exceptional C++ //Exceptional C++中文版
More Exceptional C++ //《More Exceptional C++ 中文版》
STL源码剖析 //
Inside the C++ Object Model //深度探索C++对象模型
The C++ Programming Language //C++ 程序设计语言
The C Programming Language //《C程序设计语言(第2版·新版)》
Effective STL //Effective STL中文版
Modern C++ Design //《Modern C++ Design》简体中文版
发现中国的译者特懒,书名的单词都不翻译
关于书评我没有什么资格多说,请看我收集的两篇吧:
http://www.capof.com/bbs/Announce/Announce.asp?BoardID=110&ID=228
http://www.capof.com/bbs/Announce/Announce.asp?BoardID=110&ID=134
记住,做程序员是一种考验。
[em1] |
|