如何自学成为一个WEB前端
WEB前端是做什么的?
那些什么高大上的介绍作者就略过了,简单来说就是做网页的,我们上网浏览的网站界面就是WEB前端工程师做的。
在互联网迅速发展的近几年,你上网冲浪的时候是不是感觉WEB网站越来越漂亮酷炫,功能越来越多,越来越复杂?各种类似桌面软件的Web应用大量出现,没错,WEB前端在其中有着很大的功劳。
发展方向
WEB前端的发展迅速导致其细分出了很多细分职业,我先来说一下我了解的WEB前端的分支,欢迎各位前辈补充:
1、网页设计方向(移动和PC):主要偏向html、css。js主要是做一些特效,最好有一定美术功底,很多公司还会要求会photoshop。Css功底一定要好,推荐看书《CSS权威指南》,系统的学习css。
2、B/S应用方向:这个方向就是用html、css、js来做一个web应用程序,和QQ、微信没什么两样,只不过是用网页来打开的,举个栗子:12306火车票订票管理页面、淘宝订单管理页面,或许你在工作中还会用网页登录XX管理系统。该方向主要偏向js,需要会一种以上的MVC框架,如angular、react、vue等,这些框架会在接下来介绍。
3、hybridAPP:没错,html、css、js也是可以开发手机app的,携程、淘宝、支付宝就是其中的代表产品。
4、网页游戏:这方向需要有一定的算法基础,面向对象编程功底,设计模式架构经验,不建议新手从这方面入行,当然如果公司愿意让你往这方面发展又另说。
Web前端的细分职业还有很多,甚至有的公司在用WebGL来开发网页版3D游戏,不得不说web前端这几年发展速度真快,所以说web前端是一个非常有前途的职业。
看了上面这些信息,是不是感觉太多东西要学,精力不够用了呢?其实刚入行最好是在网页设计和B/S应用两者中选一个,这两个方向也是应用最多的。
关于自学与培训机构
如果在学习之前没有编程的经验的话,自学其实是一条很困难的路,因为不仅要从0到前端入门,还要从0到编程入门。
培训机构可以让人迅速入门,但也不是没有缺点,下面的我总结的自学和参加培训机构的优缺点。
——培训机构
优点:
1、入门时间快;
2、知识点比较系统,针对目前流行的各种技术栈;
3、有一群小伙伴一起学习,一起鼓励;
4、会针对面试技巧进行培训;
缺点:
1、需要三个月到五个月不等的完全脱产时间;
2、收费很贵,投入成本高,成本=脱产的时间成本+学费,准备好3W左右的学费+生活费吧(有的学校提供分期付款,但跟分期买房一样,有利息的),如果找不到工作,压力会非常大;
3、短时间学会这么多知识,带来的必然是填鸭式的教学。学员的自学能力没有得到锻炼,而前端是一个需要不断学习的行业。
4、很多公司对培训机构出来的学员有抵触情绪,所以简历一般要包装过才能找到工作;
——自学
优点:
1、0成本投入;
2、学习的时间可以自行控制,甚至可以边工作边学习;
3、学习重心可以自行控制,针对前端某个细分方向,针对性的找工作;
4、很多东西是自行摸索,但也养成了自学的习惯,这对今后工作发展非常重要;
5、当自学成功入门后,会积累强大的自信;
缺点:
1、自学的周期比较长;
2、需要有一定的自制力;
3、有时候会很孤独、很痛苦;
两种方式各有各的优缺点,如何选择就看看哪种方式适合自身的情况。
当初我决定自学主要是因为内心的一点小傲娇:如果我自学入不了门,那我为什么要做WEB前端?就算去培训完找到了一份工作,那么我需要的仅仅是一份工作么?
下面是我在网上搜集的一些碎片化观点,以及一些关于这个问题比较好的文章链接:
*如果同学你具备一定的编程基础,逻辑,而且对开发语言非常有兴趣,能够坚持的每天在改正错误和克服难点,那么你可以尝试购买书,或者看看视频自学。如果同学你是完全0基础,非计算机专业,不容易坚持做一件事,那我建议同学你找一个培训机构,这样不仅有一个完整的0基础入门教程,也可以有培训的老师对你做出监督。
*如果非要用什么比喻的话,培训出来的就好比是练的辟邪剑谱葵花宝典之类的,虽然在短时间内会有一个比较显著的提升,但是终归是根基不稳。但是还是比不上那些从小研习易筋经的和尚。
*自学还是培训这个东西因人而异,有的人有一定的计算机基础,而且有一定的自制力,那么他自学起来真的很快。同样,我身边也有很多培训出来的人,他们给我的感觉就是没有计算机相关的基础,跨行业学习前端,所以自己自学上手很慢,且没有方向。其次,有些人自制力可能有些差,自学进度及其慢,反而给培训班砸上近两万块的培训学费让他们感到肉痛,而不得不认真的去学习前端。
初步接触
刚开始自学时看教学视频是最有效的方法,没有之一,当然你有使用其它编程语言的基础那当我啥都没说。因为刚开始接触,最难的不是知识点,而是各种概念,教学视频里不仅会有知识点的渐进讲解,更会用通俗的语言来让你理解各种概念,而这些概念通过书籍或者别人写的技术文章是很难让你理解清楚的。
我有个朋友是计算机专业的,在学校的时候准备学一下web前端知识,然后就抱着一本《JavaScript权威指南》开始看。结局自然是可以预见的,被书中各种难点:原型、继承、闭包打击的拔凉拔凉,然后就没有然后了。
视频的教程在网上可以搜集到很多,自己找一个比较专业的,我也就不推荐了,毕竟搜集信息也是程序员必备技能之一。建议直接去淘宝搜,里面有很多卖视频的,花几块钱就可以买到一整套视频。
特别注意:每看完一节课程的视频后,一定要把视频里的讲的代码敲一遍。可能你买视频的时候还会赠送视频里面讲解的源码,但是我不建议直接打开这些源码看,甚至可以直接把源码删掉。好记性不如烂笔头,学习编程的过程中自己动手敲代码永远是必不可少的。
其实我觉得看教学视频和培训班上课就内容上而言没有太大区别。只是学习氛围不一样,上课会强制你规律性的学习,学习的气氛更浓郁一些,会有布置作业让你动手。自己看视频的话就得看你心情了,心情好就宠幸一下教学视频,照着敲敲代码,心情不好就玩去了。
不管你是打算自学还是准备参加培训班,我都建议你先看看视频。有些人一学起来就特别感兴趣,根本停不下来,或许你就是其中一个呢?反正试错成本很低,为什么不呢?
如果是业余时间来学习的话,建议每天看1到2节课时,如果是全职学习的话,每天也别超过4节课时,学太多不容易消化。剩余时间可以去跑跑步、打打球,我们是准备长期作战的,前期消耗太多热情并不是什么好事,每天来点运动可以让你第二天保持清晰的头脑。
可以发个朋友圈告诉你的朋友你在自学WEB前端,相信有了朋友的关注,你学习的动力会更足一些,毕竟牛吹出去了,却没有达成目标是很丢脸的。
在这一阶段中,可能会花掉1个月到2个月的时间。这段时间后你应该学会了基础的html,css,js知识,会做一些简单的页面和特效。达到哪个标准算是完成这一阶段呢?你看去“w3school”和“菜鸟教程”(不要问我这是什么东西,百度一下,你就知道)上的html、css、js教程,如果里面的案例代码你90%都能看懂,那恭喜你,第一阶段任务完成了。
项目初涉
完成了第一阶段后,你可以开始做一些小项目了,这个链接有一些适合新手的小项目:
https://zhuanlan.zhihu.com/p/22766255
最好自己去网上根据自己的情况找适合新手的小项目来做,一开始一定不要做太难的项目,不然很容易有挫败感,得循序渐进,不断建立信心。
这个过程是比较艰难的,你必须自己去分析这个项目如何去做,然后去查资料,搜索类似项目,有可能遇到一个坎就困你几天。
做项目是为了强制你去查资料,去动脑筋,网上有些项目很详细的写了设计思路,设计步骤,能找到这种资料挺好的,但一开始尽量别去看这些东西。
尽量找有源码的项目,实在完成不了,能看懂也有很大的收获。
别忘了总结学习方法。
这阶段的时间,业余自学尽量控制在一个月以内,全职自学尽量控制在半个月以内。
框架选择
前端框架分为CSS框架和js框架两种,PC端的CSS框架毫无疑问选择bootstrap学习,这也是每个前端必学的框架。移动端的css框架是百花齐放,ionic、jquery moble、amazeui等等,作者了解不是很多,这方面就不多介绍了。
如果选择了做网页设计,那么你就得多在html、CSS和jquery上下功夫了,jquery毫无疑问是用的最多的js库(作者认为它不是一个框架,是一个js工具库),社区有很多资源,各种插件,UI库多的数不胜数,或许你在第一阶段已经开始接触jquery了。
如果你选择了B/S应用方向,你得选一种mvc框架学习,并且不建议这时候去学习jquery,因为jquery的思维方式有的时候是和mvc思想是相左的,下面是作者对几种主流MVC框架的主观认识,仅供参考,主要还得你自己调研并判断学习哪一种:
1、angular:非常优秀的MVC框架,社区非常完善,各种UI组件应有尽有,PC端移动端都很完善,对于大多数需求来说,你只需要去社区找现成的东西就可以用,不需要你再去造轮子。作者使用的就是这个框架,但目前比较尴尬,因为angular2已经发布了,angular1迟早要被淘汰,但angular2又没有被国内太多公司使用,招聘这方面的人才的公司不多,并且angular2的学习曲线比angular1更陡峭,新手学习起来非常困难,虽然作者很看好angular2的前景,但确实不建议新手去学习。
2、react:跟angular不同,react是轻量级的框架,速度很快,但功能肯定没有angular那么完善,一般是和其它框架配合使用,一些业务是需要你自己造轮子的,不过现在web前端需求越来越复杂,社区提供的组件已经很难完全满足某些需求,一个高性能的轻量级框架就受到了大家的钟爱,华为就是用react,在2016年,react的使用量已经超过了angular,并且在移动端也有很快速的成长。
3、vue:vue是后来居上的一个框架,成长速度非常快,和react的适用范围非常相似,比react更小、更快、更易上手,前景也是非常光明的。但目前社区不如react成熟,移动端也不如react完善。
其它MVC框架作者就不一一介绍了,作者个人建议大家从react和vue当中选一个进行学习。
项目进阶
在学习框架的同时,你可以自己找一个稍大点的项目来做了,边实践边学习是最快的成长方式。
如果选择做网页设计,你可以仿制一些大型网站,比如淘宝、百度的一些界面,里面的数据你可以自己模拟,由于作者不是这方向的,能给的建议不多。
如果做B/S应用,可以仿制“Worktile”,“钉钉”这样的大型B/S应用,同样,里面的数据你可以自己模拟,里面肯定有很多的技术点你没办法完成,没关系,别气馁,只要大致框架像就行了,人家专业的前端团队花了那么多时间做的,你短时间想做到那种程度肯定不现实的。
当你的项目到一定地步的时候,你是不是感觉你的html、css、js文件越来越多了呢,而且越来越难控制了(虽然你可能不会觉得)。这时候你就需要一个前端自动化工具来对代码进行合并、压缩、部署、模块化管理,目前比较流行的有webpack、grunt、glup,webpack现在非常火,用的公司也多,作者推荐用wenbapck,当然,你最好都了解一下,对比做出选择。
如果是在公司工作,你总不能把代码一直放在你自己的电脑上吧,所以你还得需要一个代码管理工具,git好无疑问是新时代青年最好的选择。顺便你可以去申请个bitbucket免费账号,创建一个代码仓库,把你写的代码用git push到仓库,自己也可以多玩玩git一些常用功能。
找工作
你经过一系列闯关,终于要面对最后一关的大BOSS了,想想是不是有点小激动呢。
在找工作前,你得临时突击一下,去网上下载一些前端面试题来做吧!相信我,如果面试的公司有笔试环节,他们的题基本上都是在网上找的,很少有公司有那个闲功夫自己出题的(BAT这样的大公司除外),做题的过程也可以不断完善你的知识。
在项目进阶这个阶段时,其实你已经可以着手去找工作了,工作中技术积累是非常快的,别担心技术不够,一些公司还是愿意招一些初学者,毕竟便宜啊,多投简历总能有机会的,不行那就继续学习。
找工作期间多跑步吧,可以让你保持好的精神状态,并且也有助于缓解压力。
注意别被一些XX教育投资公司、XX人才培训公司招实习生误导了,这些公司就是用招聘来说服你去培训的,特点就是强调“无经验”“包吃住”“对编程有浓厚的兴趣”。
后续
如果你自学找到了一份WEB前端的工作,恭喜你,这段经历一定会是你人生中宝贵的财富,从此你自信心爆棚,并且你一定积累了丰富的学习技巧,似乎只要你愿意去学,就没有什么可以难倒你。
作者为你感到骄傲!
等工作趋于稳定了,别忘了夯实基础,系统的梳理一下知识结构,看书是最有效的方式,推荐《css权威指南》《JavaScript高级程序设计》《JavaScript权威指南》《JavaScript设计模式》。
《JavaScript高级程序设计》偏向dom;
《JavaScript权威指南》偏向js语言本身;
《JavaScript设计模式》有一年工作经验后再去看比较好,设计模式是可以受益整个程序员生涯的好东西。
作者见识有限,本文仅供参考!
作者写在后面的话
不知不觉自学入前端的坑已经有段时间了,目前遇到了技术瓶颈,处在职业倦怠期,即:日常项目需求已经很难提升技术水平了,新知识的get速度很慢。这个时期对我来说是非常焦虑的,我想方设法在突破这种困境,写技术博客就是其中一种方法。我定的目标是,每个月最少写两篇技术文章,最好每周一篇。每篇文章一定要有大量的调研,尽量保证文章的严谨,在调研的过程中就可以不断扎实基础。
博客的主要面向人群:WEB前端初学者。就跟做产品一样,文章要有准确的定位。本人技术能力有限,写不出精彩绝艳,有深度的文章。唯一值得一提的是我是自学入行的,走了许多弯路,深知自学的不易,甚至是痛苦,也总结了一些经验,希望我的文章能够对WEB前端初学者带来一些帮助。
其实我生出写博客这念头的时候是很惶恐的,因为我也是个新人,我哪里有这个资格
写文章给别人看?让我安慰的是,一篇技术文章能不能让人受益,不仅取决于作者的技术水平,也取决于作者的表达方式。所以我会努力让自己的文章理解起来更轻松,对初学者更友好,也算是跟前辈大咖们进行差异化竞争。
文章中如果写的有什么不对的,需要补充的,希望各位前辈不要吝惜自己的键盘,多多斧正,就算是把我批的一无是处我会也很开心。
如何自学成为一个WEB前端的更多相关文章
- 对于一个WEB前端初学者,学前端应该注意,有什么技巧
web前端经验总结需要注意的地方和技巧如下: 1.编程思维 学习web前端开发核心在于一个“编程思维”,因为每段代码都不一样,都需要分别去看,所以只要你掌握了学习web前端的编程思维,那么写程序对于你 ...
- 一个Web前端工程师或程序员的发展方向,未来困境及穷途末路
如果你刚好是一个Web前端工程师,或者你将要从事web前端工作.你应该和我有同样的感慨,web前端技术到了自己的天花板,前端工作我能做多少年?3年或5年?自己的职业规划应该怎么样?收入为什么没有增长? ...
- 一个web前端开发者的日常唠叨
时间飞逝,距离上一次更新博客已经过去了三个月,上一篇博客的发布时间停留在了4月4日. 近来三个月没有更新博客,深感抱歉和愧疚.停更博客就意味着学习的越来越少,作为一个普通的前端开发者来说这是万万不可取 ...
- 一个Web前端自学者的自述
想来想去还是写下这篇文章,先说明,我精通JAVA编程语言和web前端常见的技术,个人是做JAVA的多,但是更加喜欢前端.因为我从高一开始接触JAVA,家父是黑马的JAVA讲师,自己对编程很热爱,在大学 ...
- web前端开发培训和自学 哪种选择更适合你
web前端相对于其他软件开发是比较容易入门的,但是如果深入学习就比较困难了,这门技能需要从业人员掌握一定的设计.代码.交互技能和一些SEO技能,容易入门还涉及这么多知识和技能,那学习web前端开发到底 ...
- 2019年Web前端入门的自学路线
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文.本文内容不定期更新. 我前几天写过一篇文章:<裸辞两个月,海投一个月 ...
- 大专生自学web前端到找到工作的前前后后
先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...
- 大专生自学web前端前前后后
先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...
- 大专生自学web前端到找到工作的经验
先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...
随机推荐
- Tcl与Design Compiler (十二)——综合后处理
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 概述 前面也讲了一些综合后的需要进行的一些工作,这 ...
- Arduino String.h库函数详解
此库中包含 1 charAT() 2 compareTo() 3 concat() 4 endsWith() 5 equals() 6 equalslgnoreCase() 7 getBytes() ...
- 《Java Performance》笔记1——性能分析基础 2
4.内存使用率: 内存使用率的相关属性包括页面调度或页面交换.加锁.线程迁移中的让步式和抢占式上下文切换. 当应用运行所需的内存超过可用物理内存时,就会发生内存页面交换,系统在进行页面交换或使用虚拟内 ...
- 4.Linux的文件搜索命令
1.文件搜索命令 which 语法:which [命令名称] 范例:$which ls 列出ls命令所在目录 [chanshuyi@localhost ~]$ which ls alias ls= ...
- cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)
本节介绍几个 cloud-init 的典型应用:设置 hostanme,设置用户初始密码,安装软件. 设置 hostname cloud-init 默认会将 instance 的名字设置为 hostn ...
- jmeter 使用jmeter 录制web脚本
1.打开jmeter.鼠标右击工作台.添加HTTP代理服务器 2.设置端口号.目标控制器.分组 3.添加查看结果树 4.点击启动.确定完成 5.打开浏览器直接进行操作.就可以看到所录制的脚本信息
- 常用 SQL 语句使用的总结
--SQL 语句为表添加字段并设置默认值 alter table Student --表名 add fee --添加的字段名 int --字段类型 not null --是否为空 --默认值 --修改 ...
- less学习笔记(二)
1.作用域:基本与javascrip的作用域相似,即先找局部变量,后找全局变量.找变量时遵循就近原则. 2.条件表达式:.mixin (@a) when (lightness(@a) >= 50 ...
- text-decoration:underline与字体重叠
前几天工作遇到了字体与underline下划线重叠的问题,折腾了半天.今天在张鑫旭的博客上找到了几种解决方法分享一下 1 text-decoration-skip:不推荐使用 17年了这个属性支持率依 ...
- Jquery一些实用函数
1.jQuery.parseJSON( json )第一个参数json的类型是字符串: var obj = jQuery.parseJSON( '{ "name": "J ...