计算机专业学生该如何提升本身

对于不少计算机专业的学生来讲,如何在专业上提高自身能力是件很困惑的事情,特别是在面对现在各类不停更替的最新最流行的编程语言和开发框架时,更是手足无措。为此,正值新学期开学季,咱们将江博士以前在知乎上的回答 「计算机专业学生该如何提升本身」的内容分享给一些学生朋友,但愿对大家有所帮助。

大学是系统性地学习基本原理的时候,没有必要追逐最新最流行的编程语言和开发框架,毕竟到了毕业工做的时候每每又有不少新的变化。把基本的知识体系掌握好会终身受用无穷。大学只是提供环境和条件,学习的方向和重点须要本身把握。下面这几方面对于本科生是尤为重要的。算法

计算机体系结构:这是理解计算机工做原理的基础,即便之后只作软件方面的工做,这方面的知识也是相当重要的。一方面软件运行在硬件上,理解计算机各部分的工做原理以及他们之间的通讯机制对于代码优化和系统级的软件开发都是必须的;另外一方面硬件只不过是石化的软件,软硬件不过是逻辑组合的不一样实现方式而已。不少美国大学的这门课程都会让学生用代码把一台虚拟计算机实现出来,这确实是个好办法。编程

操做系统:全部作软件开发的人都须要对进程、线程、内存的管理有清楚的理解。操做系统为在计算机上运行多个应用程序提供基础,Docker 等这些如今流行的技术也无非是把操做系统提供的机制和工具进行了封装而已。数据结构

编译原理:编译原理让你理解程序在运行的时候具体在作什么。只有能把高级语言的每条语句在大脑中映射到 CPU、寄存器、内存里栈和堆的具体操做,才能写出高效、错误少的代码。每一个计算机专业的学生都应该尝试本身实现一个语言。框架

一门系统编程语言(C/C++):C 语言仍然是最好的用来学习编程的语言。它在语言层面的概念比较少,容易比较快地把注意力从语法转到程序设计上。同时因为 C 在标准库里没有提供现成的容器,因此不可避免地须要学习如何实现基本的数据结构:不一样类型的链表、队列、字典等,在实现这些结构的时候又不可避免地要熟悉指针操做和递归。虽然在平常软件开发中不多会须要本身实现这些容器,可是理解他们的实现和性能特色能够避免你用 Java 之类的语言时什么都用 Vector 来作。编程语言

算法、数据结构:若是你未来作系统软件开发,将会须要本身作一些算法的实现。即便是作应用软件开发,也须要在这方面有足够的知识来权衡不一样的选择。虽然现代的高级语言大多提供了丰富的容器、算法函数、中间件等等,只有理解他们的性能特征和资源代价才能做出好的选择。函数

一门学科的知识体系就好像大脑中的一个架子,一开始搭建它的时候会感受是个很慢的过程。可是若是你耐心地把它创建起来,再学习新的东西就会知道该把新吸取的知识放在什么位置,它和架子上现有的内容是如何联系的,在理解、记忆、应用上都会事半功倍。工具

相关文章
相关标签/搜索