专栏首页Java学习网面对层出不穷的技术,我们就得这么干!

面对层出不穷的技术,我们就得这么干!

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

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

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

  前几天fork了Ruby China的源码,面对陌生的Ruby技术栈,一头雾水。

  我fork它并不单为了学习,而是要在最短的时间搭建起我脑海中的社区网站。所以我不可能针对每一门新技术都去买一本书来读上半个月。

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

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

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

  从宏观出发

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

  实践出真知

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

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

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);

  对应我这里的需求就是:

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

  问题解决了。

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

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

  教是最好的学

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

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

  推迟学习

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

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

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

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

本文分享自微信公众号 - Java学习网(javalearns),作者:javalearns

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件开发人员的能力模型

    不知觉做软件开发已经有6年了,回看自己的经历,可以说是相当有成就感,6年中通过不断的学习的实践,从一个菜鸟成长为一名软件架构师,这个过程可以说充满乐趣...

    用户1289394
  • Android中App安装位置详解

    Android中App安装位置详解 Android应用可以安装在本机自带存储,同时也可以安装到外部存储(SD卡)。自从API 8后也就是Android2.2后...

    用户1289394
  • 技术团队负责人应该具备怎样的能力

    技术团队负责人应该具备怎样的能力 正好写2015年终总结,其实今年不太想写的,但是公司层面要求有个人总结要弄,写了个开始就情不自禁多写了一些,谈谈这方面的总结...

    用户1289394
  • 深度强化学习的中介视角研究

    原文标题:Perspective Taking in Deep Reinforcement Learning Agents

    Jarvis Cocker
  • 网站加速那些事

    CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中...

    HCG_Sky
  • Linux shell 实现HTTP服务

    需求场景 使用代理服务器 HAProxy 对 Mysql 做负载均衡是常用方案,为提高可用性,当某个 Mysql 出现问题时,例如服务器故障了,或者数据复制中断...

    dys
  • 神经网络常微分方程 (Neural ODEs) 解析

    在本文中,我将尝试简要介绍一下这篇论文的重要性,但我将强调实际应用,以及我们如何应用这种需要在应用程序中应用各种神经网络。

    AI科技评论
  • GET和POST有什么区别?及为什么网上多数答案都是错的

    如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用...

    前朝楚水
  • GET和POST到底啥区别???

    最普遍的答案 我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的。 可能很多人都已经猜到了,他要的答案是:

    JavaEdge
  • 错看一头大象后,这个AI“疯了”!

    在一项新的研究中,计算机科学家发现,人工智能无法通过儿童可轻松完成的“视力检测”。

    beyondGuo

扫码关注云+社区

领取腾讯云代金券