您的位置: 首页 > Word技巧 >

每位开发者都该看:如何在四十岁后还能继续从

时间:2016-09-22 整理:docExcel.net

Source

英文原文:Being A Developer After 40

经 Evan Lin 翻译后,INSIDE 获同意转载。Evan Lin 目前是 Linker Networks 的 Cloud Architect ,也是 Golang 台湾社群的 co-organizer。

查看 ppt:https://speakerdeck.com/player/76fd6952b6fc4f0b9ad75153f065c7e2#

导读:

这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章。

故事很长,一切从 1997 年开始讲起.那是一个令人怀念的年代(FF7 发售,微软入股苹果,铁达尼号电影上映),那是作者第一年身为软件开发者的年份。当时他的第一份工作是从事 ASP 并且在微软的平台上面使用 EditPlus。十八年过去,作者一共做过六份工作,其中被炒鱿鱼两次,出过两本书,从事过不少演讲。他整理了他的一些心得,希望年轻的开发者(或是有志将软件开发作为终生志业的人)一些建议,条列如下:

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

不少的新的语言与技术来来去去,作者不是要你别去学习新事物,而是不要因为有太多的新事物而恐慌或是自我放弃。持续鑽研你目前在学习的,并且可以每年挑一些你有兴趣的项目深入了解。

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

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

为了维持原文的意思,我还是使用星系这个字。这边指的是你学习跟从事的技术要慎选,举例而言,微软星系(泛指: .Net、C# .)或是 Apple 星系(Objective C++、Swift )。慎选你喜欢的星系,因为那会影响你未来的发展。

[反观我自己]:过去十年主要针对微软星系,目前主要就是后端的 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

原因为:

  1. Go fast!
  2. Make programming fun again.
  3. 世界在变,但是系统语言却已经十年没变。
  4. 系统语言往往编译过久。
  • 为何以前做不到:(在旧的程序语言上做不到)

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

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

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

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

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

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

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

每年读六本书。(作者推荐 Peopleware、The Psychology of Software Programming、Facts and Fallacies of Software Engineering、Agile!: The Good, the Hype and the Ugly、Rework 跟 Geekonomics,都是好书。)

[反观我自己]:

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

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

5. Teach(指导其他人)

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

[反观我自己]:还好部落格从来没停过,个人也认为写部落格的过程可以让我不断地检视我了解的部分,并且弄懂所有的细节(希望!),不过还是希望能够多多指导其他人(比如说 meetup 或是 talk)。

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

不要去期望软件公司会给你任何职涯的规划,相反的不少公司会将你认为是另外一种的劳工,只会将你放在你擅长的位子,所以也有软件公司变成血汗工厂的相关文章。作者同时也认为开放性座位对于需要高度脑力工作的软件工作者是一种最不好的设计(使用 cancer 这个词)。而对于工作上的指派,作者也建议大家应该要好好了解每个任务的内容.有任何疑问应该要提出来讨论,对于不了解的事物盲从是最不好的,应该不惜抗拒权威或是离职才是正确的选择,不要让这样的工作风气扼杀了你的热情。

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

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

这篇是要大家充分的了解自己的市场行情(也就是薪水),根据这篇文章通常一个软件工程师应该要能创造出他自己薪水等级的十倍价值。事实上可能远远不止如此,所以作者建议我们要勇敢地去争取更多的薪水,甚至你可以公开你的薪水等级,让更多人知道你是否被低估(或是高估)任何(自认为)有你相同能力的人,都应该拿到一样的待遇。

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

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

这边我的解读可能跟作者原先的不同。他有提到肤色与种族的优势,但是我想到的却是你的职位,你可能会听到许多来自于部下或是后辈的建议(或是批评)。不要快速地想要反驳或是抵制,充分的了解过后,或许可以坦诚自己的见解或许是有盲点的,必要时甚至可以道歉并且快速修正。如同许多书上有提到的:「你雇用一个员工,一定是要比你还强的,这样你才能将事情交给他办,你自己做更需要更大视野的任务。」

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

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

作者认为 LLVM 会是下一个重要的资讯业的星系(Galaxy) ,目前已经有许多的程序语言支援 LLVM 了。所以作者建议我们可以花一些时间去了解,或许去学习相关的程序语言。

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

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

作者在 2000 年就觉得 .NET 会引领接下来的几年,在 2007 年 iPhone 的发表会就了解他的相关技术会是紧接着几年的发展趋势。

当然,这是作者的直觉。但是,你也应该充分地相信你的直觉,并且努力的去追求与学习。

[反观我自己]:我在 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 需要往来相当的多次。)

同时作者也建议不要太依赖 REST ,不彷看看 socket.io, ZeroMQ, RabbitMQ, 或是 Erlang。并且也应该开始架设自己的机器人。

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

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

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

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

  Conclusion(结论)

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

