前言
在谈正题之前,我想先说下自己的学习和工作背景。大学四年间,我校的编程学习路线基本是这样的:Assembly -> C -> Java/C# -> SQL,但是出于自己对底层技术以及游戏的喜爱,在此基础上我自学了C++,记得当时为了学习C++专门抱着个大红本《C++ Primer》学了大半年,真是相当地不容易。俗话说兴趣是最好的老师,在毕业之前我算是学有所成,毕业后找到了一个公司可以用上所学的技能,当时觉得很幸运,这第一份工作一做就是三年,在此期间我的工作领域主要是负责后端开发,但是也会有一些项目需要涉及前端开发,这里的前端是PC客户端,这里我做过C/C++、.Net、Java/Android等等,涉及的技术很多很杂,有Windows也有Linux,但是唯独没有做过Web相关开发,毕竟公司对这块也有专门的小组来做。辞职出来创业后我又做了小程序,到了如今濒临创业失败的路口,我又要为未来的出路作出抉择。所以,我这里其实要说的是,很多人可能想的是一辈子做好一件事或者说是做自己想做的事,但事实上往往结果会不一样,有人是因为自身的兴趣广泛,也有人是形势所迫,但是无论如何,我认为既然选择了就要坚定地学有所成,这样才不枉此着。
前面说了那么多只是我为了感叹下工作生活的不易,所以上面这些可以忽略,下面才是正题,对于Web开发初学者的学习有一定的参考价值。
MDN和FCC
刚开始我入门Web开发的途径是鼎鼎大名的W3School,相信这个网站很多人都听过并且使用过,它是一个完全免费的由W3C中国社区成员提供的学习网站,里面的教程都很基础,HTML、CSS和JS一个不少,还有PHP、ASP.NET和SQL等,我认为这些教程做得都很通俗易懂,还有实操训练,是初学者涉足Web开发的不错选择。另外,我在网上看到过一些人对这个网站上教程内容的落后、不严谨提出过批评,但我觉得还是不失为一个初学者涉足Web开发的地方。
后来我又找到了一个真正让我觉得是学习现代Web技术的圣地——MDN,全称Mozilla Developer Network,这里有最新最全的技术参考书和教程,你可以在这里从零开始学习到现代Web开发技术,从Web概念介绍到HTML/CSS/JS教程,再到后端开发教程和浏览器测试等等,这里类似于百度百科那样,由全球MDN学习社区成员共同维护、更新里面的内容,而且中文社区的翻译也进展不错,如果需要打开对应的英文版页面,可以通过在地址输入栏将zh-CN替换为en-US,同理可以互相转换。
除了MDN之外,还有一个相当有意思的项目——FCC,全称FreeCodeCamp,这是一个开源的编程学习社区,可以通过在这里完成挑战(刷题)、构建项目、获得证书,这里的证书不是一种纸质证书,而是虚拟证书,你需要在这里注册账号,完成一道道题目、项目关卡,当你没完成一个阶段节点就能获得一张虚拟证书,根据官网介绍一共有四种证书,分别是前端开发认证、数据可视化认证、后端开发认证、全栈开发认证,官方表明每个证书完成所需时间,而完成全部证书据说要2080小时,当然这个具体是看个人学习能力和程度,有人比这个时间快当然也会有人需要更长时间。我认为这里是实践Web开发技术的上选之处,有循序渐进的课题挑战,还有一个聊天室供共同学习小伙伴互相切磋认识,学习氛围不错。我最喜欢这里面经常提示的一句话:RSA(不是加密算法RSA,而是Read-Search-Ask),当你遇到学习难题时,要学会Read(读文档)、Search(查资料)和Ask(提问题)。这个项目托管在Github,有兴趣可以去关注一下。
好啦!我已经把需要介绍的两个好东西都说完了,推荐以MDN学习教程和参考文档为主,然后以FCC作为实践和考核验收的方式来学习。如果大家有什么更好的发现可以随时留言,共同学习切磋下。