【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

《软件工程师职业生涯完全指南》作者访谈

  • 2017-10-23
  • 本文字数:3710 字

    阅读完需:约 12 分钟

本文要点

  • 《软件工程师职业生涯完全指南》是为所有级别的软件开发人员而写的,书中回答了大多数与软件开发人员相关的问题,比如软件开发入门、找工作、掌握技能、在职场中获得成功、职业生涯规划等。

  • 要在现今的 IT 环境中获得成功,软件开发人员需要掌握大量的技能,所幸的是,有很多学习资源可供他们参考。

  • 不是所有的开发者都要去创办自己的公司,创业的风险和不稳定性不是每个人都能承受的,不过做一些编外项目确实会让开发者从中受益。

  • 在现今的软件开发领域,团队合作比以往任何时候都要来得重要。

  • 要让开发者职业生涯获得长足的发展,最好的办法就是做一个有用的人,为团队创造价值,学会建立个人品牌,推销自己。

《软件工程师职业生涯完全指南》这本书回答了各个级别的开发人员在他们的职业发展过程中经常会碰到的问题,从学习技术、找工作、与管理者相处,到参与编外项目或者创办自己的公司。

InfoQ 的读者可以下载这本书的试读样章

InfoQ 采访了这本书的作者 John Sonmez,谈论了如下几个话题:软件开发人员需要掌握哪些技能以及如何扩展这些技能、开发者是否应该创办自己的公司或参与一些编外项目、DevOps 将如何影响开发者的角色、开发人员应该如何高效地与测试人员合作、开发人员要想在职业生涯上更进一步应该做什么以及不应该做什么。

InfoQ:你为什么要写这本书?

John Sonmez:软件行业总是让人感到迷茫,特别是对于那些刚刚步入这一行业的新手来说就更是如此。

关于如何才能成为软件开发者的问题并没有很明确的答案。

是要去大学里学习,还是去参加训练营,抑或是自学?要学什么?怎么学?

在你“完成”学习之后,怎么才能找到工作?

在获得一份工作之后,如何发展自己,如何获得成功,你还需要知道些什么?

读过我的博客和看过我的 YouTube 频道的开发人员总会问我这些问题,我却觉得无法给他们指出一条明路。

之所以写《软件工程师职业生涯完全指南》这本书,是因为我找不到其他更好的渠道可以回答这些问题。当然,我也想借此帮助开发者们在他们的职业生涯中获得更大的成功。

我想回答他们提出的每一个问题,并在一个地方统一回答这些问题。

InfoQ:这本书的目标读者是谁?

Sonmez: 这本书的目标读者是所有级别的软件开发人员,不过我认为非软件开发人员也能从中获益。

这本书的每个章节都很紧凑、简洁,而且可以独立成章。

不管你的职业生涯处于哪个阶段,都可以阅读这本书。你可以阅读整本书,也可以根据实际情况有选择性阅读某些章节。

你可以把这本书作为软件开发职业生涯的启蒙书籍和后续职业生涯发展的指南。

我希望这本书能够保持常青,给人们带来深远的价值和意义。

InfoQ:软件开发者需要掌握哪些技能?

Sonmez: 他们需要掌握的东西真的是太多了。

以 Web 开发者为例。首先,你需要掌握一些编程语言和用于开发 Web 用户界面的 HTML 和 CSS。

你还需要掌握 JavaScript 或者 JavaScript 框架。

你需要了解 Web 上的数据是怎样流动的:HTTP 协议、无状态、Web 服务器、客户端、浏览器等等。

而上述这些只不过是冰山一角。

你要与其他开发人员一起协作,所以还需要学会使用版本控制工具。

比如,检出和提交代码、合并代码、拉取分支等等。

你还需要了解构建系统和持续集成。

你需要测试自己的代码,所以还需要知道如何进行测试,特别是单元测试。

当然,不要忘了软件开发生命周期和敏捷方法论。

你还需要懂 SQL 和数据库原理,因为你很可能需要存储数据……

总之真的是太多东西了。

我想再次强调一下我写这本书的缘由,我想把这些问题都集中在一起,让每一个开发者都能看到他们想知道的答案。

InfoQ:他们该如何学习和扩展这些技能?

Sonmez: 所幸的是,学习和扩展这些技能并非难事。

我的意思并不是说他们就可以轻而易举地掌握这些技能,事实上,真正难点在于知道要学什么,而不是学习本身。

现今有很多学习资源,而且它们大部分都是免费的。

难点在于你要知道该学些什么,以及如何扩展这些技能。

