背景:
1.学历 :大专
2.专业:模具设计与制造
3.身高:173cm
4.恋爱经验:2次
5. ……
大专毕业,第一份工作是在传统制造业的公司里当设计,机缘巧合下公司需要做自己的网站,设计好后公司觉得外包不划算而且打听到做网站很简单,就直接扔给我做了。然后我就上http://www.51zxw.com学习(我们那个年代只有这个网站可以当成学习资源),磕磕碰碰总算是把东西做出来了。然后又开始做自己的后台系统,慢慢的开始把JS这块给做出来~~做着做着发现我司技术部的工资好高,顺便查了下外面的网页设计(当年也只有这个岗位 )的工资,嗯,高(最少比我高)~~就决定多学点东西,然后转去专职做这个。
做了几个项目后,觉得自己有资本了,就跑到外面去找工作。因为本人除了技术甚至包括技术在内最善长的东西就是口头表达 ,所以面试都很容易拿到OFFER,然后去了家创业公司~原因很简单,因为私人原因我希望试用期也按转正薪资的100%算,这家公司的老板和产品经理(产品经理为公司合伙人)都很爽快答应。
入职即前端负责人~~说的就是我。其实还有两个帮忙的人,但是基本属于打杂的。然后为了把功能实现出来逼着自己去学很多自己完全没碰过的东西。把整个产品和系统从0到1,从一开始的为了实现业务功能而实现业务功能到组件封装再到基础架构搭建与设计(因为是先乱搭了才知道大概怎么设计的)就是我在这家公司的全部~后来公司招了个CTO,我这个人和他八字相冲,为人处理上的观念也大大地不同。而且对一家创业公司来说,他这种处事方式真的不适合当一个CTO(一个不写代码的CTO)~ 开会的时候觉得不爽怼他~而他也经常说:『如果你在大公司待过你就知道XXXXXX』~emmmmm……完全被鄙视了~ So,光荣殉职(被找了个理由开了)。但是我工作那么久,包括到现在,进步最大的就是在那里那段时间。举个粟子:面试的时候我可以说清楚架构设计的原因,为什么要这么做,如何降低产品换代成本,如何提高团队生产力,遇到的坑是怎么处理的,现在因为时间关系只能模糊处理的东西应该如何如何更好,如何更合理的安排工作…都是从那里学会的东西,也是后来面一家过一家的根基。
学习路径:
1.HTML + CSS做静态页面,需要注意的包括, 经典布局的实现(包括但不限于双飞翼,圣杯,三栏,sticky,居中),标签语义化,命名方式,结构布局的合理,如何减少重排和重绘~~当然了,后面的最好在工作后才了解
2.JS: 如果是为了更快找到工作,我建议是直接上手jQuery,因为刚开始写原生也是从类似document.getElementById('idName')这些开始的。而jQuery只是把它封装好,用$('#idName')就能实现相同的效果 ~然后通过它来了解怎么渲染想要的东西(如渲染列表,插入指定元素到指定位置)反向学习原生API。用jquery实现时不防想想或者实践下用原生JS怎么实现。这里也给一个建议,在上手之前最好了解基本数据类型和里面的常用API是什么,一般在w3school 在线教程上就能学到基本用法。当你把这个网站看了个300+次左右 ,你就基本可买去找实习的工作了。而用jQuery比较经典的坑就是this指向问题,经常需要用到var $this = this这个操作,要不然里面的this不是你想要的this(不懂就把它当公式套就好了,代码量上来了就会懂的了)
3. 原生API的进一步熟悉与了解 并加入前后端交互的思想。但这个需要通过项目实践来完成,这里可以学到原生JS的各个API有什么不足特点。比较常见的可能是比如同样是遍历,怎样的写(封装)才最快最好而不是一路for到底。而如何忧化或者根据自己的需要用这些API来实现自己想要的功能又是一个常见的课题。网络面试相关的HTTP状态常见状态码,缓存机制,异常捕获与处理,跨域处理和常见的服务器相关知识都是必不可少的~到了这一步你应该了解的就是开发环境中(特别是团队合作的时候)怎么封装自己的东西,命名规范,代码规范,如何避免全局污,封装的方法如何才能让别人一下就知道是干什么的而不需要针对你的代码一行一行地去读。当然了也是为了让别人看你的代码的时候永远是赏心悦目的~此阶段基本上每一个季度或者半年你再看回自己以前写的东西你会觉得这特么是我写的?怎么像一索屎?
4.现代框架学习:Vue,React, Angular这几个框架就不用说了吧,上手难易程度依次从左到右。其中Vue对this属于强依赖,你可能通过这个来更深入地了解js中的一大坑this。React的生态最好,用React来开发更像是编程一样写页面,根据逻辑来写而不是布局,样式,行为分享。Ng没怎么用过,不评价。建议在Vue和React中选一个来学习,这个过程里你可以慢慢了解到架手架里面的一些配置文件是怎么回来,并尝试配置这些文件。然后你会在团队合作中学会git或者SVN这些版本控制工具及产品实现流程。
5.各个框架源码的阅读或者核心API的实现能独立完成
6.前端架构设计:能自己用webpack或者gulp搭建自己的可持续集成工具,并能主持完成项目从0到1的整个过程。包括日常和产品,设计,公司领导,运营的日常撕逼。
从完成第三点开始,你已经能开始写基本业务逻辑了,能完成第四点,你基本可以达到10~15K的水平~后面的看个人发挥了。
补充:其实很多时间学完jQuery或者原生API后已经可以尝试上手同几个MVVM的框架,这个和用jQuery的暴力解决方案不同(想到怎样就怎样写)。这些框架也只做了一件事~就是把页面渲染出来,而你只需要很认真处理你的逻辑层以及想好如何忧化就好。至于于做SPA时会有SEO的问题,异步加载组件,首屏秒开这些就是深入之后必需要研究并掌握的东西了
关于算法:我的观点是,了解常用的东西就好,一般复杂的运算也不会交到前端来弄。因为web前端有一个特点,只要你能看见的就能扒,为了数据安全,还是把核心的东西放在后端吧。我记得当年刚接触前端的时候我是畏惧算法的,毕竟数学太渣了,但你到了一定程度就会发现,如果你还想进行自我增值,就必需跪舔当年你视之如巨兽的东西~稍微好点的公司一般都会考算法了,如果你简历上写的是三年工作经验以上,连几个简单的算法都不会(快排,二叉,红黑)~ 会被鄙视的好吗。而学习算法的话只推荐一本书『算法』,对~就是那本传说中花了几百面来讲算法的算法书。这里特别提醒一下,要好好学习正则就是了。
关于背景:大专以上找工作还是相对轻松的,那些找不到工作的人我觉得还是学艺不精罢了。但大专想进大厂有真的难,直接投直接被HR过滤。所以最好走内推,内推也走不动还是想进大厂就可以选择外包(外包走得好,转正是可以的,直接从乙方变成甲方,爽歪歪)。因为我就是大专的,曾经做过一个实验,把自己简历改成本科,都不用自己去投简历,会有人主动撩的好吧……心疼自己五秒钟
关于外包:如果学得挺一般,对工作上也没有太大要求,觉得拿个万把来块钱就满足,是个不错的选择。如果对自己极度自信,就算外包也能拿到自己想要的东西或者能转正,可以一试。但对一般人来说,外包真的很一般。
关于培训:先自学两个月,如果能坚持就报名。选择培训班没有什么技巧,可以一个个去聊,不接受套路,不喜欢就直接拒绝,找一家自己有感觉的。工作前期经常感觉自己有职业生涯危机,所以做了开发后我的感觉是~~开发者的安全感来自于不断学习
你可以经常听到有我说前端水深,其实概括起来无非是一个字:『乱』~~三天一类库,五天一框架,现在的三大框架还日常撕。我不偏向于学哪一个框架好,因为在我看来,只要你基础够好,用哪个框架无非是API的问题,写上一次就好了。
任何一个职业里,缺的永远是中高级人才,希望你能能为那样的人。
PS: 面试的自信来源于过硬的基础
|