程序員從入門到大牛的5個進階秘笈

各行各業都有捷徑可走,只是沒有前輩愿意把自己的秘笈告訴你,這里講的秘笈,并非投機取巧,而是掌握事半功倍的方法, 程序員從入門到大牛的必經之路,也有九九八十一難等著他們去闖,而掌握了這五種秘笈,能更好的幫助你迎接困難。


秘笈一:專注眼下

------------------------------------------

見過太多心猿意馬的程序員,我不得不把「專注眼下」作為第一條。程序員不像其他行業,因為不專注,他們的代碼一團糟,他們不在意做好自己的本分,不在意錘煉自己的技能,不在意學習新興的技術。不可否認,這世界上存在著偉大的產品(喬布斯),Facebook(扎克伯格),微軟(比爾蓋茨),而他們毫無例外都是程序員出身。我堅信除了少數的天才外,冥冥眾生均可以在多個領域取得成功,只要保持足夠的專注。程序員的經驗仍然能訓練你強大的邏輯、謹慎和耐心,放在哪個行業都是相當可觀的競爭力。

秘笈二::思考力與推動力

------------------------------------------

我認為處理bug、崩潰、調優、入侵等突發事件比編程本身更能體現平庸程序員與理想程序員的差距。當面對一個未知的問題時,如何定位復雜條件下的核心問題、如何抽絲剝繭地分析問題的潛在原因、如何排除干擾還原一個最小的可驗證場景、如何抓住關鍵數據驗證自己的猜測與實驗,都是體現程序員思考力的最好場景。是的,在衡量理想程序員的標準上,思考力比經驗更加重要。
有時候小伙伴跑過來,問我「提交了一個任務被卡住了,怎么辦」的時候,我總覺得他可以做得更好。比如,可以檢查試驗別的任務,以排除代碼自身的原因;可以通過Web UI檢查異常(如果沒有賬號,可以讓我提供);可以排查主機日志或刪除緩存,再不濟,總應該提供任務ID和控制臺日志給我。理想的程序員永遠不會等事情前進,他們會用盡一切方法讓事情前進。

秘笈三:Never Say No

------------------------------------------

程序員往往以「技術上無法實現」來擋產品的需求,而產品也往往以「Facebook可以為什么我們做不到」來奚落程序員。這兩句話應該屬于禁語,從根本上都不利于程序猿和產品狗的相親相愛。
一句「技術上無法實現」是容易出口,可有多少人在說出這句話的時候,心里是100%肯定的?如果不肯定,為什么不能回去谷歌一下再回答?原本我以為程序員是充滿想象力,在因為有想象力,才能誕生那么多改變我們生活的軟件和互聯網產品。見識多了,才了解大部分程序員已經在與bug的對抗中變得保守而不愿擔當風險,與此同時許多團隊也不愿意寬容失敗。于是「Say No」變成一種習慣性的抵觸,還記得曾國藩為什么解散湘軍么?他說那支軍隊已「暮氣漸深」,不能打仗了。要做理想的程序員,就不能給自己滋生暮氣的機會,如果面對不合理的需求,可以把時間成本擺出來,把曲線救國方案亮出來,簡單粗暴「Say No」是不可取的。

秘笈四:投資未來

------------------------------------------

程序員是一個非常殘忍的職業。你所學所用的語言、框架、模式,很可能在數年內就成昨日黃花了;你現在嘲笑的另一群程序員,可能馬上就能轉身來嘲笑你了。所以理想的程序員除了做好自己的本分,還要花費時間來投資未來。什么是「投資」?投資就是你現在投入的時間,在未來會以更多的時間或者金錢(看看早幾年學習iOS的程序員現在的薪酬!)回報你。舉我自己的領域 – 數據挖掘為例,08年左右Hadoop開始興起,一時「大數據」概念火熱,Hadoop工程師萬金難求,各互聯網公司紛紛把數據統計、數據分析和數據挖掘的業務切換到分布式平臺上。這幾年眼看Hadoop還在不斷迭代,Spark又異軍突起,一舉刷新了Hadoop保持的排序記錄,以內存存儲中間數據帶來的性能優勢和豐富的數據結構讓人愛個不停,各種奇異的小bug和陡峭的學習曲線又讓人打退堂鼓。那么,明眼人都知道Spark是未來的趨勢(內存會越來越便宜),在主業務放在Hadoop的條件下,就可以適當把一些小模塊切換到Spark上,同時留意Spark社區的發展。很快從Spark獲得的性能收益就能把之前投入的學習時間掙回來。


秘笈五:善用工具

------------------------------------------

善用工具可以分為4個層面:
搜索引擎
不相信重復
代碼片段
自動化


程序員的成長就像膨脹的圓圈,外面是無邊無際的大海,圓圈越大,與大海接觸的面也越大,懂的越多,不懂的越多,而計算機科學又是一門更新換代異常迅速的學科,同時也是知識互聯網化最好的學科,通過不斷地學習方能獲取到最新的知識。
the end

評論(0)