一、985高校读研后转前端的过程
东北某985高校爆冷门专业(被调剂)毕业,跨专业考研到广州某二流工科院校读通信。
第一年老板在新加坡做科研,迷迷茫茫过了一年。
第二年老板回来让我做一个他自己都不会的课题,搞了半年觉得被坑,放弃。
回首本科到研究生的前六年,觉得自己走了太多弯路,什么都没学到……
研二下学期终于决定自学前端,了解了HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序,以及零基础的网站开发初学者系统地学习前端的过程之后,开始从HTML的标记、CSS的语法开始学习,然后看了JavaScript DOM编程艺术 (第2版)这本书,中间被导师安排去电信实习了3个多月(搞无聊的数据库),耽搁了不少,不过下班后还是会学习前端的知识。
到现在为止,陆陆续续把《精通CSS》和《JavaScript高级程序设计(第3版)》这两本书看完,也跟着实例索引写了一些实例,感觉也有了一些进步。
但是从9月份校招到现在,我仅仅面了两家公司(立方网和欢聚时代),立方网二面被刷,欢聚时代一面被刷,其他的笔试都没通过,总结了一下感觉自己还是缺乏项目经验。
现在在看《锋利的jQuery》,因为面试欢聚时代的时候面试官告诉我公司做项目的时候都是用框架(他们主要用jQuery),很少用原生的JS,而我之前基本上都看的原生JS,不过看完原生的JS之后再看jQuery会发现相见恨晚,框架真的太好用了。
面试之后发现企业最看重的还是项目经验,所以后面要好好利用时间争取做几个项目。
就这样,希望大家都能够坚持下去!
二、软件工程专业学习前端的过程
我是大三转专业学习「软件工程」,目前实习前端工程师(以经验之浅,称为网页重构更恰当)。
至于所花时间,因人而异。当初因为选课老师手抖,将本科所需要学习的计算机课程让我在一年内选上。挖了坑,就得有人去填,后来在宿舍封闭了一年将其念完。当时考完最后一科,我一个人在阳台坐着,坐了好久,那是我知识积累最膨胀的时候。
关于前端
「前端」是一门特别的职业,需要在工程和设计之间选取一个平衡点。很多跨领域学习前端的朋友,容易存在一个误区,认为「不需要学习后端」,不用面对晦涩难懂,不好上手的内容。可是事实上,目前前端的招聘要求,大多会有「具有后端开发经验」。因为作为一名工程师,你日常学习和遭遇的问题,需要一整套的知识体系才能迎刃而解。
尤其近年 HTML5 和 Javascript 的崛起,移动端的快速发展,对性能和表现的要求,已经不是原来外行认为「写写页面」那么简单。
过去一年的学习
主要为两点,计算机基础的体系学习,对前端资讯的了解。
1. 计算机基础的体系学习
过去一年主要时间花在「考试」上,将大学前三年的计算机课程通过。倘若没有课程压力的情况下,自学的过程中,我可能会选择培训机构那套知识体系,跳过基础,直接被告知 How to do ,而不是去了解 What and Why .
多亏那位手抖的老师,让我没有错过这些看似无用的基础知识「数据结构、算法、数据库原理、计算机网络、操作系统…」。这些「无用」的知识很大部分会被遗忘,而被忘却的知识的影子却保护着你,避免陷入错误。
由于时间的关系,作为一名非科班的学习者仅能暂时在基础学科上浅尝辄止,在广度上进行了解,后续大多依靠工作内容,对所接触领域进行深度学习。
2. 对前端资讯的了解
在还没有实际工作以前,我对前端主要通过「阅读书籍」、「订阅国外博客」、「翻看别人有趣的前端代码」进行了解和学习。这个阶段属于多看少做,大概持续了两三个月时间。而真正能力的提升,是在工作之后,大量编码的实践以及解决问题的思考。
三、机电一体化专业学习前端
大学毕业一个月左右,还没找到对口的专业,想想我就是个悲剧。然后在网上看到杭州有个Java培训,想想自己还是对计算机蛮有兴趣的,于是就花钱去学了Java。
学成归来,其实就只是一个刚入门的菜鸟,很苦逼地从实习期干起,那个时候才500元,要知道是在2010年的时候。然后因为和主管有点小矛盾,然后就走了。
新进的那家公司,经理人还不错,带着我让我学到了很多,包括一些前端知识方面,也是他让我自己慢慢去摸索着学。虽然工资也是比较低,但做着确实开心,可惜的是不到一年,公司就倒闭了。
然后又进了一家小作坊的公司,共六个人,接的都是公司网站,我就负责做页面,JavaScript当时就网上找,什么闭包、对象、组件,毫无概念,只要能用就行了。工作了大概两个月左右,群里有同事内推了一家杭州的外包公司,当时外包在自己的心中概念全然不知,只知道和腾讯、阿里有合作,是专门做前端这一块的。于是乎,我就又离职了。
在外包的公司的2年多,无疑是我前端水平增长的时期,我很感谢当时的主管,教会了我很多,学了KISSY,YUI等很多JavaScript框架,自己业余时间也看了其他的一些框架,慢慢地水平就这样提升了一些。
虽然现在已经离开了那家外包公司,但实话说,如果自己的水平不够,进一下外包公司锻炼一下自己还是可以的,哪怕比较苦逼(我有一次做的项目,一天内被客户催打电话10来次,半夜三更会叫醒去做项目),最终回过头想想,所有的付出都是值得的。
感觉前端方面的提升,还是要靠多做东西,先是HTML、css,再是JavaScript的一点点深入、渗透。
四、自动化专业狂打DOTA男学习前端的经历与经验
我自动化的,我来讲讲我的经历吧。
三年前作为一个本科狂打DOTA,专业积累弱到爆,纯理论方向的研究生新生,我理所当然的迷茫了,不知道自己的未来在哪里。
不知道自己该干嘛时,那就看书吧,刚来那半年,怒刷图书馆。在这里感谢研究生母校的网络,烂到我再也不能窝在寝室打DOTA了。偶然的机会,和实验室的老师建立了些联系,他希望我帮忙用php(当时心里想,php是啥,尽情鄙视我吧)做一个信息平台。虽然啥都不会,这活我接了,硬着头皮上吧。从此apache、mysql、php、html、css、js进入了我的世界。挣扎了几个月,最后在大神室友和老师的帮助下,完成了一个惨不忍睹的东西。哎,不堪回首。记的最后是老师自己动手做了个,我的那个被扔进了回收站。我的收获就是进入了web世界,会了点php、css,记了几个html标签,JavaScript看不懂。
这过后,我放弃了本专业,打算以后就搞web了。后来也找了两家实习,分别做的php和java加打杂。到了这里好像和找前端工程师的工作都木有关系,别急,到重点了!做了大半年后台的东西过后,还是觉得前端的东西比较好玩,所以我决定把我找工方向定为前端工程师,这时距离校招还有半年。
确立了方向过后,该怎么做呢?!!我那时给自己定了一个目标,我要去BAT。
研究生第二个春节过后,三月份了!9月份就要找工作了!但是这个时候,我的眼光不是盯着9月份的校园招聘,而是4,5月份的实习生招聘,我把实习生招聘当做我的第一个机会,当做一次演习。
目标:腾讯前端开发实习生。
战斗力:会用常见html标签,会点css,能看懂常见JavaScript代码。
加分项:有后台开发基础
凭我这个条件进腾讯是很难的。我分析了我当前的薄弱环节:
1、基础知识首先不过关。html标签都没有全部学习一遍,css去浮动的几种方式也搞不清楚,JavaScript原型闭包也都不清楚。
2、前端的实践经验不足。这个建立在基础知识之上。
3、对于前沿的技术不了解。对于css3和html5一点不懂。
找准了自己的薄弱环节,那就开干呗。离腾讯实习生招聘只有一个半月。
第一步:学基础。把html、css完整的全部仔细学一遍,把权威指南通读一篇。这个阶段学html和css还是很快的,有些基础。看JavaScript权威指南就有点想死了,大块头,难啃啊。
第二步:实践与学习结合。我当时主要是扫荡前端题来实践,各种笔试题、面试题,大神分享的demo。印象深刻的是,切页面直接模仿淘宝首页,把首页做出来,css和html提升就很大了。独立用原生JavaScript实现当时人人网的五道笔试题,对于JavaScript应该也有所感觉了。
第三步:提升自己前端的眼光。这个部分比较虚,多看前端相关的博客文章吧,要形成自己对于前端的一些看法。我当时去了解了SEO、性能优化、web安全等方面内容,要以产品的眼光看技术。
前沿技术方面,我主要了解css3和html5,分别学习了下,这个部分对于实践的要求不高,但是要了解分别有哪些东西。但以今年的情况来看,要求又不一样了。
说了这么多,是不是最后去了腾讯才有说服力啊?是的,我通过了实习生招聘,最后也留了下来。
凭印象讲了这么多,很多具体细节已经不清了,有些关键点可能遗漏了。但这些都不重要,我知道是因为我强烈要去腾讯实习的愿望,让我那段时间浸淫其中而有所收获。最后这是一口鸡汤,励志下!
陈童的博客(http://www.everyinch.net/)专注于用户体验研究的IT类网站。发表用户体验研究与度量方面的知识,分享前端与三维网站技术,总结人机交互、集体智慧算法的研究心得,推荐国外相关资源。