程序员 计算机基础

作者:Shengsheng
链接:https://www.zhihu.com/question/31528376/answer/692405340
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

基础知识

编程语言(如C/C++/Java/Python)
数据结构与算法(如字符串、数组、链表、树、图、查找、排序、归并、动态规划等)
操作系统(包括操作系统原理、Linux命令行以及更高阶的系统编程)
数学基础(微积分、线性代数、概率论、离散数学,高阶一点还有数值计算、优化等)
数据库(主要是关系型数据库比如MySQL、SQLServer、Oracle及其原理)
计算机网络(OSI七层协议、TCP/UDP、路由选择、各种应用层协议等)
计算机组成原理(有些学校也会开汇编语言)
编译原理软件工程(各种开发模型、UML建模、敏捷开发)
设计模式

如何学习

GitHub上找了中科大和浙大的计算机课程体系,有书籍、课件、答案什么的,如果时间够得话可以跟着这个慢慢啃:

中国科学技术大学课程资源: https://github.com/USTC-Resource/USTC-Course
浙江大学课程攻略共享计划: https://github.com/zhanghai/archexp

如果没那么多时间或者想按自己的方式学习的话,那么建议如下:

首先学一门自己感兴趣的编程语言,建议从Python入手,最适合入门。可以看书,或者找一找在线的视频教程,但是习题一定要独立完成,敲一行代码胜过读十本书!(PS: 国外大学一般选择Python作为第一门编程语言,而国内很多学校会选择C语言,各有利弊);
学习基本的数据结构和算法,可以看书也可以看视频教程,不过这门课比较难,所以看视频教程结合书来看会更容易理解;多练习算法题,可以是书后面的习题,也可以是LeetCode这种在线题库;
看操作系统和计算机网络,基础知识要比较扎实,因为走上工业界开发尤其是互联网开发或者中间件系统开发这些知识很重要;
如果对底层的东西不感兴趣的话计算机组成原理、汇编语言、编译原理可选跳过,但是建议有时间的话也看一看;
学习数据库,建议从MySQL入手,其他的数据库可以跳过,将来用到再学不迟;关键是要搞懂SQL的方方面面;
学习软件工程、设计模式,尝试做一些规模稍大一点的项目,最好融入一个大规模系统的常用组件比如(网络通信、数据库、分布式中间件等);
恭喜,你入门了!剩下的就自己摸索吧,找个不错的工作,在工业界一边工作积攒经验一边继续学习~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值