我发现你只要给他们指明了方向,他们就能找到自己的路。

InfoQ:开发人员需要创办自己的公司吗?

Sonmez: 说实话,大部分开发者不需要这么做。

并不是每个人都能成为企业家。

如果越来越多的软件开发者能够成为企业家并开始创办自己的公司那就再好不过了,我也希望能够帮到他们。但事实是,对于大部分人来说,他们要为此付出自由的代价。

只是接受他人的建议要比自己摸索并承担责任要容易得多。

话虽如此,如果你能自己打出一片天地,那是再好不过了。

我说的不仅仅是风险与回报。

如果能够找到生活的意义并自己开创出一片新天地,那是一种无形的资产,你会因此获得成就感。你所创造的价值会得到人们的认可,也会因此从他们那里获得回报。

InfoQ:参与编外项目对他们会有帮助吗?

Sonmez: 我由衷地建议所有软件开发者都去参与编外项目。

参与编外项目有很多好处。

参与编外项目最大的好处是可以获得有价值的经验,可以使用在工作中可能无法用到的技术。

这是在常规工作之外增长经验最好的途径。

况且,编外项目会让你接触到更多的软件开发元素,而这些可能是你过去无法接触到的。

设计、开发并发布自己的软件项目是一种非常好的体验。

它还会锻炼你的自律能力和坚持不懈的毅力,而对于你的职业生涯的帮助更是巨大的。

很多编外项目的开发工作会变成全职的,或者它们也会给你的简历增色不少。

你也可能从中赚取一些酬劳,从而给你的生活带来改变,或者至少对你的生活有所帮助。

InfoQ:DevOps 是如何影响开发者角色的?

Sonmez: DevOps 模糊了软件开发和基础设施团队之间的界限。

在过去,开发人员主要的职责就是写代码。他们不需要关心如何部署代码,也不需要关心用来部署代码的服务器是怎样的。

但随着敏捷和持续集成变得越来越流行,工作格局发生了变化,DevOps 也应运而生。

DevOps 在代码开发和代码部署之间架起了一座桥梁。

开发者不仅需要知道如何写代码,也需要知道如何打包、部署和维护代码。

不过对于开发者来说,这些并不是什么新技能,因为大多数开发者都很熟悉如何配置服务器和部署代码,不过对于纯程序员来说可能会有点困难。

不过话说回来,开发者们至少需要花点时间了解操作系统和服务器,了解构建系统和持续集成的工作原理以及如何分析和诊断生产环境问题。

InfoQ:开发人员如何与测试人员高效地合作?

Sonmez: 最关键的是要了解测试流程和测试目标,注重与测试人员之间的沟通。

敏捷方法在这方面已经起到了一定的作用,它把整个团队看成是一个目标单一的团队,整个团队的职责就是开发和交付软件。

开发人员需要接受这种想法,并意识到大家是一个整体。

或许你会觉得测试人员在你的代码里鸡蛋挑骨头,但从大体来看,每个人都是在为创建高质量的软件而努力。

我见过的最糟糕的事情是,开发人员和测试人员之间鲁莽行事,而不是进行真诚的沟通。

开发人员和测试人员在一起工作,直接发现问题并解决问题,这个比把 bug 记录下来再发给开发人员要高效得多。因为开发人员有可能无法重现这些 bug,然后又踢回给测试人员,这样反反复复,直到 bug 得到解决或者重新测试 bug。

有时候,五分钟的沟通可能会省下几个小时的时间,甚至可以消除成员之间的敌意。

我们属于同一个团队,有共同的使命,应该做到不分你我。

InfoQ:开发人员在他们的职业生涯发展过程中应该要做些什么以及不该做些什么?

Sonmez: 要想在职业生涯中有所提升,需要注意两点:

1. 让自己变得有价值
2. 展示你的姿态,让别人感受到你是一个有用的人

这两点说起来容易做起来难。

让自己变得有价值就是要学会如何写出高质量的代码、如何高效地解决问题,也就是要提升你的技能,但其实你真正要做的比这要多得多。

一个有价值的开发者会让其他开发者和团队的其他人也变得有价值。

这要求他担起责任,具备主人翁精神。这也意味着他要成为领导者角色,学会如何与其他人有效地沟通,让他们朝着共同的目标前进。

一个人只要为他人带来价值,也就能从他人那里获得回报。

Zig Ziglar 说“如果你能帮助别人获得他们想要的,你就也能得到这些东西”。

不过,现在仅仅为他人提供价值是远远不够的。就算你是一块金子,但如果被埋没了就无法闪光。

