极客视点
极客时间编辑部
极客时间编辑部
113245 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:21
登录|注册

一些建议:给当年刚做程序员的我

讲述:初明明大小:4.90M时长:05:21
你好,欢迎收听极客视点。
最近,优步工程经理格格利·奥罗斯(Gergely Orosz)回顾自己的职业生涯,并表示,如果时间可以重来,他会建议当年的自己做以下这几件事。InfoQ 对其进行了翻译,希望能给你带来参考价值。

1. 每年花时间读两本关于软件工程的书

我每次花时间缓慢而认真地阅读别人推荐的软件工程书籍时,自身都会得到提升。所谓认真阅读,是要做笔记、与他人交谈、写写画画、动手尝试、回过头来重新阅读。
我希望我在成为开发人员的头几年就阅读与软件相关的书籍。 但我是在从业第 5 年左右才开始这样做的,并养成了认真看书的习惯,这帮助我以技术经理的身份迅速成长。我的建议是寻找比你现有知识更深入的书籍,可以是关于特定技术或关于软件工程实践的著作。如果你感兴趣的话,可以查看我已经看过的和正在看的书籍清单。

2. 精研你工作中主打的编程语言,学到底层

我刚开始时主要用 PHP,兼写一点初级 JavaScript。我在大学里学过 C 和 C ++,都不喜欢。我的第一份全职工作用的是 C#。我了解很多种语言,但是没有一种语言学得非常好。
j
两年后,我开始遇到一些麻烦,在调试 C#代码时不得不找高级开发人员帮忙。其中一个总是帮我调试程序的高级工程师,他似乎非常了解这种语言,他向我推荐了一本书《C#深度学习》。然后我看了,我一路学到线程、垃圾回收和泛型的工作方式,这些都是底层知识。我花了数不清的时间去了解协方差(covariance)、逆方差(contravariance)和其他艰深的主题。
精研我工作中主打的语言是我做出的最佳决定之一。 在我的第一份工作中,这种研究只是无意为之的,并且还得靠那位高级工程师指点。但是,这些知识在工作中,以及面试其他工作时都成了一种优势。在我职业生涯的后期,我有意深入研究新的语言和框架,这对我的帮助是极大的。
你懂的语言越多,就越了解它们各自的长处和短处。而且,你知道的语言越多,就越容易掌握新的语言——并且在需要时更轻松地深入学习。

3. 编写单元测试用例,并在持续集成中运行

高级工程师们经常谈论单元测试的重要性。但是单元测试似乎太违反直觉了:为什么要花更多的时间编写看起来很简单的测试?这是我在某段时间里对单元测试的看法。
为了领略单元测试的价值,你需要拥有“啊哈!”时刻——当你编写的单元测试为你节省了一天的时间,那就是“啊哈!”时刻。在到达这一步之前,你需要脚踏实地,好好编写这些测试,并使它们在持续集成中运行。而且,你可能需要持续做上几个月,才会得到一个“啊哈!”时刻。

4. 养成重构习惯并掌握重构工具

多年来,当我与团队合作时,我倾向于在代码库中进行尽可能小的更改。对于我自己的个人项目,我进行了大量的重构——但是我从来不在我不完全掌控的代码库上做这种事情。
然后,我在 Skype 遇到了一位工程师,他会不断进行小型或大型重构。他们都有道理,并且代码总是变得更好。而且他们从不搞乱事情。他们是如何做到的呢?
当我与他们结对编程时,发现他们非常了解自己的 IDE,并添加了用于重构的插件。提取方法、改变量名、提取成常量………他们只需要花一秒钟。
我意识到,我害怕重构,既错过了实践,又错过了能帮助我重构的工具。 于是当我开始养成每周重构一次的习惯时,我在这两个方面都提升了。这个习惯后来对我很有帮助——我多么希望自己在很多年前就开始这么做啊。

5. 学习良好的软件工程经验,这使我获益良多

最好的软件工程师会把学到的知识和实际经验结合在一起——知识,你可以去学;经验,你需要去实践。
找机会在不同的技术栈、不同的领域和具有挑战性的项目里工作。 我花了七八年的时间才达到我认为的“高级”水平。我看到有些人加入了像 Uber 这种高成长性的公司,三四年就达到了。这中间的区别是什么?这些人从事具有挑战性的项目,力求跟上周围其他人的步伐,并经常在中途更换团队,重新开始。他们自愿参与新项目,并在团队中率先尝试新技术。虽然我最终还是成为了这样的人,但那是后来的事,不是在最初的几年中。

6. 把所学教给他人

学习某些东西,最好的方法是把它们教给别人。我是很偶然发现这一点的。在 2010 年,我开始在.NET 和 Windows Phone 用户组中做演示。我的演讲效果不佳,但是我仅在准备阶段就学到了很多东西。
现在,当我想学好东西时,就会报名参加了一次公开讨论。
我认识的所有经验丰富的模范开发人员,都是合格的老师和导师。越早开始回馈和教导,就会越自然而然地成为这样的开发人员。
以上就是格格利·奥罗斯的经验,希望能够帮助到你。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 叶小鍵
    每年看专业的 2 本书,这个建议非常的好,学习基础底层技术,这个是持续的动作与学习。
    4
  • Joyce
    做个小笔记: 1. 每年花时间读两本关于软件工程的书 2. 精研你工作中主打的编程语言,学到底层 3. 编写单元测试用例,并在持续集成中运行 4. 养成重构习惯并掌握重构工具 5. 学习良好的软件工程经验,这使我获益良多 6. 把所学教给他人
    1
  • 不再是入门水平python的小宇
    1.每年看专业的2本书 2.学习基础底层技术
  • 不再是入门水平python的小宇
    每年看两本专业的书,一门编程语言学到底层
  • 小鱼儿
    学习一门主打的,恰巧我也是C#,要学到底层去。
收起评论
大纲
固定大纲
1. 每年花时间读两本关于软件工程的书
2. 精研你工作中主打的编程语言,学到底层
3. 编写单元测试用例,并在持续集成中运行
4. 养成重构习惯并掌握重构工具
5. 学习良好的软件工程经验,这使我获益良多
6. 把所学教给他人
显示
设置
留言
5
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部