对于非科班的同学来说,我觉得首先第一步是摆正心态,即我们的技术并不会比科班差,也可以走的很远,首先要有这样的信心,很多科班的同学并没有说在那几年就学到了绝世神功,从此一骑红尘而去。

但是除了这样的信心以外,我们也需要摆正我们的位置,即我们相比科班的同学来说,缺乏了几年的系统学习,若我们要走的更远,我们需要补上我们缺乏的计算机系统相关的课程。计算机科班的同学在四年中学习了很多的课程,但是以我的看法,最重要的其实就几门课程,智递科技想向你进行推荐,希望对你有所帮助。

第一门课程是数据结构与算法。这门课程会对你后面的技术成长与实际工作都起到莫大的作用,很多问题都是数据结构与算法的体现,包括需要实现高效的算法所依赖的基础也在此。这门课程我推荐阅读的教材是《算法》第四版,作者是Robert Sedgewick。我知道可能很多人会推荐《算法导论》,但是作为你首先补充的资料我觉得并不适合,可以先考虑更易读的《算法》,后面更感兴趣的时候再来阅读《算法导论》。

第二门课程是操作系统。这门课程的学习并非说是要你一定要做一个操作系统内核出来,那不现实。但是这门课程会让你深刻的理解内存、进程、线程等相关知识,这是作为高级程序员必须要懂得的知识。我推荐的书籍是《现代操作系统》,作者是Andrew S. Tanenbaum。

第三门课程是计算机体系结构。这门课程无疑会比较枯燥,但是这个是内功中的内功,你可以学习到Cache,指令周期等知识,这会让你看问题看的更本质,而且在一些非常困难的Bug与性能优化的场合,这门课程的知识一定能帮助很多。我推荐的书籍是《计算机体系结构 : 量化研究方法》第五版,作者是John L. Hennessy等。

其实还有其他一些需要学习的(如编译原理),但是我觉得这三门是最关键的,其余的可以待有场景时再来补。

相关文章