题主本科计算机在读,前一年一直跟着学校的课程表学习。 之后在各种论坛的介绍下,看了 3blue1brown 的科普视频,浅浅地读了几本机械工业出版社的大黑书和其它经典书籍( csapp 、计算机导论、Head First 等等) 这些外部学习资源跟校内接触的课本之类的教辅,给了我不同的感觉:
( 1 )有些是课内课外都差不多,比如国内出版社出版的《离散数学》与大黑书系列的《离散数学及其应用》两本书介绍的知识点都差不多,只是国内出版的书籍过于简洁,而大黑书更为详细(也更厚更重)。
( 2 )有些是课内课外天差地别,比如线性代数。课内使用的同济线代描绘的线性代数充满了计算,对几何方面的描述也极为抽象。3blue1brown 的科普视频直接从几何角度解释了线性代数的几何意义:比如矩阵在空间变换的作用、行列式测量空间变化程度的作用...... 再回过头去看课本,我只觉得哪怕把同济线代上的练习题练到飞起来,也不会对实际的图形编程有任何帮助,连在简历上写“学过线性代数”都不合适的那种。
( 3 )有些知识启发性极大,但是科班课程中连个影都没见,比如 java 的设计模式: 科班学习中的 java 像是带了个类和对象的 c 语言,设计出来类和对象好像并没什么用。接触了设计模式之后,看见了类与接口配合,在一次次继承中保持核心而不断变化;使用多态来提高复用性,减少代码量。 但是课本中没有,只有对 java 的各种特征的介绍,至于这些特征有什么意义,全靠自己想办法弄明白吧。
( 4 )有些知识不管使用那些资源,都感觉云里雾里 比如《计算机组成》这种深入底层的课程,知识点繁多,又不与编程直接相关,更像是作为有一定水平的程序员应当学习的内容而不是科班学生的课程。
在开始学习前,有人说科班程序员基础更扎实,学习的知识点更全面,编码水平更高云云。 但当真正进入科班学习以后,只给我留下了像是在学某种“文科计算机”的样子,与实际应用重合性不大。计组只是计组,讲课的讲师一般不会将它与其它内容串联; java 就是 java ,讲不讲设计模式就看课时够不够,线代就是线代,也很少有人会将它与其它内容串联讲授。学完的知识考完就忘,更别提等到参加工作以后了。(个人看法)
然后我参考了 csdiy.wiki 的内容,开始自学了。 自学的内容比科班的课程内容多,深度更深,耗费的时间也更多。(也开始佩服那些能按学习计划自学的大佬) 学的东西短期内也不会看见什么成效(也可能根本上就是浪费时间)
题主身边并没有参加工作的程序员,也不认识在计算机领域摸爬滚打多年的大佬。 自己做的、想的可能就是错的。但题主的能力也不一定能让我认识到这些错误,故来求助各位,希望能得到朋友们的指点与帮助。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.