非科班·零基础的自学前端之路

非科班·零基础的自学前端之路
0

写在最前面的话:

历时八个月的学习,终于找到了第一份前端的工作。在此我满怀着感激与激动的心情,感激这一路上帮助过我的每一位引路人。

在这里要特别的感谢:

感谢@余博伦大神的自学教程,以及日常分享。帮助我正确的梳理学习前端的方式,以及端正学习的态度;

重重地感谢" freeCodeCamp “提供的优秀平台,它用一种解题游戏的方式很好的帮助我们这种” 0基础·非科班 "的人去接触前端这个领域,去促使我们动手不断的写出一行又一行的代码,引导我们自主去学习对应的知识点来减缓0基础自学带来的迷茫以及枯燥;

重重地感谢" freecodecamp广州 "的@Hanx 、freeCodeCamp广州-负责人Cherry、以及所有的群内小伙伴,你们的线上答疑、每一次的线下技术交流分享活动都会让每一个萌新无论是技术知识还是求职经验,或者是学习的态度,都朝前迈了一大步;

重重地感谢"百度前端IFE",提供了非常棒的实战个人项目来帮助有一定基础的技术的我,融会贯通自己所学。

正文开始:

静心学习,抵制浮夸。 ——Victor.Chan-278

我工商管理毕业的,之前没有接触过半点编程知识。对编程的理解就停留大学买了本C语言的教科书然后,嗯,看了几页吧。

工作了几年,经历了很多后,最后还是踏上了程序员这条大路上,原因不细表,每个人的选择都有自己的理由。

以下为我的从0基础自学以来的所思所想,希望可以给各位同样挣扎在这个阶段的朋友们带来一点参考。

1、开始学习前端的前夕:

一个岗位是否适合自己,取决于自己是否适合和自己是否愿意改变。

1)首先我列举了开发人员的需要的特性:

①对新事物,新知识保持高度的热诚;

②热爱开发,热爱计算机(不只是玩游戏);

③足够的专注力;

④清晰的逻辑思路,擅长总结分析;

2)然后我要将开发人员需要的特性与自身的特性作比较;

①真诚的分析自己,是不是符合上述的条件;

②如果自己有不符合的地方,自己是否有足够的毅力和决心能克服和改变;

③自己克服和改变需要耗费的时长,付出和投入的比例;

3)选择一门语言

①去了解市面上的语言;

②每一门语言的用途,特点;

③选择自己喜欢的;

4)制定好学习的计划,细化:

①制定好阶段性的学习进度。我规划自己大概需要一年的时间完成初级前端的学习。

a.列举知识列表:

基础知识:HTML、CSS、JavaScript;

进阶:JQuery,HTML5,CSS3,ES6,框架;

附带的知识:HTTP协议,AJAX;

b.首先初步制定自己每一块知识大概耗时需要多久:

HTML+CSS我规定自己2个月内要初步掌握布局,样式的编写,能独立制作或仿制网站。

后续的知识如果暂不知道是什么,需要多久,可以暂时不制定,可以了解后再制定。

②制定每一天的学习进度(个人计划,仅供参考):

06:00~06:10:洗漱,放空

06:10~06:15:做一下俯卧撑

06:15~07:00:阅读书籍

07:00~08:30:去上班的路上看书

18:00~19:00:回家的路上看书

19:00~19:30:吃晚饭,加收拾

19:30~20:30:阅读书籍

20:30~22:30:敲代码

22:30~23:00:洗澡,玩手机

23:00~23:30:睡觉

③坚定不移的执行,如果有意外了就随时灵活的调整,边工作边自学本来时间就会很少,只能去挤自己一切可能的时间去完成自己的计划。

2.学习前端进行时:

1)学习基础阶段:

①HTML+CSS:

a.阅读书籍《Head First HTML与CSS》。虽然书本的征订,出版会导致技术书籍没办法得到第一时间的更新。但是书本是系统获取知识的最佳途径,因为经过严格的编排,才能让你在阅读的过程中去逐渐的掌握知识的每一个细节。基础知识很杂、很多、很细,一个视频所容纳的信息量是有限的,它没有办法将很零碎的知识全部都讲解一遍。在没有基础的情况下,这些零碎的知识恰恰是非常非常重要。

b.登陆freeCodeCamp进行攻略页面的题目以及对知识进行梳理;

c.登陆百度前端技术学院 - 小薇学院来进行前端页面的Demo练手;

d.理解浮动的原理;

e.理解定位的方式和原理;

f.理解语义化,表现和结构分离,养成良好的代码习惯;

g.掌握双飞翼布局、圣杯布局、响应式布局、Flex;

h.做好每日学习笔记总结;

②JavaScript:

a.阅读书籍《JavaScript高级程序设计第三版》、《JavaScript权威指南》、《你所不知道的JavaScript》上卷、《JavaScript DOM编程艺术》

b.登陆freeCodeCamp进行攻略JS的题目以及对知识进行梳理;

c.登陆百度前端技术学院 - 耀耀学院 来进行JS的练习进行巩固;

d.理解作用域,原型,闭包,DOM操作;

e.学会自己打断点调试,查错;

③学习中的细节:

a.遇到难题:

遇到难题,自己要先思考,想大概要用什么知识,然后去有针对性的查询这些知识是怎么用的,然后回顾过来再想如何解决我现在面对的难题。如果想不到,再去百度、谷歌,看答案的时候也需要思考,为什么可以解决,通过什么方法。然后去学习,去总结。

*千万不要直接问人这个应该怎么做,学习提问的艺术?

b.学会改良,拒绝妥协:

拒接一切耦合的代码,学会不断学习新知识后去改良以前写的代码;

其实到这里我真的不知道写什么好了,就像小说里说的一样,学剑很难吗?你砍个一千遍一万遍不就会了。编程也一样,不会,你写个一千遍一万遍,思考个一万遍,再难都给你学会了。

本文作者:Victor Chan,freeCodeCamp 学员