成为编程高手只需一年?

写在前面的话:

此文章,不是吸引阅读量,也不是装X。而是分享一篇激励人心的学习经历以及对学习的见解(以下都是第一人称)

2014年08月下旬之前,我没有接触过任何编程。连html是什么意思都弄不清楚。更别说html的标签。更别说JavaScript、Java、c等。那时候形容我,除了门外汉之外,还是门外汉。


一、始于兴趣。

我之前,家里条件不是特别好,接触计算机是在高中时代的高二。一直对计算机领域存在着很浓厚的兴趣,令我极度着迷。我很想知道,那么小块的东西,是如何工作的,如何连接世界的?如果让人能玩游戏的?是怎么改变人们的生活的。学会了它,我是不是就可以做很厉害的事情了?

但是那时候也仅仅是拿它来玩游戏而已,因为我不知道能学什么。从哪里学。

高二后,由于一些原因,退学了,也庆幸那时候我退学了,否则,在学校不知道会被伟大的祖国的教育模式影响成什么样,也许今天的我就不是现在的我了。

退学之后,我由于没有社会上一些公司需要的技能。而在学校学的东西,感觉是那么的无用。当时很无奈,读了那么多年书,难道出来竟然还找不到自己满意的工作。

so,在社会上,基本上什么都干过(除了坏事)。

不好意思,以上有点废话。下面才是正题。

由于这时候,我有更多的机会接触电脑了,我开始好奇电脑的工作原理,我自学了电脑的硬件组成:

有电源、cpu、内存、硬盘......等组成。紧接着,我知道,电脑的运行,绝不是这部分就可以完成的,那么它又分硬件和软件。我已经对硬件有所了解了。那么剩下的我就要弄懂它的其他部分:软件。

在2014年08月下旬的时候。我无意中见到某个公开课,这个公开课很不错,老师讲解的很详细。

二、动手,永远是最有效的学习方法,没有之一

公开课里许多东西讲的很详细,也幽默通俗。------选对书、选对教程或者说,有针对性的学是很重要的。

对于那时的我来说我并没有完全的看懂课上讲的内容。而是大概的听下思路,都有哪些东西,然后就从头到尾看了一遍下来。之后报名了他们系统学习班学习,每天晚上不停的学习,不停跟同学,老师交流。这也是让我了解到互联网学习原来是这么一回事,原来可以这么方便。

在很多时候,是完全没有必要这么干的,这么干是非常耗费时间的。一般,都是看哪里懂了就放过。但那时候的我是例外,因为我的基础是 0,是0,是0。所以我看完了,基本知道了,但这远远远不够。

我又仔细的,认真的,带着思考每天去看。

看完之后,我就开始折腾了,按照自己想做的东西,用所学到的东西,折腾。不明白了就回头翻书、看教程。

2014年年底,也就是10月份左右。这时候,我觉得我已经从0到了会写html、css、js。当然了,那时候的能力还是相当弱的。

2014年11月左右,我回家,然后去广东,找了第一份前端工作。工资我不在乎。只是想学习一下,所学的知识怎么运用到项目中,怎么把自己的作品上传到互联网,让大家都看到。于是面试了几家,面试过程中,面试官考我知识点、看了我作品,认为我还OK,就答应我去上班了。我怀着激动的心情,去上班了。

三、压力也能转换成动力

一进公司,我特么崩溃了。因为前端部门,只有我一个。我特么是有多倒霉?

后端是学.net,整个前端部门里有:boss、后端、前端(当然是我了)。没有UI,我特么醉了,我一个人要做多少工作?

没有原型!BOSS直说需求,而且是那种前两分钟说要 一种想效果,后一分钟要另一种效果的那种。

BOSS:这个,小黄啊,你今天就做出这个出来吧。能不能做出来?

我:那个,有什么要求吗?有图吗?

BOSS:恩,要求就是这样的.....(大概的轮廓,相当于是你老婆说:我要买衣服。然后剩下的事就是你来干了,什么颜色,什么尺寸,多少钱,完全不管)。

朝令夕改

BOSS:我突然想到,这个要做成这样,不要圆的,绿色的不符合我们的公司主题云云。

