有个小伙伴在微信上问我:

我刚工作半年,有时候对于Java的发展方向有点迷茫,Java的范围是在是太广了,我有时候会不知道从哪开始入手,我想问一下,您有什么好的建议吗?

我理解这位朋友的问题是:工作中该如何发现自己要学什么,怎样构建自己的技能树。这是一个非常重要的问题,假如你不知道要学什么,那一旦你工作不那么忙时就会觉得无聊,只能通过浏览新闻、看小说、打游戏等方式消磨时间消耗自己。这对自己的成长和增值非常不利。所以,这次咱就来聊聊工作中学什么这个话题——这也是很多人在我的订阅号“程序视界”里频繁问起的话题。

根据我的经验,在开发过程中,有两种学习策略:一种是横向拓展,也可以称之为广度学习;一种是纵向深入,也可以称之为深度学习。如果能贯彻这两种学习策略,就会慢慢形成程序员最理想的技能结构——T型,即在横向上熟悉足够多的知识和技能,在纵向上又精通某一领域。简单说就是一专多能。

广度学习

以C++语言为例,如果你做网络方面的开发,就会遇到选择哪个框架的问题,libevent、ACE、Asio还是Qt Network?如果你做GUI开发,可能会在Qt、CEF、MFC、wxWidgets、DirectUI之间做个选择。

选择和了解的过程,是个人广度学习的过程。你会快速了解每一种框架的优缺点,会搭建环境,会写一些Demo来对关键技术点和需求做验证……最终会根据文档和实验结果来做出实际的选择。这个过程非常难得,会快速拓宽个人的知识面。建议把每次了解到的技术框架都记录下来,有闲暇时可以进一步学习。

即便你不是预研技术方案的工程师,而是别人定方案你来开发,也可以有意地让自己经历这个选择过程,只需要问自己一个问题即可:为什么用A而不是B或C?

其实不单单是大的技术框架选择,小到某个页面要用的某个元素,都会经历选择的过程,有心,就可以用这种以点带面的策略学习到更多。

深度学习

大多数时候我们会使用一门语言和一两种技术框架进行软件产品的开发,此时就是纵向深入学习的好机会。

对技术框架的学习,大体分三个阶段:

  1. 基础开发,主要是了解API、基于API完成应用
  2. 熟悉内核及原理,主要是了解框架的设计原理,阅读源码,洞悉内在机理
  3. 优化框架,主要是针对框架的已有功能的不足进行完善、优化,或者使用框架提供的机制扩展框架功能,或者对框架进行定制,让它适合特定情境

我以Qt为例画了张图,供参考:

很多时候我们经历了第一个阶段——能够使用API进行简单开发——之后就跑别的地方去了(工作需要),然后就把这个框架撂那里不管了,然后就一直停留在那个阶段。建议有时间的话梳理下自己用过的技术,挑出当下工作中还在用的那项,往深里钻,去熟悉原理熟悉内核,有可能的话,也可以优化、扩展或定制。惟其如此,才能对一个框架真正掌握,才会有深度,才会在该项技术上形成自己的价值和竞争力。

小结

不管是广度学习还是深度学习,都是从实际需要出发的,是你工作中要用这门技术你不得不学。明白这点非常关键——你要用到某项技术时才会有学习的动力。所以,最好的学习时机就是一边开发一边学习,白天上班晚上学习,周内上班周末学习——在有明确目标时最有学习动力,在热度还未退却时学习效果最好

如果你想学习与当下工作内容无关的知识和技能,投资自己的未来价值,那最好的办法是给自己设计一个软件产品(或者参与到别人的项目中),设定一个期限,用你想掌握的技术去完成它。用不到的知识,等于没有,这就是这种说法背后的原理。

所以,没有需求,要创造需求,没有问题,要创造问题,有了需求和问题,学习才更有方向感和目的性,才会有持续下去的动力。如果你能主动创造目标和需求,那你很快就可以建立自己的技能树并让这棵树根深叶茂,你就会越来越值钱,也越来越能赚到更多的钱。


相关阅读

  • 这样读源码,不牛X也难
  • 程序员这样优化简历,一投制胜
  • 程序员如何谋划出月薪3万
  • 这8种武器点亮程序员的个人品牌

更多文章(求职、加薪、职业选择与发展),关注我的订阅号“程序视界”:

