程序员的学习进程(前篇)
Posted forcheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员的学习进程(前篇)相关的知识,希望对你有一定的参考价值。
时间过得真快,转眼大学就过了将近一半。回首这一年半的时间,感觉自己的生活过得还是挺充实的。
在别人眼里自己是一个技术宅,在自己眼里自己只是一个追求自己爱好、对自己严格要求的人。不过,大家对我的评价还是挺中肯的,自己的确将自己的大部分时间的花费在了不断学习、不断编代码、不断提高自己的技术上了——人总是有追求的、有目标的、有理想的。
下面我就简单的总结一下大学一年半的学习历程、学习成果、学习心得以及对未来学习的展望。
(一)、学习历程
俗话说:"有缘千里来相会"。我与C语言的相遇既是一种偶然,也是一种缘分。还记得快要开学的时候,一位小伙伴来家里玩的时候,知道了我大学里面所学的专业是有关计算机的,于是就推荐我可以提前去学习C语言,了解一下计算机编程。——于是那段缘分开始了,一种意识也开始萌发了(超前意识)。
于是在大一上学期的时候,自己就自学完了C语言的入门视频在学习视屏的同时,自己也同时在网上找了很多的练习题来完成,另外自己也从图书馆借来几本有关编程和算法的书来自学。那个时候,除了上课,自己基本上就在图书馆看书和在寝室敲代码度过,感觉那段时间自己真的学了很多,能力提升很快,也过得很充实。之后,在寒假里自己在巩固自己C语言的同时也自学了其它许多有关电脑管理的知识,比如命令提示符以及与其对应的批处理脚本语言。——如今依旧觉得,自己学习其它语言很容易与自己的C语言基础很扎实有很大关系。
到了大一下学期的时候,自己提前选修了汇编、C++、算法设计这些专业课,在学习这些的同时自己也在继续学习其它的知识,比如说注册表、组策略、VBS脚本语言等等(还记得探索电脑的时候,还把自己电脑的硬盘弄坏了。。。这些忧伤的故事,也带给自己很多成长^_^)。
到了大二上学期,自己仍像上学期一样,提前选修了与本专业有关的数据结构、数据库原理与设计、网站建设等等。但就是在这一学期人生出现了一个关键的转折点,那就是有幸加入了一个软件编程工作室,在这里有一群志同道合的人一起学习,在这里有各个方向的师兄带领,在这里我找到了合适自己学习的地方,在这里我找到了学习的方向,在这里我见识了很多的以前我所不知道的,在这里不仅有一起学习的时光,也有丰富的生活(一起聚餐、一起烧烤、一起游戏、一起爬山。。。)。在工作室,自己在偶然的情况下,听了工作室的一位.NET方向师兄一个小时将C#基本讲完,于是乎就鬼使神差的选择了.NET这个方向学习。于是乎就过上了一种师兄领进门,修行靠个人的充实生活。在这一学期里面,自己主要学习了C#语言,网站开发(html、CSS、JS简单学习了)、ASP .NET MVC 开发、WPF桌面应用程序开发、XML可扩展标记语言等等。
(二)、学习成果
简单的总结一些自己这一年半的小成果吧。——虽然知道自己做的还远远不够,至少离目标。。。
大一上学期的时候,自己学习完C语言的入门后,自己在图书馆借了一本关于做一个简单的学生管理系统的书,于是乎就花了一个多星期用C语言做了一个学生管理系统的控制台程序,这算是自己做的第一个成形的小程序,功能完全完成的时候,代码大概达到了两千多行,当时写出来的时候,特别有成就感,并且自己还用它来统计了我们班的成绩(自己那时是学委),当真正将它用起来的时候,那种自豪,是一种价值的体现(真正让我认识到了,自己做的程序也能用来解决实际的问题,好开心。。。)。
大一上学期结束后的那个寒假里,自己开始对命令行和批处理脚本语言感兴趣,于是乎就在寒假里就用批处理脚本语言做了很多很实用的管理电脑的小工具。(这并未结束,只是一个开始)
大一下学期的时候,自己从网上找来了一些C语言的实战项目开发的资料,于是乎就开始了小游戏的开发,自己在参考了别人的代码的基础上,用自己的想法实现了第一个小游戏——俄罗斯方块。然后用从完成俄罗斯方块学到的思想,又做了两个小游戏。但是其中一个做到半途就终止了(简化版的坦克大战),至于为什么会终止呢?可能是由于太忙了,也有可能是由于那段时间迷恋上了脚本语言开发,反正隔了很长时间没有去碰它,当再次想去完成它的时候,突然就觉得没有再写下去的兴趣了。(做一件事情的时候,不要拖,不然总会有这样或那样的事情使自己淡忘还有的事情没做,最后以至于。。。)
大二上学期的时候,自己仍旧在不断地改进自己的脚本命令小程序,使得自己管理电脑更为方便、快捷。当然最主要的还是在进行.NET程序的开发,比如说,在上网站建设课的时候,自己用ASP.NET MVC开发模式开发了自己的第一个网站(虽然最后没有用起来,但至少锻炼了自己的能力),然后在工作室的里程碑的时候,根据自身需求,做了一个实用型的WPF桌面应用程序——备忘录。之后在寒假里,自己又根据自己的实际需求,又开发了一个桌面应用程序,同时还给老师做了一个小项目,一个资源共享平台的网站。当然,脚本语言的开发仍未停止,命令集成仍在不断改进开发。
(三)、学习心得
首先,简单的总结一下我的学习方法:
方法一:常规学习法,即从基础开始学习,通过不断的练习、进阶,不断提高自己的能力。
方法二:先追求实际应用,即需用即学,这是一种不断查资料、不断摸索的学习方式。虽然中间会有很多错误的认识(因为没有系统学习基础知识)与走弯路,但这种方式能够培养与激发对所学东西的兴趣并形成自己的一套运用与认识体系。最后,再回过头来系统的从基础学起,这个时候学起来就会感觉无比的轻松愉快并且查漏补缺。——这种学习方法能够很快定位你是否你对所学的东西的兴趣与掌控能力。(现在自己常用的学习方法)
其次、自己对编程语言的一些个人看法:
与编译语言相比,个人是比较偏爱脚本语言的。首先,脚本语言比编译语言操作更为简单,不用编译就可以直接执行,修改bug非常方便。而且在实现一些小功能上(比如对文件系统操作、或执行某一程序)脚本简洁方便,而用编译语言实现相应的功能就显得太过复杂。还有一点,就是脚本语言可能更能培养一个人对于编程的兴趣,因为它能很快地上手,并做出一些有趣、方便、快捷管理工具,能让人很快地获取一种成就感。当然,也不能说脚本语言比编译语言好,只能说它们各有优势,特别是再做一些比较大型、功能比较复杂的程序时,往往更多的是选择编译语言开发(因其效率更高更稳定等)。其实,自己大多时候还是用编译语言进行开发,只是再做一些小的管理工具的时候,更多的会用脚本语言。我爱脚本语言,就是爱它的简单、方便、小巧。——在这里给大家推荐三种脚本语言:批处理脚本语言(.bat)、VBS脚本语言(.vbs)、javascript脚本语言(.js)(这里的JS是由脚本宿主解释执行,而不是浏览器解释执行),希望它们能够为大家带来编程的乐趣。
(四)、未来学习的展望
首先,自己已经很明确自己开发程序的目标——为满足自我需求而开发,为满足别人需求而开发。所以自己仍会用自己所学到的(和将要学的)去为了满足各种需求而不断地开发。
其次,自己现在已经清楚了自己的毕业设计要设计什么。——以面向对象的思维去拓展和重构命令提示符(cmd)。所以自己也会向着这方面努力的。(涉及编译原理等很多知识,需要自身很大努力)
最后,自己对于接口、构架、规范这些比较感兴趣,于是乎自己对自己以后最低的要求至少是一位架构师的水平。以后可能会从一个偏向于实践开发转向于理论研究。
以上是关于程序员的学习进程(前篇)的主要内容,如果未能解决你的问题,请参考以下文章