演算法沒有項目-ag真人国际官网
① 計算機開發崗和演算法崗都有些什麼區別
其實只有在大廠這兩個崗位才會被分的很清楚,小公司的話一般都是混著用,畢竟演算法工程師都很貴,得保證利益最大化才行。
演算法崗
這種崗位負責新演算法的研發工作和論文的解讀、編寫,一般存在於一些大廠的實驗室,比如國內的阿里、網路、騰訊、華為,國外的openai、臉書、deepmind等。而且學歷和專業要求極高,基本都是科班的名校碩士或者博士,這也是網傳的演算法門檻高的真正崗位,高學歷保證了技術水準的同時也保證了技術員的學習接收能力,保證了國外如果有新的技術論文可以第一時間解讀和實踐。
演算法工程師崗
目前我就是這個崗位,主要是負責將已經成熟的技術結合到商業項目中偏向業務一些,這個這個崗位就沒有演算法崗那麼誇張,基本上只要是好一點的本科計算機專業就夠滿足面試要求了,目前商湯、曠視、寒武紀這些都偏向這個方向。
其實還有第三檔的公司主要做的是產品,基本上就是調用模型然後應用到一些軟體中去,來優化產品功能,基本上懂一些演算法的開發就能做到這項工作。
② 為什麼有人勸別選計算機專業
1、時代不一樣了。碼農之所以被吹捧,必然是有原因的。08年的時候,計算機真的是鄙視鏈的最低端了,我表哥就是那時候畢業的,那時候計算機都是分不夠被調劑過去的。但是呢,移動互聯網的爆發,外加人工智慧,給計算機續了2次命。我的很多領導,也就是10年到15年加入互聯網公司的,字面意義的財務自由了。年薪百萬,房產增值若干,天天上班欺上瞞下玩弄女下屬就是這一幫人(說實話不少人素質很低)
阿里巴巴是14年上市的,14年前你在大街上真的沒有幾個路人知道馬雲,那時候真的是,二本進大廠都不難。我們18年已經很卷了,我也是憑借著985才進的大廠。而現在呢,我們招聘,非985碩士連看都不看的。是的,我們一年給新生就可以給30萬,但是我們一般要刷掉十幾個人才招一個,你確定你能卷進了我們大廠?
2、碼農工資沒有這么高。另外,40萬的包裹是包含股票的,必須干滿4年才能給你,離職跳槽全部沒有了,其實你的工資也就是20萬出頭,扣完稅真的沒多少明白嗎?不像公務員,基本工資一個月一萬,但是各種年終獎,補貼,精神文明獎,五險一金。真的不一樣。考慮到程序員基本上是35歲失業,那時候孩子估計還在上小學,一家老小,吃什麼喝什麼。
另外,收入分為明面收入和暗面收入,人家醫生分錢的時候,是不會給你說的。人家拿回扣收紅包也是不會給你講的。
3、找對象很重要。我們計算機專業女生很少,大學四年下來真的連和女生說話的機會都沒有。畢業了就去大廠卷了,更沒有機會和女生接觸了。
4、碼農是真的苦啊。大學的時候,通宵趕項目是常態,各種新語言,各種框架,各種配置環境,能把你逼瘋你信嗎?其他的工科為了考試作業發愁,我們看了就是好笑。考試算個啥,代碼你有bug,調試一周都找不到原因,問題是代碼跑不出結果,就是零分,別管你花了多少時間。這才是真正的絕望。我們的大作業,1~2周讓你寫一個大作業真的是常態,在外面的培訓班至少要學一個月,真的不知道那群老師的腦子是不是進水了
5、最後說一下35歲退休,為什麼會35歲退休?本質上就是因為你35歲的競爭力已經比不過27的小年輕了,年老色衰,人家nba球員35歲就算老將了,我們同理。我們一輩子也就只能掙10年的錢,現在不多拿一點,以後老了怎麼辦。評論區有人說演算法不失業的笑死我了。要知道演算法崗是15年以後才出現的,以前根本沒有演算法崗這個東西,從業者就沒有超過35歲的,何談35歲危機?
總結:
計算機並沒有想像中的美好。最重要的就是互聯網的增長能不能持續的問題,之前計算機也是勸退專業,後來是移動端人工智慧給計算機續命了。現在互聯網的風口早就過了,資本的寵兒已經是自動駕駛和新能源了,如果還是以為互聯網的高薪可以持續,那麼你真的很幼稚了。
更不要說計算機由於是工科,自帶硬核屬性,大學4年真的很辛苦。到了工作也是硬核模式,代碼寫的不好真的是被末尾淘汰。而且就像所以的工科一樣,女生很少,不好找對象。由於計算機是對著電腦的,眼睛近視,彎腰駝背,禿頭真的就是職業病了。
③ 演算法工程師未來的發展方向35歲以後呢
技術能力是技術人員的立身之本。站在演算法的角度,這里的技術能力主要是演算法應用能力,包括閱讀論文、演算法實現、工程化以及相關文檔的撰寫。
技術人員常見的一個認知誤區是技術大於一切,認為只要技術做好了,就應該得到認可或獎勵。事實上,技術在大多數情況下只是商業中的一環,技術做得好不能確保商業上的成功。
以自營電商為例,技術人員做一款功能強大的購物app不難,但同時必須有商品研發、供應鏈和物流配送才能完成一個極小的商業閉環。此外,要想商品賣得好得有市場和運營團隊一起發力。在這樣的背景下,購物app只是諸多商業環節中的一個節點,因此僅僅依賴軟體研發技術顯然不足以實現商業上的成功。好的技術團隊必須始終圍繞各商業環節,有能力定位問題,並研發工具有效地解決問題。
作為演算法工程師,在立項和需求評審時,需要有能力評估項目為業務帶來的價值以及演算法在整個項目中的價值,從而避免把精力浪費在「投入產出比」不高的事情上。如何做到這一步呢?除了有扎實的技術,還需要深入了解業務。
需要了解的業務知識包括(但不限於)商業模式、業務流程、業務限制以及與當前業務相關的技術等等。演算法工程師了解業務的另一個好處是洞察需求,解決問題的同時可以發現更多的技術問題,從而推動業務的進步。
技術人員最難跨越的是從技術能力到業務能力的提升。有兩方面原因:一是技術人員主觀上不太願意處理業務問題(扯皮的事情較多);二是技術人員晉升和跳槽時主要被考察的還是技術,因此業務能力在有些技術人員看來短期的收益不高。
架構能力是一種解決復雜問題的能力,它需要考慮業務的現狀和未來,把復雜問題分解成簡單問題,然後給出解決方案。與軟體架構相比,演算法架構更偏向業務,不僅要對業務進行建模和抽象,還要考慮工程實現,以便技術方案在實際業務中落地。因此,良好的技術能力和業務能力是演算法架構能力的基礎。
演算法相關的技術項目可能涉及到與其它技術工種的配合,例如:產品經理、數據分析、數據開發、前端、後端、測試、運維等。因此,演算法工程師設計的技術方案應該考慮到演算法模塊與其它技術模塊的解耦與協同。
演算法工程師做解決方案時應該從全局出發:一是技術上不僅考慮演算法而且還要考慮工程實現和產品化(切忌手裡有錘子,看什麼都是釘子的想法);二是從整體業務的角度考慮項目帶來的收益。例如,假設推薦系統的重構可以帶來推薦模塊的轉化率提升。那麼這件事情一定值得做嗎?我們還應該評估這個提升效果對大盤利潤的影響。如果對大盤利潤的提升有限,或許應該把精力投入在更有價值的項目中。
④ 演算法的有窮性和死循環
看你寫出while(1),那麼你一定是在用程序來實現演算法。
首先你要明確知道演算法不只有程序實現。
其次,你要了解演算法在計算機系統中處於哪個層次?
計算機系統實現
你可以了解一下計算機系統的演變,目前的計算機系統都是按照這種層次轉換去設計的。
a)問題,也就是我們經常項目中遇到的需求文檔,這些都是用自然語言來描述的,什麼是自然語言?就是漢語、英語等這些人說的話。
b)演算法,演算法我們可以用自然語言,流程圖,偽代碼等來描述,這就是所謂項目詳細設計,演算法的大特性:
有窮性:一個演算法在執行有限步驟後,在有限時間內能夠實現的。
明確性:演算法中每一個步驟的表述都應該是確定的、沒有歧義的語句。
可計算性:演算法的可行性就是指每一個步驟都能夠有效地執行,並得到確定的結果,而且能夠用來方便地解決一類問題。
如果演算法違背了這些特性那就不叫演算法,這是前人以及眾人都認可的。
c)程序,程序就是我們開始碼代碼了,就是你要按照詳細設計去用代碼實現,這個時候你發現 詳細設計裡面寫了一段話 讓你無限循環即(while(1)),你會不會去揍這個寫詳細設計的?
後面我就不多說了,總結起來就是 程序不等價於演算法,演算法可以用程序來實現,程序的設計包含演算法,所以你說你的while(1)和演算法有窮性矛盾,是八竿子打不到的事情。