作为一名学计算机的同学,你觉得最应该学好哪些课程呢?
就小茴香来说,感觉在大学的时候,各种课程学了很多,样样有所触及,但样样都不精。
所谓师傅领进门,修行靠个人,如果还想要掌握的更多更精的话,还需要自己花费大量的时间去琢磨。
我就后悔呀,当初怎么没有认真听老师的新闻评论课,其实重要的是课程吗?
是!但是最重要的,还是在这门课程中对你批判思维的训练。
所以我就觉得,不管学习什么,看起来是学习知识,但也是在修炼这个行业必要的素质。
对于咱们学计算机专业的小伙伴们来说,我相信也是这样。
未来想从事这个行业的你,知道自己需要掌握哪些技能和素质,学习哪些课程,会对以后的自己有所裨益吗?
小茴香在查看了一些行业内专业人士的经验和知识以后,整理了一下几门课程,希望这样的参考会让你变得更强。
01
英语
英语是万金油,学习计算机的你,无论以后打算考研还是工作,英语的好处不言而喻。
去那些纯英文的编程网站,BBS,讨论组,个人博客,增长见识的同时,也可以让你逐步认清这个世界,了解到外面的人正在做什么,在想什么,社会潮流发展趋势是什么。
从而更加清晰行业发展的动态是什么,通过进一步观察和思考,提前规划好未来的发展方向。
其次,如果你想要考研的话,英语也是必须要攻克的难题。
与其等到考研的时候再一边慌忙补英语短板,一边学习专业课,不如早一些开始,为以后的学习做一些必要的铺垫,提早养成学习英语的好习惯。
还记得我之前文章提到的技术大佬AZ老师吗?他现在每天都会花时间听英语音频,几十年如一日,看国外的科研论文根本不在话下。
02
数学
过硬的数学功底使得你能看到一些新技术的出现而不茫然,看到的旧的技术能快速的跟进上手。
这就是所谓“知识”和“技能”的关系,将工具运用到纯熟的地步,你会发现别人遇到的很多问题在你这里都不是问题了,看起论文来也得心应手啦,这就是潜移默化和下意识的作用。
之前和跨专业学习编程的小伙伴聊天,他也提到自己大学学的是数学,在已有的基础上,即使是跨专业学习也不会很费劲。
03
计算机组成原理
不管是写程序做软件还是搞科研发论文,不对底层有一个清晰的认识,你的整个前进道路都是模糊不清的。
而只对体系结构的了解是远远不够的,深挖才是归途,为什么现在很多解析内存CPU技术的博文博客火呢?是因为大家都忽略,也因为大家都知道这是多么有用。
如果不做底层的分析,就无法精准的定位问题,也就自然写不出切合真实计算逻辑的简单而又高效的优秀代码。
知乎有个观点——读优秀的代码,从OS开始。读这些就是你学习认知底层的过程,就是在站在巨人肩膀上远眺的历程。
小伙伴们可以看看这本书——《深入理解计算机系统》,这本书会比课本给你带来更多的东西。
04
计算机操作系统
无论你学习什么编程语言,都避免不了和操作系统打交道,比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;
比如你学习到内存分配的知识,c++ 里可以直接分配一段内存,此时实际上是调用操作系统提供的 API 进行内存分配。
如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习 Linux 相关的知识时,都会一头雾水,所以,只有学会了操作系统,才能够更好地学习其他语言和技术。
基于此,计算机操作系统的知识点会频繁出现在笔试环节。
05
数据结构与算法
相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。
数据结构与算法这门课开篇就讲了一个非常重要的概念:
程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的小伙伴相信对这句话是深信不疑的。
对于数据结构与算法的学习,分为三个步骤:
首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程称之为入门阶段;
接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程称之为实践阶段;
最后去了解数据结构与算法背后的相关数学原理等,这个过程称之为原理阶段。
不管你认为数据结构与算法重要与否,你都必须有所了解,因为在面试环节肯定会问的。
更多信息请关注公众号【老九学堂】