live课程性价比不错,有兴趣可以看看
如何避免“程序员吃青春饭”一说?
- 通过学习计算机专业课程从普通程序员成为技术高手
怎么学?
- 学习编程语言(c、java、python、JavaScript,必须四个都会)
- 学习数学(高等数学、离散数学、线性代数、概率统计),学完可以学习基础课程
- 学习计算机专业核心课程
- 学习计算机专业特定领域课程(人工智能、大数据、图形学)
如何学习?
- 推荐书:学习之道
- 专注,不要一心多用
- 多次反复,切忌以为一次就能学会
- 培训禁忌:强行灌入大量知识,难以消化
- 学习高阶知识之前要学习预备知识
- 学习需要有目标
- 先实践再理论,先感性认识再理性认识
- 学习需要DFS,切忌BFS,由树根到树叶
- 如果工作在N层,学习的东西重心放在N-1,N+1层,例如做系统开发需要更多了解硬件而做web开发只需要简单了解更多需要了解浏览器原理
如何选择书籍?
- 选择适合自己的书,别被“圣经说”迷惑
- 根据前言或者开头,判断自己是否适合这本书
- 最好阅读最新英文资源或者中英文对照
- 由浅到深-从科普实战书籍到专业理论书籍
- 多遍阅读法:第一遍,研读第一章,后面每章跳着看;第二遍,根据需要和兴趣选读内容;第三遍,看之前没看过的内容;第四遍,看之前不懂的内容,通读全书,反思
- 很多工具书只需要第一遍第二遍阅读即可,重要的经典书籍才需要四遍
- 难书、厚书特点,背景要求高,作者技术牛写作水平有限。这种书应对方式:需要提前掌握背景知识;多看此类型不同书籍对照查看;先看视频再看书
数学?
- 简单搬砖不需要多深数学知识,但是深入成为大牛需要足够数学知识
- 高等数学,离散数学,线性代数,概率论与数理统计,前两者必学,后两者根据需求选学
- 选择合适的书,国内很多书理论性强,相比而言国外有些书更优秀。微积分:普林斯顿微积分读本,离散数学及其应用、线性代数及其应用
- 从易到难学,从科普到教材再到论文
- 学以致用,学完之后马上使用或者编写相关软件
计算机科学?
- 树立计算机系统全局观-阅读CSAPP,建立对计算机的整体了解,再根据需求了解特定领域问题
数据结构与算法?
- 有助于公司面试
- 提升编程能力
- 作为背景知识深入特定领域(机器学习或者系统开发)
- 了解常用数据结构和算法,掌握算法好坏的分析方法
- 看完书自己实现一遍,去类库(jdk)查看开源实现方式,学习优秀思想
- 先学离散数学和一门编程语言,再学科普性书籍,再到《数据结构与算法》,再到《算法》和《算法导论》,《算法导论》的证明可以选读
- 很多高级算法掌握会用即可,根据工作需求来选择是否花时间专研
计算机原理?
- 作为很多高阶知识的前置基础知识
- 《编码》-> 《计算机组成与设计》(《计算机存储与外设》和《计算机组成原理》)->《计算机体系结构》
操作系统?
- 数据结构和算法
- 计算机组成原理
- c语言
- 《操作系统-精简与设计原理》和《深入理解linux内核》(深入解析windows操作系统)
计算机网络?
- 编程语言(c、java、python)
- 操作系统
- 数据结构与算法
- 《计算机网络教程-自顶向下》、《计算机网络》、《计算机网络-系统方法》
- 读书、写网络应用、抓包
其他问题
- 课程电路,不需要深入研究,了解简单概念即可
- 语言只是工具,不要专注于语法