在当今快节奏的生活中,我们逐渐迷失了自己,也放纵了自己,也忘了人与人之间的存在的意义,当我们发现,人与人之间最远的距离不是天涯海角,而是一部手机的时候,一切都会明白。
话锋一转,我记得我小的时候,最幸福的时候,就是有一部《新华字典》,每次有不懂的文字的时候,都会去翻拼音或者偏旁部首,当我花上半个小时或者一个小时,找到一个字的时候,我都会异常的兴奋,我还记得我刚刚工作的时候,买了一本ASP.NET的书,当时反正也觉得书很厚,又是外国人写的,所以觉得很好,至少洋人的东西肯定好些,现在想起来,那本书只是一本很厚的工具书而已,而且还是webform的那种,大家可想而知最后是啥结果了吧,哈哈。
再回到我们的话题,CSDN,博客园,以及外国最著名的一个网站Stackoverflow的建立,都指向了一个问题:我们究竟还需要进行系统的学习吗?我们有那么多丰富的资源,而且工作了以后,公司都是结果导向的;更关键的是:我们基本上所有的问题都能从网上找到对应的答案,那么,回到前面的问题:既然我们都能找到答案,那么系统的学习的必要性 在哪里?
先来说说我以前的观点,我以前的观点是,跟着项目走一定要比自己拿一本书看要强,因为项目中碰到的是实际的问题,而公司要我们的就是解决实际问题的能力。这让我想到了小时候学到的一本课文,那个科学家的名字我忘记了,这个故事说的是一群小朋友在一起玩,那个未来的科学家,给小伙伴们去炫耀自己的发明,小伙伴们说:你是做出来了,可是你懂它的原理吗?你真的的理解它吗?
我们工作当中,也会碰到很多这样的人,这样的人碰到了问题就去网上寻找答案,然后把网上的答案复制粘贴过来,甚至连变量名都没改过来,就开始运行,如果运行不了,首先第一件事不是举一反三,而是再去寻找下一个答案,当然,如果他运气好,他能找到自己想要的答案,如果找不到,那他找过的度娘的次数在单位小时内就会指数增长,最后只能求助于现实当中的人去解决问题。我先问大家一个问题,大家觉得这个人解决问题了没?其实他最后通过一些方法确实解决了问题,但是我可以毫不客气的说一句。他根本就狗屁不通,唯一一点可观的的就是,他会百度。但是问题是,就算他百度了,那也是搜索引擎帮他在找啊,他自己又不用动脑筋。大家猜猜这个人是谁?当然不是各位读者了,是从前的我,我以前的工作状态就是这样的,希望能给大家一点启发和教训吧。
那么,我们为什么要系统学习知识呢?我给出一个自己的理解:我不是一颗螺丝钉,而是站在金字塔尖的勇者。这句话怎么理解呢?我不是一颗螺丝钉,说的是我们编程的人必须明白程序是“软”的,有些人把架构比作是建筑,其实我也不敢说这是对的,建筑学中的架构是说的房屋的结构,软件当然也有结构,但是硬架构是很难变化的,一旦建立起来以后;而软件架构会随着需求和吞吐量的增加而发生根本性的改变,这是建筑上所做不到的,试想一下,如果你是一颗螺丝钉,但是你却不能随着架构而适应,所以只能在互联网的大流中逐渐褪去,所以,我得出了一个结论,如果你只想做一颗螺丝钉,那么你会慢慢生锈,被这个世界,被这个时代,被互联网所抛弃。
第二句话:我要做站在金字塔尖的勇者。为什么要这么说呢?你如果站在了金字塔尖,那么证明了2点,第一,金字塔的每一层你都爬过,对应软件中就是:你大部分知识点都涉猎过,第二,你肯定能看到跟高的地方,并且你可以俯瞰下面的全部。
懂得原理,并不是说我们一定要去改进ASP.NET或者其他的语言的基础框架,而是能让我们更好的理解整个框架,进而写出更优秀的代码。不信?不服?那行,给你举个最简单的例子:设计模式有24种之多,请你写一个XX项目,至少要用到5种模式;是的,对于一个新手来说,他也许会去翻资料,然后东拼西凑,把项目写出来,然后还面临着崩溃的危险。如果是给一个老手的话呢,他肯定会在合适的地方用到合适的模式,并考虑软件的扩展性,以确定用什么模式最重要。
那么新手和老手的区别在哪?大家可能会不约而同的说:经验。这里说到经验了,经验是建立在什么基础上呢?地雷!那么为什么会有这么多的地雷呢?很多因素,除去那些不可控的因素(地震啥的。。。),我觉得还有一个很重要的原因:那就是没有经过系统的学习,所以踩到的雷才会特别的多。
拿个比喻:一个清华大学毕业的和一个技校毕业的,有什么不同?清华毕业的可能刚刚出来就6K的工资,技校出来的,他可能因为技能学得比较好,也能拿到6K~~~5年过后,清华的能拿到60K,而技校的,顶多10K不能再多了。这里说明了一个什么问题?因为清华毕业的,他经过系统的学习,而技校毕业的,只是针对当前时髦技术的学习,也就是衍生出了一个结论:不管是做底层开发的,还是高层开发的,对于语言/算法的基础一要达到及格的程度,也就是经过系统的学习,他能得到更加 持久的发展。
最后跟大家分享一些我自己的系统学习的方法,我个人觉得系统学习最直接的方法及时看纸质书。因为书里面能涵盖的东西是博客所不能比的,虽然我承认有些大牛乐意分享,会写很多系列的博客,但是你只要去尝试买几本经典的书,你会发现知识量至少是他们的10~20倍(不是黑),所以我觉得看书是最直接的方法。
那么看书要注意哪些点呢?全面,深入,耐心,坚持。能做到这8字心法的人很少,学习知识和练字一样,不能说我今天有兴趣就多学点,没兴趣就少学或者不学。需要一个过程,大家慢慢体会就好。另外,如果你有毅力看完基本经典著作并理解里面的东西去做项目,肯定比直接做项目,碰到问题不懂去查要强得多。
另外这里打下广告,推荐几本书,蒋金楠的书不错,也是博客园的老大,他的书我买了2本,一本讲WEB API的,一本讲 MVC5的。其他的书,大家根据自己的工作的不同自己去淘宝或者当当网看看。另外晚安喽,希望明天下大雪,哈哈(*^__^*) 嘻嘻……!!!