蹒跚学步(2)
一到晚上就思绪翻涌,适合沉淀反思,回顾自己走过的路,学到的知识。
自学有一大好处也是一大坏处——一路走来都知道自己是怎么走的,所有的分岔路口都是深思熟虑后,毫不犹豫或者万分纠结所做下的决定,所以一段时间回头再看,很轻易能看出自己一路走来的轨迹,哪个地方饶了弯,哪个坑踩了又踩。但是自学也很容易走错路,走弯路,甚至与目的地背道而驰。
我是在看完《JavaScript 高级程序设计》之后陷入迷茫的,之间浪费了至少一两月在瞎忙活不知道瞎忙活啥的事情。之后我开始做总结,思考,尝试,修正自己的路线。当然,这是后话,在写这篇文章的时候我已经有了清晰的目标和路线,是否正确,也得走过才知道。
先从修真院开始说起。
说实话,在初初入门时,这个学习网站给了我很大的帮助。我们有一说一,这篇文章并不是什么软文,是我对自己这半年的小结和体会。
修真院是一个线上学习的网站,有CSS,JS,JAVA,iOS等不同的班级。我学的是CSS,其实就是 HTML+CSS 制作静态页面。一共十二个由简至繁的 task。其中有一点非常棒,就是每天要写日报,汇报你都做了什么,遇到什么问题,解决了哪些问题,学到了哪些知识,明天有什么计划。并且第二天会有师兄来你的日报下留言,或是回答问题,或是鼓励,或是交流。这种机制对我来说很有用,让我觉得每天做了什么都是有人盯着的,列出来的计划是不是有按时完成,这一周学了几天,玩了几天,每天都干了什么都记录在案(当然,真实性得靠自己把关,骗自己也没什么意思)。这一规则让我在那段时间里特别积极,每天醒来就想着今天有哪些任务,昨天还有哪些问题没解决。这个写日报的习惯没有坚持下来确实挺可惜的。
第一天比较兴奋,我花了一天过完了W3School上HTML,CSS的基础部分。然后开始做任务,其实看着自己做出来一个又一个页面,也是让自己坚持下去的动力。接下来我花了40天完成了12个静态页面的任务。平均一个任务三天多一点,并不算快。可是在当时的我看起来已经很有成就感了,我买了服务器,搭建起自己的小网站,看着自己写的东西展现在电脑里,手机上,还是蛮爽的。
接下来是开始学习JavaScript。我并没有在修真院学js,因为我觉得他js的课程不是我想要的那种。我觉得学一门编程语言跟学习HTML这种标记语言不一样,HTML、CSS只要知道怎么用,忘了就上网查,除了一些小技巧,没有什么道理可讲。JS不一样,一门完整的编程语言不仅得知道怎么用,还要知道为什么这样用,还有没有别的方案。对于语言的学习,我还是喜欢通过书籍系统的打基础,一步一步慢慢来。
我用了两周刷完了《JavaScript DOM 编程艺术》,两星期刷了《锋利的JQuery》,两星期刷了廖雪峰老师的js教程。然后开始一边啃《JavaScript 高级程序设计》,一边写一些小Demo。
纠结的开始
大致翻完一遍《js 高程》之后,我开始想给自己找一些仿站的练习。其实这个时候应该多仿一些网站,把前端三把斧用熟悉了。不过当我写完数字尾巴首页之后就有点烦了,想挑战一些难度高一点的东西。准备学个服务器端的语言。所以我选择了Node.js。要是能坚持学下来并学个大概其实也是不错的,毕竟前端必学技能。不过我大致看了一本书之后,觉得理解不了,又找了个视频看,也一点不懂,学不懂,没办法,败下阵了。
我又把目标转向PHP,听说是世界上最好的语言,简单易学,服务器端霸主。我又开始从基础学起,number,string,array.....学了四天左右,我想了想,这些基础不是和js差不多吗,我到底是在干嘛,js没学好还来学其他的。幸好我及时收住了手,幸好,幸好。
应该是在知乎上看到哪篇文章,觉得自己学个编程连C语言都不会,学个蛋蛋。所以我给自己定了个计划,先学C,再学数据结构与算法,每天的时间三七分,七分学C,三分学JS。完美,学了大概三天,我发现一整天都在学C,根本没办法兼顾JS。C其实是很有意思的,只是真正要修炼成功得花很长时间,刚开始的练习都是给单词中的每个字母计数,给空格计数这一类,js一个方法搞定的事,C要用一大串代码,不能忍。没有正反馈,而且我时间也不多,再半年就毕业了,耗不起。
这个时候我已经觉得自己反反复复纠结得厉害,于是给自己下定了决心,在找到工作之前,先把前端好好学了。于是开始学起了Angular,在读完文档之后,我觉得Angular太庞大了,自己瞎学应该不容易学会。于是我转战freeCodeCamp,愉快的开始了刷题模式,巩固基础,刷刷简单的算法题。
过了一周左右我就到乡下开始实习生活,没办法带电脑。我在手机上下了Coursera上关于计算机导论的MOOC,看半天发现丫的这根本就是C语言基础课,一看不要紧,又陷入是不是该好好学计算机基础的纠结当中。于是我鼓起勇气翻开了《计算机程序的构造与解释》,确实是老老实实看了一周,因为没电脑只能看书。云里雾里看了第一章,刚开始还能看懂,越后面越看不懂了。
到现在我已经反反复复捣鼓这捣鼓那,浪费了将近两个月了。想想再过两周学校这边实习结束,该自己出去找实习了,这才想到该为面试做点准备,乖乖的回到JS上来。重新理清了自己的思路,目前的计划是ES6,Vue,Node,还有买的几本关于CSS、JS的书。
说的简单轻松,这两个月确实是有点浪费,回头想想,如果这两个月坚持在前端方向,肯定比现在强上不少。不过现在也来得及,毕竟接触了C,PHP,Node,Angular,SICP,大致知道这些知识的深浅与重要性,不是不该学,只是学的顺序不对,以后肯定还是得去学的。编程这条路还很长。
自学的坏处就是容易绕路,比较浪费时间。
好处是绕完一圈回来,能更清楚自己未来的路该怎么走。