以前就有大学里面学什么的讨论,还有30/35岁程序员的讨论。我觉得可以放在一起来说。一下是我的想法仅供参考。
在大学里应该做什么?1、学习方法的掌握。2、学习基础知识。
一、学习方法
中国是填鸭式的教学,往往忽略的学习方法的培养,导致了被动学习,应付差事,甚至是厌学的情况。我觉得每个人都有适合自己的一套“学习方法”,越早的发现他、掌握他,对自己越有利。找到了之后可以更快、更好、更扎实的学习各种新知识!适合自己的学习方法,每个人都是不一样的,不能生搬硬套。应该尽快的找到,如果您到了大学还没有找到的话,那么就要抓住机会了。因为这是倒数第二次机会了。为什么不是最后一次?因为后面还有“社会大学”,不过在社会大学里面可是要残酷很多。
这里的学习方式指的是什么呢?就是快速学习、掌握新知识的能力。我在上大学的时候,老教授对我说过,你们的这些教材(99年的时候,计算机、多媒体方面的)对于我们来说也是新的,我们也是第一次看到,但是我们却可以很快的理解、掌握,给你们讲出来。为什么?年纪远超30了,那就是因为他有适合自己的学习方法,可以快速的掌握新知识。我们没有找到适合自己的学习方法的时候,即使我们年轻,脑子好,也是比不上的。不过,如果我们找到了适合自己的学习方法呢?
“学习方法”分为三个步骤:找到、实践、完善。
1、找到适合自己的学习方法。
如果您已经找到了,那么略过。如果您还没有找到,那么就要抓紧时间了。如今的社会,不会自主学习的人,真的是寸步难行的。至于如何找,我也说不好,全靠自己了。
2、在实践中验证自己的方法。
在大学里有很多的学科,有以前知识的延伸(比如数学、物理),有全新的知识(比如汇编、数据结构等)。这些都是最好的试金石。学好每一门学科,验证自己的方法是否正确,是否适合自己,还有哪些缺点。不仅要学会自己感兴趣的学科,还要学会自己不感兴趣的学科。在上一篇里我说我除了写代码能挣点钱,靠其他的方式就挣不到钱了,有人对我这句话感到遗憾。我为什么这么说呢?就是因为我没有掌握“学习我不感兴趣的学科的学习方法”。
试想一下,如果你在大学里面,任何一个学科对你来说都不成问题,手到擒来。那么你以后到了工作岗位还有什么可担心的呢?大学里这么多的学科都轻松搞定的话,那么以后的事情就没有能够难得住你的了。
3、不断完善。
自己的学习方法是否适合、是否好用,只有自己才知道。发现问题,及时解决、完善。这个“大杀器”掌握好了,以后就是……嘿嘿。
二、学习基础知识
我觉得大学里的课程都是基础知识,就像在小学里学的“1+2=3”一样,平时在工作中可能体会不到,但是如果你不会的话……。大学里的课程都是有用的,虽然你觉得过时了,工作中用不到。这个就像开车一样,不知道汽车原理也能开始,但是知道了汽车原理之后可以更好的开车。遇到故障也不会一头雾水。
就说计算机方面(其他的我也不会,呵呵),数学、汇编、计算机组成原理、数据结构、数据库原理、C++等都是很重要很基础的。不会汇编,IL怎么看?不知道计算机组成原理,怎么理解多用户、多线程?不知道数据结构,怎么优化数据库、设置合理的索引?不知道数据库原理,怎么设计出来高效合理的数据库(表结构)?
当然了,你不知道这些似乎也可以写代码,但是你怎么和知道这些原理的程序员比?你只能感叹:30岁了就写不了代码了。
关于新技术。
如果你要追新技术的话,你永远都追不上。就好像你想让你的手机永远保持“时尚”,那么你至少要一年换一个手机。如果手机厂商不研究新机型、新功能,那么他们怎么生存呢?我的诺基亚6670已经用了3年多了,看样子再用3年也没有问题。一样的打电话,没有什么问题。为什么要追求新功能呢?有必要吗?有必要的话,那就换一个;如果没有必要的话,6670一样的打电话呀。
出了新技术,并不意味着老技术就没有用武之地了。SQL Server2000不还是有很多地方在用吗?即使换了SQL Server2005/8,不还是用的以前的思想吗?
.net4出来了又如何?.net1.1照样可以实现项目。
换一个角度,如果您找到了适合自己的学习方法,那么出现了新技术有什么可怕的?用你的学习方法去搞定他!
以前有人对我说过本科生的“强大”。本科生主要学习理论知识,可能刚到工作岗位的时候什么都不会,什么都需要老员工带,但是用不了几天就可以轻松掌握。在用一两个月就可以轻松超过。为什么呢?因为他们有自己的学习方法,并且知道工作原理。有适合自己的学习方法可以快速掌握如何应用/操作;因为知道原理,可以让他们运行的更合理、更高效。
当然这是以前了(2000年以前),并不适合现在的本科生了。为什么?因为现在的都很浮躁,基础知识不牢固,混子日,混文凭。甚至没有找到适合自己的学习方法。
等等,好像有点偏激了。好的还是有的,只是比较少了。
关于爱情。
我觉得谈恋爱、追女朋友属于人际交往的一部分。在大学里也是应该学习的。大学里的环境是很和谐的,基本没有什么利益冲突。唯一练手的机会就是和女孩子打交道了吧,呵呵。很后悔,大学的时候没有抓住机会。
有人说谈恋爱会影响学习,那是扯淡。那么是不是可以说毕业以后谈恋爱也会影响工作?顾得上家就顾不上上班?
恋爱和学习固然是矛盾的,互相占用时间的。但是有了矛盾就躲避吗?以后怎么办?恋爱和工作也是矛盾的,结婚和事业也是矛盾的。
逃是逃不掉的。越早面对,就有更多的时间处理好。
如果在大学能够做到爱情、学业双丰收,那么你们就有实力憧憬以后美好的生活了。
关于创业
我的观点,先积累经验、积累资金、积累人脉。这些都准备充足了之后再去创业。二十二、三岁,正是年轻的时候,不要着急。不要认为自己很厉害,给别人打工就是被剥削,剩余价值就被无偿占有了,根本就不是那么回事。这个嘛,以后你自己创业就知道了。
ps:
可能您会说,我说的这些都太难了、太理想了,做不到。在大学里是很宽松的,有铁哥们帮你。以后在社会里,还能很容易的找到真心朋友吗?大学四年的生活浪费掉的话,那真的是很可惜。失去了就再也找不回来了。
再补充一个写代码的知识树
1、入门语言 —— C 或者basic。
C语言更严谨一些,但是不太“友好”。
BASIC(Beginners' All-purpose Symbolic Instruction Code,又译培基),意思就是“初学者的全方位符式指令代码”,是一种设计给初学者使用的程序设计语言。
basic本身就是为了初学者量身定做的,所以入门是非常简单的,IDE做的也不错。C#的IDE是一直跟着VB的IDE的路子走的。
basic或者是VB6.0,更容易入门。但是由于其并不是非常的严谨,所以过分依赖会造成一些负面影响。
这一步是掌握什么是程序,代码运行了会怎么样?
顺序、循环、分支。写代码最最最基本的。我就不相信了,不知道这些的人能够学好面向对象。
2、汇编
如果我当初要是直接学习会变的话,可能就会放弃编程行业了,实在是太枯燥了。不过好在我是先学的basic,有了一点基础,知道一些“代码的思想”。用着以前的体会才能了解一点汇编的。
对于汇编,“知道”的程度就可以了。
这一步是对于cpu、寄存器等有所了解
3、C++/Pascal、计算机组成原理、数字电路、操作系统原理等。
这些是基础,以后的学科的基础。了解掌握。
4、数据结构。
各种算法、链表、堆栈、树、图。即枯燥又很有趣。如果您觉得这些很枯燥,那么可以考虑换行了。呵呵。
5、数据库原理。
数据结构的应用。
6、面向对象
我总觉得要先学会了面向过程,才能够学面向对象。当然了面向过程不能陷得太深,如果太深了,影响对面向对象的理解。
7、设计模式
如果您不会面向对象,那么建议您不要学习设计模式,纯粹是浪费时间。
掌握了面向对象之后才可以学习设计模式。因为设计模式是面向对象的灵活应用。
面向对象包括,封装、继承、多态、聚合、合成(组合)、依赖、接口、抽象基类。这些都不知道的话,如何理解设计模式?
如果这些都理解透了,并且会灵活应用,那么设计模式也就可以不用去学了。因为您已经会了,只要知道一下各种使用方式的“通用的叫法”是什么就可以了。
8、行业
b/s要掌握 html、css、javascript、http、xmlhttp、xml等,但是这些都不算什么了,小各科而已(前提是会了前面说的那些)。
c/s不熟悉,先不说了。
9、业务领域
比如网站、电子商务、OA、企业定制,企业的各种行业的特点。(思路有点乱,先不说了 )
10、新技术
这些都掌握了之后,其他的什么新技术,乱起八糟的东西了,也就没什么了不起的了。