這是一本由資深軟件工程師撰寫(xiě)的職業(yè)發(fā)展指南,融合了豐富的行業(yè)經(jīng)驗(yàn)和指導(dǎo)智慧。全書(shū)分為六大模塊,系統(tǒng)涵蓋開(kāi)發(fā)者職業(yè)關(guān)鍵環(huán)節(jié)。從職業(yè)規(guī)劃、績(jī)效評(píng)估、晉升策略等基礎(chǔ)內(nèi)容起步,為新手工程師指明方向;隨后聚焦稱(chēng)職軟件開(kāi)發(fā)者所需的核心能力,揭示高效完成任務(wù)與編程的獨(dú)到秘訣。第三部分進(jìn)入高級(jí)工程師層級(jí),讀者將學(xué)習(xí)軟件工程、測(cè)試與架構(gòu)設(shè)計(jì)等高級(jí)技能,為職業(yè)發(fā)展注入強(qiáng)勁動(dòng)力。第四部分則轉(zhuǎn)向技術(shù)負(fù)責(zé)人的角色,解析項(xiàng)目管理精髓、團(tuán)隊(duì)協(xié)作藝術(shù)與利益相關(guān)者溝通之道,助力工程師向管理角色轉(zhuǎn)型。第五部分描繪資深工程師與首席工程師的藍(lán)圖,探討業(yè)務(wù)深刻理解、軟件工程創(chuàng)新與領(lǐng)導(dǎo)力培養(yǎng),為工程師的終極職業(yè)目標(biāo)提供指引。最終,第六部分強(qiáng)調(diào)終身學(xué)習(xí)的重要性,并提供延伸閱讀建議,鼓勵(lì)工程師們不斷追求卓越。
書(shū)中全面覆蓋 “軟”“硬” 技能,結(jié)構(gòu)嚴(yán)謹(jǐn)、層次分明。無(wú)論新手還是資深人士,本書(shū)都能助你夯實(shí)基礎(chǔ)、突破瓶頸、攀登職業(yè)高峰、成就輝煌未來(lái)。
·工程師實(shí)戰(zhàn)總結(jié),融合多年行業(yè)經(jīng)驗(yàn)與指導(dǎo)智慧,直擊職業(yè)發(fā)展核心痛點(diǎn)
·覆蓋從新手到工程師全鏈路,分 6 大模塊拆解職業(yè)路徑、技能提升與角色轉(zhuǎn)型,適配不同階段需求
·兼顧 “軟”“硬” 技能,既講編程、架構(gòu)等技術(shù)能力,也授管理、溝通、領(lǐng)導(dǎo)力等職場(chǎng)素養(yǎng)
·結(jié)構(gòu)嚴(yán)謹(jǐn)、層次分明,從基礎(chǔ)指引到高階藍(lán)圖逐步深入,既是入門(mén)指南也是職業(yè)突破工具書(shū)
·提供終身學(xué)習(xí)方向與延伸閱讀建議,助力工程師持續(xù)成長(zhǎng),實(shí)現(xiàn)職業(yè)階梯式晉升
蓋爾蓋伊·奧羅斯(Gergely Orosz):一位軟件工程師、作家和顧問(wèn)。他寫(xiě)了一份時(shí)事通訊,名為《務(wù)實(shí)的工程師》,這是 Substack 上排名第一的技術(shù)通訊。他還出版了幾本書(shū),并管理著一個(gè)人才集體以及一個(gè)針對(duì)工程師和工程經(jīng)理的招聘委員會(huì)。此前,他曾在 Uber、微軟、Skype 和 Skyscanner 等公司工作。他在推特上談?wù)撥浖こ獭⒓夹g(shù)和他的工作。
第 一部分 開(kāi)發(fā)者職業(yè)生涯基礎(chǔ) 13
第 1章 職業(yè)路徑 14
1.1 科技公司的類(lèi)型 14
1.2 典型的軟件工程職業(yè)道路 18
1.3 薪酬與公司“層級(jí)” 21
1.4成本中心與利潤(rùn)中心 25
1.5 思考職業(yè)進(jìn)步的另類(lèi)視角 26
第 2章 掌控你的職業(yè)生涯 28
2.1你的職業(yè)生涯由你自己主宰 28
2.2 成為他人眼中“能成事”的人 29
2.3 記錄工作日志 30
2.4 主動(dòng)尋求并給予反饋 31
2.5 讓你的上司成為盟友 33
2.6 保持自己的節(jié)奏 35
第3章 績(jī)效評(píng)估 37
3.1 提早開(kāi)始:收集背景信息并設(shè)定目標(biāo) 37
3.2 習(xí)慣的力量 39
3.3 績(jī)效評(píng)估前的準(zhǔn)備 41
3.4績(jī)效評(píng)估 43
第4章 晉升 46
4.1晉升的決定因素 46
4.2晉升流程的類(lèi)型 47
4.3“終極職級(jí)” 48
4.4大科技公司的晉升之道 49
4.5晉升建議 51
4.6 長(zhǎng)期職業(yè)觀 54
第5章 在不同的環(huán)境中蓬勃發(fā)展 56
5.1 產(chǎn)品團(tuán)隊(duì)與產(chǎn)品思維工程師 56
5.2平臺(tái)團(tuán)隊(duì) 57
5.3 “和平時(shí)期”與“戰(zhàn)爭(zhēng)時(shí)期” 59
5.4 公司類(lèi)型 62
第6章 跳槽 66
6.1 探索新機(jī)會(huì) 66
6.2 等待晉升vs跳槽 67
6.3 準(zhǔn)備技術(shù)面試 69
6.4 降級(jí)跳槽 73
6.5 升級(jí)跳槽 75
6.6 新公司入職 76
要點(diǎn)總結(jié) 77
第二部分 稱(chēng)職的軟件開(kāi)發(fā)者 79
第7章 高效完成任務(wù) 80
7.1 專(zhuān)注于最重要的工作 80
7.2自主解決問(wèn)題 81
7.3分解工作 86
7.4預(yù)估工作時(shí)間 87
7.5尋求導(dǎo)師 90
7.6 保持“好感余額”充足 91
7.7 主動(dòng)出擊 92
第8章 編程 94
8.1 大量練習(xí)編程 94
8.2 編寫(xiě)可讀代碼 97
8.3編寫(xiě)高質(zhì)量代碼 99
第9章 軟件開(kāi)發(fā) 102
9.1 精通一門(mén)編程語(yǔ)言 102
9.2調(diào)試 105
9.3重構(gòu) 107
9.4測(cè)試 109
第 10章 高效開(kāi)發(fā)者的工具 111
10.1 本地開(kāi)發(fā)環(huán)境 111
10.2 常用工具 113
10.3快速迭代的方法 115
要點(diǎn)總結(jié) 118
第三部分 全面發(fā)展的高級(jí)工程師 120
第 11章 高效完成工作 123
11.1 完成工作:認(rèn)知與現(xiàn)實(shí) 123
11.2你的個(gè)人工作 125
11.3 完成工作要做到“真正完成” 128
11.4你的團(tuán)隊(duì) 132
11.5全局視野 133
第 12章 協(xié)作與團(tuán)隊(duì)合作 135
12.1代碼評(píng)審 135
12.2結(jié)對(duì)編程 137
12.3指導(dǎo)與輔導(dǎo) 139
12.4提供反饋 143
12.5 與其他工程團(tuán)隊(duì)協(xié)作 144
12.6影響他人 145
第 13章 軟件工程 148
13.1 語(yǔ)言、平臺(tái)和領(lǐng)域知識(shí) 148
13.2調(diào)試技能 150
13.3技術(shù)債務(wù)管理 152
13.4文檔編寫(xiě) 155
13.5 在團(tuán)隊(duì)中推廣最佳實(shí)踐 157
第 14章 測(cè)試 159
14.1單元測(cè)試 159
14.2集成測(cè)試 161
14.3 UI測(cè)試 161
14.4 自動(dòng)化測(cè)試的思維模型 161
14.5 專(zhuān)用測(cè)試 164
14.6 在生產(chǎn)環(huán)境中的測(cè)試 167
14.7自動(dòng)化測(cè)試的優(yōu)勢(shì)與劣勢(shì) 168
第 15章 軟件架構(gòu) 169
15.1設(shè)計(jì)文檔、RFC和架構(gòu)文檔 169
15.2原型開(kāi)發(fā)與概念驗(yàn)證 171
15.3領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 172
15.4面向交付的軟件架構(gòu) 173
要點(diǎn)總結(jié) 176
第四部分 務(wù)實(shí)的技術(shù)負(fù)責(zé)人 178
第 16章 項(xiàng)目管理 181
16.1 工程師主導(dǎo)項(xiàng)目的公司 181
16.2 為何需要項(xiàng)目管理 182
16.3 項(xiàng)目啟動(dòng)與里程碑 183
16.4“軟件項(xiàng)目物理學(xué)” 186
16.5日常項(xiàng)目管理 188
16.6風(fēng)險(xiǎn)與依賴關(guān)系 190
16.7 項(xiàng)目收尾 193
第 17章 發(fā)布到生產(chǎn)環(huán)境 195
17.1發(fā)布到生產(chǎn)環(huán)境的極端做法 195
17.2不同公司中的典型的發(fā)布流程 197
17.3 負(fù)責(zé)任地發(fā)布到生產(chǎn)環(huán)境的原則與工具 199
17.4額外的驗(yàn)證層和保護(hù)措施 201
17.5為加速發(fā)布做出務(wù)實(shí)的風(fēng)險(xiǎn)決策 204
17.6定義發(fā)布流程時(shí)的其他考慮因素 205
17.7選擇合適的發(fā)布方法 206
第 18章 利益相關(guān)者管理 208
18.1 利益相關(guān)者管理的真正目標(biāo) 208
18.2 利益相關(guān)者的類(lèi)型 209
18.3 確定誰(shuí)是你的利益相關(guān)者 211
18.4 保持與利益相關(guān)者信息同步 212
18.5應(yīng)對(duì)棘手的利益相關(guān)者 213
18.6向利益相關(guān)者學(xué)習(xí) 214
第 19章 團(tuán)隊(duì)結(jié)構(gòu) 216
19.1 角色與頭銜 216
19.2 團(tuán)隊(duì)流程 217
19.3 提升團(tuán)隊(duì)專(zhuān)注力 219
第 20章 團(tuán)隊(duì)動(dòng)態(tài) 221
20.1 健康的團(tuán)隊(duì) 221
20.2 不健康的團(tuán)隊(duì) 222
20.3面臨成長(zhǎng)陣痛的團(tuán)隊(duì) 225
20.4 改善團(tuán)隊(duì)動(dòng)態(tài) 226
20.5 與其他團(tuán)隊(duì)的關(guān)系 228
要點(diǎn)總結(jié) 229
第五部分 典范級(jí)資深工程師與首席工程師 230
第 21章 理解業(yè)務(wù) 232
21.1 北極星指標(biāo)、關(guān)鍵績(jī)效指標(biāo)和目標(biāo)與關(guān)鍵結(jié)果 232
21.2你的團(tuán)隊(duì)與產(chǎn)品 235
21.3你的公司 238
21.4上市公司 242
21.5初創(chuàng)公司 243
21.6你所在的行業(yè) 243
第 22章 協(xié)作 245
22.1內(nèi)部政治 245
22.2 影響他人 247
22.3 與管理者合作 251
22.4與資深及以上級(jí)別同事的協(xié)作 252
22.5拓展你的人脈網(wǎng)絡(luò) 253
22.6幫助他人 254
第 23章 軟件工程 256
23.1 你依然參與的編碼工作 256
23.2 有益的工程流程 258
23.3快速迭代的工程實(shí)踐 261
23.4 提升工程師效率的工具 264
23.5合規(guī)性與隱私 268
23.6安全開(kāi)發(fā) 269
第 24章 可靠的軟件系統(tǒng) 271
24.1可靠性責(zé)任 271
24.2日志記錄 271
24.3 監(jiān)控 273
24.4 告警管理 275
24.5值班機(jī)制 277
24.6事件管理 281
24.7構(gòu)建彈性系統(tǒng) 283
第 25章 軟件架構(gòu) 285
25.1盡可能保持簡(jiǎn)單 285
25.2掌握行話,但切勿濫用 286
25.3架構(gòu)債務(wù) 287
25.4單向門(mén)決策與雙向門(mén)決策 288
25.5決策的波及范圍 290
25.6可擴(kuò)展架構(gòu) 291
25.7架構(gòu)決策與業(yè)務(wù)優(yōu)先級(jí) 292
25.8緊密貼近工作實(shí)際 293
25.9軟件架構(gòu)師的特質(zhì) 294
第六部分 結(jié)語(yǔ) 301
第 26章 終身學(xué)習(xí) 301
26.1 保持好奇心 301
26.2持續(xù)學(xué)習(xí) 304
26.3不斷挑戰(zhàn)自我 306
26.4緊跟行業(yè)動(dòng)態(tài) 309
26.5適當(dāng)休息 309
第 27章 延伸閱讀 311