漫畫一:軟件編程 漫畫二:使用 LISP 語言的程序員眼里其他語言程序員的形象 漫畫三:學校里的編程和真實項目里的編程 漫畫四:程序員與劫匪 ![]() ![]() ![]() ![]() 來自: 外刊IT評論 循序漸進學編程 軟件開發者是一個日新月異的領域—–IT中的大師,今天的編程方式與明天的編程或許截然不同,技術在不斷地革新,新語言、新平臺的如雨后春筍般出現、更好的解決方案的冒出,因此我們需要跟得上節奏,我們沒有選擇,唯有努力提高自己。下面的幾點建議或許能幫助你成為一個優秀地開發者。 你是否聽說過Kaizen這個詞呢?簡單地說就是“改良”的意思。當然它不僅僅是一個單詞,同時代表著一種哲學,一個不斷完善自我的理念。它需要客觀的監督和改善。更多的細節可以從這里了解。 ![]() 當然下面的建議是沒有先后順序的。 0. 閱讀代碼: 經常認真閱讀他人的代碼。尋找大家公認的優秀軟件作品,學習其背后的運作原理,領悟他人解決問題的方法,有時候你也會要到同樣的問題,試著對比其技術和解決方案。 1. 編寫代碼: 在一個你還從未解決過的問題上多花點時間,嘗試著培養自己的思考方法以及思維模式,你會因此而獲得很多的樂趣。這樣做并不難,而且它還是很好的問題反饋源。對于每個問題幾乎任何時候都有不同的解決方法,學者用不同的方法解決問題,對比它們之間的優點和弊端,使用諸如模塊化和系統集成的方式編程,那樣寫代碼非常的簡潔,清晰。 2. 跟上技術潮流: 在twitter和facebook、weibo等社交網絡關注技術大牛,訂閱你的RRS。及時了解新語言,對技術要有深入研究而不是僅僅停留在只會調用API的層面上。技術是要靠實力說話的,光忽悠沒用,所以盡可能早的深入了解。 3. 從不同的角度思考問題: 沒錯,你就是一個開發者,但是你會把自己的作品當做普普通通的產品嗎?商業價值怎么樣?寫出來的軟件能給你帶來什么樣的價值?需要用到哪些資源?有比軟件帶來更多價值還重要的事情嗎?軟件所表達的思想在于什么?用戶在使用過程中軟件能扮演什么樣的角色?這些問題看似很老套或者微不足道,其實不然,我們應該不斷地去回答這些問題,開始不同角度思考問題。 4. 測試是開發者的工作: 未測試的代碼就像一個未知的承諾,不去測試代碼,編程技巧很難得到提高。作為用戶你會因為一個得不到保證的承諾而把錢交給一個完全陌生的人嗎?用測試單元做功能和集成測試,證明你的代碼可以正確執行,使他人放心地使用。把代碼放到GitHub資源庫上去。記住:擴大代碼測試覆蓋范圍,減少代碼的復雜度、去除代碼的壞味道,不斷調整、提高。 5. 在社區和開發者交流 向他人學習,和他人探討問題。通過閱讀他人代碼提高自己的水平,同時盡可能去幫助他人,用一種開放地思維接受和分析他人的解決方案以及思想。 6. 每天交付可使用的部分 學會把大項目分解成為更小的,變成可交付使用的部分。做里程碑、做測試證明、做進度規劃。分析和總結是必不可少的,此刻就把它記錄下來,注意前后的變化,長期的積累將使你更加自信,外人對你刮目相看,做一個快樂的程序員吧。 7. 忙里偷閑: 參加娛樂、體育活動、接觸大自然。你的身體和大腦需要休息,經常站起來活動活動,切忌一直坐著盯著屏幕。 原文:OCHRONUS 編譯:伯樂在線 – 劉志軍 工作滿意度評估程序員版 你是否對自己的工作感到滿意?你覺得現在的職業發展還盡如人意嗎?大約每隔6個月,我都會花些時間思考這些重要問題。當問及對職業是否滿意,“是的,我喜歡我的工作”或者“我打算就在這里一直工作下去了”,類似這樣的回答通常沒有什么價值。那么,什么是程序員對工作感到滿意的關鍵因素呢?怎樣才能讓黑客們對工作更加滿意呢? 譯注:hacker 黑客:黑客一詞,原指熱心于計算機技術,水平高超的電腦專家,尤其是程序設計人員。黑客一詞已被用于泛指那些專門利用電腦網絡搞破壞或惡作劇的家伙。本文中的黑客取前一個含義。 首先,讓我們將工作滿意度進行細分,然后逐個討論如何衡量這些方面。在這個迷你系列的下一篇文章中,我會討論如何成為一名更有滿足感的程序員。 團隊協作 按照的Jeff Atwood說法,“你選擇同他一起工作的人,通常就是能夠評估工作滿意度的最佳人選。”就我而言的確如此。回顧過去,當我最具熱情工作愉快的時候,我是優秀團隊中的一員,這個團隊由黑客組成。我們在一起配合得很好。我們從彼此的身上獲得靈感。知道彼此的長處和缺點,以及如何在淋漓盡致發揮強項的同時改進缺點。我們尊重彼此的經驗、學識以及各自的偶像。正如你知道的…… 想想曾和你一起工作過的最好的黑客。他們希望加入你的團隊嗎?如果不是,這就是個問題。如果那些黑客現在不想加入你的團隊,你的團隊也不會吸引其他頂尖黑客,你會因此感到郁悶。 好的團隊由優秀的黑客組成,他們在一起協同工作。沒有一個好的工作環境就不可能吸引頂尖人才。所以,如果工作環境在下面幾個方面做得不好,就肯定吸引不到好的人才,也幾乎不可能打造出一支優秀的團隊。這也就是為什么強勢的開發團隊在工作滿意度評估中名列榜首。 ![]() 項目質量 聰明人對一直不斷地重復感到厭倦。黑客們也不例外。如果他們堅持用同一種語言編程,用同樣枯燥的CRUD 界面,使用和初學編程時同樣的算法,他們不會為此感到高興。大多數開發者渴望學習新東西,并將它們應用到實際開發中。難題和帶有挑戰性的問題會讓他們感到興奮。 花些時間思考一下你最近學到的新技術,以及最近解決過的難題。這不僅會讓你在技術方面感到滿足,更會讓你的職業發展更進一步。 工作和生活平衡 黑客通常會難以置信地長時間工作,只需要Cheetos(膨化食品)和Bawls蘇打水就可以生存。這種死亡行軍式的軟件開發不會長久,最終的代價是精疲力盡并對工作感到厭惡。 看一下你花在工作上的時間,就會知道自己在工作和生活平衡方面做得如何。很多人在精疲力盡之前沒有絲毫察覺,所以去和家人和朋友談談吧,讓他們幫助你了解如何在工作與其他活動或責任之間找到平衡。 官僚和公司政治 一定程度的官僚和公司政治是不可避免的,但是好的管理者會在很大程度上幫你把這些屏蔽掉。我唯一沒有受到這些困擾的時候恐怕就是在大學里,不是因為別的,而是那時我對很多事情都抱有偏見。大學里的官僚實際上更嚴重,但我除了做自己的事情之外其他一概不關心。那些與編程沒有任何關系的事情,我只當作去交水費或是送垃圾。 總的來說,快樂知足的黑客們總是在朝著一個目標努力編程并不斷進步。程序員是這樣的一群人,他們不喜歡文山會海,不喜歡爭論預算,也不喜歡在資源自足的情況被要求具有創造性或者漂亮地完成工作。如果項目經常停滯,因為不斷變化或缺少需求而受阻,管理決策不到位或沒有方向,黑客們會因此感到沮喪和不滿。更糟糕的情況是,如果因為過度的官僚和政治讓他們無事可作,他們會認為自己的技術無用武之地并且得不到重視。這不僅會讓他們對官僚不滿,而且對公司的認同和尊重程度也會降低。 認可和尊重 杰出和博學的專家們通常希望管理者在作出決定時認真考慮并咨詢他們的意見。通常也應該如此。如果管理者不尊重技術人員的建議或者不詢問他們的意見,結果執行決定的時候開發者們會對此不滿并不予配合。 你有沒有接手過棘手的項目?你的建議被提交討論了嗎?你的意見最終被采納了嗎?在重要里程碑完成時有收到祝賀嗎?這些都能夠衡量你在公司里受到的認可和尊重。你是否經常被迫去做一些你沒有把握或者不贊同的事情?你是否經常受到能力不如你的人反對和排擠?(請注意——要確保對好的技術方案保持開放的心態)這些就是不滿的信號。 薪水 這是工作滿意度最好量好的因素之一。在網上簡單搜索招聘板塊,就能夠查到在自己行業里類似工作的薪資水平。了解自己公司里其他人的薪資也是非常有價值的。很明顯,如果你的薪資不如別人你會因此感到不滿,反過來說如果你的薪資相當不錯你應當感到滿足。 通過逐條比對這些條件,我對自己的工作滿意程度更加清楚了。這讓我知道需要在哪些方面采取行動和提升。在未來的2個禮拜里,我會按照上述各條采取行動。 與此同時,那些因素在你看來是重要的呢? 英文原文:Jess Johnson 編譯:伯樂在線 – 唐尤華 |