zoukankan      html  css  js  c++  java
  • 面对层出不穷的技术,我们就得这么干!

      俗话说一天不读书,没人看的出;两天不读书,开口会爆粗;三天不读书,智商输给猪。所以,为了让自己的“智商”保持在pig之上,都会逼着自己每天读点东西^_^。但身处信息大爆炸时代精力又极有限的我们,面对层出不穷日新月异的技术,我们应该怎么办呢?

      其实很多时候只需要掌握一个大概就好了。

      我在做测试的时候很喜欢套用5W1H的框架,后来慢慢的就发现这个框架不仅适用于做测试计划、了解系统业务,还很适合用来做知识的学习——这个想法跟下面的文章不谋而合,故而转之。

    ——————————————————我是花丽丽的分割线——————————————————————

    前几天fork了Ruby China的源码,面对陌生的Ruby技术栈,一头雾水。
    我fork它并不单为了学习,而是要在最短的时间搭建起我脑海中的社区网站。所以我不可能针对每一门新技术都去买一本书来读上半个月。

    我在本机运行起Ruby China,新注册一个用户,发现不能发帖,提示说要注册一个月以上才可以。于是我去找相关代码:

      # 是否能发帖
    1   def newbie?
    2     return false if self.verified == true
    3     self.created_at > 1.week.ago
    4   end
    View Code

    明明是一星期嘛,代码是不会说谎的。于是把文字改掉,顺便提个pull request。
    扯远了,代码说如果是self.verified就不是新手了,我先去管理后台看了一下,没有修改这个字段的界面。于是我不得不去数据库里更新这个字段。我大概知道mongodb是数据库,但我不知道该怎么操作。

    从宏观出发

    当我了解到一个新的技术名词,不会直接陷入细节,而是从宏观上把握它。了解它的背景,为何出现,解决什么问题,有什么同类技术,没有它之前我们如何工作。因为有了宏观的了解,我就能很容易把它和我熟悉的技术去建立关联,从而更快地理解它。

    实践出真知

    打开官网,发现有个非常棒的Try it out,先花10分钟玩一下,对其玩法有个大概了解,然后再来解决实际的问题。

    从前面的Try it out中我知道了help命令,于是便通过help知道了show dbsuse ruby_china_dev。根据使用SQL的经验,我想当然地认为更新一条记录的一个字段应该是这样:

    1 db.users.update({"_id":3}, {verified: true})

    但我悲剧地发现,整条记录被替换了,好吧,这就是文档型数据库。于是放狗搜索:How to update specific field in mongodb,很快便找到了答案。

    db.myCollection.update({condField: 'condValue'}, { $set: { dateField: new Date(2011, 0, 1)}}, false, true); 
    View Code

    对应我这里的需求就是:

    db.users.update({_id:3}, {$set:{verified:true}}, false, true)
    View Code

    问题解决了。

    随着接触的越来越深,遇到的问题就会越来越多。我会把每一个解决掉的问题放到我的Evernote里,这样下次再遇到就能很快找到答案。当我发现postach.io这个可以和Evernote同步的博客系统后,就开通了这样一个博客,其他人遇到同样的问题时也更容易找到答案了。

    当我真正对一门技术感兴趣并且有足够的时间去学习时,我通常会按照下面的步骤去学习。

    教是最好的学

    实践足够多后时,我可能觉得已经掌握这门技术了。但当我尝试去表达的时候,会惊讶地发现还有很多概念是似懂非懂的。于是我会去查资料,完善自己的体系。只有当我把学到的东西用自己的语言表达出来,并且能让听众明白的时候,才是真正掌握了该技术。

    学会分享是很重要的,把在该技术上的经验总结出来,写成博客,集结成书出版,再到行业会议上分享实践经验。这样才能成为该领域公认的专家。

    推迟学习

    一位一年读100多本书的同事说:

    你一年才能读几十本书,就不要什么书都看了,多花点时间挑书吧。

    现在新技术层出不穷,我们没有那么多时间去深入学习每一门。对于大多数技术,我们只需要搞懂概念部分,从宏观上了解一下,决定我们要不要深入地去学习它。有了这些了解,就能轻松地与别人聊天了,也可以为以后技术选型做一些储备。当面对真正的需求时,或者你有足够的时间做技术储备时,才去进入实践部分。

    编程是一个知识更新很快的行业,只有真正有热情并掌握了好的学习方法的人,才能走的长久。

  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/scios/p/5644027.html
Copyright © 2011-2022 走看看