React 我自己还不太了解,@johnbanq 最近好像在研究这个东西。
前端入门的话,我觉得重点应该在HTML / CSS / JavaScript 的基本语法和一些比较重要的特性上,HTML 的重点大概在 DOM 模型;CSS 主要是选择器的概念,各种布局模型;JavaScript 在前端大概是原型继承的概念,异步回调,EventLoop 之类的机制,还有通过 DOM 和 BOM API,各种事件去与浏览器的元素、异步任务什么的交互,有一些概念之后,再研究一波解放双手的 ES6 / ES7 之类的各种新特性。
资料方面,我觉得 MDN 非常靠谱。
MDN Web 文档
还有 W3School 的一些参考
w3school 在线教程
菜鸟教程也蛮不错的~
菜鸟教程 - 学的不仅是技术,更是梦想!
后端入门方面,某种意义上来说,一个系统能根据特定的 HTTP 请求生成特定的 HTTP 响应,HTML 或者 Ajax 用的 JSON 格式,就算是一个后端系统了。
根据我自己对 Web 的了解,具体实现细节上,后端有蛮多不同的工作方式:有类似 CSAPP 的 11.5 节提到的 CGI 的模式,比如说 PHP、ASP.NET、Servlet、Python 的 uWSGI,也有现代的非阻塞的方式,就像 Nginx、Node.js、PHP 的 Swoole 框架等等。刚刚看了一下 Rocket 的文档,还不太清楚 Rocket 是怎么实现的,不过看代码还蛮简洁。
当我们要让后端处理的 HTTP 请求很多,和数据库的交互等业务逻辑变得复杂的时候,为了把代码组织的有条理,就有了路由分发,Model-View-Controller ,中间件,Service 之类的模型来指导组织业务代码,各种语言实现,基本都是围绕着这里的设计思想做的。
入门后端的重点是理解 HTTP 协议(RFC 2616),然后找一个比较成熟的框架学习它各种架构的思想,应该就蛮稳的了~