这是作者给我们的结论,他也希望我们能够保持一颗年轻的心,不断学习。 2016 是一个崭新的一年,有着许多新奇的事件发生:微软拥抱 Ubuntu,并且让 SQL Server 在 Linux 上执行,人工智慧(AlphaGo)的大反攻。我们不会知道有什么将发生,但是他希望我们都记住这些精神,并且微笑向前。

三星Bada开发论坛明年一月关闭 问题:三星Bada开发论坛明年一月关闭
回答:...27 日,三星电子宣布终止 Bada 系统的开发之后。今日 BADA 发者网站贴出通知表示将在明年一月关闭发者论坛。不过 SDK 和技术文档还将继续提供下载。 2013 年 2 月 27 日,三星表示为了把移动业务进一步向 Tizen 集成发展,决...
独立开发者:复盘Unity手游[HyperBowl] 问题:独立开发者:复盘Unity手游[HyperBowl]
回答: GameLook 报道/随着手游市场的不断增长,越来越多的独立发者开始进入手游领域,小团队的成功率也随之降低。最近,一名海外独立发者在博客中复盘了自己做的一款 Unity 手游《HyperBowl》,虽然这款手游并没有获得数千万美...
观点:开发者只有在可能失去的时候才会更有动 问题:观点:开发者只有在可能失去的时候才会更有动
回答:...《Friendstrap》和《Bamfu》,但创始人 Adriaan de Jongh 表示,发者只有在可能失去的时候才会更有动力。 在《Bounden》研发的时候,该项目有 11 个人,其中只有一半是全职的。最近,在比利时 Screenshake 活动上,Game Oven 工作室的 Adri...
错过就要等一年 深圳微信开发者大会不容错过的 问题:错过就要等一年 深圳微信开发者大会不容错过的
回答: 由 CSDN 和《程序员》杂志联合举办的 首届微信发者大会在北京成功举办,并受到了参会者的极大好评。很多微信发者期望该会可以在更多城市举办,于是主办方决定于11 月 15 日在深圳再次举办微信发者大会。( ...
谷歌收购iOS原型设计工具开发团队RelativeWave 从此 问题:谷歌收购iOS原型设计工具开发团队RelativeWave 从此
回答:...具要价 80 美元,但被谷歌收购之后,这款工具将免费对发者开放。 Form 实际上是由两款应用组成:其中之一将在 OSX 系统上运行,另一个则在 iOS 设备上运行。发者在 OS X 系统的可视化编辑器进行原型设计,同时可立即在 iO...
开发者分享:怎样以低成本做高效能游戏 问题:开发者分享:怎样以低成本做高效能游戏
回答:...个游戏又不想花光你的积蓄?或者你是一个想挑战预算的发者? 这些事情意味着你不想多花钱,想在任何可能的地方减少开支。下面我们来探讨低成本/零成本开发。 1)你本可以提高成本,把游戏做的不糟糕。 这很明显是...
相关知识:

