在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

在工作中学习和成长

  • 2017-08-10
  • 本文字数:1352 字

    阅读完需:约 4 分钟

来自 Stripe 的程序媛 Julia Evans 在 Twitter 上问了一个问题:“你们是如何进行自我学习的?”很多人给出了他们的回答,大致总结如下:

  • 阅读博客
  • 参加技术大会
  • 读书
  • 利用闲暇时间观看演讲视频
  • 使用想掌握的技术开发实验性项目

这些事情几乎都发生在工作之外,而且相信很多人也是这么做的。但问题是,为什么有些非常优秀的程序员并没有在工作之余做这些事情,或者至少没有经常这么做,但仍然不影响他们成为大神之类的人物?带着这个问题,Julia 在 Twitter 上与人们展开了交流,最后总结了以下几点。

在工作中学习编程语言和框架

以 Julia 为例,她在工作中需要用到 Go 语言,她很喜欢这门语言,只是她并不想花太多的个人时间在学习 Go 语言上。因为她觉得没有必要,她完全可以在工作中通过编写代码、阅读别人的代码、让别人审查她的代码这些方式来学习这门语言。虽说在工作之外学习编程语言不是什么坏事,但既然可以在工作中更高效地学习,那为什么不直接这么做呢?

选择可以从中学到东西的项目

Julia 在过去三年学到了很多东西,比如 Scala、Ruby、Go、Hadoop、Java 并发编程、Java 诊断、AWS、网络、容器、服务发现,等等。人们经常会说:“我们使用了某某技术,你需要具备这些方面的经验才能胜任这份工作。”但实际上,Julia 在掌握这些技术和知识之前,都没有接触过这些东西。所以说,在一开始你不一定要是某某方面的高手,但是你要学会成为高手。选择那些可以从中学到东西的项目。

向高手学习

当 Julia 遇到高手时,就会观察高手是怎么做事情的,然后模仿他们,或者向他们请教。当她开始独立负责新项目时,就会谨记前辈们的教导,让项目进展得更加顺畅。

查看每一个 pull request(PR)

查看别人的 PR 也是很有帮助的,通过跟踪这些 PR 可以知道别人在做什么以及他们是如何解决问题的。Julia 引用了两个很有意思的推文。

我在一个小团队里,我会查看每一个 PR,直到完全了解问题所在以及解决问题的方案。

我通过跟踪人们 checkin 的代码了解他们是如何解决问题的。

阅读源代码

阅读源代码是一个非常重要的学习途径。很多系统并没有完备的文档,如果不阅读源码就很难搞清楚内部的细节。

阅读源码对我来说是非常重要的。不仅要了解它们内部的原理是什么,也要了解为什么要那么实现。

跟踪你无法修复的 bug

有时候,你在面对 bug 时会束手无策,当别人三下五除二把问题解决掉之后,你会迫不及待地想知道他们是怎么做到的,在以后碰到类似的问题时就知道该怎么处理了。

在为问题寻找解决方案时,我通常会从更广的范围着手,进行更深入的探索。

有时候,我也会深入了解与我无关但与我的工作有关的问题,看看能否从中学到什么。

利用通勤时间

有很多人说,可以利用通勤时间来学习一些东西,比如听音频、阅读论文或感兴趣的文章。看起来这也是一个不错的学习方式!

总结

不要觉得利用工作时间充电是在“假公济私”。在实战中学习是最好的学习方式,况且也只有先提升自己,才能更好地回馈工作。程序员的时间不可能都用来写代码,程序员真正高效的写代码时间一天不会超过 4 个小时。可以花一些时间用于思考和学习,在交付工作成果的同时也要不断提升自己。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-08-10 19:004303
用户头像

发布了 322 篇内容, 共 160.6 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

从手游中的感悟

搬砖的周狮傅

游戏 日常感悟

签名验证反爬,反反爬第二篇博客,Python爬虫120例

梦想橡皮擦

12月日更

如何配置 Nessus 漏洞扫描策略?

Ethereal

网络安全 漏洞扫描 网络技术联盟站 Nessus

【架构实战营】模块二:知识点总结

wgl

「架构实战营」

模块二作业

novoer

#架构实战营

明年的能力计划之学会咨询

将军-技术演讲力教练

微信朋友圈的高性能复杂度

guodongq

「架构实战营」

云未来、新可能 - 绿色、无处不在、可信的计算

阿里巴巴云原生

阿里云 容器 云原生 活动 KubeCON

全网最牛逼的华为信息中心配置命令,建议收藏!

Ethereal

网络技术 信息中心 厂商设备命令

Service Mesh 在中国工商银行的探索与实践

阿里巴巴云原生

阿里云 微服务 云原生 服务网格 金融实践

React进阶(十):React 项目启动原理详解

No Silver Bullet

React 12月日更

消息队列存储-mysql表

小麦🌾

架构实战营

第2周学习总结

糖糖学编程

架构实战营

Dubbo-Admin 功能展示与实操解析

阿里巴巴云原生

阿里云 云原生 Dubbo-Admin 功能

【架构实战营】模块二:命题作业

wgl

「架构实战营」

【LeetCode】找到小镇的法官Java题解

Albert

算法 LeetCode 12月日更

全网最牛逼的华为NTP配置命令,建议收藏!

Ethereal

华为 ntp 网络技术

微信朋友圈高性能复杂度设计

CH

「架构实战营」

阿里云消息队列 RocketMQ、Kafka 荣获金融级产品稳定性测评 “先进级” 认证

阿里巴巴云原生

阿里云 云原生 稳定性 获奖

腾讯云实时音视频(TRTC)SDK使用体验测评

为自己带盐

dotnet 28天写作 trtc-js-sdk 12月日更

DDD领域驱动设计实战(六)-理解领域事件(Domain Event)

JavaEdge

12月日更

[Pulsar] LookUp原理

Zike Yang

Apache Pulsar 12月日更

模块二作业

黄秀明

【docker 总结】第七篇 - nodejs项目部署

Brave

Docker 12月日更

模块二作业-朋友圈高性能复杂度分析

圈圈gor

「架构实战营」

微信朋友圈的高性能复杂度分析

糖糖学编程

架构实战营

架构实战营 - 第 4 期 - 模块二作业

Evan

架构实战营 「架构实战营」

架构复杂度分析

tony

「架构实战营」

架构实战营 - 模块2 - 作业

Pyel

「架构实战营」

性能工具之stress工具使用教程(带源码说明)

zuozewei

Linux 工具 性能测试 12月日更

从甲方到乙方,如何做好混沌工程的行业化落地

阿里巴巴云原生

阿里云 云原生 混沌工程 金融行业 行业化落地

在工作中学习和成长_技术管理_薛命灯_InfoQ精选文章