9

26自学转行前端(写给和1年前一样迷茫的我的你)

 3 years ago
source link: https://zhuanlan.zhihu.com/p/302710680
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

转行前端有哪些疑虑?

在人生的抉择处,寻求一些别人的经验和总结,无可厚非,但是决定了就一定要坚定的走下去,谨慎是为了更好的坚持,而不是放弃的理由。

写在前面:这里前后端指的是web开发的前后端。

1、前端岗位需求如何?前景如何?薪资如何?(这是对将转行业的必要考量)

2、是自学好?还是培训好?(抱歉,我是自学的,对于培训,下文不发表任何观点)

3、如何高效学习,多久能找到工作?

4、非科班会不会没发展?年龄大会不会被淘汰?

5、前端和后端哪个好?上手?发展前景?

以上这些问题,有些是1年前我想知道的,有些是1年前我所看到的文章里提到的,也顺便一起总结,我将用很长的篇幅从自己的亲身实践及各阶段的心路历程来论述。

关于我

先来看看我们是不是一类人吧,或者有多少相同点。

本人一般本科-电子信息专业,大学唯一学过与前端有一丢丢关系的课程,算是C语言吧(if、for这些语法和js接近)毕业后从事了近3年环保方面的工作,17年开始自学并转行,是一个不折不扣的非科班大龄零基础程序猿,不仅离开了自学的天堂(学校),而且已婚已育,常言道进入社会工作了就学不进去了,别说还有了家庭和孩子, 对此我有一些不同的看法:

这就提到了一个关于兴趣和压力的问题。

1、兴趣:从小到大,总是被问你的理想是什么?我依然记得这些声音:我要当科学家、我要当发明家......我只能说当时教育的价值观和崇拜都是正确的,可是这虚无缥缈的理想是个啥?

兴趣远比理想更能发挥积极作用,更贴近实际生活

这就是命啊!记得当时是我弟弟去问他上海的舅舅,学点什么能有个一技之长,因为他是做互联网这块的大牛,自然推荐我弟弟了一些js方面的知识,说只要肯学,上手了薪资很高。

说句实话,一开始就是被薪资高这三个字吸引了,连前端是什么都搞不清楚状态,就这么糊里糊涂的开始了,靠着一点c语言基础,学起了javaSE,看看概念做做小例子,无比畅快,相见恨晚,后来才知道java和js完全不是一个概念。

2、压力:从小到大,就没主动看过书,上学完全是被逼出来的,而有了兴趣之后,再给你来点压力,即使是这样的我,还是坚持看了好几本书的(具体过程后面详细讲)

综上所述:对于一个无兴趣无压力的我,再多的时间也是浪费,而当你有了努力的理由,就别怕来不及,我把这个看作是开窍了,存在即是合理,之前的经历都是铺垫,不后悔!

是自学好?还是培训好?

我是自学了差不多4个月才找到工作的,说实话有点艰难。前端是什么?要学什么?能做什么?怎么去做?这些问题都要你自己一点点去寻找答案,所以入门推荐视频学习,有的老师还是很优秀的,讲起来幽默风趣,总会带一点自己的理解,不像书本那么晦涩难懂(有了一定基础绝对要去看书、看书、看书,书是人类进步的阶梯,一点没错)。培训就是你花钱有人带着你咯,就像你回到了学生时代(具体效果,去问培训出来的人吧)。这里有必要强调一下上文提到的兴趣和压力,如果没有这两点,你自学肯定不会成功,培训就不一定了,就像我不爱学习也考了个本科一样(是不是有点自吹的嫌疑?)当时我选择自学主要有两点:一、时间和家庭不允许培训,一大把年纪了还跑去花钱远离家庭培训4个月,有点作;二、如果没有自学的能力,即使培训出来也是废柴一枚,不如直接搬砖去了,干嘛换个地方培个训再搬砖,多此一举。

这里先插播几个例子,有时候真感觉自学党和培训党无故就成了两派

