程序员高薪之路的五大误区

       转载:中国IT实验室linux

       我始终认为,对一个初学者来讲,IT界的技术风潮是不可追赶。我时常看见本身的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到很是痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面能够不用指针等等则让我以为可笑。C#就象当年的ASP同样,"忽如一晚上春风来,千树万树梨花开",结果许多学校的信息学院成了“Web 学院”。很多大学生都去作Web 了。固然我没有任何歧视某一行业的意识。我只是以为若是他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是能够走得更远的。程序员

  高薪之路五大误区初学者对C#风潮的追赶其实也只是学习过程当中常常遇到的几个误区之一。我将用一些实际的例子来讲明这些现象,你能够循序渐进的看看本身是否是属于其中的一种或者几种:算法

  1、认为计算机技术等于编程技术有些人即便没有这个想法,在潜意识中也有这样的冲动。让我奇怪的是,许多信息学院的学生也有这样的念头。认为计算机专业就是编程专业,与编程无关的,或者不太相关的课程他通通都无论,极端的学生只要书上没带"编程"两个字他就不看。编程

  其实编程只是计算机技术应用过程当中一种复杂性最低的劳动,这就是为何IT业最底层的人是程序员(CODER)。计算机技术包括了多媒体,计算机网络,人工智能,模式识别,管理信息系统等等这些方面。编程工做只是在这些具体技术在理论研究或者工程实践的过程当中表达算法的过程。编程的人不必定对计算机技术的了解就必定很高。而一个有趣的现象是,很多大师级的计算机技术研究者是不懂编程的。网上的炒做和现实中良好的工做待遇把编程这种劳动神秘化了。其实每个程序员内心都明白,本身这些东西,学的时候并不比其它专业难,因此天然也不会高档到哪里去。小程序

  2、咬文嚼字的孔已己做风我见过一本女生的《计算机网络原理》教材,这个女生像小学生同样在书上划满了横杠杠,笔记作得满满的,打印出来必定比教材还厚。我不明白的是,像计算机网络原理这样的课程有必要作笔记?咱们的应试教育的确害了很多学生,在上《原理》这一类课程的时候许多学生像学《马列原理》同样逐字背诵记忆。这乃是我见过的最愚蠢的行为。所谓《原理》,便是须要掌握它为何这样作,学习why,而不是how(怎样作)。极端认真的学生背下以太网的网线最大长度,数据帧的长度,每一个字段的意义,IP报头的格式等等,可是忘了路由的原则,忘了TCP/IP协议设计的宗旨。总之许多人花了大量的时间把书背得倒背如流却等于什么也没学。网络

  在学习编程的时候这些学生也是这样,他们确切的记得C++语法的各个细节。看完了C++教程后看《Thinking in C++》(确实是好书),《Inside C++》,《C++ reference》,this C++, that C++……,而后是网上各类各样的关于C++语法的奇闻逸事,而后发现本身又忘了C++的一些语法,最后回头继续恶补…。有个师弟就跟我说:"C++ 太难了,学了这里忘了那里,学了继承忘了模板。"个人回答道:"你不去学就容易了".我并无教坏他,只是告诉他,死抠C++的语法就和孔已己炫耀茴香豆的茴字有几种写法同样毫无心义。你根本不须要对的C++语法太关心,动手编程就是了,有不记得的地方一查MSDN就立马搞定。我有个结论就是,实际的开发过程当中对程序语法的了解是最微不足道的知识。这是为何我在为同窗用Basic(我之前从没有学过它)写一个小程序的时候,只花了半个小时看了看语法,而后再用半个小时完成了程序,而一个小时后我又彻底忘记了Basic 的全部关键字。数据结构

  3、不顾基础,盲目追赶时髦技术终于点到题目上来了。大多数的人都但愿本身的东西可以立刻跑起来,变成钱。这种想法对一个已经进入职业领域的程序员或者项目经理来讲是合理的,并且IT技术进步是如此的快,不跟进就是失业。可是对于初学者来讲(尤为是时间充裕的大中专在校生),这种想法是另人费解的。一个并未进入到行业竞争中来的初学者最大的资本即是他有足够的时间沉下心来学习基础性的东西,学习why 而不是how.时髦的技术每每容易掌握,并且愈来愈容易掌握,这是商业利益的驱使,为了最大化的下降软件开发的成本。但在IT领域内的现实就是这样,越容易掌握的东西,学习的人越多,并且淘汰得越快。每一次新的技术出来,都有许多初学者跟进,这些初学者因为缺少必要的基础而使得本身在跟进的过程当中花费大量的时间,而等他学会了,这种技术也快淘汰了。基础的课程,比方数据结构,操做系统原理等等虽然不能让你立马就实现一个linux(这是许多人嘲笑理论课程无用的缘由),但它们可以显著的减小你在学习新技术时学习曲线的坡度。并且对于许多关键的技术(比方Win32 SDK 程序的设计,DDK的编程)来讲甚至是不可或缺的。数据结构和算法

  举个一个不很恰当的比方:假设学习VB编程须要4个月,学习基础课程和VC的程序设计须要1年。那么若是你先学VB,再来学习后者,时间不会减小,仍是1年,而反过来,若是先学习后者,再来学VB,也许你只须要1个星期就能学得很是熟练。ide

