学习路线
以下是根据北美教学顺序,加一些思考定的学习路线,然而如果真一个人的话,还是要摔很多跟头才能走完。大学,不可以单单停留于课本(很多课本可以说是基础的基础加上一些过时没用的基础),也不可以走的太远忽略了基础
概述
- 基础
- 计算机基础, 编程基础
- oop 多门语言 数据结构
- 算法
- 开发
- version control
- unit test
- oop
- mvc
- 团队协作 接口
- 代码规范
- regular expression 字符串
- 底层
- 指针 动态内存
- 命令行 编译原理
- 计算机组原 操作系统 文件系统
- 网络
具体实践
- 基础
- 计算机基础, 编程基础 //各种电脑操作 基本上这个可以不算了
- oop 多门语言 数据结构 //多门语言 学会各种类,数据结构写法,语言设计
- 算法 //刷几条leetcode
- 开发
- version control //git 入门 命令行 控制 ide 控制
- unit test // java junti leetcode 的测试代码
- oop // c++ 学习
- mvc // 安卓 前后端
- regular expression 字符串 leetcode 刷题 string类 java/js/py regular expression
- 代码 规范 //代码简洁之道 改之前代码
- 底层
- 指针 动态内存 //c语言
- 命令行 //linux c 语言 各种软件
- 计算机组原 操作系统 文件系统 //先讲
- 网络
以上为基本功
英语 该得如何学习
分难度
- level 1 可以出错了google 看英语找到答案
- level 2 可以看懂说明文档,写代码
- level 3 可以看完整整个大段文字(评论,回答)
- level 4 看懂文字教程
- level 5 可以看完一篇长文章
- level 6 可以 看字幕 听懂 国外教学视频
- level 7 畅通无阻
具体措施
- level 1 开发中很多bug
- level 2 安卓 前端 jdk api
- level 3 抽几个原理 去看quora
- level 4 java py 官方教程 c 国外教程
- level 5 教程中较长的概念文章
- level 6 youtube 很多
- level 7 ~~~~~~~~~~~~~~~~~~~~~~~~~
实践项目
- 老实说 现在前端(gui应用程序,网页,app,软件) 这种开发方式大一统。。多写几种,app 你就会感觉到这个比较无聊
- 网页
- 安卓
- 网页框架
- 如果有兴趣,了解下c++ c# windows gui
- 复杂的,像贪吃蛇/飞机大战/俄罗斯方块 这种,有兴趣 用 awt swing c 网页 等现下,,,比较各种开发方便 说到底 应用层的东西都是在调用api。。用一个差的api 写的很费解不奇怪,你用c语言终端写这个很费解很正常,当然我不否定,,写得出来的人。但不必要为了这种怼上去,,花很长时间~~现在有更好的api了为啥不舒服点呢,,说到底,都是gui惹的祸。而且游戏设计又是个新的领域,用的api根本不一样
- 接下来 重点考虑 mvc
- 纯前端 vue / 安卓 mvc
- 前后端
个人补充
就像我现在,也做不太出啥项目,说实话,没进公司前的项目都是小儿科,主要不是为了提一下学习兴趣,也不用做。
一两门语言
java 设计比较优秀,符合现代大型系统,配合c语言底层的,学完这些基础基本上比较优秀的结合了现代软件业下层的精华。典型工程语言,适合大项目。大项目也可以go语言,相对比较简单,怕直接深学漏了很多细节
python bash 这种语言擅长干小项目,或者当胶水把其他的东西连接起来
js 本来就是为了操作网页前端的语言,但现在用途正在变广
c/c++ 历史语言。。。语法怪异,但没得选,基础真的要很牢。还是得学
最终学习路线,反反复复 出真知
建议;
- 以一门语言学习路线为驱动(知乎上好多),顺带其他语言,和重点知识
- 以重点知识为驱动,用语言填上
- 以项目为驱动,碰到不懂学(这个。。我基本感觉不太行,反正不适合我,而且很容易出野路子,以为自己多牛逼,其实。。。根本不系统,而且自学的话,百度基本不能用,谷歌基本上也不太行,就算身边有人能随时问也免不了前两个缺点)