1、我有个同学也是毕业后工作差不多1年,培训转行的,培训到入职顺风顺水,我在决定转行时也与他交流过,他作为一个成功的培训党,自然推荐培训的,而且他说他们经理的意思是偏向培训的,至少培训出来的人一定能做些基础的活,而自学的就不保证了。

2、在我工作半年之际,有幸代表公司面试了几个前端(社会可能对此有误解,姑且用着这个名称),我就按照公司工作的要求和一些基础知识聊聊咯,因为我们公司嘛招的都算是新人,所以这里面肯定是泾渭分明。

A同学是自学的,我问及一些基本工作要求和基础时,他很自信地说:没问题,很简单。毕竟大家都是自学转行的,何苦为难人家呢,那就多聊聊吧?言语间,他说他经常逛各大博客、张鑫旭老师的网站、看慕课网(噢哟,不错哦,感觉自学能力很强),还说他目前在研究vue、react等框架(我问他那你觉得用这些框架有难度么),他说我觉得很简单,人家都给你封装好了,你就拿过来看着文档用就好了,前端的东西没什么难度,我还想学点后端的东西(这里我不得不吐槽他了,你TM啥都不会呢就拽成这样了,要不招你来当销售?)然后聊了那么久,最后我还是给他机会了,我和他说基础很重要,你面试的是前端,给你个PSD图,做个静态来看看先(结果你们肯定想不到。。。我估计我这辈子都忘不了这货了)过了2天,按道理这时间很慢了,他发我一个网站,还备注了一大堆内容:说我这个导航是用的浮动布局的,轮播用的插件,悬浮的那个横幅我以为是固定在banner图上的,后来才知道是悬浮的,反正很简单就fixed就好了,就没做,下面的内容嘛全是选项卡,我就不做了(敢情我给你两天时间让你来给我指点迷津了?这里要骂人了啊兄弟们自己脑补,这种人千万不能学的,这就叫好高骛远、纸上谈兵)。

B同学是培训出来的,还有过工作经验,照理说能满足公司需求了,奈何她的观点又雷到我了。她培训出来做了2年切片,静态应该毫无问题,问及一些css知识却不会(是什么限制了你的能力),那再问问js吧,虽然这里用不到太多,姑且问问。来了,来了,大神开讲啦。她说js我基本没用过,反正现在cms模板里就集成了js插件,而且像阿里、腾讯、百度这些大公司都有自己的框架,前端的技术已经非常成熟了,我们没必要去学这些东西,只要用他们的就好了(你真的会用么?)也难怪了前端经常被吐槽(包括我依然不能算合格的前端工程师),我当时看到了一片文章《写给那些转行做前端的人》,很明显他是招聘前端的大神,虽然文章开头有些极端的劝阻转行的人,可以说是非常痛心疾首,但是后文的分析和给出的意见还是很中肯的,我觉得兴趣也好,压力也罢,即使是高薪诱惑,能激励你前行的动力都可以,但是千万不要误解。只有菜鸟才分前后端,那是为了高效开发,分工合作,当水平到达一定境界后必然是全栈,不同的只是出身,所以不要认为会了皮毛就能月薪上万,高薪后端说不定样式写的比你好!

结论:不管你自学还是培训,最重要的是基础和不断自学的能力,把培训当敲门砖方得始终!

前端岗位需求如何?多久能找到工作?前景如何?薪资如何?

1、需求

