【一点感悟】如何学习一项技术?

来源:互联网 发布:macbook绘画软件 编辑:程序博客网 时间:2024/06/06 04:14

前言

总喜欢在文章的前面写一些话,给每一段文字定义一个大大的标题,让文章不至于那么散乱、无序,随着年龄越来越大,最近觉得工作有点心力憔悴,效率不高,精神萎靡,这就成了一个恶性循环。我们老大经常就说,效率低是能力低的一种表现,仔细想想确实是那么个理,能力越高,工作起来就会得心应手,处理事情效率就很高,就会有更多的时间和精力去休息和让自己的能力更上一层楼,这又成了一个良性循环。

说了这么多,为什么定这么个标题呢?最近再看一系列软文,也颇有感概,学习是有方法的,在带实习生或者回答别人的问题时,经常被问到哑口无言,也是尴尬到不行,遂下定决心,改变这一恶性习惯,深入研究和学习。

不良习惯

你在生活中是不是也经常抱着“试一试”的想法去解决一些问题,我想说,“试一试” 的初衷本来就该是好的,它表达了一种好奇心,和尝试走出舒适区的勇气。但是,这个词语是一个双面语,它有时代表中一种凑巧能解决问题的心态,慢慢的就会养成了这种 “试一试” 的 “坏” 习惯。

程序员这个职业,我们会经常性的会去尝试一些东西,然后看看它是否如我们预期般工作。比如,程序员的一项日常工作之一就是 —— 调试程序。调试,就是这样一种需要不断去试的过程。项目中遇到问题了,不假思索,哦,我试着先调试一下,看看是哪出现了问题,最终可能做了很多无用功也没能解决真正的问题。

问题就出现在这,你不知道你在调试什么,也无法清楚定义你调试的终点到底是怎样的呢?难道就为了显得你很专业,或是仅仅是为了熟悉一下使用IDE的调试流程?

所以,在调试之前,你应该:

  • 先查看有效信息(日志?DB?)
  • 思考数据流向(最好画出来,确定是哪个环节出问题了)
  • 定位问题(查看代码,分析可能出现问题的原因)
  • 调试(查看内存数据,堆栈信息等),确认问题
  • 解决问题
  • 总结(记录问题,分析原因,形成总结报告,剖根问底)

好的改进

对于IT日新月异的发展速度,每天可能都有不同的技术、语言或者框架出现,对于很多人来说都是新颖的,啊,你的好奇心又出现了,我要“试一试”它,在这样的心态中,就会被技术潮流所裹挟,再后来热度下来后,也就慢慢遗忘了,最终就是浪费了一些时间和精力罢了。所以,你在尝试之前,有没有进行思考,到底为什么你会想去尝试一种新技术?你从中又能得到些什么呢?

敲黑板!划重点!

关于思考的过程:

  • 为什么要尝试新技术?转型?解决实际问题?拓展视野? — 确定你的出发点和终点
  • 重点学什么? — 确定所学技术的重点
  • 怎么学习这项技术? — 不盲目学习,借鉴别人经验(感谢爱分享的童鞋),跑Demo,调试?

观点1

为什么尝试呢?对啊,为什么呢?这是在找你的出发点和定义你的终点,确定你的方向。
我认为可以以下几方面来考虑:
目标
你应该明确你的目标,尝试这项技术,你能收获怎样具体的结果。不要说,我能学到新技术这种空话,比如,我学习Spring的事件机制,就是为了解决当前项目中通信框架不实时的问题(原来使用的是写内存,然后起线程扫读)

过程
有时候结果并不如意,也许就不没有达到你的预期效果,那么,这样的尝试难道就没有意义吗?你至少开阔了视野,拓展了知识,学到了技术!

验证
古人云,纸上得来终觉浅。这个过程,我们就很熟悉了,编程中的调试其实最重要的目的就是验证猜想。引入一种新技术或框架,验证 API 的调用结果或运行输出是否如你所想,即使最终否决了,也获得了判断的依据与知识。

观点2

你得先通过各种渠道(google翻墙啊),去了解它如写作一般,先列提纲,先提炼重点,不可盲
目,首先确定它的核心是什么。不要永远徘徊在A+B的边界!比如,比如学JAVA应该重点学习垃圾回收机制,JAVA类加载机制等,因为这个是JAVA和其他语言的区别。

观点3

哇,这个问题就大了,仁者见仁智者见智吧。又是古人云,“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之,学至于行而止矣,行之,明也。”

知行合一来理解这句话会更加明白,知和行是一起的,知道就会实践,不会实践就表示不知道,比如你真正熟悉某项技术,就应该会去使用这项技术,如果你遇到问题不会解决,则说明你不熟悉这项技术。千万不要学了就扔在一边了!

如何学习?

  • 与相关领域技术大牛交流,经验摆在那,不用白不用!
  • 游历在各个技术论坛和网站,比如CSDN,极客在线啦。
  • 交流分享。能讲出来,把别人说服,你才算理解了!
  • 看官方文档(外文需要一定功底,还好有翻译工具),参考DEMO
  • 多写技术总结文章!好记性不如烂笔头,写下来,经常看看,也分享于他人
  • 实战!,这里不是写个简单Demo就完事了,而是希望能真正运用这项技术来解决项目或产品中的问题。

说在最后

这篇文章也是在看了很多人的心得之后的一点感悟糅合出来的,就是想着能够锻炼自己通过文字表达出自己的想法,最近对“学习技术”很有兴趣,在尝试在使用“整体性”学习方法来实践,跳出“小域界”,从高角度去跳出局限性思维!