两招让你成为牛X的T型人才相关推荐

  1. 两招让你成为很厉害的T型人才

    两招让你成为很厉害的T型人才 2016-05-05 有个小伙伴在微信上问我: 我刚工作半年,有时候对于Java的发展方向有点迷茫,Java的范围是在是太广了,我有时候会不知道从哪开始入手,我想问一下, ...

  2. 简单一招搞定公司牛人 转自 潘文富

    简单一招搞定公司牛人 潘文富 所谓公司牛人,就是在老板之下,众员工之上的人物.公司牛人,有的是凭借资历,有的是身居高位的职业经理人,有的是凭借自己在某方面的专业水平和经验,总之,有牛的资本. 这些牛人 ...

  3. 测试音质好坏的软件,音响音质的好坏简单的两招测出

    原标题:音响音质的好坏简单的两招测出 怎样判断一个音响好坏?对于略懂略懂的你真的可以判断一个音响的好坏?当没有专业的测试工具也没有精确的仪器时候,应该怎样判断一个音响好坏?然后就买买买? 低配置的测试 ...

  4. sd卡测速工具_怎样恢复SD卡数据?教你两招轻松恢复

    怎样恢复SD卡数据?教你两招轻松恢复 SD卡数据恢复软件里真正免费的而且具备比较高的恢复能力的软件其实不多,而嗨格式数据恢复大师就是其中之一,SD 内存卡是一种性价比相对较高的存储设备,在目前的生活中 ...

  5. 求两条轨迹间的hausdorff距离_干货 | 轨迹方程问题?两招咔嚓!

    归纳起来,求轨迹方程的问题有以下几种方法 1.直接法 2.定义法 3.参数法 4.相关点法 5.交轨法 只要熟练掌握1,2两种方法就可以解决90%的高中数学题了 所以以下内容只说直接法和定义法 (别问 ...

  6. 逍遥模拟器获取服务器信息出错,逍遥模拟器不能连上网怎么办?两招解决问题...

    逍遥模拟器不能连上网怎么办?两招解决问题 2020-04-01 已有人学习| 编辑:machine; 来源:知识屋; 安卓模拟器的出现让手游玩家可以顺利在电脑中体验手机游戏,再也不用为手机电量低.手机 ...

  7. Excel技巧—两招轻松搞定汉字转拼音

    点赞再看,养成习惯:兼听则明,偏信则暗. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  8. 鸿蒙系统通知栏怎么清理,教你两招 彻底关掉手机通知栏烦人的无用通知

    相信很多朋友都跟我一样,在使用安卓手机时,遇到这样一个十分令人烦躁的问题:通知栏经常会弹出一堆无用的通知.有些自带的APP从来没用过,但各种通知推送从来没断过.而且每次清除后,过不了多长时间通知栏又是 ...

  9. 学会这两招将知网下载的CAJ转成Word形式

    如何将CAJ转成Word?我们都知道目前中国知网提供的论文资料除了网页在线阅读外,下载的格式都是默认caj,但CAJ修改起来比较麻烦,如果能转成Word就方便很多.其实转换很简单,收藏下面这两招一定能 ...

最新文章

  1. mysql server-存储引擎
  2. 计蒜客NOIP模拟D1T2
  3. java 响应 请求参数_spring基础----请求与响应的参数(一)
  4. 手机是怎么确定位置信息的?
  5. Pytorch——批标准化(层归一化)
  6. java day61【 SpringMVC 的基本概念 、 SpringMVC 的入门 、 请求参数的绑定 、常用注解 】...
  7. Office 365 Licence使用情况统计
  8. 写了个项目 Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流
  9. 巅峰对决 竞逐百万大赛 | 2019数字中国创新大赛第二批赛题强势来袭
  10. Git fatal: Authentication failed for
  11. Hoodoop-MapReduce学习
  12. c语言教学方法措施,C语言教学对策
  13. golang_微信头像过期失效
  14. Qt opengl 图片实现3D效果
  15. Anaconda python windows环境安装及完全排坑教程
  16. #GD32F307VET6# 等位替代海威华芯HHD1705001
  17. 计算机专业术语简单释义
  18. 微信小程序是什么?如何快速搭建一个微信小程序?
  19. 在抖音全程看世界杯,超高清直播背后的硬实力
  20. 【MySQL】的优化 pymysql操作 JDBC操作

热门文章

  1. NXP JN5169使用定时器进行PWM输出和定时功能
  2. Oracle数据库练习2
  3. 7-2 拍7令四 (100 分)
  4. 在QQ音乐巅峰榜年度榜单中,听懂国人2022年的音乐记忆!
  5. 教你ZBrush中的笔触
  6. FFmpeg 使用命令整理 – 提取音频或视频、提取图片、格式转换等
  7. 树莓派 电脑通过界面远程控制
  8. 物联网卡充值续费仍无法使用,关键原因在这里!
  9. MybatisPlus代码生成器实现只覆盖指定文件
  10. 2.Deep Neural Networks are Easily Fooled