1年前我也是网上查来查去,居然都说前端缺口很大,找工作很简单, 这里补充一点我是无锡人(不能代表上海、深圳的实际情况) 很显然我信了,在查阅这些问题的同时,我也寻求着学习方法,入门还是推荐视频学习,我看的第一套视频是51自学网(纯粹分享,后来接触多了觉得妙味课堂和慕课网更好一点)上的H5教程,里面涵盖了html、css、js大部分基础知识,还有实战,质量还是可以的,唯一不足的是老师说学完这套视频运气好可以找份5000左右的工作,我居然又信了(这里除了求职者,可能还有用人公司的问题,后文写到求职经历时再行说明)我是个比较纠结的人,之后还看了很多html和css的基础视频,几乎都是讲解属性作用的,当然还有编码规范,我觉得不能相信一家之词,所以看了很多相同的视频,甚至还刷了一遍W3C的html、css、js,这里我可以很负责任地告诉你们,三人行必有我师,我们要站在巨人的肩膀上前行而不是看风景,当你集众人之所长的同时,潜移默化中扎实了你的基础(基础很重要,大公司重基础,小公司重实践,这是普遍现象,也是对于转行的人最残酷的地方,你会发现两者你都没有)一边面试,一边学习,我终于醒了,恍然大悟, 前端岗位缺乏的是中级以上的前端工程师,而不是入门级的 ,所以想光凭会一点html、css是找不到工作的,就算你背的滚瓜烂熟也没用,实践和理论不是一个概念,于是很多人会推荐新人,你直接去学bootstrap、vue、jq等等框架,这种急于求成也是要不得的,首先在基础不扎实的情况下你很难掌握,即使硬着头皮掌握了,开始了愉快的工作,你很容易迷失在自我感觉良好的幻境中,框架解决了大部分问题,疑难杂症问领导,而在中国估计一个小公司决定了框架后够你用一辈子,那你可算是真的完了。。。你的前端梦止步于此。公司不可能养一个无法完成基本工作的人超过1星期的,所以你得把前端最基础的东西做熟练,才能找到一个公司慢慢进阶。我觉得首先把图切出来,然后做成静态页面,你别管怎么获取动态数据怎么放到服务器给别人看,你就疯狂做你的静态页面(一开始没有PSD就百度找点图片还省得切了),零碎的知识点总是容易理解的,有针对性的小demo毫无压力,当你真正开始化零为整的时候,css感性的一面就会暴露出来,各种属性相互影响,你要把这些问题完美解决,不能等到工作让你布个局你还百度怎么清除浮动,兼容性另说了(随着时代发展,大部分只兼容到IE8,可以说减轻了很多负担)这里为什么说是完美解决?因为css不像传统语言那么理性,同样的布局你可以有很多的实现方法,这里再强调一遍基础很重要,想做前端就一定要尊重前端,别人云亦云说css很简单。正因为它的简单,导致了它的不简单。砖头式编程就是定宽定高,浮动,更有甚者直接绝对定位的,当你刚学会理论没有实践的时候也许你就会这么做,所以多练多总结才能配合使用好css的各个属性,做出一个合格的布局,好多后端就是被这种简单蒙蔽的双眼(吐槽时间:如果你去应聘一个公司,他觉得前端很简单随便找个人都能做,而且后端可以兼职,只是最近忙想找个前端做做样式的,千万不要去!!!分析:会样式的后端到处都是,做的比前端还好的凤毛麟角,基本p8以上了,这样的公司你去了得不到尊重不说,让你改他们后端写的样式就要了你亲命了)目前我所遇到的后端通常学会个浮动就觉得拥有了全世界,有问题直接绝对定位,哈哈,你影响我?我飞到天上看你怎么影响我,什么这边怎么间隙小了,来个margin吧,怎么又大了?改个负值(我可真聪明,有些菜鸟前端都不知道可以用负值吧)文字居中直接<center>,文字滚动就<marquee>,还写样式,还用插件,都是傻瓜,这么好用的标签不用。(因为这是写给转行同学看的,想来你遇到的不会比我强太多,如果不是这样,我只能两行老泪带着羡慕恭喜你)所以入门级的你看到这些布局和弃用标签怕不怕,就问你怕不怕,维护起来比登天还难,好不容易找到了修改了,你发现全是内联,没有类名,最多给个id,有多少就改几遍,抱怨?BB?要不你重写,本来样式就不归我后端管(能抱怨还是好事,我怕你被他们同化,这样的话你也可以努力一把偷师,从后端入手,不过老板可能要说你了哦,这些东西我们后端都会,你作为前端还改乱了,要你何用)

