MyException - 我的异常网
当前位置:我的异常网» 编程 » 小弟我的编程语言学习之路

小弟我的编程语言学习之路

www.MyException.Cn  网友分享于:2013-03-18  浏览:0次
我的编程语言学习之路


       初接触

       《C语言程序设计》, 谭浩强著。 国内大多数非计算机专业的学生估计都听说过, 虽然书中讲述的知识、思想并不深,但也确实给了一个不错的编程入口.


        那时,正是大一下还是大二上,专业是电子信息工程(三峡大学), 这门课其实是专业辅助课程。那时,逃课风气正浓,我也不可避免地席卷其内,因此《C》这门课去了没超过三次,幸好考试前背了程序,也算将就着过去了。 一门课程 《信息系统设计》, 就是做一个简单的管理系统,与班上一位很强的童鞋一起搭档,本来想蒙混过去的,不想老师揪着不放,于是东抄抄西凑凑总算搞定了。有一门课程是《数据结构大型作业》,是在机房坐了一下午,拼凑一个多项式运算的程序,终于调通了。 说起来,这个开头还真是不够光彩。

       

       启蒙

     《算法设计与分析基础》。 一本很好的算法入门书籍,趣味性、浅易, 同时也具有一定的实用性; 

        《The CPL》 K&R 。 经典的 C语言编程必读书籍, 是一本非常好的启蒙书, 简洁扼要地讲述 C 语言的编程元素,编程方法和思想;


        本科毕业后,千辛万苦终于找了家公司,做电子维修、采购、PCB。我承认自己真不是学电子的料,两个电感、三极管就让我有点吃力了,一个触发器也整得够呛,但是组合电路学得很不错,时序电路摸不着门道, 因此,在啃那些电子元器件、电子电路的时候,时不时在算法里面找一点安慰。觉得,自己更适合学算法这种东西, 因为自己在大学的时候经常喜欢做数学推导。加上感觉自己在电子之路上无所精进,前途渺茫,心一横,辞了职,考研。 本来是准备考 《信号与系统》的,已经忘记了为什么转向了 《计算机科学与技术》 专业。考完后,感觉很糟, 于是捧着一本 《The CPL》 看了一寒假, 准备借此来找份编程的工作。

       登堂

       《Thinking in Java》  Bruce  Eckel .  经典的 Java 编程书籍, 读了大约 2/3 的内容,有些章节反复读过两三编。 适合有一定语言基础的人阅读, 读过后基本可打下一个较扎实Java 编程基础;

       《程序设计实践》  B&R   详细阐述了基本的编程技术及技能,比如数据结构与算法在具体问题求解中的使用、用户界面设计、测试、调试、性能、可移植性、微语言设计等;


        开年了, 本来准备去找工作的,怀着侥幸的心理看了下考研结果,发现还不错,于是转而去准备复试,考上了华中师大的计算机专业,跟了一位学校内很知名的导师。其实导师并没有教给多少知识,只是在专业和生活上更多的指引。在师兄的引导下,开始做一个工资系统,一做做了三年。这个时候可谓是我的“原始技术积累期”,尽管美女如云,心内蠢蠢欲动,还是坚持从早上八点到晚上十一点,坚持学习 Java , 广泛涉猎各种专业基础书籍, 编程技术书籍,思想类书籍,详见 《计算机专业推荐书籍》, 包括那些杂七杂八的关于软件工程、项目管理的书。在三年之后,终于积累了一定的知识技能,在找工作的时候仅用了一个半月就就拿到了三家知名公司(烽火、搜狐、阿里云)的 offer , 相比本科时用了4个月不屈不挠地挤招聘、网投简历侥幸获得一份工作,真是天壤之别。 唯一遗憾的是,没有解决情感问题。我这人还是太规矩太老实了,心里懦弱,不够大胆。


       入室   

       《Javascript 程序设计》, 《DOM高级程序设计》 : 了解 JavaScript 编程, 那时只知道用原生的 JavaScript, CSS, HTML 构建页面,哪里知道有如此丰富的前端开发框架!

       《Learning Perl》 了解了 Perl 的一些编程知识; 

       《Unix Shell 编程》, 《Shell 脚本专家编程》: 掌握基本的 Shell 编程技能,将是对开发工作有力的辅佐;

       《编程珠玑》 。 极富盛名的编程书籍, 从实用的角度阐述了程序设计过程中的重要技术手段, 非常好的编程实战经验传授;


       《Python 核心编程》,《DIVE INTO PYTHON》  学习 python 编程 ;

       《实用 Common Lisp 教程》 :  主要是体会了下代码与数据统一的威力, 并未深入学习和使用, 也不了解 LISP 为什么会设计成那样;


        在读研的过程中,由于要做 web 项目,因此,JavaScript ,CSS, Struts, Spring, Hibernate 这些技术性的东西是必不可少的,此外也怀着好奇略微了解了 Perl ,  在无限敬仰的心情下读了下 《编程珠玑》。  进入公司后,参与的第一个项目用 Python , 边学边使用 python 。 此外,读了大名鼎鼎的 《黑客与画家》, 深深敬佩于其中的观点和启发,于是好奇心之下买了本 《Common Lisp》 教程,想看看 LISP 是不是能够让编程更加强大容易。不过看了后没有深入使用,没有什么深入的感受。   


        纵深 

       《计算机程序的构造与解释》, 简称 SICP 。 正在看。 第一次在图书馆看到时,随便翻了几页,发现没什么新鲜内容,就放回去了; 如今看了,却爱不释手。 这本书用浅显易懂的例子循序渐进地阐述和萃取出程序设计的重要思想(原语、集合、组合、抽象),并逐步展示了如何通过这些基本思想来构建和实现复杂的程序和系统,结合在软件开发过程中学习到的经验和心得,可以获得对编程活动的一种本质性领悟。读了这本书, 才逐渐明白为什么 LISP 会设计成现在那个样子。它揭示了富有盛名的LISP语言背后的编程思想。 


        从学校开始做项目,使用各种框架,负责项目的功能开发和维护, 学习各种编程语言,磨练软件开发的基本功 , 感觉自己基本的开发是没有问题了,但总缺乏一种高层次的视角和锋利的思维能力,常常徘徊于感觉一般的代码中,没有本质性的领悟。偶然间得知 SICP 这本书不错, 怀着将信将疑的态度去读了下,发现确实很强大,以前的东西有一种融会贯通的感觉。我想,以后再学任何一种语言,就不会仅仅只是学习一些语法和用法,而是从它所能提供的语义抽象、语法抽象能力去审视它的表达能力的优势和局限。


         体会:

         1.   编程主要靠自学。 因为国内计算机教育与产业界实在是严重脱节, 因此, 你必须学会自己去寻找资源、寻找志同道合之友,一起去探讨编程; 

         2.   尽量涉猎多种编程语言, 但最终可能精通一两种语言,这些语言都是非常锋利的, 要么能够提供很实用的开发功能, 要么能够提供很强的抽象表达能力,最终最好能够使用自己喜爱的编程语言;

         3.   在广泛涉猎各种编程语言的同时,一定要注意參悟编程的本质性的思想,并学会应用它。基础的东西不是没用,而是还没有学会去应用它。这需要时间来打磨。 把内功心法修炼通了,各种武学招式、技术手段的熟悉和掌握会很容易融会贯通的。

         4.   读有难度的书籍,学最前沿的技术, 挑战最本质的难题, 这样,编程人生才会有趣。  当然, 编程生涯总是会从那些不够热眼的项目开始做起, 逐步接近自己所要做的事情;

         5.   编程的时候,要注意培养自己的项目意识和产品意识。 项目意识是指时间、进度、资源、沟通对接等; 产品意识是指所写的程序最终是要构成一个可用的服务实体,可用可信赖,能够产生很好的影响力。机遇永远属于做好充分准备的人。



文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有