廉颇不老:如何在40岁后继续做软件开发?

IT之家编者按:一位42岁的程序员向后辈讲述了自己的故事,告诉各位如何在40岁之后继续在自己的岗位上工作的方法。这个年龄往往被看作是程序员的“迟暮”,然而只要走的对,廉颇不老,仍可驰骋沙场。

廉颇不老:如何在40岁后继续做软件开发?

1. Forget The Hype(忘记各种程序语言与架构的炒作与热潮)

[反观我自己]:各种后端与前端语言来来去去,我把时间花在学习Python(会持续),Ruby,Scala(会持续)与Golang(会持续)。透过使用Golang可以有更多的时间去了解系统架构与直接面对问题,让写代码变得更有趣。

2. Choose Your Galaxy Wisely(慎选你的星系)

[反观我自己]:过去十年主要针对微软星系,目前主要就是后端的Ubuntu星系,各种后端程序语言都是我目前主要的重点,当然还有Docker相关技术。

3. Learn About Software History(了解各种软件的历史)

[反观我自己]:比如说我喜欢Golang,我就应该要了解以下的一些问题:

Golang是谁发明的?

Ans:由Google内部的三位大神Robert Griesemer,Ken Thompson(C语言的共同发明者)与Rob Pike(UTF-8的共同发明者),在2007年于Google内部共同起草发明。

他主要解决什么问题?为何以前做不到?

Ans:根据第一份Golang Talk

原因为:

Go fast!

Make programming fun again.

世界在变,但是系统语言却已经十年没变。

系统语言往往编译过久。

为何以前做不到:(在旧的程序语言上做不到)

新增函式库不是一个正确的方向。

需要从新思考整个架构来开发新的程序语言。

目前这个技术的最新状况如何?

Ans:Golang目前是1.6.2 (2016/05/03),并且支援HTTP2并且可以透过gomobile在手机上也可以使用相关套件。

4. Keep on Learning(持续学习!)

不论你喜欢哪些新的技术或是新的程序语言,你都应该持续的学习,里面并且建议:

每年学习一个新的程序语言。

[反观我自己]:

程序语言部分:2014 (Ruby,Scala) 2015 (Go, Swift) 2016还没有决定.

读书部分:每年读没有超过六本书,但是读过不少论文并且有上过一些MOOCs。

5. Teach(指导其他人)

这边指的不是一定要开堂授课,你可以写一篇部落格来讲解你学习的新事物,因为教导是最好的学习方式。

6. Workplaces Suck(工作场所糟糕透了)

廉颇不老:如何在40岁后继续做软件开发?

[反观我自己]:我一向对于任何”不合理”的任务指派都会有意见,甚至不断地提出抗议。(当然结果可能都不好!)但是如果因为这样就不提出,那么我们还剩下什么呢?

7. Know Your Worth(了解自我的市场价值)

[反观我自己]:这件事情还真是难做到,在一间公司待久之后,最容易降低的就是薪水提升的幅度。这件事情还得努力学习,让自己的市场价值更高.同时我们也要不断检视,我们自己能不能创造出自己薪水的十倍价值。

8. Send The Elevator Down(虚心地接受任何意见)

[反观我自己]:参加社群后,最容易有这种感觉:太多令人钦佩的后辈了,每个人都有着渊博而清楚的知识。我们不需要否认,更不需要去挑惕或是批评,我们要谦虚的接受并且吸收,成为我们自己的养分。

9. LLVM(一个自由软件专案,是一种编译器的基础建设,以C++写成)

[反观我自己]:虽然Python与Swift都有学习,但是还不是我最上手的程序语言之一。这一个部分我会好好谨记于心,好好学习。

10. Follow Your Gut(相信你的直觉)

[反观我自己]:我在2014年开始学习许多不同的程序语言,Python, Ruby,Objective C, Java, Swift, Scala与Rust。最后学习到Golang,我直觉认为Golang会是Server-side(或是说Service-side)最重要的程序语言之一,所以我会努力学习。

11. APIs Are King(API是王道)

这边很推崇好的API设计是很重要的,不仅仅影响server与client的沟通,更会影响到好的软件品质。也提出chunky is better than chatty(简单的说:就是不要将API拆的太精简,使得API call需要往来相当的多次。)

[反观我自己]:没有想过,原来chunky的设计准则在某些状况下竟然比chatty更好,这得好好学习。我有架设自己的机器人来帮助我处理一些日常伺服器维护的琐碎事项。

12. Fight Complexity(将复杂的事情简单化)

永远要秉持着KISS原则(“Keep it short and simple”)来处理任何事情.面对困难或是负责的事情,有着不少工具可以帮助你将设计简单化。

[反观我自己]:我一直认为能够越有能力的人,越能够将复杂的事情简单的讲解,或是写成一段简单的程式码来实现,这个能力是我们都要不断学习的。

Conclusion(结论)

「年龄永远不会是一个问题,只要你的心不断催促你持续写代码,持续制造新的东西,你永远都会是年轻的。」

相关内容推荐