结论:说了这么多,无非还是告诉你们基础很重要,虽然实际需求的不是我们,但我们扎实了基础,假以时日我们就是需求对象。做前端就要尊重前端,中国目前还是后端地位高一些,主要发展早,对于客户而言,功能总是排在界面之前,你不能给人家一个赏心悦目却不能用的产品吧?早期程序员都是全栈的,既然现在随着发展分离出来,肯定是有他自身的存在价值和体系,技术体系日益庞大,即使站在巨人的肩膀上短时间未必能消化,才有了前后分工,正确理解他存在的意义,别自己限制住自己,不想当全栈的程序猿不是好猴子!!!

2、多久能找到工作

听到过很多这样的说法,前端很简单,自学1星期就能做网页,这其实也不错(只要有公司要你,出问题时,给你足够的时间去解决,或者有人给你顶着,和你合作的人不嫌弃你的代码质量就行)本着对自己和公司负责的态度来说,你至少静态页面要做的很6,像我上面提到的,做一个静态页面基本不会出现布局问题,也不用百度就合格了,具体时间看个人,我是用了4个月,主要当时很迷茫,完全和别的文章推荐的模式一样,面试要求这个了,我就去学这个,要求那个了,我就去学那个,当时我也以为自己css很牛逼了呢。

插播一下我的经历吧

(1)上文也提到,我刷了很多遍html、css基础,还看了《DOM编程艺术》成就感十足,做了几个静态网页,以为很牛逼了,就去面试了,结果人家问jq会不会用啊,轮播、放大镜、选项卡这些基本组件会不会啊?我是一脸懵逼。

(2)这次刷了《锋利的jquery》完全颠覆了《DOM编程艺术》这本书(当然看还是建议看的),取值赋值那叫一个6啊,开心,还用起了小插件,感觉自己做的网站有了动态效果(该不会这就是网上说的"动态网页技术"吧?哈哈)又去面试了,啪啪啪,上来先把自己会的展示一下,面试官问:bootstrap会吗?现在可都要响应式的。

(3)继续回去补响应式开发咯,学一学bootstrap,然后又遇到问vue会吗?react会吗?此处就长话短说了,还有问混合式app开发会吗?于是我还去学了基于mui的app开发,最气的就是被面试官喷前端是搬砖的,不懂后端做什么程序员之类的,那时候我很谦卑,还回去学mysql了,这个事情,后文总结的时候,我要拿出来吐槽一下某些用人单位的。

(4)最后我很感谢聘用我的第一家公司,但是我还是进去做网站的,刚进公司时,我还经常挑灯夜战,因为代码可维护性差呀,所以说基础很重要(强调了那么多遍基础,可能也不太好理解何为基础,例如:js里事件的冒泡与捕获,闭包,原型链机制,布局当中的BFC,垂直居中等一系列实践的问题),迷茫的我被牵着鼻子学了那么多暂时用不到的东西(不后悔啊,永远不后悔自己的任何经历,事实也证明存在即合理,在公司需求app的时候,我和同事用mui完成了跨平台的混合app并成功发布)

总结:集中精力去扎实基础,争取2个月找到一家做网站的公司,别没学好基础就随波逐流去搞各种框架,先了解,缘分到了自然会了,引用一下自己创建博客园时的签名"所谓境界,像宇宙般虚无缥缈,却又像宇宙般在岁月的长河中积累、沉淀,无声无息地壮大自己。有些事非一朝而能明了,有些理非一夕而能透彻。带着自信坚持下去,书读百遍,其义自见,境界到了,万物皆虚,万事皆允!"