我:我草泥马,能不能说个最终方案,让我好确定,好写代码啊(当然,只是内心咆哮而已)。

与后端配合难

后端:我要做些什么?

我:你以前没有做过吗?

后端:我也没做多久。。。。

我:慌张、忐忑!这特么怎么办?数据怎么交互?怎么获取api?

......................

最终,各种搜教程、各种问人,终于还是能做出来了。

在这公司,虽然做的极度郁闷,很累。但也锻炼了自己的解决能力问题、学习能力。

四、搜索引擎是你最好的老师

这一条,适用于99.9%以上的场景,至少对目前的我们来说。到目前为止,搜索引擎教会了我许多东西,解决了我许多问题!不可想象的多!

许多人遇到问题,就喜欢问人,就开始慌张。我告诉你,其实没必要。搜索引擎能帮我们很好的解决这个问题。许多前辈,高手的经验和贡献都可以使得我们
可以绕过许多弯。当然了,也有许多人是写的让人完全看不懂的,其实我想了很久,也没想明白:为什么很简单的一个问题,有的人非要洋洋洒洒写一大片,特么又
不是写小说,不能按字收费啊。这种人非常可恨。

五、提升自己知识面。

怎么提升自己的知识面?

1.多逛逛优质的论坛、平台、社区。比如github等等了,其他的自己去搜,用关键词搜,自己比较。或者关注我其他文章,也有罗列一些。

2.买好书看。这里为什么要强调好书?因为不好的书,买了浪费钱,还浪费生命。还会带给你具有误导性的思想和思维。

3.多看优质视频。还是优质啊,世界上好的东西有,垃圾的东西也很多。视频,是好东西。因为好的视频,是结合了作者的经验、思想这些精髓在里面。可以省去你去看书、思考的时间。并且视频更让人深刻。

六、我目前的能力

2015年05月,我来到杭州。

这时候的我,对html的标签已经足够熟了。浏览器的对css的兼容性也了解的挺OK的了。js也能随意做了(能使用面向对象、ajax、跨域、正则这些乱七八糟的),总之,做一般的项目,已经完全没问题。也了解,使用过一些框架了,例如什么bootrap。jQuery就不用说了,超级简单的东西。

来到杭州之后,我就了面试。那时候的我,不惧怕面试,兵来将挡,水来土掩,大不了就不合格,我就是想知道我目前的能力,在面试官看来是怎样的。

面试了许多家,有的嫌弃我,有的被我嫌弃,有的很nice,却路途太远,有的挺近,给的工资我不满意。最后我选了一家距离我4个公里左右的公司就职。拿到了8000月薪。

有一家给一万,我觉得远了,放弃了。

来到公司之后,我就有机会练手了。

咱来列举一下,我要在多长的时间,学会多少东西。

git

node

ejs

seajs(以前有了解,但用的极少,甚至没真正在项目用过)

grunt同上)

混合开发

juice

css3

html5

当然还有数之不尽的各种框架各种库,例如canvas这些,技术总监,只给我1周的时间,因为很快就要开发产品了。时间真的不多。我当时就蒙B了,这是神也不可能完成啊。但咱是铁血真汉子,既然没退路,只能干了。

首先,我选了一本node书《node于express开发》看了一遍 。css3,html5早就有了解,但用的不多,毕竟pc端由于兼容性问题,是很少用到在和玩意的。因为他们总想着兼容IE。刚好那时我报名的系统学习班里的老师正在讲这方面的内容我也就每天结合书本一起学习,就开始跟着老师去写测试项目,开始折腾。过去了一周左右,node已经半生半熟了,就这样写吧,发现问题再搜索好了。大不了还有CTO扛着呢(技术总监)于是,就这么些了项目。

直到现在

1)经能熟练的运用node写想项目。许多新的没用过的框架、库,可以直接拿来就用,他们的api一瞄就懂。

2)一年之后,我已经慢慢的往更高的方向走了,曾经的努力与投资是不会白费的。

3)一年前,嘲笑我、鄙视我,笑我狂的许多“大神”、已经被我甩了几条街。(有点狂妄、装逼嫌疑,但是事实就是如此)

