导读:
这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章。
1、Forget The Hype (忘记各种程序语言与架构的炒作与热潮)
[反观我自己]:各种后端与前端语言来来去去,我把时间花在学习 Python(会持续), Ruby,Scala(会持续)与 Golang(会持续)。透过使用 Golang 可以有更多的时间去了解系统架构与直接面对问题,让写程序变得更有趣。
2、Choose Your GalaxyWisely(慎选你的星系)
为了维持原文的意思,我还是使用星系这个字。这边指的是你学习跟从事的技术要慎选,举例而言,微软星系(泛指: .Net、C# ….)或是 Apple 星系(Objective C++、Swift …)。慎选你喜欢的星系,因为那会影响你未来的发展。
[反观我自己]:过去十年主要针对微软星系,目前主要就是后端的 Ubuntu 星系 ,各种后端程序语言都是我目前主要的重点,当然还有 Docker 相关技术。
3、Learn About Software History(了解各种软件的历史)
[反观我自己]:比如说我喜欢 Golang ,我就应该要了解以下的一些问题:
Q:Golang 是谁发明的/p>
Ans: 由 Google 内部的三位大神 Robert Griesemer,Ken Thompson(C 语言的共同发明者)与 Rob Pike(UTF-8 的共同发明者),在 2007 年于 Google 内部共同起草发明。
Q: 他主要解决什么问题何以前做不到/p>
Ans:根据第一份 Golang Talk,原因为:
- Go fast!
- Make programming fun again.
- 世界在变,但是系统语言却已经十年没变。
- 系统语言往往编译过久。
为何以前做不到:(在旧的程序语言上做不到)
新增函式库不是一个正确的方向。
需要从新思考整个架构来开发新的程序语言。
Q:目前这个技术的最新状况如何/p>
Ans:Golang 目前是 1.6.2(2016/05/03) ,并且支持 HTTP2 并且可以透过 gomobile 在手机上也可以使用相关套件。
4、Keep on Learning (持续学习!)
不论你喜欢哪些新的技术或是新的程序语言,你都应该持续的学习,里面并且建议:
每年学习一个新的程序语言。
[反观我自己]:
程序语言部分: 2014 (Ruby, Scala) 2015(Go, Swift) 2016 还没有决定.
读书部分:每年读没有超过六本书,但是读过不少论文并且有上过一些 MOOCs。
5、Teach(指导其他人)
这边指的不是一定要开堂授课,你可以写一篇部落格来讲解你学习的新事物,因为教导是最好的学习方式。
[反观我自己]:还好部落格从来没停过,个人也认为写部落格的过程可以让我不断地检视我了解的部分,并且弄懂所有的细节(希望!),不过还是希望能够多多指导其他人(比如说 meetup 或是 talk)。
6、Workplaces Suck(工作场所糟糕透了)
[反观我自己]:我一向对于任何”不合理”的任务指派都会有意见,甚至不断地提出抗议。(当然结果可能都不好!)但是如果因为这样就不提出,那么我们还剩下什么呢/p>
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 itshort and simple”)来处理任何事情. 面对困难或是负责的事情,有着不少工具可以帮助你将设计简单化。
[反观我自己]:我一直认为能够越有能力的人,越能够将复杂的事情简单的讲解,或是写成一段简单的程序代码来实现,这个能力是我们都要不断学习的。
Conclusion(结论)
「年龄永远不会是一个问题,只要你的心不断催促你持续写程序,持续制造新的东西,你永远都会是年轻的。」
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!