大公司重基础也对学历和年龄讲究,小公司重实践经验,如果占其一,你还可以选择选择,既然两者都没有,那就没什么好考虑的了呀,破罐子破摔啊,反正转行找工作就是艰难,个人建议注重基础,未来才走得更远,然后拿出你态度去海投,没必要去迎合那些乱七八糟的公司需求,有些公司需求一大堆,又写着经验不限,恨不得你啥都会,记住真正有技术需求的,你那仅是了解的状态一眼就被看穿,而随大流随便写需求的公司往往都不和你谈技术的,所以会就会,不会就不会,正是应聘者和用人单位的这种不坦诚导致了现在的前端乱象(用人单位嫌弃简历上写的天花乱坠,什么都会,一问三不知的,应聘者也恶心那种后端为主,只是知道前端有哪些技术栈就直接罗列一下的公司)吐槽时间:中国至少无锡,好多公司领导都是销售,就算技术经理也是后端多,如果到达这个位置还对前端一无所知,我觉得有必要喷一喷,你那么看不起前端,你招什么前端,让保洁阿姨兼职好了,我去应聘的web前端,你问我java会不会?别告诉你的java指的是javascript而不是java,我说我会js可以考虑学一下nodejs往后端发展一下,领导发话了啊,js只是运行在浏览器的一个脚本而已,你会这个有什么用,不知这位自称搞了10年技术的大佬断网了多少年,这绝对真实,他应该不是技术大佬而是大忽悠,否则公司危矣,面试遇到这样的,你就直接拿简历礼貌的走人吧,记得带上简历(1块钱复印费呢),还有就是大部分不限经验的,都是培训机构,一般上来问一问你的情况(最好你不会,你要是会,他都能给你忽悠的不会了)然后就推荐你培训啦,这就是市场经济,如果你坚持不去培训就提前做好调查,别总是白跑一趟,有些明确的就可以拉黑或者屏蔽了。

3、前景

H5新增的api如视频、音频、canvas不要太强大哦,加上CSS3的新特性,可以说颠覆了html+css创造之初只为展示图文信息的初衷,走向了富媒体时代,js也因node的出现,向服务端进军(之前看到node之父自己数落了一下自己犯下的错误,然后宣布抛弃node这个亲儿子,具体还没怎么了解,不管怎么说js越来越强大了)。人类作为生物链顶端的生物,永远不会满足于现状,当互联网产品稳定成熟之际,拼的就是差异化、个性、创意,前端一定程度上也是个设计师,哎呀,这家伙真的是太花心了,难怪被世人误解。加上微信小程序和hybrid-app的出现(配合性能越来越高的硬件),ios/安卓大势将去,可能被前端收编,当性能问题不再是问题时,跨平台的特性将锋芒毕露。

4、薪资

从行业看,大数据显示金融业最高,然后就是IT行业,再从前后端看,顺便解决 前端和后端哪个好?上手?发展前景? 这个问题。

关于上手: 当时,我得出的结论是前端入门简单,深入较难;后端入门难,扩散简单;(所谓难易,主要指短时间投入的学习成本,杠精绕道)前端三剑客HTML、CSS、JS基础的知识点很容易理解,所以说上手快,但是往往简单的东西,深入总是难一点,就好比巧妇难为无米之炊;后端则相反,因其发展较早,成熟而稳定,一上来就扔给你一大堆体系,要掌握很多知识点,但是运用熟练后,一通百通,天高任鸟飞 海阔凭鱼跃(从入门浅谈而已,大神勿怪,有更好的说法请指正)

前后端薪资和发展之类的比较,这里引用大神的回答(就不献丑了),以下总结几点

(1)前后端在大公司是一个批发价

(2)薪资取决于市场,也取决于个人工作能力和谈判能力

(3)不管是前端还是后端,都是敲门砖,未来走向高P时,他们是同一个起点(web开发)

贴一下原文地址 前端工资比后端低吗?如何规划自己的职业

非科班会不会没发展?年龄大会不会被淘汰?

很多传统行业都有越老越吃香这一说,那小伙伴们肯定也想了解一下IT行业啊,是不是,未雨绸缪总是好事。1年前我也看了很多相关论坛,满满的负能量,差点动摇了我的心,下面划重点逐个击破!

1、程序员圈子小,做久了会脱离社会,难以与人交流。你确定你在别的行业就善于交流了?互联网无国界啊,这圈子还小?虽然氛围是有导向作用,但你既然察觉了就该自我调整,而不是怨天尤人。有些销售满嘴跑火车,几年下来,不撒个慌,吹个牛都不自在了,这是优点还是缺点呢?所以,要发挥人类强大的适应性,因地制宜,通常好的销售也是做足了功课,理论上不比技术差的。

