本科生如何学习计算机科学与技术

2019-04-13 11:38发布

作为已经毕业工作的程序猿,回顾自己本科四年的学习,感觉有很多不足之处,很想在回到校园重新学习。写博文总结一下,希望能给搜索这个题目的学生带来帮助。
我本人是计算机科学与技术专业学生,大学所学内容涵盖了计算机科学的所有基础课程。其中包括C、C++,算法导论,数据结构,数电模电,计算机组成原理,微机原理,汇编语言,计算机网络,编译原理,计算机体系结构,操作系统。都是很基础的课程。说实话,能将以上课程都融合在一起学好理解的人(不是考试考高分),真的是百不足一。能做到的肯定是技术大牛。你和微软的程序猿相比,差了什么知道么,基础!!。学好这些你会很容易的理解很多开发技术,比如进程间通信,IPC,你可以用虚拟存储器的知识理解。汇编学好,能直接用汇编写程序,你会发现编程语言其实很简单。理解编译器你会觉得更简单。学好这些,比如嵌入式,你拿个板子看着CPU手册就可以写嵌入式程序了。所有软件的技术用的都是这些基础知识。学好计算机整个基础体系,并且算法掌握良好,编程能力强的人,一般都是一个公司的核心骨干,工资都很高。
多写代码,学好这些基础,github上有好多项目,可以下载代码学习,参考。网上有好多资料学习。不要羡慕那些搞一些看起来炫酷的东西的人,比如写个网页app等,跟你写个编译器相比,弱爆了。
推荐学习语言:汇编,C++,C语言。把汇编学到像用C语言一样简单。把C语言,C++学到知道每个语法的的汇编级实现。清楚一个程序在内存中的内存如何分布,随便给你个float数,能手算出计算机中存储的二进制数。
推荐学籍:深入理解计算机系统,C++反汇编与逆向分析技术揭秘,大话数据结构,大话设计模式,计算机网络第五版,Linux内核完全注释(内核0.11)修正版V3.0,x86汇编语言-从实模式到保护模式。学到能理解程序从语言编写到生成为可执行二进制文件,从磁盘加载到内存,CPU如何执行指令。访问外设,最好知道操作系统如何管理进程。
网站:github,各大博客网站,看博客,有好多好文章。