技術路線的核心競爭力

來源:互聯網
上載者:User
起了一個不好聽的標題。工作一年多了,也已經開始帶新人了。聽到那些比我年紀大的人叫我導師,我經常忍不住翻白眼。我想寫一些見解,寫一些如果我上大學的時候看到會受益的東西。首先澄清一點,千萬不要聽信有些過來人所謂【學演算法在工作中基本用不上,但學它可以鍛煉你的思維】這種褒貶參半的話。確實有些技術人員不太懂演算法,但也伴隨著產品的成功發了家 —— 還有人不懂演算法能中六合彩呢。真正從技術角度來看,在現今【big data】時代,越核心、越高檔的職位,對演算法的要求就會越高。這就是為什麼大公司校招最喜歡考演算法,大公司喜歡自己培養人(而不是招打雜的),管理方向另說,技術方向的話,演算法不過硬不可能走得遠。為什麼演算法重要?我認為技能分為兩類,一類是可現學現賣的,一類是需要系統學習的。後者更值錢,演算法正是屬於後者。舉個例子,有人突然給你一份java或者perl代碼,讓你加個啥功能,即使你沒接觸過這些語言,對於聰明的程式員來說google一下文法兩下子就解決了;但如果有人給你一份代碼跟你說這個Recommendation Engine的效果好像不太好,而且效能有些差……對於需要系統學習的東西,假如它是你的短板,就極其容易讓你在解決問題的過程中走錯方向。哪怕你把問題拆分得很好,逐一請教google或者大牛,也不見得可以得到合理的方案,畢竟問題一般都具有特殊性,只有你自己才能把握全域資訊。比如之前有個同事問我一個很複雜的匹配問題,想得我天昏地暗血肉模糊,但後來我瞭解了他的完整需求之後,發現他歸約到匹配問題本身就丟失了一些有用資訊,換個方式直接就解決了。好。那除了演算法,需要系統學習的東西還有什嗎?我認為是組成原理和設計模式。組成原理是演算法的強力後援。程式的效能可以看作是演算法理論複雜度乘以硬體效能,不要以為後者只是一個常數的問題。把寄存器、記憶體、硬碟的調度玩好,你的程式甚至會跑出讓普通演算法滾蛋的performance。另外我們知道,【big data】時代伴隨著高機器損耗率,不懂組成原理是沒辦法讓服務穩定的。組成原理這塊我在大學荒廢了,工作後一直在補。設計模式。不懂設計模式,就只能老老實實去寫面向過程的代碼,否則你看似規整的class會成為毀滅性的垃圾。但是你能只玩面向過程嗎?不能,因為很多開源的藝術品都是物件導向的。但對於沒畢業的人來說學設計模式是很矛盾的事情,因為沒經過大量的工程實踐,很難理解那23種模式的意義何在。這個矛盾的唯一解決途徑還是多動手。你做到了別人沒做到,這塊會產生巨大優勢。資曆有限,不繼續深入。

就目前來看,這3點煉成後足以扳倒一大片。

原文地址:http://davidzai.blog.163.com/blog/static/187126212012629115654649/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.