解决实际问题过程中,发现计算机有些课程学得透不透太重要了,直觉上可以分为两类了:
第一类,不会的话,你连码农都称不上:
- 面向对象程序设计,一定要找一个足够复杂的应用场景,思考一下封装、继承、多态&接口分别意味着什么提升,熟悉设计原则
- 数据库,没什么好说的,码农不是白叫的,增删改查,日复一日,年复一年
- 数据结构,没什么好说的,前人给你造好的轮子,正如那句名言,不要把时间浪费在造轮子上。PS:何况这轮子还是不锈钢的
- 算法设计,核心在于复杂度分析,根据你的实际性能需求,使用相应的算法,算法优化要么是空间换时间,要么是没利用问题特性,用了通用方法解决特例问题
- 操作系统,windows | linux,操作系统下面是N门专业课程,导论、汇编与单片机、组成原理、系统结构。操作系统之上是各种环境,各种框架,看不透的可能终生就陷在天天更新的框架里了。
第二类,用计算机解决问题:
- 概率论与数理统计,实际问题就是概率问题,市场调研、运维调度、数据分析&决策支持、数据挖掘,万物皆概率
- 线性代数,计算机的流行严格意义上应该归功于矩阵表达问题的能力,当然高数学不好,线代同样是噩梦
- 编译程序设计,有的人说XXX是世界上最好的语言,可能是因为它包含了所有高级特性吧。编译程序能够让你自已写脚本
- 计算机网络,然而计算机是信息口的,并没有在基础学科数学,特别是互联网,大家天天在和响应速度做斗争吧
- 人工智能,也算科技发展最前沿了,大部分人类是懒的,所以人工智能有利可图,跟机器学习差不多同义词