4、几个重要的基础课程若是你是学生,或者若是你有充足的时间。我建议你仔细的掌握下面的知识。个人建议是针对那些但愿在IT技术上有所成就的初学者。同时我还列出了一些书目,这些书应该都还能够在书店买到。说实在的,我在读其余人的文章时最大的心愿就是但愿做者列出一个书单。学习

  大学英语-不要以为可笑。我极力推荐这门课程是由于没有专业文档的阅读能力是不可想象的。中文的翻译每每在猴年马月才会出来,而如今的许多出版社干脆就直接把E文印刷上去。学习的方法是强迫本身看原版的教材,开始会看不懂,用多了天然熟练。吃得苦下得狠心绝对是任何行业都须要的品质。

  计算机体系结构和汇编语言-关于体系结构的书遍地都是,并且也大同小异,却是汇编有一本很是好的书《80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)。你须要着重学习386后保护模式的程序设计。不然你在学习现代操做系统底层的一些东西的时候会以为是在看天书。

  计算机操做系统原理-咱们的开发老是在特定的操做系统上进行,若是不是,只有一种可能:你在本身实现一个操做系统。不管如何,操做系统原理是必读的。这就象咱们为一个芯片制做外围设备时,芯片基本的工做时序是必需了解的。这一类书也不少,我没有发现哪一本书很是出众。只是以为在看完了这些书后若是有空就应该看看《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。关于学习它的必要性,ZDNET上的另外一篇文章已经有过论述。

  数据结构和算法-这门课程可以决定一我的程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时)。不少人喜欢买C++版的,但我以为没有必要。C++的语法让算法实现过程变得复杂多了,并且许多老师喜欢用模块这一东西让算法变得更复杂。却是在学完了C版的书之后再来浏览一下C++的版的书是最好的。

  软件工程-这门课程是越到后来就愈加现它的重要,虽然刚开始看时就象看马哲同样不知所云。个人建议是看《实用软件工程》(黄色,清华)。不要花太多的时间去记条条框框,看不懂就跳过去。在每次本身完成了一个软件设计任务(无论是练习仍是工做)之后再来回顾回顾,每次都会有收获。

  Windows 程序设计-《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC之前仔细的学完它。并且前面的那本《Inside Windows 2000》也最好放到这本书的后面读。在这本书中,没有C++,没有GUI,没有控件。有的就是如何用原始的C语言来完成Windows 程序设计。在学完了它之后,你才会发现VC实际上是很容易学的。千万不要在没有看完这本书之前提早学习VC,你最好碰都不要碰。我知道的许多名校甚至都已经用它做为教材进行授课。可见其重要。

  上面的几门课程我认为是必学的重要课程(若是你想作Windows 程序员)。

  对于其它的课程有这样简单的选择方法:若是你是计算机系的,请学好你全部的专业基础课。若是不是,请参照计算机系的课程表。若是你发现本身看一本书时没法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。若是一本书的书名中带有"原理"两个字,你必定不要去记忆它其中的细节,你应该以一天至少50页的速度掌握其要领。尽量多的在计算机上实践一种理论或者算法。你还能够在CSDN上阅读到许多书评。这些书评可以帮助你决定读什么样的书。

  5、日三省乎己天天读的书太多,容易让人迷失方向。必定要在天天晚上想一想本身学了些什么,还有些什么相关的东西须要掌握,本身对什么最感兴趣,在一本书上花的时间太长仍是不够等等。同时也应该多想一想将来最有可能出现的应用,这样可以让你不是追赶技术潮流而是引领技术潮流。同时,努力使用如今已经掌握的技术和理论去制做具备必定新意的东西。坚持这样作可以让你真正成为一个软件"研发者"而不只仅是一个CODER.

相关文章
相关标签/搜索