两招让你成为牛X的T型人才

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

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

小结

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

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

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



相关阅读

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

时间: 2024-10-12 17:28:32

两招让你成为牛X的T型人才的相关文章

C加加学习之路 2——两招让你成为牛X的T型人才

有个小伙伴在微信上问我: 我刚工作半年,有时候对于Java的发展方向有点迷茫,Java的范围是在是太广了,我有时候会不知道从哪开始入手,我想问一下,您有什么好的建议吗? 我理解这位朋友的问题是:工作中该如何发现自己要学什么,怎样构建自己的技能树.这是一个非常重要的问题,假如你不知道要学什么,那一旦你工作不那么忙时就会觉得无聊,只能通过浏览新闻.看小说.打游戏等方式消磨时间消耗自己.这对自己的成长和增值非常不利.所以,这次咱就来聊聊工作中学什么这个话题. 根据我的经验,在开发过程中,有两种学习策略

网易2017秋招编程题集合-牛客网

网易2017秋招编程题集合-牛客网 链接:https://www.nowcoder.com/questionTerminal/0147cbd790724bc9ae0b779aaf7c5b50来源:牛客网 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一

洛谷P1518 两只塔姆沃斯牛 The Tamworth Two

P1518 两只塔姆沃斯牛 The Tamworth Two 109通过 184提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 求数据 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总在一起), 或者 农民John. 两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进

【USACO 2.4.1】两只塔姆沃斯牛

[题目描述] 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总在一起), 或者 农民John. 两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子. 一个格子可以是: . 空地 * 障碍物 C 两头牛 F 农民John 这里有一个地图的例子: *...*..... ......*... ...*...*.. ......

luogu P1518 两只塔姆沃斯牛 The Tamworth Two

luogu P1518 两只塔姆沃斯牛 The Tamworth Two 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总在一起), 或者 农民John. 两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子. 一个格子可以是: . 空地 * 障碍物 C 两头牛 F 农民John 这里有一个地图的例子: *...

两招解决异常_Cannot find any information on property 'XXX' in a bean of type 'XXX'的问题

第一招 在进行Java Web项目开发的时候,我碰到过下面这个异常: Cannot find any information on property 'XXX' in a bean of type 'XXX' 如图: 这是javaBean中: 这是显示结果的jsp页面中: 解决方法是: 将javaBean中setClassRanking_she方法改为setClassranking_she,保持存在一个大写字母是安全的. 第二招 on property 'XXX' in a bean of ty

PPT如何压缩大小?只需两招轻松搞定

在工作中我们接触比较多的就是PPT了,自己美滋滋的做了一个很满意的PPT在保存的时候发现,这个PPT文件太大了,这样的话在发送的时候就很不方便了,可是自己辛苦半天的成果,不能这么浪费了,那么该怎么办呢?其实是可以对PPT压缩的,这样的话就能够使用啦,那么PPT如何踏实大小?压缩了的PPT大小又不影响美观和具体的效果呢?想知道的话就一起来看看下面的文章吧,只需两招轻松搞定哦.方法一:PPT直接压缩操作步骤:一.首先是打开我们需要压缩的PPT文件,单击"文件"按钮.二.打开之后,我们点击&

洛谷——P1518 两只塔姆沃斯牛 The Tamworth Two

https://www.luogu.org/problem/show?pid=1518 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总在一起), 或者 农民John. 两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子. 一个格子可以是: . 空地 障碍物 C 两头牛 F 农民John 这里有一个地

【转】iTunes下载速度太慢?两招帮你提速!-- 不错

原文网址:http://bbs.app111.com/thread-275-1-1.html 不用说,很多朋友都发现在大陆,下载 iTunes 上的东西实在是慢如蜗牛,小一点的软件还能坚持一下,大一点的软件几天几夜下不下来那就要命了…那么,你必须看一下这篇文章- 本文主要介绍两种加速 iTunes 下载的方法,不需要代理软件.一个是修改 DNS,另一个是直接修改 hosts 表.先说说修改 DNS 的方法吧. 说一下背景知识,我们访问网页都是通过网址来访问的,就像你访问百度,输入在地址栏的是 h