2、经常加班,身体差。这也有必要解释?你忘了大学时,我们一起包过多少次夜么?你还说你要奋斗到天明。人家传统行业的销售还说整天胡吃海喝伤身体呢?你是不是在那羡慕?有空抱怨,不如一起去跑个步,健个身,我发现现在好多程序员身材都很棒呢!

3、吃年轻饭,容易被取代。随着社会老龄化日益严重,越来越多的年轻人更愿意到年轻的IT行业来工作,其实我也觉得IT行业更有朝气,就算搬砖也得找个舒服的地方搬吧。传统行业似乎真的是越老越吃香,一大把年纪啥也不做,整天絮絮叨叨,阿谀奉承,你再优秀也别想把他赶下台,但是你没看到他踩在多少人身上才上去的。所以说吃年轻饭是不对的,IT行业要做高管,也得学管理、大局观、战略部署、人脉资源等等这些和技术无关的,或者上文大牛写的职业规划里面有各种进阶方向,纯技术研究,年轻人能赶上你的,那绝对是天才,就别不服了。如果说你做了10年还一直在套人家的模板,用着老技术,那分明是你在抢新人的饭碗,还说被取代......

4、不是科班出身,不懂计算机原理(后面省略一万字骂人的话)论坛和贴吧确实有科班出身的优越狗,但是有好多大神都不是科班哦,就像大部分人的工作都不是大学学的专业,有空就补补计算机方面的书籍,看看底层,做个铺垫(防止遇到科班出身的优越狗)。

如何高效学习?

1年前看的第一套H5视频,还依稀记得老师说的一些话,这里先还原一下:

(1)多学、多看、多练,坚持每天打代码,即使是重复的;

(2)乐于分享、帮助他人解决问题的同时成长自己;

(3)先模仿,后创新,学会站在巨人的肩膀上;

(4)规范代码,方便自己复习和他人阅读;

以上这些,可以说是终身受用,但对于转行的小白来说,显得有点大道理了。反正我刚开始是完全想不到去上什么知乎、思否 、 github 、博客园 、CSDN 、掘金等等这类网站的,我的生活——百度足以。所以这里推荐一下上述网站,有问题去里面搜搜,有时间去里面看看相应的栏目,有能力去里面解答一些相关的问题,把这些当做玩游戏做任务一样,慢慢你就升级咯。

除了关心我的人,能看到现在的小伙伴,一定已经下定决心了,分享一下我看过的觉得好的书籍(从左往右,我看的时候有点乱,现在我帮你们排好序了哦)

html:标签-特性-语义化(html和后二者戚戚相关,随着后二的进阶,自然而然地进阶)

css:css2基础属性-css3新特性-《css世界》深入理解css2属性-《css揭秘》玩转css3新特性

js:《DOM编程艺术》-《锋利的jquery》-《js高级程序设计》-《高性能js》-《js语言精粹》-《js设计模式与开发实践》

注:犀牛书我没看,不代表不推荐

有了一定基础还是推荐看书学习,更系统,看博客、文章就上文提到的知乎、掘金等等就不再贴链接了,有时候看视频学习没那么枯燥乏味,那就去慕课网、妙味课堂等等,当然那些大火的框架,自然是去看对应的官方文档和社区。

基础也很抽象,怎么对口找工作?

1、bootstrap以手机端为主,制作多端响应的网页。

2、微信小程序,用微信提供的框架制作只能运行在微信中,类似原生app的应用。

3、cms内容管理系统,用后台模板数据标签+静态页面组合成完整网站。

......

看公司主营业务,选一个提升熟练度,拿下第一份工作,不要什么都了解,什么都不会。

结尾

至此本文也该结束了,这篇文章是写给和我一样想转行的人看的,也许很多人比我们优秀,也有很多人没我们优秀,别信夸赞,别怕批评,前端路上You are not alone!

也以此文勉励自己,总结过去,走向未来!

原作者姓名:周振超

原出处:segmentfault

原文链接: 26自学转行前端(写给和1年前一样迷茫的我的你)_前端野路子 - SegmentFault 思否


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK