关于技术学习的一些感悟

学习的时候追根究底很重要,多问为什么,多思考可不可以不这样,多思考不同实现方式的不同点,多关注思路思想而不是具体实现。

经历过才懂得

如果说最初的notepad写代码是石器时代,那么现在的开发至少已经进入了工业时代,现在的开发人员有好用的写代码工具,好用的项目构建工具,好用的发布工具。极大的简化了之前的手动操作。这样的结果就是,很多初学编程者,上来就开始使用这些现成的工具,用得太理所当然,以至于离开了这些工具什么都干不了。

我想说的是,现在现成的工具能够很好的提高开发效率,我们应该去用,但是很多时候我们学习者也需要知道这些工具出现的原因,即为了解决什么问题而产生,同时也需要了解一下这些工具的原理。也就是说,现在技术发展的很快,很多新的工具或者很牛的框架出现,但是如果我们一开始就用这些工具或者框架,我们就无法体会到这些工具给我们带来的便利,因为我们不知道没有这些框架时候是什么样子。

比如Hadoop,Spark,Kafka等这些框架,如果我们在它们出现之前用过其他大数据处理框架或者分布式消息系统,那么我们遇到这些新的框架的时候我们才能很好的体会到这些新框架的特点,但是如果一到了某家公司就开始用这些,可能你都来不及考虑一下为什么要用这些而不是其他的。

所以我的结论之一就是:很多事情,你必须亲自经历过,才能体会到某种新技术或者框架出现的初衷,也能更清楚的明白这些框架之间的不同,区别,真正做到按需索取。

但现在存在的很大问题就是,很多初学者如果弄懂这些,需要学的东西很多很杂,如何定位如何取舍就决定了你的提高速度。所以在这方面,有一个大神带飞一下,真的很关键!

要走在技术的前沿

这条结论来自第一条,我们要想经历过才懂得,那么我们就必须在某项技术产生之时就跟进,只有这样才能一步步了解该技术的发展,才能对于技术的整体方向有个很好的把握。

对于我们大部分开发人来说,保持这种意识也很关键,技术本来就是不断进步的,我们也需要能够及时了解技术发展动态,只有这样才能跟着技术发展的大潮一起进步,向前!

要有自己的知识体系

在我遇到过的技术人员中,我认为可以分为两大类,一类就是知识面很广,基本上从前端到后台,所有的技术都懂;另一类就是知识面比较窄,你跟他聊天的时候说的一些东西他可能没听说过,但是他的知识很扎实,只要他研究过的,就研究的很深入。

我不觉得这两种有什么不好,我觉得这是两种截然不同的知识体系的表现,一种就是很有广度,一种就是很有深度。广度和深度其实都很重要,但是对于不同阶段的开发人员来说,可能应该关注的度是不同的。

我觉得,随着开发时间的增长,技术水平的提高,我们需要不断提升自己的广度,扩宽知识面,但是在此之前应该是先提高深度,即把自己当前用的技术掌握扎实,理解透彻。

很多开发人员都觉得在哪家公司学不到任何东西,其实不是这样的,我想很多公司都会用到各种框架,哪怕是烂大街的大家都知道的,但是是不是这些烂大街的技术你就掌握的很好呢?你深入了解过原理吗?

但是现在的新技术这么多,对于java来说,体系更是庞大,那么应该学哪些呢?其实解决这个问题的根本就是要构建自己的知识体系,将自己已经掌握的知识系统整理,挖掘知识之间的联系和区别,然后在此基础之上适当补充。就好比一棵树,如果各个枝节都长满也绿叶那是最好的,但是如果我们发现某个枝节叶子本是很好,那么我们可能就需要在这个方面努力一下。

制定学习计划和目标

按照计划按部就班开展,而不是跟风,不然会被别人带到沟里的!

不要安于现状

学问越大,越谦虚。越懂得的多,越能发现自己的不足。

学习方法论

对于新框架,由整体到细节

对于一个全新的框架来说,我们要从下面几个方面入手:

  1. 解决什么问题?
  2. 与现有框架相比,优点在哪里,缺点呢?
  3. 实现原理是什么?
  4. 如何使用?
  5. 如何用好?要想用好就必须深入实现细节,需要大量阅读文档和源码

原文地址:http://blog.onlycatch.com/post/关于技术学习

作者:Medusar

写在最后

资源分享

精选互联网架构师视频、十多套精选实战项目视频、黑马内部视频、黑马大数据工程师视频、5套精选Java面试指南视频等等。

关注微信公众号“Java面试通关手册”回复关键字“1"即可免费领取!

开源文档推荐

Java-Guide: Java面试通关手册(Java学习指南)Java Interview Customs Manual (Java Study Guide)。star:1.9k。

Github地址:https://github.com/Snailclimb/Java-Guide

文档定位:一个专门为Java后端工程师准备的开源文档,相信不论你是Java新手还是已经成为一名Java工程师都能从这份文档中收获到一些东西。

你若盛开,清风自来。 欢迎关注我的微信公众号:“Java面试通关手册”,一个有温度的微信公众号。公众号有大量资料,回复关键字“1”你可能看到想要的东西哦!

原文链接:http://blog.onlycatch.com/post/%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老九学堂

人工智能研发的热门编程语言:不死 Java、不朽 C/C ++,以及新贵 Python

流水的编程语言,铁打的 Java、C/C++。 ? 进行人工智能机器人研发,应该选择哪种编程语言? 而回归本文主题,对于首选编程语言的选择,没有最佳的答案,在很...

4838
来自专栏程序员的知识天地

在未来五年中Python趋势,能否超过JavaScript成为第一语言?

JavaScript和Python是两门非常有影响力的编程语言,二者都是我们在打造跨平台应用时会用到的主流语言。在过去的这些年中,尽管JavaScript始终占...

1422
来自专栏PPV课数据科学社区

为什么说你的数据不是大数据?

言必称大数据的时代,让我们多少有些“审美疲劳”。但如果严格按照大数据的定义来判断,相信大多数公司是根本不存在大数据问题的。你也许有很多数据,但那并不意味着就是大...

2695
来自专栏喔家ArchiSelf

老曹眼中的敏捷开发

但确实可能存在一种开发方式,可以帮助我们一步步构造出需要的软件和架构——这有可能就是敏捷开发。

1023
来自专栏Cloud Native - 产品级敏捷

要能真正提升产品开发团队的效率与质量, 你必需要懂得如何 ”设计” 开发团队所需要的实践或框架

2016.7.30, 深圳, Ken Fang 在 IT 这一行, 懂得而且能倒背如流 Scrum, SAFe, Use Case, Domain Drive...

2099
来自专栏小巫技术博客

关于《代码大全2》那点事

672
来自专栏CDA数据分析师

【干货】数据分析师的完整知识结构

作为数据分析师,无论最初的职业定位方向是技术还是业务,最终发到一定阶段后都会承担数据管理的角色。因此,一个具有较高层次的数据分析师需要具备完整的知识结构。 1....

2096
来自专栏编程

C加加能用来干什么?为什么要学C加加?学C加加了能干嘛?

20世纪80年代,AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事在C语言的基础上成功开发出C++语言。C++语言是一种混合型语...

3229
来自专栏技术翻译

成为优秀程序员的10个技巧

我最近在接受采访时被问如何成为优秀程序员。这是一个有趣的问题,我认为如果我们应该遵循一些准则 - 我相信 - 无论我们的天赋如何,我们都可以成为伟大的程序员。事...

1550
来自专栏PPV课数据科学社区

学习Python:做数据科学还是网站开发?

本文的英文原文地址是:Python for Data Science vs Python for Web Development,发布时间是10月29日。译者一...

2624

扫码关注云+社区

领取腾讯云代金券