编程基础的重要性(程序员之路)

  学习编程有几年了,感受走了很多弯路,而很多的学弟学妹又在重蹈我当初的覆辙,难免有些痛心。最近在网上也看了许多前辈们的经验建议,再结合本身的学习经历在这里谈谈基础的重要性,但愿帮助你们少走些弯路。
  
  什么是基础呢?就是要把咱们大学所学的离散数学,算法与数据结构,操做系统,计算机体系结构,编译原理等课程学好,对计算机的体系,CPU自己,操做系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。
  
  初学者可能体会不到这些基础的重要性,学习jsp,donet,mfc,vb的朋友甚至会对这些嗤之以鼻,可是一开始没学好基础就去学jsp或donet会产生很坏的影响,并且陷入其中不能自拔。
  
  我上大二的时候还对编程没什么概念,就上了门C++也不知道能干什么,老师说MFC也不知道是什么东西,看别的同窗在学asp.net就跟着学了,而后就了解到.net,j2ee,php是什么了,就以为软件开发就是用这些了,而上的那些专业课又与咱们学的sqlserver啊,css啊,ajax啊,毫无关系,就感慨啊,还不如回家自学去就为一个文凭吗?
  
  还不如去培训,浪费这么多钱.因而每天基本上没去上什么课,每天就在作网站,几个学期就作了三个网站。感受作这些网站就是学到些技巧,没什么进步,这些技巧就比如别人的名字,告诉你你就知道了,网上也均可以搜到。那时候就以为把.net学好就好了,搞j2ee的比较难,搞api编程就别想了,操做系统更是可望不可即了。后来随着学习的深刻和看了网上许多前辈们的建议才对这些基础的重要性有所体会。
  
  虽然.net或java的开发并不直接用到汇编,操做系统这些,可是不掌握这些基础是有很大问题的,由于你只知其然不知其全部然,在mfc和.net里面控件一拖什么都作好了,很方便,可是出了问题可能就解决不了,有些在网上搜都搜不到。这就是基础没打好,不知道它的原理就不知道出错的缘由。在学.net的时候常会讨论那些控件该不应用别人说尽可能别用也不知道为何?不让用是由于你在高层开发,你不知道它的原理出错了你可能解决不了,但实际上是应该用的,否则人家开发它干吗,但要在了解它的原理后去用就会很方便。
  
  要编写出优秀的代码一样要扎实的基础,若是数据结构和算法学的很差,怎么对程序的性能进行优化,怎样从类库中选择合适的数据结构。若是不了解操做系统,怎样能了解这些开发工具的原理,它们都是基于操做系统的。不了解汇编,编译原理,怎么知道程序运行时要多长时间要多少内存,就不能编出高效的代码。
  
  若是没有学好基础一开始就去学.net,java这些越日后就会以为越吃力,它们涉及的技术太多了,并且不但在更新,对于三层啊,mvc,orm这些架构,你只会用也不明白为何用,就感受内心虚,感受没学好。而你把面向对象,软件工程,设计模式这些基础学好了再去看这些就能够一不变应万变。
  
  你们不要被新名词、新技术所迷惑.NET、XML等等技术当然诱人,但是若是本身的基础不扎实,就像是在云里雾里行走同样,只能看到眼前,不能看到更远的地方。这些新鲜的技术掩盖了许多底层的原理,要想真正的学习技术仍是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就很容易了。
  
  开始编程应该先学C/C++,系统api编程,由于它们更接近底层,学习他们更能搞清楚原理。学好了c/C++编程和基础,再去学习mfc,.net这些就会比较轻松,并且很踏实。假设学习VB编程须要4个月,学习基础课程和VC的程序设计须要1年。那么若是你先学VB,再来学习后者,时间不会减小,仍是1年,而反过来,若是先学习后者,再来学VB,也许你只须要1个星期就能学得很是熟练 。
  
  编程就比如练功,若是学习.net,mfc,vb等具体的语言和工具是外功(招式),对基础的学习就是内功,只注重招式而内功不扎实是不可能成为高手的。不少人会认为《射雕英雄传》中马玉道长什么都没有教郭靖,马道长教的表面看来是马步冲权实则都是内功心法,郭靖拜师洪七以后开始练习降龙十八掌凭借的就是这深厚的内功,吞食蝮蛇宝血又加上练习了周博通传授的九阴真经和外加功夫双手互博技以后,终于练就行走江湖的武功,因而可知马玉道长传授给了郭靖的是最基础的,也是最重要的观念,编程也比如盖高楼,根基没打好迟早有一天会挎掉的,并且盖得越高,损失也越惨重。这些底层知识和课本不是没有用也不是高深的不能学,而是咱们必须掌握的基础。php

  PS:这些底层知识和课本不是没有用也不是高深的不能学,而是咱们必须掌握的基础。这句话你们好好理解下,并非说先生存好才能考虑去研究一些底层,换句话说,若是你底层都不去尝试研究,那何谈发展呢?css

相关文章
相关标签/搜索