本書是《軟技能:代碼之外的生存指南》一書作者的新作,主要圍繞軟件開發(fā)從業(yè)者職業(yè)生涯的發(fā)展歷程,描述軟件開發(fā)者在職場中需要具備的各種“軟技能”—如何入行成為軟件開發(fā)者,如何學會第一門編程語言,如何寫求職簡歷,如何準備面試,如何選擇工作崗位,如何選擇技術方向,如何拓展技術技能,如何與團隊和領導融洽相處,如何以著書立說方式為自己在業(yè)界贏得贊譽,等等。
本書適合各層次的軟件開發(fā)者閱讀。盡管本書名義上是專門寫給軟件開發(fā)者的,但實際上這也是一本關于管理個人職業(yè)生涯以及如何獲得成功的書,對軟件開發(fā)行業(yè)的各類從業(yè)者做好職業(yè)發(fā)展規(guī)劃都很有幫助。
·作為一名軟件開發(fā)者,我該如何起步?
·我該如何培養(yǎng)自己的技術能力?
·我該如何談判薪水?在合同制員工和正式職員之間我該如何選擇?
·我該如何跟我的老板、同事打交道?我該如何對待職場偏見?我該如何跟技術女性打交道?我該如何成為一名技術女性?
·我真正需要知道什么?又該如何學習它們?
·大學學歷教育、編程訓練營還有自學成才,該選哪一種?
·我如何找到一份工作?如果沒有經驗,我該怎么辦?
·我怎樣才能通過面試?
·身在職場我該怎樣穿著?
·我怎樣才能推動自己的職業(yè)發(fā)展提升到一個新的水平?
這是一本為軟件開發(fā)者量身定做的職業(yè)發(fā)展指南,處于任何發(fā)展階段的軟件開發(fā)者,都將從本書中獲益。如果你是軟件開發(fā)/編程的初學者或者只是對軟件開發(fā)感興趣的人士,可以通過本書了解如何開啟軟件開發(fā)的職業(yè)之旅,如何獲得第一份工作;如果你是中級軟件開發(fā)者,可以通過本書發(fā)現(xiàn)自己的知識短板,學會如何進一步拓展和掌握新的技術技能,如何學習新的編程語言,如何提升技術水平,如何在自己夢想的編程工作中深耕細作;如果你是身經百戰(zhàn)的專業(yè)軟件開發(fā)者,可以通過本書了解如何拓展和推進自己的職業(yè)生涯,如何更好地與同事和老板相處,如何推銷自己的想法,如何做好向上管理,如何升職加薪。
資深軟件開發(fā)者兼軟件開發(fā)者的人生導師約翰·森梅茲在本書中針對職場上的各項重要的“軟技能”,為軟件開發(fā)者提供專業(yè)的職業(yè)發(fā)展指導,讓軟件開發(fā)者的職業(yè)生涯更加精彩和輝煌。
本書與《軟技能:代碼之外的生存指南》既相得益彰,又各有側重——《軟技能:代碼之外的生存指南》全方位論述軟件開發(fā)者生活和工作中需要關注的各種“軟技能”,而本書則從軟件開發(fā)者職業(yè)生涯的時空關系出發(fā),描述軟件開發(fā)者職業(yè)發(fā)展整個歷程中應具備的各種“軟技能”。
作者簡介
約翰·森梅茲(John Sonmez),暢銷書《軟技能:代碼之外的生存指南》作者、“Simple Programmer”網站的創(chuàng)始人。他努力追求“將復雜問題轉化為簡單解決方案”。他為在線培訓機構Pluralsight開發(fā)了50多門在線課程,涉及iOS、Android、.NET、Java和游戲開發(fā)等多個主題。他是“Get Up and Code”播客的主持人,在這里他討論“程序員健身”;他還是“Entreprogrammers”播客的主持人,在這里他和其他三位開發(fā)者/企業(yè)家分享他們構建在線業(yè)務的真實故事。
他是軟件開發(fā)者的人生導師,他幫助軟件工程師、程序員和其他專業(yè)技術人員推動事業(yè)進步,過上更充實的生活。他通過“化繁為簡”的方法,賦予他們實現(xiàn)自身目標的力量。
譯者簡介
王小剛,暢銷書《軟技能:代碼之外的生存指南》譯者。畢業(yè)于西安電子科技大學計算機學院,碩士研究生學歷,曾先后服務于華為、IBM、中國移動無線數(shù)據(jù)研發(fā)中心,參與過3G基站、MISC(移動信息服務中心)等產品/系統(tǒng)的研發(fā)工作,擔任過項目經理、質量保證經理、質量總監(jiān)等職務。
業(yè)界知名的咨詢顧問和培訓講師,擁有NPDP、PMP、PBA、ACP、CSM、CAL等多項認證資質。六西格瑪黑帶,致力于研發(fā)管理、項目管理、產品創(chuàng)新、過程改進等領域的研究工作,幫助IT企業(yè)持續(xù)提升產品創(chuàng)新與研發(fā)管理能力,先后為100多家企業(yè)的20000多名軟件開發(fā)人員提供過咨詢和培訓服務。
目 錄
這本書是為我量身定做的嗎 4
初學者或者只是對學習軟件開發(fā)感興趣的人士 4
中級開發(fā)者 5
身經百戰(zhàn)的專業(yè)人士 5
第 1章 整裝待發(fā):寫在開篇的話 22
本書的寫作目的 22
本書的目標 22
如何使用本書 23
反復閱讀與付諸實踐 24
第 一篇 入行成為軟件開發(fā)者 26
第 2章 跬步千里:如何入行 28
我是如何入行的 28
了解專業(yè) 29
理解問題 29
設計 30
寫代碼 30
測試和部署 31
不只是寫代碼 31
做好計劃 31
把計劃組合在一起 32
創(chuàng)建計劃 32
誰想當“運動員“ 33
具體示例 34
第3章 傍身之技:你需要擁有的技術技能 36
安身立命的本領 36
一門編程語言 36
如何結構化代碼 37
面向對象設計 38
算法和數(shù)據(jù)結構 38
開發(fā)平臺及其相關技術 39
框架或者!40
基本的數(shù)據(jù)庫知識 40
源代碼控制 41
構建與部署 42
測試 42
調試 43
方法論 43
感到不知所措?千萬別 44
第4章 格物致知:如何拓展技術技能 45
學習如何快速學習 45
基本過程 45
做中學 46
如何做中學 47
做中學的示例 47
我是怎樣教別人技術技能的 48
閱讀專家寫的東西 50
重要的事情說三遍:實踐,實踐,實踐 50
第5章 無問西東:到底應該學哪門編程語言 52
編程語言其實并沒那么重要 52
選擇編程語言時的考慮因素 53
第6章 姍姍學步:如何學好你的第 一門編程語言 58
從查看一款實用的應用程序開始 58
尋找好的資源或書并瀏覽它們 59
學習如何創(chuàng)建Hello World 59
學習基本結構并用實際問題檢驗學習效果 60
了解語言的功能特性和庫之間的區(qū)別 61
通過理解每一行代碼來檢查現(xiàn)有代碼和工作 61
構建某個程序,構建很多程序 62
將編程語言應用于特定的技術或平臺上 63
通過解算法難題來精通這門語言 63
第7章 巍巍學府:通過上大學深造成為軟件開發(fā)者 65
優(yōu)勢 65
劣勢 67
策略 70
第8章 躬行實踐:通過參加編程訓練營成為軟件開發(fā)者 74
什么是編程訓練營 74
優(yōu)勢 74
劣勢 78
策略 80
第9章 自學成才:通過自學成為軟件開發(fā)者 83
自學編程的優(yōu)點 83
自學編程的缺點 86
策略 88
第二篇 找到一份工作 92
第 10章 初出茅廬:怎樣獲得實習機會 94
什么是實習 94
我該拿報酬嗎 95
怎樣獲得實習機會 96
如何成為優(yōu)秀的實習生 98
如何從實習人員轉變?yōu)檎絾T工 98
第 11章 柳暗花明:沒有經驗如何找到工作 100
公司在雇用軟件開發(fā)者時面臨的最大風險 100
屏蔽這些風險 101
在網絡空間里嶄露頭角 101
善打組合拳 102
創(chuàng)建自己的公司 104
面試準備 105
拓展人際關系網絡 105
無償工作 105
主動提出做一個小項目 106
先做其他工作 107
獲得認證 108
持之以恒 109
第 12章 獨辟蹊徑:找工作時的創(chuàng)新思維 110
傳統(tǒng)的方法,也就是千篇一律的方法 110
獨辟蹊徑 116
第 13章 移樽就教:怎樣寫簡歷 123
第 一步:不要寫簡歷 123
挑選簡歷寫手 125
與簡歷寫手協(xié)同工作 125
一份優(yōu)質簡歷的構成要素 126
自己動手寫簡歷怎么樣 127
第 14章 錦囊妙計:如何對付面試 133
不同類型的面試 134
你需要了解的面試中常見問題 138
面試小貼士 141
第 15章 唇槍舌劍:關于薪酬談判 146
了解你的薪資范圍 146
當拿到錄用通知書的時候 147
討價還價 151
定位 152
誰先出價誰先輸 153
不要害怕還價 154
薪酬包里的一切都是可以談判的 156
不要屈服于時間節(jié)點的壓力 156
面臨多重選擇的時候 157
第 16章 山高水長:如果要離職,該怎么做 159
離職的時機 159
怎樣離職 161
世界很小,小到出乎你的意料 165
第 17章 半路出家:如何從其他行業(yè)轉行成為軟件開發(fā)者 168
中途轉行的優(yōu)勢 168
不利因素 169
怎樣實現(xiàn)轉型 170
第 18章 遇水疊橋:如何從測試或者其他技術性角色轉型成為軟件開發(fā)者 173
你將面臨的最大障礙 174
把你的目標公之于眾 175
尋求機會 176
自己創(chuàng)造機會 176
利用你自己的時間 177
遇水疊橋 177
換一家公司 178
我的最后一條建議 179
第 19章 掎摭利。汉贤茊T工與領薪制正式雇員之間的比較 180
合同制員工的類型 181
領薪制的工作崗位 183
錢 183
詳細分析合同制崗位的所謂“小時工資” 184
為什么合同制員工可以得到更多的報酬 185
其他福利待遇的價值 185
職場環(huán)境 186
其他考慮因素 187
第 20章 去梯之言:從未公開過的招聘行業(yè)運作的秘密 189
招聘人員和招聘機構的類型(以及他們如何盈利) 190
對你而言這些意味著什么 193
第三篇 關于軟件開發(fā)你需要知道些什么 199
第 21章 走馬觀花:編程語言概述 201
C 201
C++ 202
C# 202
Java 203
Python 203
Ruby 203
JavaScript 204
Perl 204
PHP 205
Objective-C 205
Swift 206
Go 206
Erlang 207
Haskell 207
忽略細節(jié) 207
第 22章 知難而進:什么是Web開發(fā) 209
簡短的概述 210
Web的工作機理 210
Web簡史 211
主流的Web開發(fā)技術 212
第 23章 前途大好:移動開發(fā) 217
什么是移動開發(fā) 217
主要移動開發(fā)平臺 218
移動開發(fā)是如何完成的 219
移動Web應用 222
移動開發(fā)的注意事項 223
第 24章 幕后英雄:后端開發(fā) 224
后端開發(fā)的確切定義是什么 224
后端開發(fā)者都做些什么 224
后端開發(fā)中主要技術與技能 225
全棧開發(fā)者怎么樣 225
總結 226
第 25章 游戲人生:游戲開發(fā)者的職業(yè)生涯 228
一項忠告 228
選擇正規(guī)教育 229
必備技能 230
為大型游戲工作室工作 231
成為獨立游戲開發(fā)者 231
資源和建議 233
第 26章 事無巨細:DBA與DevOps 234
DBA 234
數(shù)據(jù)庫需要呵護與照料 235
我需要成為DBA嗎 235
DevOps:一個全新的角色 236
運維:過去我們是怎么做的 237
什么是DevOps 237
這對你意味著什么 238
第 27章 高屋建瓴:軟件開發(fā)方法論 239
傳統(tǒng)的瀑布式 239
你討厭SDLC嗎 240
敏捷 242
其他方法論和非方法論 248
第 28章 層層設防:測試和QA基礎 250
測試背后的基本思想 250
常見的測試類型 251
測試過程 255
敏捷團隊如何開展測試工作 256
測試與開發(fā)者 256
第 29章 源頭把關:測試驅動開發(fā)與單元測試 258
什么是單元測試 259
有時被稱作“單元測試”的又是些什么 260
單元測試的價值 260
什么是測試驅動開發(fā) 261
測試驅動開發(fā)的目的是什么 262
測試驅動開發(fā)的典型工作流 263
以上還只是皮毛 263
第30章 清清爽爽:源代碼控制 266
什么是源代碼控制 267
為什么源代碼控制如此重要 267
源代碼控制基礎知識 268
源代碼控制的技術 271
最流行的源代碼控制概覽 273
第31章 步步為營:持續(xù)集成 276
以前構建代碼是怎么做的 277
構建服務器應運而生 278
持續(xù)集成閃亮登場 279
持續(xù)集成的典型工作流程 280
CI服務程序與軟件 283
第32章 火眼金睛:調試 286
什么是調試 286
調試的第 一條規(guī)則:不要使用調試器 287
重現(xiàn)錯誤 287
坐下來思考 288
檢驗你的假設 289
檢查你的前置條件 290
分而治之 290
若要要修復bug,應了解其產生的原因 291
藝術與科學 292
第33章 日臻完善:代碼維護 293
你職業(yè)生涯的大部分時間都要花在維護代碼上 293
偉大的開發(fā)者都會編寫可維護的代碼 294
童子軍規(guī)則 294
第 一重要的是代碼的可讀性 295
重構代碼使其更優(yōu)秀 295
自動化是必不可少的 297
如果要寫注釋,一定要寫好 297
學習編寫可維護代碼的資源 297
第34章 實至名歸:工作崗位與頭銜 299
頭銜,其實沒那么重要 299
但你要盡力得到最好的 299
一些常見的頭銜 300
有一個頭銜要避開 301
基本角色或工作 302
大型科技公司里的頭銜 303
關于頭銜其實還有相當多門道 304
第35章 多姿多彩:軟件開發(fā)者的工作類型 305
編寫代碼 305
修復bug 306
設計和架構設計 306
開會 307
學習 307
實驗與探索 308
測試 308
思考 308
與客戶/利益相關人打交道 309
培訓/輔導 310
就到這里吧…… 310
第四篇 軟件開發(fā)者的日常工作 311
第36章 和而不同:與同事相處 313
第 一印象 313
盡你所幫助別人 314
置身于戲外 315
但對于沖突也不用逃避 315
政治與宗教 317
無所事事的同事 317
喋喋不休的同事 320
有毒人群 321
還有好多狀況呢,我該怎么處理 322
第37章 順勢而為:與老板相處 323
理解你的老板 323
“責任在我”的認知 324
怎樣讓你老板的工作更容易 325
壞老板 326
你不能總是選擇你的老板 334
第38章 協(xié)力共進:與測試人員相處 335
測試人員并非敵人 335
你要知道考試內容是什么 336
自己要先測試一下自己的東西 337
避免陷入“發(fā)現(xiàn)bug-修復bug”的連環(huán)套之中 337
幫助他們實現(xiàn)自動化測試 338
要是遇到一個混蛋測試人員該怎么做 338
第39章 等量齊觀:工作與生活的平衡 340
平衡工作/生活就是一個神話 340
加班毫無益處 342
但是,沒有借口不努力工作 342
首先要讓自己有收獲 343
好自為之,這個要放在第 一位 344
謹慎選擇你的人際關系 345
活在當下 346
真正的工作/生活平衡之道 347
第40章 并肩作戰(zhàn):與團隊協(xié)作 348
團隊,一榮俱榮一損俱損 348
團隊擁有共同的目標 349
對團隊負責 350
溝通與協(xié)調 351
要坦誠,但也要機智 351
第41章 讜言嘉論:推銷你的想法 353
為什么推銷你的想法如此重要 353
不要爭論 354
具有說服力 354
循循善誘 355
清晰溝通 356
向權威借勢 356
樹立權威 357
好為人師 358
勤于練習 358
第42章 衣冠楚楚:如何著裝 359
外表很重要 359
比你目前職位高出兩個等級的著裝 361
追隨領導 362
魅力與矛盾 363
著裝可以改變你的個性? 364
象征社會地位的符號 364
頭發(fā)、化妝和基本衛(wèi)生 365
如果我不在乎怎么辦 366
第43章 謀事在人:安然渡過績效評估 368
我是如何逆轉對我的績效評估結果的 368
提早著手準備 370
要有明確的目標,還要讓他們知道 371
跟蹤和記錄你的進展 372
準備好充分的理由 372
必要時,你可以上訴 373
陷阱——給自己評定等級 374
同事之間互相打分 375
員工排名制度 376
第44章 光明磊落:處理偏見 379
要接納人們無意識的歧視偏見與陳規(guī)陋習 379
給自己最好的機會以遠離偏見 380
不要讓自己與世隔絕 382
對自己要有信心 383
盡可能無視它 383
如果你不能無視,那就報告 384
偏見糟透了 385
第45章 身先士卒:處于領導的位置 386
什么是領導力 386
如何做高效能的領導者 387
成為所有領域內的楷!387
讓自己保持有更高水準的責任心 388
你要對團隊負責 389
相信你的團隊,合理授權 389
身先士卒 391
第46章 前程似錦:獲得提拔與晉升 392
總是選擇責任而不是薪酬 392
主動 393
投資于對自己的教育 394
把你的目標公之于眾 395
讓自己在公司之外更有價值 396
成為資產 397
詢問具體數(shù)字 398
不要制造威脅 399
不要談論你為什么需要錢 400
如果一切都失敗了,去別處 401
第47章 巾幗英雄:科技女性 403
陳舊腐朽的觀念和污名 404
為什么男人騷擾女人 404
給女士的忠告 406
給男人的忠告 412
衷心希望本章內容能幫上忙 416
第五篇 推進你的職業(yè)發(fā)展 417
第48章 名滿天下:建立聲譽 419
名滿天下的收益 420
風格造型與真材實料,相輔相成 421
打造個人品牌 422
如何做到名滿天下 423
為他人創(chuàng)造價值 425
這一切需要持之以恒 426
第49章 廣結善緣:社交與人脈 428
拓展人脈的錯誤方式 428
拓展人脈的正確方式 429
到哪里去拓展人脈 430
創(chuàng)建和掌管一個團體 432
拓展人脈并不困難 433
第50章 與時俱進:讓你的技能緊跟上時代 434
沒有計劃其實也是計劃,只不過是一個糟糕的計劃 434
閱讀博客 435
讀書 435
挑選一樣新東西去學習 436
學習的質量 438
參加活動 438
閱讀新聞 439
大量編寫代碼 439
不要讓自己過得太舒服 440
第51章 行家里手:做專才還是做通才 441
專業(yè)化的力量 441
為了做到專業(yè)化,你必須要有廣泛的基礎 442
這一切都與T型知識體系有關 443
但每個人都說尋找通才 443
今天,你甚至沒可能成為通才 444
如果我選擇術業(yè)專攻的方向是錯誤的,我該怎么辦 444
所以你該怎么辦 445
第52章 傳經布道:演講和參加會議 447
參加會議 447
演講 449
一些實用技巧 453
走出去實踐吧 457
第53章 筆耕不輟:創(chuàng)建博客 459
為什么博客仍然是你最好的選擇 460
怎樣創(chuàng)建博客 461
選擇一個主題 462
怎樣撰寫博客文章 463
堅持不懈的力量 466
引流 467
找到你的聲音 469
筆耕不輟 471
第54章 海闊天空:做自由職業(yè)者乃至創(chuàng)業(yè) 472
你確定要走上這條道路嗎 473
什么是自由職業(yè) 474
怎樣邁出第 一步 475
上一節(jié)中說過有一條輕松一些的途徑…… 476
怎樣設置收費費率 477
創(chuàng)業(yè) 480
所有這一切很艱難,但是值得付出 486
第55章 策馬揚鞭:職業(yè)發(fā)展路徑 488
3種類型的軟件開發(fā)者 488
職業(yè)發(fā)展的選項 490
穿越“玻璃天花板” 493
做管理還是搞技術 494
“我要去哪里”的問題需要一直在思考,從不間斷 495
第56章 未雨綢繆:工作穩(wěn)定性與工作保障 497
沒有什么是安穩(wěn)的,不過這沒關系 497
工作保障并非來自囤積知識 499
取而代之地,要做完全相反的事 500
用能力代替穩(wěn)定 500
建立自己的安全防護網 501
擁抱不確定性 503
第57章 學無止境:培訓與資格認證 506
證書物有所值的嗎 506
小朋友,你為什么又拿了那么多證書 507
怎樣獲得證書 508
那么培訓呢 509
都有哪些培訓 510
充分利用好培訓機會 511
讓你的雇主為你支付培訓費用 513
做培訓講師 515
關鍵在于你投入了多少精力 515
第58章 樂此不疲:兼職項目 517
兼職項目應該常伴你的左右 518
挑選一個兼職項目 519
讓兼職項目服務于至少兩個目標 520
整裝待發(fā) 522
堅持不懈 523
成為終結者 524
從兼職項目中賺錢 525
勇敢邁出第 一步 526
第59章 開卷有益:要讀的好書 527
怎樣寫出好代碼的書籍 528
進階類書籍 529
如何重構代碼的書籍 529
培養(yǎng)自己成為優(yōu)秀開發(fā)者的書籍 530
培養(yǎng)自己更加人性化的書籍 531
深入研習類書籍 533
娛樂消遣類書籍 534
勵志類書籍 536
讀書吧,我的朋友…… 537
第60章 余音裊裊:結束語 539
最后一個請求 540