要想让自己闪光,就要学会推销自己,建立个人品牌和声誉。

你必须让人们注意到你,成功的开发者就可以做到这一点。

当然,并不是说你要在四处炫耀你的技能和成就。

你需要曝光,不管是在工作场所还是其他地方,最好是能够在曝光自己的同时也能给他人带来价值。

你可以写博客、写书、制作视频教程、指导他人、组织技术会议、创建播客。

曝光的方式有很多,只要你想把你的所长分享给其他人,为他们带来价值。

只要你把上述的两个元素结合在一起,创造价值并提高曝光率,成功就会接踵而至。

大部分开发者并没有这样的耐心,而且无法坚持下去,又或者他们低估了推销自己所能给他们带来的好处。

关于本书作者

John Sonmez 是一个软件开发者,也是两本国际畅销书的作者,它们分别是《软技能:代码之外的生存指南》和《软件工程师职业生涯完全指南》。John 在职业生涯早期就发现仅仅具备技术知识是不够的,开发者需要掌握一些“软技能”(比如沟通和领导力)才能获得成功。他每年帮助 140 万名程序员发展混合技能,这让他成为非常吃香的开发者和咨询师,并给自己带来了丰厚的回报。

查看英文原文: Q&A on “The Complete Software Developer’s Career Guide”

2017-10-23 17:433807
用户头像

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

关注

评论

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

卸载 Navicat!事实已证明,正版客户端,它更牛逼

比伯

Java 编程 架构 互联网 计算机

马特机器人系统开发具体详情丨马特现成源码开发

系统开发咨询1357O98O718

别再纠结“性能优化方案有哪些”了

追谏

面试 大前端

大米“绑上”区块链,江苏为农产品上“身份证”

CECBC

☕JVM技术之旅-带你认识GC回收的原理

洛神灬殇

Java JVM GC GC Root 5月日更

数字经济如何推动制造业高质量发展

CECBC

牛客网亲测有效!牛客下载量近百万的Java程序员复盘秘籍真滴强

Java架构之路

Java 程序员 架构 面试 编程语言

GreenPlum数据库介绍

数据社

5月日更

这可能是史上最易懂的计算机网络科普文

追谏

面试 大前端 网络协议 科普 TCP/IP

教你写好技术文章

元闰子

技术人 写作技巧

教你写好代码注释

元闰子

软件开发 代码注释

CPU战争40年,终于把Intel打趴下了

Java架构师迁哥

如何选择Intel 傲腾持久内存的几种工作模式

Steven Xu

内存 存储 内存数据库 Snapshot 高性能服务器

一张漫画解读:程序员为什么会跑路?

Java架构师迁哥

Tomcat 中是怎么处理文件上传的?

AI乔治

Java tomcat 架构 HTTP

网络攻防学习笔记 Day4

穿过生命散发芬芳

5月日更 网络攻防

不爱跳槽的程序员集中在8-17k,揭晓中国开发者的真实现状

Java架构师迁哥

EOKEX交易所系统开发方案丨EOKEX交易所源码平台

系统开发咨询1357O98O718

4.1 Go语言从入门到精通:函数

xcbeyond

函数 Go 语言 5月日更

从分层架构到微服务架构(一)

元闰子

学习 读书笔记 架构

对Spring Cloud+Nginx架构的主要组件不清楚,看这个就好

小Q

Java 学习 架构 面试 微服务

第八大洲环游记(二):中东云计算,异口同韵

脑极体

架构师实战营 模块三作业(基于自研集群 + MySQL存储的消息队列系统架构设计文档)

代廉洁

架构实战营

架构师实战营 模块三总结

代廉洁

架构实战营

上线仅仅三小时,豆瓣评分均9.0的“四本程序员必刷书籍”火了

Java架构之路

Java 程序员 架构 面试 编程语言

你开25k?我给30k!能让面试官满意的Java面试笔记到底有多强?

Java 程序员 架构 面试

Github标星过万!能让面试官满意的Java面试笔记到底有多强?

Java 程序员 架构 面试

测试

bilibili

从理论走向实践,金五银六Java线程池指南已上线,一次性教给你!

飞飞JAva

Java 线程池

【Vue3】起步

德育处主任

JavaScript Vue 大前端 Web Vue 3

差点跳起来了!阿里首推22w字Java面试复盘宝典成功助我入职美团

Java架构之路

Java 程序员 架构 面试 编程语言

《软件工程师职业生涯完全指南》作者访谈_Book Review_Ben Linders_InfoQ精选文章