下面内容对您也许有用

      话题:奸商死哪儿去了

      问题详情:连续2天奸商个毛都没看到,难道是蹲腿了?想买紫魔方就是不出

      推荐回答:Romdu 联盟新站正式上线——rom开发者联盟,开启ROM开发新时代 近日,Romdu 联盟新站将正式上线——rom开发者联盟!这意味着 ROM开发行业又向前推进了一步,以下就是Romdu 联盟新站三大特色优势: 1)Romdu新站改头换面,全新专业团队蓄势待发 1、专业运营团队:专业的运营人员,站在ROM开发者与用户的角度多重思考,旨在为广大开发者寻求更多的乐趣和利益保障,只做专业的ROM开发者服务,让开发者们在Rom开发者联盟能找到归属感。 2、专业技术团队:不断升级的资深专业技术团队,攻陷每一个可能存在的bug;打造一个可靠、稳定、实用度极高的“数全好懂用处广”的统计软件来献给广大开发者们。 3、专业

      话题:为什么开发者热衷在Stack

      推荐回答:Stack Overflow更偏向于一个论坛,话题的地方。api文档肯定还是查官方的资料比较靠谱,只不过一些疑难杂症在这个论坛里多多少少都可以找到踪迹,而国外对于开发分享又比较open。在这里对于解决问题可能更全面,也更有效率。

      话题:每天可以刷多少金币,

      问题详情:求大神告诉,还有都可以怎么刷金币

      推荐回答:Romdu 联盟新站正式上线,开启ROM开发新时代近日,Romdu 联盟新站将正式上线!这意味着 ROM开发行业又向前推进了一步,以下就是Romdu 联盟新站三大特色优势:1)Romdu新站改头换面,全新专业团队蓄势待发 1、专业运营团队:专业的运营人员,站在ROM开发者与用户的角度多重思考,旨在为广大开发者寻求更多的乐趣和利益保障,只做专业的ROM开发者服务,让开发者们在Romdu联盟能找到归属感。 2、专业技术团队:不断升级的资深专业技术团队,攻陷每一个可能存在的bug;打造一个可靠、稳定、实用度极高的“数全好懂用处广”的统计软件来献给广大开发者们。 3、专业客服团队:甜心萝莉专业化客服团队,精湛的

      话题:clearcase是什么

      推荐回答:随着软件团队人员的增加,软件版本不断变化,时间的紧缺,多种平台的复杂环境,使得 ClearCase所拥有的特殊组件已成为当今软件开发人员(工程人员和管理者)所必须的工具。分布式操作使得基于Client/Server的运算结构跨越于网上客户机和服务器,ClearCase的先进功能直接解决了原来开发团队所面临的难以处理的问题。 软件开发所面临的问题包括:对当前多种产品的开发和维护,保证产品版本的精确,重建先前发布的产品,加强开发政策的统一和对特殊版本需求的处理。通过解决这些问题,ClearCase用资源重用的方法帮助开发团队使他们所有的软件建立得更加可靠。 Rational公司的ClearCase是软件配置领域的先导,它主要

      话题:软件技术的IBM开发平台

      问题详情:这个平台是一个什么样的平台

      推荐回答:对于软件开发 现在大多数软件开发基本上都是团队合作开发 IBM推出的这个平台 目的就是一个让很多程序员都可以通过互联网交流最新成果和了解最新的开发进度,它让实时的信息发布、信息反馈成为了可能,为团队协作开发搭建了卓越的平台。通过互联网,分布在世界各地的开发团队成员都可以在Jazz上了解到开发的最新进度,发布最新的开发和测试结果,寻求帮助;此外,他们还能在Jazz上找到他们应该遵循的工作流,在Jazz的指引下循序渐进地工作,而不必担心偏离了开发目标。对于项目的管理者,他们也能够在Jazz上找到自己最需要了解的东西,包括团队的进度,每位开发者的现状,以及资源的配置状况等数据,从而帮助其灵活

      话题:clearcase是什么

      推荐回答:随着软件团队人员的增加,软件版本不断变化,时间的紧缺,多种平台的复杂环境,使得 ClearCase所拥有的特殊组件已成为当今软件开发人员(工程人员和管理者)所必须的工具。分布式操作使得基于Client/Server的运算结构跨越于网上客户机和服务器,ClearCase的先进功能直接解决了原来开发团队所面临的难以处理的问题。 软件开发所面临的问题包括:对当前多种产品的开发和维护,保证产品版本的精确,重建先前发布的产品,加强开发政策的统一和对特殊版本需求的处理。通过解决这些问题,ClearCase用资源重用的方法帮助开发团队使他们所有的软件建立得更加可靠。 Rational公司的ClearCase是软件配置领域的先导,它主要基

      话题:上月bae的费用是12.4元,现在支付却是0.4元,有碰到这个情

      推荐回答:作为升级成“付费开发者”的优惠奖励,会抵消30天金额,剩余1天0。首次使用减免12元。每位开发者第一次完成支付后,都将获得价值12元BAE优惠券相当于256M执行单元免费使用720小时,统一按计费标准结算所有使用中的执行单元都会产生费用,以后就需要全额付款31天时

      话题:怎样关掉开发者模式

      问题详情:我不小心点开了,开发者模式,怎么关掉

      推荐回答:连续点击七次版本号就能开启开发者选项,下拉找到【管理应用程序】一项,找到【全部】,可以看到刚才还有的【开发者选项】已经消失了关掉开发者模式,找到【设置】这一项,会看到几个按钮,需要进到手机【设置】里,打开开发者模式之后,另一种是下拉通知栏,点击打开 点击打开程序管理中的“设置”: 我们都知道,点击右上角【设置】按钮在手

      话题:如何正确地写好一个iOS界面

      推荐回答:3.1 精简扁平的View层次结构2;1.4 UI系统架构2.1 精简扁平的View层次结构2:1.3 合理运用VC在替代View组合复杂界面.3.3 事件响应1.3;1.1 精简扁平的View层次结构2.2 动画及渲染1.3.3 合理运用VC在替代View组合复杂界面.3.1 布局管理1.1 布局管理1.3 事件响应1.3,写好界面主要做好以下方面,也是一位合格移动应用开发者绕不过去的坎.3 事件响应1.3 合理运

      话题:如何正确地写好一个界面

      推荐回答:3.4 UI系统架构2.3 事件响应1.3.4 UI系统架构2,也是一位合格移动应用开发者绕不过去的坎.2 动画及渲染1.3 事件响应1;2.1 布局管理1.3 合理运用VC在替代View组合复杂界面.3.3.3 合理运用VC在替代View组合复杂界面.1 布局管理1;2:1.3 合理运用VC在替代View组合复杂界面;1.3.4 UI系统架构2.1 布局管理1,写好界面主要做好以下方面.3.1 精简扁平的View层次

最新评论