前言:
写这篇文章的起因是老家几个亲戚的小孩今年高考,而且都是IT类相关专业。我是从一位大学毕业生及程序员的角度提的这些建议。类似这样的文章很多,权作一些补充,希望对他们的大学生活有所帮助。
我的建议:
1、 首要任务,找到自己的理想,方向,兴趣,人生规划。
我认为这才是大学的首要任务。从高中到大学,一下子没有人管了,很容易失去前进的动力而迷失方向。这个时候,确立自己的理想,方向,兴趣,才能找到新的动力来源。
在高考和应试教育的压力下,很难有精力来思考这些问题,而且也没有足够的信息来思考。进入大学是思考这些问题的一个非常好的时机:有时间,有精力,而且有更加全面的信息。
前几天看到一篇文章,说大学中,男生是在游戏里度过的,女生是在电视剧里度过的,虽然有些偏激,但确实有很多这样的现象。这要引以为戒。
如何做?网上有很多相关的信息,上网查一些资料,但总的来说有以下几步:
1)发现和培养自己的兴趣;这要多参加一些活动;
2)发现自己的优势;可以读一下《现在,发现你的优势》。
3)思考你以后想成为什么样的人。
4)落到实处,你要知道你大学要如何度过,为大学生活设定一个目标,做一个计划。
受限于能力,一个人的方向并不是一成不变的,随着你的认识的增长,你可以自己再做调整。但是,我认为,在大学有没有方向,比方向是什么更加的重要。
2、 转变学习方法:从理论到实践。
在高中分数基本上就是最重要的,但是大学不是。这一点必须尽快转变过来,否则毕业的时候可能就是失业的时候。
当然,并不是说大学的课程不重要,而是要转变一下思路,特别是从理论到实践的转变。现在大学教育一个非常大的缺陷就是不注重动手,特别是计算机,是一个实践性很强的学科,一个学科学习的过程中一定要亲自动手去使用它才可以理解的更加的深刻。按照两种不同的思路(理论和实践)来学习c语言,结果可能是天差之别。
如果想毕业后从事编程方面的工作,那么李开复的一个建议非常好,就是大学要编写10万行代码。如果真能够做到这样,那么你毕业后,根本不用担心找不到工作。
3、 注册CSDN,博客园,google reader。
理由:
1)CSDN,博客园:在这里可以了解IT技术的发展趋势,交流技术和学习心得,而且也可以认识很多志同道合的人,使你在学习的道路上不孤单。
2)google reader:对于感兴趣的博客,可以使用google reader订阅。关注技术领域的博客能够学到很多东西。
4、学好计算机基础:数据结构与算法,c语言,编译原理等
这些基础非常重要,可以帮助你在技术领域走得更远,也可以帮助你更好的理解技术。很多公司招聘也要求应聘者在这方面有扎实的基础。这些课程可能会有些枯燥,参考第二个建议,多动手,多实践,这些课程也会非常的有趣。
5、关注李开复,俞敏洪等一些名人的文章和演讲
这些人比较关心中国的教育,给大学生提的意见也非常的不错。李开复写过给大学生的几封信,俞敏洪也有一些针对大学生的演讲,非常不错,值得看一下。同时还有joel对计算机学生的建议:给计算机系学生的建议
李开复新写的文章:http://blog.sina.com.cn/s/blog_475b3d560102dt81.html
6、大一开始学习编程语言:推荐Python
很多学习大一一般不会开编程语言的课程,这个时候可以自学一门编程语言,提前熟悉一下什么是编程语言。我推荐的是python。推荐的理由见这篇文章:如何成为一名黑客。里面提到如何学习编程,非常有必要学习一下。另外,这篇文章也许可以改变你对黑客的认识。国外有很多知名的大学生黑客,你也可以把黑客作为你的目标。
7、开始写技术博客
这个可能有点难,不过对于学习的帮助还是非常大的。一个是让你能更好的总结,但我认为更重要的一个就是对你自己的激励:当你看到你的文章被别人阅读,评论,你的博客访问量越来越大,排名越来越靠前,关注者越来越多,你就会获得越来越多的成就感,同时促使你去学习,以写出更好的文章。这其实类似于网络游戏,不过他不是在虚拟的世界中给你满足,而是在现实的世界中。
写博客还可以使你对技术有更深入的理解。把学习的东西说出来,你会理解的更加深刻,也会在和读者的交流中进一步深入。
刚开始写什么?可以写一下你的学习心得,你学了哪些东西,怎么学的,学习过程中的一些思考,都可以写,慢慢的你就有写作的课题了。我看过几个写得比较好的博客,都是大学生,其中最典型的一个:http://blog.csdn.net/v_july_v/article/details/6756427,博主开博一两年,主要关注算法,现在也刚刚毕业。
建议每周写一篇。
8、一个不错的学习资源:知名大学的公开课
下面是我暂时找到的,你可以在进一步搜集一下。这些课程也许可以给你一个不同的视角。
麻省理工:《算法导论》斯坦福大学:《人与计算机的互动》斯坦福大学:《机器人学》斯坦福大学:《抽象编程》哈佛大学:《2006年计算机科学》哈佛大学:《2005年计算机科学》哈佛大学:《计算机科学导论》斯坦福大学:《iPhone开发教程2010年冬》斯坦福大学:《编程方法学》
9、学会使用搜索:google 百度
现在的搜索引擎,基本上什么都可以找得到。如果你有疑问,或者想查询什么信息,完全可以借助于他。包括上面我提到的一些内容,我很多并没有说的很详细,这要靠你通过搜索去完善。对于技术也一样,很多疑问可以通过它来解决。google和百度用那个?我推荐google,特别是技术相关问题。
10、安装并学习linux操作系统
理由:linux是一个开源操作系统,能够让你更深入学习;linux上面有很多非常优秀的开发工具,可以提高你的开发效率;linux社区非常活跃,以及在这个社区下形成的一个优秀的设计理念,非常值得去学习;最后,现在开发中linux越来越重要,很多公司都是基于linux开发,熟悉linux操作系统会让你在找工作时更有竞争力。
你可以安装一个windows,然后在上面再安装一个linux虚拟机。建议课程实践动手均在linux下进行。
11、多写程序
如果你有志于从事软件开发,那么,你应该将10万行代码作为你的大学目标。
如何达到这个目标?课程实践是一块,但还不够。剩下的一部分,需要你自己去发现你身边需求,分析,并且用代码去实现。比如,你搭建一个个人博客,写一个linux下的实用工具。其实很多企业都是从校园走出去的,最著名的可能要数facebook了。如果实在找不到做什么,可以考虑实现一下linux的命令,比如ls,cd,more等。
12、注重提高综合能力
理工科学生可以多学习文科方面的知识,比如历史,哲学,经济,逻辑,管理等,对个人的发展还是非常有帮助的。要多读这方面的书,我大学比较感兴趣的是周国平和余秋雨的书,另外也可以读一下史记,非常不错。
13、思考,深入的思考,独立的思考
把它放在最后一个不是说他不重要,恰恰相反,他是我认为最重要的一个:你要锻炼强悍的思考能力。
这个建议意味着,对于上面的十二条建议,你要有你自己的思考:为什么非得要学习linux操作系统?为什么一定要写10万行?为什么是python?
你可以可以把我的建议全部推倒,但是,你要自己思考一个问题:你的大学要如何度过。
其他的建议:可以阅读一下一本书:《我是一只IT小小鸟》,这本书总体来说还挺好,大部分是介绍学生如何学习的。
找机会做一些和你的专业相关的实习。
可以参加竞赛,社团,但是要有目的,否则容易迷失:大学中这些还是非常多的。
面对教育,不要做愤青,要学会逆势而为。与其抱怨社会,不如改变自己。
要多锻炼身体,养成一个好的生活习惯。
可以勤工俭学,但不要过度,不能影响学习。助学贷款是一个不错的途径。另外,更好的也许是利用你学到的技术去赚钱,可以一举两得。
如果要选择做技术,那么一定要能够沉下心来。
如果你从农村考上大学,没有关系,没有背景,而又想通过自己的努力改变命运,软件开发可能是个不错的职业:关系和背景在这里起不来什么作用,一切靠真本事;而且它还能够给你提供一份不错的薪资,可能会累一些;如果你有更加宏伟的理想,他也可以给你提供一个更好的平台供你发展;
大学时人生中非常美好的一段经历。希望毕业的时候,你在回顾四年大学生活的时候,你可以说你不后悔,你过得很有价值。
博客园网友诺贝尔的回复:最赞同的是把思想转变,由分数追求到能力追求。因为我读大学的时候,很多小女生就是老是盯着课本看,动手能力却超级差,而且对于课本之外的书没有一点兴趣。她关注的范畴还是自己得了多少分,能不能及格,而不是关心自己能不能胜任将来的工作。
另外,我有一些不同的看法。
关注微博我认为是浪费时间,因为资讯很多,但是价值很小。写博客,如果是追求点击率,我觉得也是心态不正常。去论坛也是一样的道理。不要追求曝光度,不要追求那一些心理上的快感。
我觉得,作为学生尽量让自己远离花花绿绿的东西,远离复杂庞大的信息系统,追求简单而持久的,有价值的内容。我们出来社会后,去看新闻,看微博,逛论坛,发博客,不过是娱乐消遣,你以为真的能对自己有多少帮助?学生如果能够简简单单的,每天提高一点自己,4年积累下来,就远远超过我们这些社会人。
然后编程语言我希望他能够学习js,因为只需要一个浏览器就能学习,而且是图形化的,对入门来说是很有兴趣。html5 + css + js可以说是将来前端开发的一个强力组合。