当前位置: 首页 > news >正文

在当今快节奏的软件更迭当中,我们是否还需要进行系统的学习?

  在当今快节奏的生活中,我们逐渐迷失了自己,也放纵了自己,也忘了人与人之间的存在的意义,当我们发现,人与人之间最远的距离不是天涯海角,而是一部手机的时候,一切都会明白。

  话锋一转,我记得我小的时候,最幸福的时候,就是有一部《新华字典》,每次有不懂的文字的时候,都会去翻拼音或者偏旁部首,当我花上半个小时或者一个小时,找到一个字的时候,我都会异常的兴奋,我还记得我刚刚工作的时候,买了一本ASP.NET的书,当时反正也觉得书很厚,又是外国人写的,所以觉得很好,至少洋人的东西肯定好些,现在想起来,那本书只是一本很厚的工具书而已,而且还是webform的那种,大家可想而知最后是啥结果了吧,哈哈。

  再回到我们的话题,CSDN,博客园,以及外国最著名的一个网站Stackoverflow的建立,都指向了一个问题:我们究竟还需要进行系统的学习吗?我们有那么多丰富的资源,而且工作了以后,公司都是结果导向的;更关键的是:我们基本上所有的问题都能从网上找到对应的答案,那么,回到前面的问题:既然我们都能找到答案,那么系统的学习的必要性 在哪里?

  先来说说我以前的观点,我以前的观点是,跟着项目走一定要比自己拿一本书看要强,因为项目中碰到的是实际的问题,而公司要我们的就是解决实际问题的能力。这让我想到了小时候学到的一本课文,那个科学家的名字我忘记了,这个故事说的是一群小朋友在一起玩,那个未来的科学家,给小伙伴们去炫耀自己的发明,小伙伴们说:你是做出来了,可是你懂它的原理吗?你真的的理解它吗?

  我们工作当中,也会碰到很多这样的人,这样的人碰到了问题就去网上寻找答案,然后把网上的答案复制粘贴过来,甚至连变量名都没改过来,就开始运行,如果运行不了,首先第一件事不是举一反三,而是再去寻找下一个答案,当然,如果他运气好,他能找到自己想要的答案,如果找不到,那他找过的度娘的次数在单位小时内就会指数增长,最后只能求助于现实当中的人去解决问题。我先问大家一个问题,大家觉得这个人解决问题了没?其实他最后通过一些方法确实解决了问题,但是我可以毫不客气的说一句。他根本就狗屁不通,唯一一点可观的的就是,他会百度。但是问题是,就算他百度了,那也是搜索引擎帮他在找啊,他自己又不用动脑筋。大家猜猜这个人是谁?当然不是各位读者了,是从前的我,我以前的工作状态就是这样的,希望能给大家一点启发和教训吧。

  那么,我们为什么要系统学习知识呢?我给出一个自己的理解:我不是一颗螺丝钉,而是站在金字塔尖的勇者。这句话怎么理解呢?我不是一颗螺丝钉,说的是我们编程的人必须明白程序是“软”的,有些人把架构比作是建筑,其实我也不敢说这是对的,建筑学中的架构是说的房屋的结构,软件当然也有结构,但是硬架构是很难变化的,一旦建立起来以后;而软件架构会随着需求和吞吐量的增加而发生根本性的改变,这是建筑上所做不到的,试想一下,如果你是一颗螺丝钉,但是你却不能随着架构而适应,所以只能在互联网的大流中逐渐褪去,所以,我得出了一个结论,如果你只想做一颗螺丝钉,那么你会慢慢生锈,被这个世界,被这个时代,被互联网所抛弃。

  第二句话:我要做站在金字塔尖的勇者。为什么要这么说呢?你如果站在了金字塔尖,那么证明了2点,第一,金字塔的每一层你都爬过,对应软件中就是:你大部分知识点都涉猎过,第二,你肯定能看到跟高的地方,并且你可以俯瞰下面的全部。

  懂得原理,并不是说我们一定要去改进ASP.NET或者其他的语言的基础框架,而是能让我们更好的理解整个框架,进而写出更优秀的代码。不信?不服?那行,给你举个最简单的例子:设计模式有24种之多,请你写一个XX项目,至少要用到5种模式;是的,对于一个新手来说,他也许会去翻资料,然后东拼西凑,把项目写出来,然后还面临着崩溃的危险。如果是给一个老手的话呢,他肯定会在合适的地方用到合适的模式,并考虑软件的扩展性,以确定用什么模式最重要。

  那么新手和老手的区别在哪?大家可能会不约而同的说:经验。这里说到经验了,经验是建立在什么基础上呢?地雷!那么为什么会有这么多的地雷呢?很多因素,除去那些不可控的因素(地震啥的。。。),我觉得还有一个很重要的原因:那就是没有经过系统的学习,所以踩到的雷才会特别的多。

  拿个比喻:一个清华大学毕业的和一个技校毕业的,有什么不同?清华毕业的可能刚刚出来就6K的工资,技校出来的,他可能因为技能学得比较好,也能拿到6K~~~5年过后,清华的能拿到60K,而技校的,顶多10K不能再多了。这里说明了一个什么问题?因为清华毕业的,他经过系统的学习,而技校毕业的,只是针对当前时髦技术的学习,也就是衍生出了一个结论:不管是做底层开发的,还是高层开发的,对于语言/算法的基础一要达到及格的程度,也就是经过系统的学习,他能得到更加 持久的发展。

  最后跟大家分享一些我自己的系统学习的方法,我个人觉得系统学习最直接的方法及时看纸质书。因为书里面能涵盖的东西是博客所不能比的,虽然我承认有些大牛乐意分享,会写很多系列的博客,但是你只要去尝试买几本经典的书,你会发现知识量至少是他们的10~20倍(不是黑),所以我觉得看书是最直接的方法。

  那么看书要注意哪些点呢?全面,深入,耐心,坚持。能做到这8字心法的人很少,学习知识和练字一样,不能说我今天有兴趣就多学点,没兴趣就少学或者不学。需要一个过程,大家慢慢体会就好。另外,如果你有毅力看完基本经典著作并理解里面的东西去做项目,肯定比直接做项目,碰到问题不懂去查要强得多。

  另外这里打下广告,推荐几本书,蒋金楠的书不错,也是博客园的老大,他的书我买了2本,一本讲WEB API的,一本讲 MVC5的。其他的书,大家根据自己的工作的不同自己去淘宝或者当当网看看。另外晚安喽,希望明天下大雪,哈哈(*^__^*) 嘻嘻……!!!

 

