70條程序員就業(yè)寶典(必收藏)
來源:
奇酷教育 發(fā)表于:
70條程序員就業(yè)寶典,必收藏!
70條程序員就業(yè)寶典來了!
1. 重構(gòu)是程序員的主力技能。
2. 工作日志能提升腦容量。
3. 先用profiler調(diào)查,才有臉談優(yōu)化。
4. 軟件設(shè)計(jì)有兩種方式:一種方式是,使軟件過于簡(jiǎn)單,明顯沒有缺陷;另一種方式是,使軟件過于復(fù)雜,沒有明顯的缺陷。
5. 大部分情況下,構(gòu)建程序的過程本質(zhì)上是對(duì)規(guī)范調(diào)試的過程。
6.注釋貴精不貴多。杜絕大姨媽般的“例注”。漫山遍野的碎碎念注釋,實(shí)際就是背景噪音。
7. 普通程序員+google=超級(jí)程序員。
8. 軟件開發(fā)往往是這樣:最開始的 90% 代碼占用了開始的 90% 的開發(fā)時(shí)間;剩下 10% 代碼同樣需要 90% 的開發(fā)時(shí)間。
9. 單元測(cè)試總是合算的。
10. 不要先寫框架再寫實(shí)現(xiàn)。最好反過來,從原型中提煉框架。
11. 代碼結(jié)構(gòu)清晰,其它問題都不算事兒。
12. 用幾個(gè)小時(shí)來制定計(jì)劃,可以節(jié)省幾周的編程時(shí)間。
13. 好的項(xiàng)目作風(fēng)硬派,一鍵測(cè)試,一鍵發(fā)布,一鍵部署; 爛的項(xiàng)目生性猥瑣,口口相傳,不立文字,神神秘秘。
14. 編碼不要畏懼變化,要擁抱變化。
15. 任何傻瓜都能寫出計(jì)算機(jī)可以理解的代碼。好的程序員能寫出人能讀懂的代碼。
16. 常充電。程序員只有一種死法:土死的。
17. 編程之事,隔離是方向,起名是關(guān)鍵,測(cè)試是主角,調(diào)試是補(bǔ)充,版本控制是后悔藥。
18. C語(yǔ)言很容易讓你犯錯(cuò)誤;C++看起來好一些,但當(dāng)你用它時(shí),你會(huì)發(fā)現(xiàn)會(huì)死的更慘
19. 一行代碼一個(gè)兵。形成建制才能有戰(zhàn)斗力。單位規(guī)模不宜過大,千人班,萬(wàn)人排易成萬(wàn)人坑。
20. 如果你喜歡底層開發(fā),千萬(wàn)不要勉強(qiáng)自己去搞VC,找到你最真實(shí)的想法,程序員最不能忍受的就是萬(wàn)精油。
21. 重構(gòu)/優(yōu)化/修復(fù)Bug,同時(shí)只能作一件。
22. 簡(jiǎn)單模塊注意封裝,復(fù)雜模塊注意分層。
23. 人腦性能有限,整潔勝于雜亂。讀不懂的代碼,嘗試整理下格式; 不好用的接口,嘗試重新封裝下。
24. 迭代速度決定工作強(qiáng)度。想多快好省,就從簡(jiǎn)化開發(fā)流程,加快迭代速度開始。
25. 忘掉優(yōu)化寫代碼。過早優(yōu)化等同惡意破壞;忘掉代碼作優(yōu)化。優(yōu)化要基于性能測(cè)試,而不是糾結(jié)于字里行間。
26. 世上只有兩種編程語(yǔ)言:一種是總是被人罵的,一種是從來沒人用的
27. 最好的工具是紙筆;其次好的是markdown。
28. leader問任務(wù)時(shí)間,若答不上來,可能是任務(wù)拆分還不夠細(xì)。
29. 調(diào)試一個(gè)初次見到的代碼比重寫代碼要困難兩倍。
30. 寧可多算一周,不可少估一天。過于“樂觀”容易讓boss受驚嚇。
31. 當(dāng)你試圖解決一個(gè)你不理解的問題時(shí),復(fù)雜化就產(chǎn)成了。
32. 最有用的語(yǔ)言是English。其次的可能是Python。
33. 百聞不如一見。畫出結(jié)果,一目了然。調(diào)試耗時(shí)將大大縮短。
34. 質(zhì)量、速度、廉價(jià),選擇其中兩個(gè)。
35. 資源、代碼應(yīng)一道受版本管理。資源匹配錯(cuò)誤遠(yuǎn)比代碼匹配錯(cuò)誤更難排查。
36. 不要基于想象開發(fā),要基于原型開發(fā)。原型的價(jià)值是快速驗(yàn)證想法,幫大家節(jié)省時(shí)間。
37. 生命太短暫,不要去做一些根本沒有人想要的東西。
38. 序列化首選明文文本。諸如二進(jìn)制、混淆、加密、壓縮等等有需要時(shí)再加。
39. 高質(zhì)量的代碼就是對(duì)程序本身最好的注釋。
40. 編譯器永遠(yuǎn)比你懂微觀優(yōu)化。只能向它不擅長(zhǎng)的方向努力。
41. 你們中大多數(shù)人都熟悉程序員的美德,有三種:那就是懶惰、急躁和傲慢。
42. 不要定過大、過遠(yuǎn)、過細(xì)的計(jì)劃。即使定了也沒有用。
43. 至少半數(shù)時(shí)間將花在集成上。時(shí)間,時(shí)間,時(shí)間總是不夠。
44. 靠代碼行數(shù)來衡量開發(fā)進(jìn)度,就像是憑重量來衡量飛機(jī)制造的進(jìn)度。
45. 作為一個(gè)程序員,郁悶的事情是,面對(duì)一個(gè)代碼塊,卻不敢去修改。更糟糕的是,這個(gè)代碼塊還是自己寫的。
46. 與主流意見/方法/風(fēng)格/習(xí)慣相悖時(shí),先檢討自己最可靠。
47. 出現(xiàn)bug主動(dòng)查,不管是不是你的。這能讓你業(yè)務(wù)能力猛漲、個(gè)人形象飆升; 如果你的bug被別人揪出來…..呵呵,那你會(huì)很被動(dòng)~
48. 能說算不上什么,有本事就把你的代碼給我看看。
49. 不知怎么選技術(shù)書時(shí)就挑薄的。起碼不會(huì)太貴,且你能看完。
50. 你選擇了一種語(yǔ)言,意味著你還選擇了一組技術(shù)、一個(gè)社區(qū)。
51. git是最棒的。簡(jiǎn)單,可靠,免費(fèi)。
52. 僅對(duì)“可預(yù)測(cè)的非理性”拋斷言。
53. 沒有什么代碼的執(zhí)行速度比空代碼更快。
54. UNIX很簡(jiǎn)單。但需要有一定天賦的人才能理解這種簡(jiǎn)單。
55. Log要寫時(shí)間與分類。并且要能重定向輸出。
56. 注釋是稍差的文檔。更好的是清晰的命名。讓代碼講自己的故事。
57. 軟件在能夠復(fù)用前必須先能用。
58. 當(dāng)你想在你的代碼中找到一個(gè)錯(cuò)誤時(shí),這很難;當(dāng)你認(rèn)為你的代碼是不會(huì)有錯(cuò)誤時(shí),這就更難了。
59. 造輪子是很好的鍛煉方法。前提是你見過別的輪子。
60. 我們這個(gè)世界的一個(gè)問題是,蠢人信誓旦旦,智人滿腹狐疑。
61. C程序員永遠(yuǎn)不會(huì)滅亡。他們只是cast成了void。
62. 你要么要軟件質(zhì)量,要么要指針?biāo)惴?;兩者不可兼得?/div>
63. code review最好以小組/結(jié)對(duì)的形式。對(duì)業(yè)務(wù)有一定了解,建議會(huì)更有價(jià)值(但不絕對(duì))。而且不會(huì)成為負(fù)擔(dān)。管理員個(gè)人review則很容易成team的瓶頸。
64. 如果debugging是一種消滅bug的過程,那編程就一定是把bug放進(jìn)去的過程。
65. 提問前先做調(diào)研。問不到點(diǎn)上既被鄙視,又浪費(fèi)自己的時(shí)間。
66.軟件工程的目標(biāo)是控制復(fù)雜度,而不是增加復(fù)雜性。
67. 控制復(fù)雜性是計(jì)算機(jī)編程的本質(zhì)
68. 計(jì)算機(jī)科學(xué)領(lǐng)域的所有問題都可以通過其他方式間接解決。
69. 這不是一個(gè) bug,這只是一個(gè)未列出來的特性。
70. 永遠(yuǎn)別小看自己哦。