-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
算法工程師和程序員區(qū)別(算法工程師工資很高嗎)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于算法工程師和程序員區(qū)別的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國(guó)內(nèi)免費(fèi)在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、從程序員到軟件工程師[1]
從程序員到軟件工程師[1]
看了程序員系列文章,頗多同感。做為一個(gè)從業(yè)13年,一直做軟件開發(fā)的人,我想給那些已經(jīng)、將要和有志于走上這條路的朋友一點(diǎn)點(diǎn)忠告。
首先,說說程序員和軟件工程師。雖說都是編程的干活,但是還是有一點(diǎn)高下區(qū)別。
主要說來區(qū)別是程序員programmer是將程序(已經(jīng)有流程,偽代碼或設(shè)計(jì)模板)寫成代碼;需要熟練掌握至少一門編程語言。而軟件工程師則要將目的描述成程序語言并實(shí)現(xiàn)的能力。例如將數(shù)學(xué)算法、自然語言、思維模式描述成程序算法,程序流程/類或/和人工智能,并寫成代碼的能力。
對(duì)初入行的人,當(dāng)然重在語言,要做一個(gè)合格的程序員,首先要熟練掌握語言。包括語言特性和實(shí)現(xiàn)的能力。例如使用盡量中文說的面試題,就要求面試對(duì)象掌握C++中的類的封裝;構(gòu)造函數(shù)的重載和運(yùn)算符重載。
做過一兩年后,要想繼續(xù)吃這碗飯就必須提高自己,首先當(dāng)然是深入了解語言,特別是語言的思維方式,編譯器的工作方式和常用設(shè)計(jì)模板。就拿C++的多態(tài)性來說,很多公司面試就會(huì)問什么是虛函數(shù)/純虛函數(shù)(思維方式)?用C如何實(shí)現(xiàn)函數(shù)重載(函數(shù)指針和了解編譯過程)?接口類/工具類/工廠類和 Sigleton類的實(shí)現(xiàn)(常用設(shè)計(jì)模板)。另外還有一大塊就是內(nèi)存管理了。
如果能做到深入了解語言本身,那么恭喜你,你現(xiàn)在Title至少是高級(jí)程序員了。
在對(duì)自己的語言有信心后,下一步就想一想自己要想哪方面發(fā)展。是管理方面(項(xiàng)目經(jīng)理)還是技術(shù)方面(軟件工程師)。既然這里討論編程,我們就先不考慮項(xiàng)目經(jīng)理。想發(fā)展為一個(gè)軟件工程師其實(shí)也有兩條路。一條是走系統(tǒng)軟件工程師或者叫架構(gòu)工程師的路;另一條就是算法工程師。
在國(guó)內(nèi)的朋友我建議走架構(gòu)工程師的路。要求就是知識(shí)面廣,對(duì)整個(gè)系統(tǒng)熟悉,能很快了解和分析客戶/設(shè)計(jì)需求,很快估計(jì)工作量、風(fēng)險(xiǎn)和所需要的資源(承擔(dān)相當(dāng)部分項(xiàng)目經(jīng)理的任務(wù)),能根據(jù)現(xiàn)有技術(shù)人員儲(chǔ)備提供一個(gè)解決方案。當(dāng)然還需要一定的表達(dá)能力和文檔寫作能力。例如我當(dāng)年走訪某省農(nóng)行,和對(duì)方聊了銀行卡和醫(yī)院醫(yī)療卡的聯(lián)網(wǎng),當(dāng)天晚上就和市場(chǎng)部的人合作,搞了一個(gè)通宵,寫出了60頁的技術(shù)方案和外加40頁的基于此方案的標(biāo)書。
一般來講,要做到對(duì)整體系統(tǒng)的深入了解,沒有兩三年的時(shí)間是做不到的'。所以給國(guó)內(nèi)程序員的建議是不要頻繁跳槽,尤其是不要頻繁跨行業(yè)跳槽。踏踏實(shí)實(shí)地將本行業(yè)的軟件吃透,最好每個(gè)部門或模塊都工作過。如果有這個(gè)想法,一般情況下你可以和項(xiàng)目經(jīng)理溝通,通常他們會(huì)鼓勵(lì)你這樣到各個(gè)部門/模塊工作。
我出國(guó)后,發(fā)現(xiàn)情況有點(diǎn)變化,由于語言和文化的區(qū)別,對(duì)自己走系統(tǒng)工程師的路沒有很大的信心。只好轉(zhuǎn)向走算法工程師的路了。
確定了這條路后,突然發(fā)現(xiàn)自己的數(shù)學(xué)能力太差了。不得不重新惡補(bǔ)線性代數(shù),概率和數(shù)理統(tǒng)計(jì)等高等數(shù)學(xué)。同時(shí)將《數(shù)據(jù)結(jié)構(gòu)與算法:C++版》好好從頭到尾讀了一遍。然后終于蒙混到了一個(gè)職位。
當(dāng)時(shí)第一個(gè)任務(wù)就是在一個(gè)嵌入系統(tǒng)中寫一段程序?qū)mp壓縮為jpg。各位可能會(huì)問了,這個(gè)在網(wǎng)上滿大街都是源代碼,為啥還要自己寫呢?其實(shí)這就是我不太建議國(guó)內(nèi)工程師走算法這條路的原因。除非你是數(shù)學(xué)大牛,有自己原創(chuàng)的算法。否則在國(guó)內(nèi)實(shí)在沒有算法工程師很大的生存空間。但是在國(guó)外有很大的不同,稍正式的公司基本上都禁止使用open source。因?yàn)閛pen source也是有版權(quán)的,有的是不能商用,更有的copy left是那些公司碰都不敢碰的。因?yàn)閏opy left要求你使用了他的代碼,你也必須公開你的代碼。
當(dāng)然,我們可以看那些open source,然后自己重寫。不過相信我,通常情況下如果你不是想簡(jiǎn)單做些變量替換就交差的話,看原代碼不如看這個(gè)算法文檔本身。
;
二、算法設(shè)計(jì)工程師算不算是程序員
不錯(cuò),算法設(shè)計(jì)工程師并不是程序員,由算法設(shè)計(jì)工程師設(shè)計(jì)的算法再交由程序員來實(shí)現(xiàn)。
三、人工智能與算法工程師有區(qū)別嗎?
現(xiàn)有所謂的人工智能,只是初級(jí)階段,甚至都不應(yīng)該稱為人工智能,只能說是大數(shù)據(jù)行為分析,自動(dòng)學(xué)習(xí)。只是一類復(fù)雜的算法,要是基礎(chǔ)算法都不會(huì)何談人工智能算法?也就是說人工智能工程師就是學(xué)了人工智能算法的算法工程師。
人工智能工程師=算法工程師+人工智能技術(shù)
四、算法工程師屬于前端還是后端
1、前端開發(fā)
前端開發(fā)現(xiàn)在一般指的就是web前端開發(fā)工程師,其負(fù)責(zé)是網(wǎng)站前端頁面也就是網(wǎng)頁的頁面開發(fā),簡(jiǎn)單的說網(wǎng)站前端負(fù)責(zé)是東西是網(wǎng)站用戶可見的東西,如網(wǎng)頁上的特效、網(wǎng)頁的布局、圖片、視頻等內(nèi)容。網(wǎng)站前端工程師的工作內(nèi)容就是將美工設(shè)計(jì)的效果圖的設(shè)計(jì)成瀏覽器可以運(yùn)行的網(wǎng)頁,并和后端開發(fā)工程師配合做網(wǎng)頁的數(shù)據(jù)顯示和交互。
2、后端開發(fā)
后端開發(fā)一般也叫做后臺(tái),其負(fù)責(zé)是網(wǎng)站后臺(tái)邏輯的設(shè)計(jì)和實(shí)現(xiàn)還有用戶及網(wǎng)站的數(shù)據(jù)的保存和讀取。比如一般網(wǎng)站都是有用戶注冊(cè)和登錄的,用戶的注冊(cè)的信息通過前端發(fā)送給后端,后端將其保存在數(shù)據(jù)庫中,用戶登錄網(wǎng)站的時(shí)候,后端需要通過用戶輸入的用戶名和密碼是否與數(shù)據(jù)庫中的一致來判斷用戶是否有權(quán)限登錄,這是后臺(tái)開發(fā)中的一個(gè)最簡(jiǎn)單的功能。
以上就是關(guān)于算法工程師和程序員區(qū)別相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
各種人工智能算法的功能(各種人工智能算法的特點(diǎn))
品牌策劃的個(gè)人簡(jiǎn)介(品牌策劃的個(gè)人簡(jiǎn)介怎么寫)
步行街景觀設(shè)計(jì)案例(步行街景觀設(shè)計(jì)案例分享)