写点什么

在工作中学习和成长

  • 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:004218
用户头像

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

关注

评论

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

怎么用AI生成UML时序图?AI高阶绘图技巧盘点!

职场工具箱

人工智能 UML 时序图 AI软件 AIGC

浅谈低零融合表单设计器兼容方案

inBuilder低代码平台

低代码 零代码平台

JimuBI 积木报表 v1.9.5发布,大屏和仪表盘,免费数据可视化

JEECG低代码

数据可视化 数据大屏 大屏设计器 仪表盘设计 积木BI

YashanDB 知识库|共享集群换 IP 全流程,手把手教你搞定!

数据库砖家

数据库·

从“好玩”到“好用”:企业级智能体落地的关键飞跃|甲子光年

Techinsight

智能体 AI 智能体 智能体评估

AI Agent落地竞速,金智维卡位千亿级企业市场

Techinsight

智能体 企业级开发 AI 智能体 AI GENTS 智能体评估

SAE 实现应用发布全过程可观测

阿里巴巴云原生

阿里云 Serverless 云原生

分析型数据库入门指南:如何选择适合你的实时分析工具?

镜舟科技

分析型数据库 云原生架构 列式存储 实时分析 MPP架构

运维实战|快速搭建适配 YashanDB 的 Prometheus Exporter!手把手教学

数据库砖家

数据库

YashanDB 知识库|轻松打通多库数据,YashanDB DBLink 使用指南!

数据库砖家

数据库

活动回顾|Apache Cloudberry™ (Incubating) Meetup·2025 杭州站

酷克数据HashData

“三苏领航”文旅协同推介会:整合资源,赋能粤派文旅发展

极客天地

小白也可以看懂的 MCP 介绍

火山引擎开发者社区

MCP

YashanDB 知识库|yasboot 查询状态显示 off?原来是启动方式搞错了!

数据库砖家

数据库·

YashanDB 知识库|yasql 登录失败?可能是你没处理好特殊字符!

数据库砖家

数据库·

Bolt.diy 一键部署,“一句话”实现全栈开发

阿里巴巴云原生

阿里云 云原生

玩转MCP | 一文看懂如何在 Trae IDE 中解锁 MCP

火山引擎开发者社区

火山引擎 MCP

徽客松S1 | 合肥首场 AI 黑客松招募

声网

YashanDB 知识库|迁移报告下载失败?可能是 Java 版本太新了!

数据库砖家

数据库

海外云手机怎样帮企业省钱玩转海外社媒?

Ogcloud

云手机 海外云手机 海外社媒运营 海外社媒推广

月暗开源 Kimi-Audio,单一框架执行多种语音任务;照片秒变可对话数字人,LemonAI 推出 Slice Live丨日报

声网

YashanDB 知识库|YAS-02143 登录失败?可能不是密码错,而是 JDK 版本太老了

数据库砖家

数据库·

YashanDB 知识库|如何用闪回功能救回误删的数据?全流程实战演示

数据库砖家

数据库·

一文看透企业智能体江湖:综合平台 VS 垂直霸主,谁才是企业刚需答案?

Techinsight

智能体 agent 企业级 智能体评估

企业异地组网面临的问题及SD-WAN解决方案详解

Ogcloud

组网 企业组网 异地组网 企业异地组网

豆包1.5·深度思考模型发布!效果好、低延迟、多模态

火山引擎开发者社区

AI 豆包

Multi-SWE-bench:首个多语言代码修复基准开源

火山引擎开发者社区

语言 & 开发 豆包

游戏服务器不加防护能活多久?

网络安全服务

CDN 游戏服务器 高防服务器 高防IP DDoS 攻击

YashanDB 知识库|YMP 报 YAS-04204 错误?可能是你的并发配置超了限!

数据库砖家

数据库

Gone 框架的脚手架工具gonectl介绍

大鹏

YashanDB 知识库|手把手教你回收表空间,释放磁盘的正确姿势!

数据库砖家

数据库

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