4)理解了许多语言,其实就是那么回事。领悟了:编程语言不存在于“中文版”、“英文版”之说。

总结

我这进步算大吗?我觉得很大、也觉得很小。

为什么说大:

1 许多人,写程序,写了许多年,依然没弄明白的地方,我却早已了然于胸。

2.许多人,写程序,写的比我久,却了解的库、用的库、对语言的理解没我深(我已经跳出了前端的范畴,开始探索语言的本质、其他语言的优缺点)

3.别人还在想:JavaScript的面向对象到底是什么意思的时候,我已经开始探索:java和c#、go等语言貌似也不错,可以去了解了解。

4.光写前端哪够?就让你们这些装逼货(没有特指谁哈)继续研究所谓的前端吧,我想看看,后台api的实现原理,数据库的操作、我想自己折腾个社区、做点什么事。

5.用前端的技术的同时,我的业务逻辑,变得比后端同学的更强!(其实特么说到底,技术本就不分什么前端后端,太扯了,一个人会写字漂亮,就不允许他打篮球厉害了?)

为什么说小:

1.其实这是必然结果。只要正常的学习,相信自己,不断鞭策自己。我不知道的还很多,我还可以进步的更大。我想知道,了解、理解更多的东西。我还要变得更强。前端、编程、不是我唯一能做的。

2.有许多的人,比我还厉害,进步的比我快,学东西方法也比我好。他们值得我学习。

3. 学习资源的累计  

送给那些懦弱的人们

A : 我是护士,我的专业就是护理。我做不了excel、做不了ppt、我学不会ps,好难,我不会写文章。

我: 我学习那么好,写字那么漂亮,编程也不错,ps也挺好、我还能打篮球、我会兵乓求、我会羽毛球、我会足球、我会设计、我会英文。(有的都是高二退学之后自己加强学习的,读书只给了我 算数、识字这些基本的的能力),我特么是神吗?

A : 人人都跟你一样?不是谁都能用很短的时间学很多的东西。

我 :我大概是神吧!你能少看一点 《爸爸去哪儿》、《额滴歌神啊》、《奔跑吧兄弟》吗,今天出了《爸爸去哪》,明天来个《女儿去哪》、《爷爷去哪儿》,你看得完?你能不能看点有用的东西?例如有点启发、让人学到东西的影片或者书?

A:委屈的瘪瘪嘴,那好,我要学习,给我买一本书吧,推荐一下。

我:书到了,学习 吧,一个月后我要看你的成绩。我来考考你

A:好难啊,我好困,我要看一会儿电视.....(然而没然后了....)

其实,这位A同学,极度的懦弱,并不是她不上进,只是那么的懦弱,那么的沉迷于垃圾节目、垃圾书籍,喜欢看不伦不类,不三不四的东西。不明白自己应该要什么,自己怎么做才能得到,认为自己的能力那么的差,做不到

B:大神,我要学node了,推荐一下node的书籍呗

我:恩,入门看一下《node于express开发》吧,然后看看node官网。还有一些博客什么的。当然了,你完全按照那本书,也能做出一些的东西了。最重要的是,要自己动手,去做东西,然后发现问题,解决问题。提升自己。

B:大神,除了那本书,还有别的书吗?

我:书很多,但书不在于多,而是,你能否理解了,并且能运用了?你看完了吗?

B:我感觉很难做,node好难。

我:做做项目,搜搜、看看github。

而今,我不知道这位同学水平到底到了什么水平,我想,应该不会太好,最终原因,我想是因为没有深入的去折腾,没有去写代码,没去发现自己的问题

其实,我们的潜力很大,我们能学的更好。我们能掌握的更多,但是许多人都做不到坚持、做不到深入。不肯思考,不肯的动手,是阻碍我们进步的最大原因。

后记:

人,应该要明确自己的目标,拥有理想。

人,重要的不是你站在哪里,而是你往哪个方向前进。

无论何时,不管你已经得到了多少,拥有了多少。都不是堕落的理由。

对于不肯上进,没意志力的人来说,等于是,你想死,任何人都救不了你!

感谢自己,感谢自己没有继续读大学。感谢自己在读书时代已经养成了独立思考,喜欢折腾的习惯。