大家好,我是小北。
九月中旬了,很多大学都已经开学了,今年高考填志愿那一个月,知乎上问专业最多的就是计算机了,可见火爆程度。
但回想起我大学的时候,整个大一几乎都是都是在懵懂的状态下度过的,究其原因就是没适应大学的学习节奏,不知道怎么学CS,更不知道自己未来的出路有哪些选择。
我本科就读于国内某软件学院,是35所示范性软院之一,我们学校每年都有一个传统节目「软件之英」,就是每年6月毕业季都会评选一些在读研、工作、出国等几个方向做得还不错的同学,来给学弟学妹们分享他们的大学四年的一些经验。
我从大一到大三每次都会去听,每次都受益匪浅,所以在开学之际,想写点东西给计算机、软件学院的学弟学妹们,正好在网上看到一篇好文分享给大家:
我觉得本科就是要学习基础知识,学软件首先需做到两点:
第一、熟练掌握(精通)一门编程语言;
第二、熟练掌握算法。
做到这两点,你本科毕业就能找到不错的工作了。对于找工作,j2ee跟.net都是锦上添花的东西,利用大三的选修课,或者大三的暑假学学,大专生都只学三个月的技术,难道要学四年吗?切不可本末倒置,得了芝麻,丢了西瓜。
大学毕业的时候,有的拿着好几个大公司offer,而有的连个工作也找不到。
造成这些差距的原因是什么?
我觉得主要在课后。大家都一起上课,你能学到的别人也能学到,而且,纸上得来终觉浅,绝知此事要躬行。课后花的功夫就形成了的差距。大学里,老师只负责教好自己的课,你课后干什么没人约束,所以,一定要安排好自己课后时间。
那么,这篇文章会告诉怎么安排课后的时间。
另外,编程高手都是喜欢看书的。一定要看经典、有营养的书,别看垃圾书。选择书籍的时候,你可去豆瓣网看看书评,买好书才能节约你的时间,看了垃圾书浪费时间,如果不知道如何去看那些大黑书,可以看下这篇文章看书的小建议
建议多看国外计算机名校的课程和教材,国内的好书不多;编程高手一定是喜欢动手的,课后多参加编程活动。李开复曾建议计算机学生大学本科四年,应该写10w+行代码。
不少学校的计算机软件学院教学大纲的陈旧,喜欢教一些大而空的东西。软件学院教一些诸如软件工程的东西,对编程没有太多实际的帮助(至少以本科生的水平来看,吸收不了那么多)。计算机领域的有点难度、有技术含量的东西可能并不会教给你。
第二、喜欢重点教一些工具的使用。比如asp.net。这些都是招式,不是内功。我觉得,本科阶段学习一定是以计算机基础为核心的。
第三、对学生的定位,学院把教学重点放在web编程上,培养了大量的web程序员。这些不是不能教,我的意思是,不能当做重点来教,我曾经也是学过j2ee的。
如果你想从事更的软件编程工作,对自己的要求就不能太低哦。所以,我写这篇文章主要目的是劝你往高层次看齐,做高端的软件工程师,比如:算法设计,数据挖掘,图像处理,网络应用,游戏编程,计算机安全,分布式系统设计,嵌入式系统之类的,这些要求对计算机的理解更深。
好吧,开始我的建议吧。
你大一、大二很闲吗?
是的话就太危险了。我觉得这是你能不能成为编程高手的关键时期哦。如果你用两年的时间都没喜欢上编程,以后也很难喜欢上。
这是你训练编程能力的最佳时期,大三再来练习,时间就有点短。如果你有大把的时间,并且迫切希望知道怎么做的话,下面的内容就是回答你的问题的。
精通一门编程语言
大一是肯定学编程语言的,不管学的是哪门语言,都要做到精通(这里指非常熟练,而不是语言律师级的精通)。精通一门就好了,开始的时候别想学太多,这样对你掌握语言反而不好。我建议你学C++,因为我学这个,嘿嘿。学习C++,主要是学习面向对象的思想,还有要清楚C++是如何分配内存的,以及派生,多态,重载,虚函数,构造析构,STL等,特别