程序员练级指南
终于在极客时间上剁手了
这篇是耗子叔的那几篇入门指导的浓缩
[TOC]
入门篇
零基础启蒙
两份入门教程(Python & JS)
都是从零开始
- 与孩子一起学编程,六、二十章为 GUI
- MDN Web 开发入门,教程带你建立一个网站
Python 与 JavaScript 入门语言
Python 书籍
- Python 编程快速上手,控制鼠标、破解 PDF
- Python 编程:从入门到实践,“有 Web 项目、代码部署内容”,Django 学习笔记网站,Heroku 部署,若时间有限,这一本
JavaScript 在线教程
- MDN JS 教程,“从初级到中级再到高级,十分全面”
- W3School JS 教程,偏 Web 方向
- 廖雪峰 JS 全栈教程,偏应用偏 Web,包括 Node.js
操作系统入门 Linux
(Microsoft) Visual Studio Code
中文手册,不一定非要。吸引我:在终端工具内打印 Debug 信息
Web 编程入门
前端基础
- MDN CSS 文档 与 HTML 文档,参考而不是记忆
- JS DOM 与动态网页 W3Schools 的 JavaScript HTML DOM 教程
- 要点:
- HTML 基本语法
- CSS 如何选中 HTML 元素,应用一些基本样式
- 用 Firefox + Firebug 或 Chrome 查看炫酷网页结构
后端(PHP)
实践项目
极简 Blog 系统,或是 BBS 系统,支持如下功能:
- 用户登录和注册,无密码找回
- 用户发帖,仅支持纯文本
- 评论,纯文本
从前端到后端,从 HTML/CSS/JS 到 Python,再到数据库
注意的技术点:
- 用户登录密码不保存为明文
- 用户登录后,可对自己帖子 “重新编辑”、”删除“,但无权修改其它用户
- 数据库设计。三张表:用户表,文章表,评论表,他们之间的关联
正式入门
编程技能
The Key to Accelerating Your Coding Skills,文章
- 编程技巧:Code Complete
- 编程语言:学习 Java
- 操作系统:鸟哥的 Linux 私房菜
- 网络协议:系统了解 HTTP 协议,MDN HTTP 文档,关键点:
- HTTP 头、HTTP 请求方法、HTTP 返回码
- Cookie,缓存,会话,连接管理
- 数据库设计:慕课网在线课程;推荐学习 MySQL
- 前端:jQuery,Bootstrap;Ajax 请求后端 API 接口方式;JS Promise 模式,阮一峰教程
- 字符编码
编程工具
- IDE:Eclipse,Intellij IDEA,VS Code
- 版本管理工具:Git 使用资料
- 调试前端:用 Chrome 调试,资料
- 数据库设计工具:MySQL WorkBench,资料
实践项目
投票系统
业务需求:技术需求:
入门篇小结
- 1 - 2 年时间
- 不用精通,能独立做出实践项目即是真正入门(耗子叔对入门的定义)
- 年薪 20万
修养篇
程序员修养
Quora 帖子
附录:编程规范
专业基础篇
编程语言
- C 坑
- C ++
- Java
- C –> C ++ –> Java
- Go
理论学科
”计算机学科最精华的知识,人类智慧的精华“
数据结构与算法
- 三本书推荐,先后顺序
- LeetCode 使用
- “如果想要有科班生理论基础”:
- 数据结构与算法分析
- 小结
系统知识
Wireshark 数据包分析实战
系统知识小程序
实践项目
- 实现一个 telnet 版本的聊天服务器
telnet ip:port的方式连接服务器- 新连接需要用户名和密码登录,无则注册
- 然后可以选择一个聊天室加入聊天
- 管理员有权创建删除聊天室,普通人员只有 加入、退出、查询、聊天室
- 聊天室人数限制;每个人发出来的其他人都能看到
- 简单的 HTTP 服务器
- 解释浏览器传来的 HTTP 协议,只处理 URL path
- 然后列出所代理的目录
- 浏览器上可以浏览目录里的文件,和下级目录
- 点击文件,则文件传给浏览器(浏览器可自动显示图片、PDF、等)
- 点击子目录,则进入子目录,并列出文件
- 生产者 / 消费者消息队列服务
小结
- 还有热情与成就感:恭喜,超过了绝大多数人;50 万
- 术业有专攻,建议的方向