作为一个传统的学生,经过传统的体制,走进大学,走进计算机的世界
大学这三年,我只是跟着课本走,一遍嫌弃着大学的老师,一遍为挂科而惶恐。。。
修完该修的学分,上完该上的课。我的三年就结束了。然而,我对计算机世界的理解,和大一没有什么区别。。
今天,面对找工作,我才意识到我该重头再来。
再刷知乎的过程中,我发现了一篇文章《 给新手程序员的一封信 》
觉得受益颇深。
(1)算法和数据结构
我在学习的过程中,老师教过一句话 程序= 算法 + 数据结构 。因此这两个词给我留下很深的印象,觉得我一定要学好算法和数据结构。大一便参加了学校的ACM ,凭借刷题进入了ACM俱乐部。便开始我的算法之旅。培训多半在周末,基本上没这么去,有几次空闲,就去参加培训,记得当时讲二叉树,背包问题。渐渐的我对算法便蒙上了一层阴影,觉得算法课好难,好难。。。。。接着大二下学期,我学习完数据结构这门课,老师讲的很不错,觉得一定要学好。在大二的暑假,我在家看 学习视频 和 《算法导论 》,结果还是没有坚持下来,导论里的推导挺难懂的
那么问题来了,数据结构和算法 是 不是 应该 一次性 把所有的东西学完 ????
“ 一开始,先不要管算法和数据结构。大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后找一些相关的论文去理解算法并动手编程实践。如果没有现成的函数库(其他程序员提供的可重用代码),你用自己喜欢的编程语言来实现它。“(《 给新手程序员的一封信》)
的确,我刚开始并没有什么编程功底,便开始学习二叉树和背包问题 (实际上,等到大三算法课的时候,老师花了两节的时间讲背包问题,还是有很多人没有听懂,当时我们已经有一定的编程基础 )。我开始的起点有点过高。数据结构在一般的小程序中并没有体现他的价值,等到程序复杂以后基本上都可以看见他们的影子,或者说他们是不可或缺的。我们在编程中一遍学一遍用数据结构,往往效果要好一点。等用熟练以后,在看他们的理论部分其实会好懂很多,所以我们学校大二才开始数据结构(可能我的学校并不是好学校,可能好学校,会开课开得更早)
关于算法,我这条路走的也是很悲哀,算法导论的证明虐我千百遍,我待算法如初恋,算法导论真的是一本很好的书,并且,他也真是一本入门书,前提是你不要太在意细节,关于数学推导证明,刚开始最好跳过,首先,先实现,凭借自己的理解,动手实现,这些算法在以后的编程中很有用。并且,如果你以后的发展方向并不是想研究算法,其实也没要去关心他的证明细节,我们要理解算法的O(N),懂得在什么时候选着不同的算法,来提高程序的效率,这就差不多了。
(2)选着入门语言
我但是学习的第一门语言是c ,因为这是学校开始第一门和计算机相关的课程——C语言程序设计 。。我们教C语言的老师是一个挺漂亮的女老师,所以特别喜欢上她的课,c在当时的印象中也没有很难学。学习C语言,对当时的变量的作用域,还有指针,还有文件的读写 并没有理解,学校考试也没怎么考比较难的知识点(我学校就是这么有爱 ,难的不考,只考简单,你会什么他就考什么),接着 大一下就学习c++ ,还是那个女老师教,但明显感觉比C语言难,什么虚函数,继承,多态 ‘····。大二上学期学Java ,老师 关于 Java 虚函数,多态,继承 ,没有多讲,本来也没有多少课时,当时,主要给我打开了一扇门,就是数据库,课Java界面,程序开始不再是黑框框,而是界面,我开始了拖控件,好无聊,这就是我学的三门语言,为啥是这三门,因为火。。自己大一自学了HTML+CSS 还有PHP 。当时做过一个小学生学数学的网站,用的是新浪的服务器 觉得自己缺乏美感,在做网页没前途 ,所以放弃
那么问题来了,我们开始学什么语言比较好
“今天C(或者C++)不是能够快速编写软件的语言。毫不偏袒的说,我建议你学习一种动态语言。选择一种你觉得语法(文档)让你使用起来更舒服的编程。让编程更容易。更快地完成自己的作品并且能够看到成果,才是激励你编程的源动力 ” (《 给新手程序员的一封信》)
普遍认为Python 不错,他帮我们简化很多东西,让语言多我们更加友好,学起来更方便。实际上我没有学过Python(目前没学),以后可能会学,我只谈谈我对C语言的感受,当时,我做的第一个是学生成绩管理系统,大概做了三四遍 。这就是我C语言的最好水平,我只对函数感受挺深的 ,但貌似C语言读文件,我现在还不是挺熟练,每次还得从网上找代码,记不住,说明写的少
(3)编辑器
我所用过有IDE C语言 vc6.0 vs , Java eclipse myeclipse ,
编辑器 editplus nodepad++
“ 编辑器对程序员而言,就是像是弓对弓箭手一样重要。这里有一些推荐的编辑器 ” (《给新手程序员的一封信》)
IDE确实给我们很大的方便,但还是得熟练一个编辑器 他小,对于电脑要求不高,打开文档,编辑程序超方便,比如我的电脑没装内存条时,打开vs 等半天 ,还是配置低,当我们只需要修改一部分时没必要用IDE ,并且,他 同时可以 编译 c java php 超方便
把他当故事看,没有什么实质性的内容,以上均是看完《给新手程序员的一封信》的感受 ,