当初学习前端时也有很多困惑(现在也有),断断续续的摸索了几个月还是一头雾水,虽然那时网上也有很多资料可以学习,但始终没有办法形成自己的知识体系,一直停留在用HTML和CSS写个静态页面,用JS写个动态效果,刚开始还感觉良好,时间久了不禁怀疑自己的方向是正确的吗,究竟该往哪个方向去学习才是工作所真正需要的呢?
学会设计出效果图才有饭吃,上去就是干,那会在设计这条路上花掉了不少时间,直到撞上南墙才回头。其实啊,公司都会有专门的设计师傅,他把做完的PSD设计稿扔给你,你会切图就好了,所以PS要学,做到会切图即可,当然招聘网站上也都有明确的技能要求,你也可以参考,哪里不会补哪里。
那么,拿到PSD设计稿,建个文件夹,上去就是切吗?我们平常做练习确实是这样,随便在哪里建个文件就可以开始了。实际工作中的代码都要在服务器环境下运行的,因为这时候项目中的内容不再是单纯的几个页面,几个效果,是前端后台的结合,而这些是需要在服务器环境下才能跑通的。所以你要了解简单服务器相关的知识,至少学会简单的搭建、配置和使用,用Node或Apache等等。
像我们学习原生JS,假如要实现一个动画效果,需要一大堆代码,写完可能还会有各种各样的Bug,实际项目中可能不会给你那么多时间去专门搞这个,这时候你要了解各种库的使用,例如TweenMax、CSS3动画的一些知识,滑动组件Swiper,还有你正在学的jQuery。有时候需要实现一些复杂图表效果时你还需要学习Canvas,同样实际项目中用到各种图表统计功能时,大部分时候不可能让你去用Canvas从0开始一一实现,所以你还要学习对应的一些图表插件,例如Chart.js。实际项目中会有各种各样的需求是你当时解决不了的,这是很正常的先不要着急,打开GitHub,上面有各种各样的好东西,可能有些正是你所需要的。当然这并不是说碰到问题我们直接找别人的代码拿来用就好了,原生JS你就可以不学了,恰恰相反,你要把基础内容掌握的更扎实才能轻松的去驾驭各种各样的库。
刚到一家公司时,你开始接触的项目都不是全新的,需要从远端克隆过来一份代码,在此基础上进行开发,每写完一些代码后,需要把这些代码再提交到远端,当你的同事需要你这部分代码时,他再拉取就可以了,你同事写的代码也是如此的操作。所以这时候你要学习一些版本控制工具的使用,例如Git、SVN、HG,了解同事间是怎么进行分工合作的,学会代码的提交、合并、冲突解决等等方法。
其实啊,在刚开始写代码的时候,你还会接触到像Gulp之类的构建工具,这玩意到底是干嘛的呢?你可以先这样理解,项目上线前我们要对图片进行压缩,对代码进行合并以方便更友好的访问,假如我们用Sass等预处理器写CSS样式时还需要编译,当用到ES6的语法写代码时还需要还需要翻译成浏览器能识别的代码才行运行,上面说的这3件事Gulp都可以做,当然它还有其他各种各样的功能,它是一个自动化的任务处理器,类似的工具还有Webpack、Grunt、Fis等等,所以你懂的,学习这些工具也是非常必要的。
HTML、CSS和JS你都了解的差不多了,这时候你可以尝试学习一下一些流行的前端框架,例如Vue,这玩意到底是干嘛的呢?这里我就不废话了,相信会颠覆你之前学习JS频繁操作DOM的思维方式,中文文档极其完善,真是良心,另外它的作者也在知乎喔。
其实到这里还差最后一点点,实际开发中可能前后端并不是完全分离的,你会常常发现你的页面中掺杂的还有一些后端代码,因此你需要学习一点后端语言,例如PHP,不然你和后端同学合作起来会非常的崩溃。