相关文章:

  • JSTL截取字符串
  • Java开发相关配置
  • Java BIO、NIO、AIO-------转载
  • JSPatch
  • RSA加密的测试demo
  • 用 Python 开发自动化测试脚本
  • 运用.net core配合VS 2015制作nuget包
  • linux shell数据重定向(输入重定向与输出重定向)详细分析 上(转)
  • PHP开发学习门户改版效果图投票
  • 收到云栖社区发的淘公仔礼物
  • d语言之模块化
  • 7.12 Models -- Frequently Asked Questions
  • Mysql错误问题记录
  • PostgreSQL wal receiver 统计信息 patch
  • 【COCOS CREATOR 系列教程之四】基于0.7.1先简单制作一个PAGEVIEW
  • Brief introduction of how to 'Call, Apply and Bind'
  • Centos6.8 使用rpm安装mysql5.7
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaScript DOM 10 - 滚动
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Leetcode 27 Remove Element
  • Median of Two Sorted Arrays
  • Mysql数据库的条件查询语句
  • Nacos系列:Nacos的Java SDK使用
  • pdf文件如何在线转换为jpg图片
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Boot快速入门(一):Hello Spring Boot
  • springboot_database项目介绍
  • 测试如何在敏捷团队中工作?
  • 给github项目添加CI badge
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 积累各种好的链接
  • 如何在招聘中考核.NET架构师
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (1)Nginx简介和安装教程
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (Note)C++中的继承方式
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器