操作系统入门 Linux

你可以看一下,W3CSchool 上的在线教程 Linux 教程。

vscode-

GitBook – Knowledge management for technical teams

用户登录时的密码不应该保存为明文,应该用 MD5+Salt 来保存(关于这个是什么,希望你能自行 Google)。

The Key to Accelerating Your Skills While You Learn to Code

编程技巧方面 - 你可以开始看怎么把程序写好的书了,这里推荐的是《代码大全》。这本
书好多年没有更新了,其中有一些内容可能有点过时,但还是一本非常好的书,有点厚,
你不需要马上就看完。在你的编程路上,这本书可以陪你走很久,因为当你有更多的编程
经验时,踩过更多的坑后,再把这本书拿出来看看,你会有更多的体会。好的书和不好的
书最大的区别就是,好的书在你不同的阶段来读,你会有不同的收获,而且还会产生更多
的深层次的思考! 《代码大全》就是这样的一本书。

编程语言方面 - 这个阶段,你可以开始了解一下 Java 语言了,我个人觉得 Java 是世界上目
前为止综合排名最好的语言。你一定要学好这门语言。推荐《Java 核心技术(卷 1)》,除
了让你了解 Java 的语法,它还会让你了解面向对象编程是个什么概念(如果你觉得这本书
有点深,那么,你可以降低难度看更为基础的《Head First Java》)。然后,既然开始学
习 Java 了,那就一定要学 Spring,推荐看看《Spring in Action》或是直接从最新的
Spring Boot 开始,推荐看看《Spring Boot 实战》。关于 Spring 的这两本书,里面可能会
有很多你从来没有听说过的东西,比如,IoC 和 AOP 之类的东西,能看懂多少就看懂多少,
没事儿。

操作系统 - 这里你可以看看《鸟哥的 Linux 私房菜》,这本书会让你对计算机和操作系统,
以及 Linux 有一个非常全面的了解,并能够管理或是操作好一个 Linux 系统。当然,这本书
有很多比较专业的知识,你可能会看不懂,没关系,就暂时略过就好了。这本书的确并不
适合初学者,你能看多少就看多少吧。

网络协议 - 你需要系统地了解一下 HTTP 协议,请到 MDN 阅读一下其官方的 HTTP 的文
HTTP | MDN。你需要知道 HTTP 协议的几个关键点:1)HTTP 头,2)HTTP 的请求方法,3)HTTP 的
返回码。还有,HTTP 的 Cookie、缓存、会话,以及链接管理,等等,在 MDN 的这个文档
中都有了。对于 HTTP 协议,你不需要知道所有的东西,你只需要了解这个协议的最关键的
那些东西就好了。

数据库设计 - 你需要系统地了解一下数据库设计中的那些东西,这里推荐慕课网的一个在
线课程:数据库设计的那些事。每个小课程不过 5-6 分钟,全部不到 2 个小时,我相信你一
定能跟下来。你需要搞清楚数据的那几个范式,还有 SQL 语句的一些用法。当然,你还要学
习和使用一下数据库,这里推荐学习开源的 MySQL。你可以看官方文档,也可以看一下这
本书《MySQL 必知必会》。

前端方面 - 前端的东西不算复杂,你需要学习几个东西。一个是和 JavaScript 相关的
jQuery,另一个是和 CSS 相关的 Bootstrap,学习这两个东西都不复杂,直接上其官网看
文档就好了。最重要的是,你要学习一下如何使用 JavaScript Ajax 请求后端的 API 接口,而
不是再像前面那样用后端来向前端返回 HTML 页面的形式了。这里,你需要学习一下,
JavaScript 的 Promise 模式。阮一峰翻译的 ES6 的教程中有相关的内容。当然,你 Google 一
下,也可以找到一堆学习资料。

字符编码方面 - 在你处理中文时有时会发现有乱码出现,此时需要了解 ASCII 和 Unicode 这
样的字符编码。这里推荐一篇文章 - “关于字符编码,你所需要知道的
(ASCII,Unicode,Utf-8,GB2312…)” 关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…) | 简单生活 — Kevin Yang 的博客 或是英文文章 “The history of Character
Encoding” DeveloperKnowhow.com is for sale | HugeDomains 以及 Wikipedia - Character encoding Character encoding - Wikipedia。还有 GitHub 上的这两个 Awesome
仓库:Awesome Unicode GitHub - jagracey/Awesome-Unicode: :joy: A curated list of delightful Unicode tidbits, packages and resources. 和 Awesome Code Points GitHub - Codepoints/awesome-codepoints: Awesome Code Points

编程的 IDE。传统一点的,你可以使用 Eclipse(教程)。当然,我推荐你使用 Intellij
IDEA(教程)。这两个工具都可以开发各种语言,但是主要用在 Java。如果你想玩得更时
髦一些的话,使用 Visual Studio Code 也不错,这个工具潜力十足,用其开发 Python、
JavaScript、Java、Go、C 和 C++都能得心应手(教程)。

版本管理工具。版本管理工具是非常重要的编程工具。传统的有 P4、 SVN、CVS 等,但都
会被 Git 取代,所以,你就只用学习 Git 就好了。学习 Git 的教程网上有很多,这里我推荐非
常系统的 Pro Git 第二版 (如果你觉得 Pro Git 比较枯燥的话,备选猴子都能懂的 Git 入
Simple Git tutorial for beginners | Nulab),然后你要学会使用 GitHub。关于一些 Git 环境安装和准备以及 GitHub 使用,你可以
自行 Google(比如:这篇 GitHub and Git 图文教程 GitHub - JiapengLi/GitTutorial: Simple Github and Git tutorial. 或是这篇 Git 图文教程及详解 Git 图文教程及详解 - 简书)。

调试前端程序。你需要学会使用 Chrome 调试前端程序,Google 一下会有很多文章,你可
以看看 超完整的 Chrome 浏览器客户端调试大全。

数据库设计工具。你需要学会使用 MySQL WorkBench,这个工具很容易使用。相关的手
册,你可以看一下官方文档 MySQL :: MySQL 5.7 Reference Manual