写点什么

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

  • 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:434701
用户头像

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

关注

评论

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

c#12 实验特性Interceptor如何使用的一个简单但完整的示例

EquatorCoco

C# 开发语言

私网环境下如何使用云效流水线进行 CI/CD?

阿里云云效

阿里云 云原生 云效

数据复盘“黑色星期一”:加密市场震荡,代币表现如何?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

代理IP如何助力品牌保护?

IPIDEA全球HTTP

品牌 代理IP

国际化战略:京东商品详情API的全球视野

技术冰糖葫芦

api 货币化 API 接口 API 文档 API 测试

文旅科技公司:云管高效赋能,加速云上业务蓬勃发展

嘉为蓝鲸

运维 多云管理平台 云管理

从零到一:用Go语言构建你的第一个Web服务

快乐非自愿限量之名

Go 前端 Web goland

简单设计一个JAVA并行处理工具类

快乐非自愿限量之名

Java

开启DevOps+AI智能新时代,嘉为蓝鲸智能AI助手CAssist全新上线!

嘉为蓝鲸

DevOps 生成式AI

WiFi 7 IPQ5332 vs. WiFi 6 IPQ6010: A Comprehensive Comparison

wifi6-yiyi

WiFi7

防盗、防泄露、防篡改,我们把 ZooKeeper 的这种认证模式玩明白了

阿里巴巴云原生

阿里云 微服务 云原生

源码低成本开发体育直播平台:实施和控制营销活动策略探讨

软件开发-梦幻运营部

通义灵码代码大模型应用实践访谈

阿里云云效

阿里云 云原生 通义灵码

可观测产品剖析——日志统一管理

嘉为蓝鲸

日志监控 日志管理 日志采集

30% 代码由 AI 生成,单测准确率达到 90%,我在阿里巴巴国际站推广通义灵码

阿里巴巴云原生

阿里云 云原生 通义灵码

Golang 策略设计模式

俞凡

架构 设计模式

未来已来:阿里巴巴商品搜索API返回值的智能化展望

技术冰糖葫芦

api 货币化 API 接口 API 文档 API 测试

千行万业的数智化,将在全闪普惠的土壤上开出新花

Alter

将大模型装进PC和手机,需要怎样的底层创“芯”?

脑极体

AI

广汽集团与火山引擎签署战略合作协议

新消费日报

重磅!观测云荣获SOC 2 Type II鉴证报告

观测云

安全合规

通义灵码代码大模型应用实践访谈

阿里巴巴云原生

阿里云 云原生 通义灵码

AI 点燃体育热情!使用 PAI-Artlab 定制专属海报

阿里云大数据AI技术

人工智能 奥运会 AIGC 文生图 PAI

再获殊荣!嘉为蓝鲸携手电力公司入选工信部信创典型解决方案

嘉为蓝鲸

运维 数字化转型 信创

涨姿势啦!Go语言中正则表达式初始化的最佳实践

左诗右码

Go

可观测产品剖析——硬件监控

嘉为蓝鲸

运维 监控 数据监测 数据接入

私网环境下如何使用云效流水线进行 CI/CD?

阿里巴巴云原生

阿里云 云原生 云效

从一个服务预热不生效问题谈微服务无损上线

阿里巴巴云原生

阿里云 微服务 云原生

如何用 CocosCreator 对接抖音小游戏的侧边栏复访

北桥苏

小游戏 小游戏开发 CocosCreator

Spring Boot 基于 SCRAM 认证集成 Kafka 的详解

不在线第一只蜗牛

kafka Spring Boot

嘉为蓝鲸WeOps上新:新增机房机柜视图,集中管理IT设备

嘉为蓝鲸

运维 weops IT资产管理

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