程序员是一个很宽泛的群体,就软件领域而言,又有web后端开发、web前端/APP开发等不同的细分领域。因为本人对前端开发比较熟悉,这里就前端的入门给一个简单的指南。一名程序员,如果要保持足够的竞争力,是需要学习者本身具有一定的自主学习能力的。所以并本文不打算涉及到很细的东西,只是引出一些点,帮助大家在学习的路上进行摸索。
目录
转行(学习前端更容易获得正向反馈)
计算机行业的同学,在进入前端行业是比较容易的,尽管学校里并不会教大家HTML、CSS、JavaScript的基础知识,也不会教大家Vue、React等前端框架,但是因为学长学姐甚至很多同班同学都会在毕业后进入这一行,耳濡目染之间自然就知道前端工作是做什么的了。
但是对于非计算机相关专业的同学,要转行前端,建议先去了解一下前端需要学习的知识点以及前端工作的日常是如何的,看看自己是否对这块感兴趣。如果感兴趣当然是最好的,如果不感兴趣也没关系(毕竟现实中不管哪个行业都没有多少人是热爱自己的工作的)。但是如果非常反感,可能就要考虑下自己是否适合走这条路了。
一般来说,对转行而言,前端是比后端要好入门,因为前端能看到自己开发的页面样式,能看到自己写的交互,能看到自己的“产出”,更及时地收到正向反馈,比较容易收获到成就感,进而促成自己完成转行的初期技术积累。
前端工作画像(前端开发者工作中都在干嘛)
描述前端工作画像,是为了让未入前端行业的同学能知道前端开发者的工作日常。
通常在工作中(此处为一个典型场景),前端开发者会使用两个屏幕(这不是必须的,但确实会提高开发效率):
其中一个屏幕开着编辑器软件(软件里打开的就是我们的“代码”,也就是程序员天天写的东西)。
另一个屏幕里开着Chrome浏览器,浏览器里展示着我们开发的网页(通常会同时打开浏览器的“开发者工具”视图,就是下图中右边的区域)。
大多数前端程序员的工作内容是画好页面样式(主要是HTML和CSS代码),然后写用户点击页面上的按钮后要处理的逻辑(主要是JS代码)。这里提到的点击按钮要要处理的逻辑,有以下一些典型场景(只是举例):
- 查询用户账户里是否有余额,若无余额则跳转到充值界面让用户去充值。
- 校验用户在当前页面输入的身份证号是否格式正确,如果不正确则提示用户检查输入的身份证号是否有误,如果正确则保存用户输入的内容。
初级阶段的程序员工作基本类似上面这样(虽然进行了简化),一些高阶程序员的工作内容并不会像上面听起来那么简单(一般是数据处理逻辑更复杂了,或者是涉及到了一些编译、架构的高阶工作)。
自学/报班(根据自律能力判断)
如果你比较自律,目的性比较强并且能坚持下去的话,自学是最好的,自学能力和对这块的求知欲决定了未来你可能达到的高度。
但这并不是说报班不好,如果自律能力比较差,那么一般是坚持不到成功转行的。在这种情况下强烈建议报班,不能报那种线上的班,一定要报那种线下的班。不然多半就是浪费自己的时间,然后还没转行成功。之所以不建议报线上的班,是因为线上学习是需要一定的自律能力的,如果自律能力足够的话,自学就好了,浪费钱干什么呢?互联网这块网上多的是学习素材,不会找不到的。
学习期限(全时间投入的话可以预估4个月内转行成功)
在经过对前端领域的初期了解(通过知乎、掘金等网站,或者百度、谷歌等搜索引擎去了解)之后,如果判断自己确实想要转行前端,那么就涉及是一边工作一边学习还是辞职全部时间投入学习的问题了。
如果是刚工作工资不高但生存压力不大并且对成功转行比较有信心的同学,我比较建议等你攒到了可以在没工作的情况下生活4个月左右的存款时,辞职全时间投入到前端学习中。因为这个时候你转行的收入损失不大,相对而言你的时间成本比收入损失的成本要更大一些。这种情况下,相比一边工作一边学习一年,辞职全时间学习4个月的损失会更少一些。而且早些转行成功可以早点拿到更高的收入。另外,由于没有工作了,会让你有种破釜沉舟的感觉,并且随着手里存款的减少,生存的压力也会推动你去尽快学成转行的(希望你不是那种都工作了还动不动向父母要钱的人)。
如果是其他一些场景,比如家里欠了很多钱需要你协助偿还,或者有家庭要养不能没有工作,又或者年纪比较大担不起失业又转行失败的风险的话,一般建议你一边工作一边学习。
全时间投入学习的话,学习期限上可以要求自己“最多4个月”+“尽量3个月”转行成功。边工作边学习的话,鉴于每个人每天能投入学习的时间和个人学习能力的差异,需要学多久是没法估的。
学习路径/学习内容
跟班学习的话,按照班级上课的节奏来就行了。自学的话,建议知乎搜“前端入门”,然后挑几个回答看一下,这里就不赘述了。
基础知识(HTML、CSS、JavaScript)是基础知识,所有人都要学的,而且各种入门教学的教学内容都是差不多的,正常学就可以。此处推荐两本书籍:
- 《HTML5与CSS3基础教程》
- 《CSS设计指南》
框架方面的话,现在比较流行的是Vue和React,热门框架是会随着时间变的,几年之后也许又是其他的什么框架的。对于新人来说,前期时间和精力有限,需要决定学习哪个而不是全盘通吃一起学。至于要学习哪个,建议上招聘网站用这些框架名当关键词进行搜索,根据搜索结果的多少来判断某个框架在当地的流行程度,借此判断自己学习哪种框架会更容易找到工作。框架方面建议跟着视频里的案例学习,经常去翻看框架的官网官方文档,不要去看书。
有些帖子里会提到Node.JS,对于出于转行阶段的同学,这些内容建议忽略,公司不会要求前端新人掌握这些东西的(很多从事前端工作好几年的人都不会Node.JS)。
推荐的网站:
检验学习成果
你需要不定期地判断自己的学习成果。有两种方式,一种是去看招聘信息,一种是去面试。在你学习了一个月之后就可以间歇性地看看网上的招聘信息了。在你学习快3个月左右的时候,就可以边学习边投简历约面试了。头几次面试是很容易感受到差距的,这样面试回去之后学习时会更有动力。在第4个月结束之前,尽量找到工作。第一份工作以积累经验为主,工资不是重点需要关注的东西。第一份工作一般薪资是不高的,如果在半年、一年后你的能力提升明显,但公司不能及时给你涨薪的话,这时候可以出来跳槽一次。一般在工作1年、3年、5年后这三个时间段跳槽的性价比会比较高(因为1年经验可以看要求工作经验1~3年的岗位,3年经验可以看要求工作经验3~5年的岗位,5年经验可以看要求工作经验5~10年的工作,也就是说这几个时间点可以看要求经验更多的岗位——平均来说对应的就是更高的薪资)。