写在最前:本文略长,如果没有耐心看完,可以关掉网页,可能你不具备从事前端开发工作的基本素养,比如耐心,执着。如果你是初学者,也千万不要看到标题就吓到了,相反,你更应该多了解一下,提前制定自己的奋斗目标,规划好自己的学习路线,或许看完本文你会有所启发。
什么?你竟然问我BAT是什么?那你也可以默默的关掉网页了,顺便可以节省一点流量。(哈哈,开玩笑啦,千万别打我~)
我相信现在没有几个人不知道BAT的,不过在这里小编再给大家普及一下,让大家能有个更充分的认识:
BAT,B=百度、A=阿里巴巴、T=腾讯,是中国互联网公司百度公司(Baidu)、阿里巴巴集团(Alibaba)、腾讯公司(Tencent)三大互联网公司首字母的缩写。
百度以搜索引擎为支撑,在探索新业务方向时,主要以战略投资为主,形式多为收购和控股,这样一方面可以引进人才,一方面可以卡位新的业务。阿里侧重于构筑完善的电子商务生态链,覆盖物流、数据服务、电商的交易支付、供应链金融等领域。腾讯更多的是采用开放平台战略,特别是对相对不熟悉的领域,游戏领域一直是腾讯投资的重点。
我想这是很多人梦寐以求想进入的公司吧,接下来就来说说想拿到BAT公司的实习生offer应该具备哪些能力:
1. 要有比较好的计算机基础
这里的计算机基础指的是数据结构与算法,操作系统,编译原理,计算机网络等等。虽然相对于其他方向而言,前端在工作中用到计算机基础的地方可能少一点,但是无论大小厂,招实习生其实都是为正式招聘做储备,如果你具备比较好的计算机基础素养,那么以后在拓展到其他领域(WebGL —— 计算机图形学,Node.js 底层 —— 操作系统,JS 引擎和各种预编译工具—— 编译原理, etc.)的时候会更快上手。
2. 要懂得现代前端的一些新技术
前端自动化工具(Gulp/Grunt等)
模块化(CommonJS,AMD/CMD模块加载器,各种Bundler,ES2015 Modules等)
前端框架(Angular等)
编译到 CSS 和 JS 的一些语言(Less/Sass/CoffeeScript等)
前端自动化测试工具(Karma,Mocha,Web Driver等)
其他,当然还有很多新的技术,再这里就不一一列举了。
3.懂一点点设计
懂基础的视觉传达/色彩构成/平面构成的知识。毕竟前端是和设计师联系最密切的程序员,虽然前端要做的事不仅仅包括 UI/UX,但是 UI/UX 却都主要依赖前端来实现。并且跟设计师沟通,尽可能在工程上容易实现容易维护的前提下实现设计的意图,哪怕要修改一些具体的表现形态。个人觉得与设计师沟通的技巧,也是一个靠谱的前端应该具备的素养。
4.懂一点点后台
即使你只想专注前端,但前端有很多东西(比如 JS 跨域,WebSocket,SSE,WebGL 的素材获取)都需要你懂得架设简单的后端才能去实践,我们前台界面的数据也都是从后台来的,如果会点后台代码,就知道怎么跟后台交互数据是最好的,这样节约时间,也可以让前端代码更规范。不然可能因为你的写法和后端给来的数据不能结合上,那么前端代码又得重新写。所以说前段工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是php了。
5.面对普通的任务也会做的事情
DNS 解析,使用 CDN,把资源请求分散到多个域名上去;
理解 HTTP Headers (Expires、Cache-Control、If-Modified-Since)
Steve Souders 的所有高性能网页优化规则(参考:High Performance Websites 一书)
如何解决 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 等工具列出的所有问题;
何时把任务传到服务器,何时适合传到客户端;
缓存,预取和延迟加载技术的使用;
原生 JavaScript,知道何时从头开始做,何时参考别人的代码,同时可以评估这样做的优缺点; 最新的 MVC Javascript 库知识以及用法;
CSS 标准的知识与用法;
JavaScript的计算机科学部分的知识(内存管理,垃圾收集算法等等)
6.谦虚,善于比自己优秀的人学习
每个大神也都是从小白开始的,所以如果你现在还是小白,不要怕,别人可以,你也可以。一切都只是时间问题,你要做的就是谦虚,放低自己的姿态,想比自己优秀的人学习,多借鉴别人优秀的作品,比较自己所存在的差距,明白自己的不足,不断去纠正改变,才能不断提升自己。
同样也要多看一些大神的博客和论坛,都能学到非常多的知识,顺便给大家推荐一下我们的学习群:27062964,毕竟有一个学习的氛围也同样重要,而且还能认识到更多的朋友。千万不要锁住自己的内心,否则在学习的道路上就会停滞不前,始终没有头绪。
7.具备良好的学习能力,在前端投入足够的时间
Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好。这就需要在前端的学习上投入足够多的时间,不断的提升自己。现在技术更新的很快,如果你没有一个良好的学习能力,很可能由于跟不上时代的变化而别人所超越,再也没有上升的空间,不管什么都需要时刻提醒自己:学习永无止境!
以上大概就是我觉得拿到大厂(或者前端比较靠谱的中小厂)前端offer需要的水平,其实我感觉没必要拿“实习”这个词来限定自己,尽量往高水平靠拢,才能做到是你来选公司,而不是公司来选你,这样你才能结合兴趣/家庭/个人规划之类的因素拿到最适合自己的 offer。最后希望大家能够找到自己属于心仪的工作,还正在学习前端路上的童鞋们应该脚踏实地,慢慢积累,不要听说现在的就业形势不好就放弃,别人左右不了你的未来,机会永远是留给有准备的人,梦想终将照亮现实,一起加油吧!