作为一名学计算机专业的同学,你觉得最应该学好哪些课程呢?
就大雄来说,感觉在大学的时候,各种课程学了很多,样样有所触及,但样样都不精,学了但没完全学。
所谓师傅领进门,修行靠个人,如果还想要掌握的更多更精的话,还需要自己花费大量的时间去琢磨。
所以大雄觉得,不管学习什么,看起来是学习知识,但也是在修炼这个行业必要的素质。
我们都知道,大学教的东西,一般都是基础,也就是内功。有几门课程看起来无关紧要,但其实对我们未来的发展极其重要。举个例子,这些只是就像是武侠小说中的内功,实际学习到的技术就像是一些招式,内功强大,招式学的会很轻松。
01一、计算机组成原理
计算机组成原理这门课程很好地向我们阐述了计算机是如何工作的,妹子咨询你电脑问题的时候,答案就藏在这门课程里面,秘籍给你了,怎么把握就看你自己了!
不管是写程序做软件还是搞科研发论文,不对底层有一个清晰的认识,你的整个前进道路都是模糊不清的。
而只对体系结构的了解是远远不够的,深挖才是归途,为什么现在很多解析内存CPU技术的博文博客火呢?是因为大家都忽略,也因为大家都知道这是多么有用。
如果不做底层的分析,就无法精准的定位问题,也就自然写不出切合真实计算逻辑的简单而又高效的优秀代码。
02二、计算机操作系统
操作系统处于软件和硬件中间的一部分,是计算机的核心总控件,是计算机系统的指挥和管理中心,是计算机系统的灵魂。
无论你学什么编程语言,和都避免不了和操作系统打交道,比如你学习Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;比如你学习到内存分配的知识,C++里可以直接分配一段内存,此时实际上是调用操作系统提供的API进行内存分配。
如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习Linux相关的知识时,都会一头雾水,所以,只有学会了操作系统,我们才能够更好地学习其他编程语言和技术。
越底层的知识,可移植性以及可拓展性都是最强的,而且越是基础的东西,玩起来就越是高级。稀里糊涂是写不出好东西的。
03三、计算机网络
这个表面上不重要,其实很多应用的协议都要用,而且实际生活中往往用得上。
计算机网络的相关知识在工作时使用的频率还是挺高的,毕竟,所谓的CURD工程师总是在处理API相关的业务。
04四、数据结构相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。
数据结构与算法这门课开篇就讲了一个非常重要的概念:
程序=数据结构+算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的小伙伴相信对这句话是深信不疑的。
对于数据结构与算法的学习,分为三个步骤:
首先大致了解什么是算法,可以通过一些科普读物来入门,这个过程称之为入门阶段;
接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程称之为实践阶段;
最后去了解数据结构与算法背后的相关数学原理等,这个过程称之为原理阶段。
05五、高等数学
所谓编程思维很大程度上就是数学思维。一个人数学学得咋样基本上可以反应他的编程水平了。
而且你的数学理解力和你的英语能力结合起来能有意想不到的收获,偶尔翻一番国外数学期刊,看一看数学方法上的一些突破,把一些能用的运用到你的编程当中,能产生意想不到的效果。
过硬的数学功底使得你能看到一些新技术的出现而不茫然,看到的旧的技术能快速的跟进上手。
06六、英语英语是万金油,学习计算机的你,无论以后打算考研还是工作,英语的好处不言而喻。
去那些纯英文的编程网站,BBS,讨论组,个人博客,增长见识的同时,也可以让你逐步认清这个世界,了解到外面的人正在做什么,在想什么,社会潮流发展趋势是什么。
从而更加清晰行业发展的动态是什么,通过进一步观察和思考,提前规划好未来的发展方向。
其次,如果你想要考研的话,英语也是必须要攻克的难题。
与其等到考研的时候再一边慌忙补英语短板,一边学习专业课,不如早一些开始,为以后的学习做一些必要的铺垫,提早养成学习英语的好习惯。
最后希望大家能用心的修炼这些内功,我只能说这些课程很重要!很重要!很重要!