教培機(jī)構(gòu)入駐教育寶平臺、搭建私域流量運(yùn)營系統(tǒng)及官網(wǎng)
錄播課程和知識付費(fèi)機(jī)構(gòu)入駐教育寶網(wǎng)課平臺
公立私立幼兒園、中小學(xué)、職業(yè)學(xué)校入駐教育寶學(xué)校庫
研學(xué)、周末活動、冬夏令營機(jī)構(gòu)入駐研學(xué)活動子平臺
合格的工程師
工程師在一個團(tuán)隊(duì)中的角色是problem solver,也就是為了達(dá)到產(chǎn)品或者系統(tǒng)設(shè)定的目標(biāo),去把設(shè)想變成現(xiàn)實(shí)的人。除了扎實(shí)的專業(yè)能力之外,要進(jìn)階還有以下幾個我覺得重要的方面:
項(xiàng)目中的全局觀
前面提到工程師在一個大的項(xiàng)目和產(chǎn)品中往往需要和不同角色配合,那么主動思考技術(shù)怎么能貢獻(xiàn)于整體項(xiàng)目目標(biāo)就尤為重要。以項(xiàng)目目標(biāo)為指揮棒,而不是自顧自地考慮所謂高大上的技術(shù)方案。用*簡潔的技術(shù)解決問題這恰恰是內(nèi)功的體現(xiàn)。甚至很多時候,由于各種客觀條件限制,沒法去選擇技術(shù)上*合理的方案來執(zhí)行。在此時如何取舍來達(dá)成目標(biāo),就更考驗(yàn)工程師的智慧和全局觀了。
定義問題的能力
在工作中,我們遇到的問題會是多種多樣的。不像在學(xué)校,往往解決的是一個定義得非常清晰的通用問題。在工作中,由于產(chǎn)品和項(xiàng)目需求多樣,我們要解決的是一個特定場景中的細(xì)分問題或者是一個可能不復(fù)雜但是全新的應(yīng)用。雖有各種公開的論文或者代碼可以參考,但生搬硬套往往都不會是*優(yōu)方案。在解決問題之前,我們要先考慮清楚這個問題的輸入輸出是什么?和已有的通用問題區(qū)別是什么?有什么樣的先驗(yàn)知識可以利用優(yōu)化問題或者簡化問題?來自產(chǎn)品的問題是怎樣抽象成一個嚴(yán)謹(jǐn)?shù)拿枋?準(zhǔn)確地想清楚要做什么事情項(xiàng)目就已經(jīng)成功了大半。
獨(dú)立解決問題的能力
在解決問題的基礎(chǔ)之上,還有重要二字:獨(dú)立。學(xué)生時代以上課學(xué)習(xí)為主,非博士的同學(xué)可能很少能有獨(dú)當(dāng)一面來解決問題的機(jī)會,過程中往往也多有指導(dǎo)。工作中,要解決的問題可大可小,但切記做一個讓同事和領(lǐng)導(dǎo)放心的靠譜的人。我們經(jīng)常會談到一個詞,管理成本。這并不是指一位同學(xué)具體解決問題的技術(shù)能力如何,而是在解決問題的過程中,你的leader和同事需要花費(fèi)多少精力。管理成本越低的同學(xué),在解決問題過程中需要的指導(dǎo)精力越少。理想狀況下只需要leader交代清楚要解決的問題,便可在解決問題的過程中獨(dú)立規(guī)劃,自主溝通。如有困難,也可以整理好并及時主動提出需求。要達(dá)到這一點(diǎn),其實(shí)是需要綜合以上所有的能力。
合格的算法工程師
最后的最后才會到算法工程師,這畢竟是*細(xì)分的環(huán)節(jié)。每個公司對算法工程師的定義不盡相同,所以就不談具體的技術(shù)細(xì)節(jié)了,只能從個人角度談?wù)劇S幸韵掠X得比較重要的三個點(diǎn):
優(yōu)秀的實(shí)現(xiàn)能力
這一點(diǎn)其實(shí)已經(jīng)老生常談了,算法工程師哪怕是算法科學(xué)家都需要有能力把想法變成runnable code。根據(jù)團(tuán)隊(duì)分工和項(xiàng)目不同,有的需求是只需要證明想法可行,有的是需要一個prototype,有的也可能需要直接推到產(chǎn)品或者上線系統(tǒng)中去。無論是哪種情形,有優(yōu)秀動手實(shí)現(xiàn)能力的同學(xué)都會占有巨大的優(yōu)勢,哪怕就算是算法不可行,實(shí)現(xiàn)能力強(qiáng)的同學(xué)也可以快速試錯快速迭代。這樣的能力無論何時在何團(tuán)隊(duì)都會是寶貴的。
除此之外,實(shí)現(xiàn)能力不僅僅局限于寫出來,寫的快,還應(yīng)該包括寫得好,寫得美。把代碼寫得簡潔易于維護(hù),可能并不會直接幫助到算法研發(fā),但是從長期來說,這是在一個周期較長的項(xiàng)目中保持效率很重要的一點(diǎn)。
對前沿進(jìn)展保持追蹤
算法工程師不同于其他職位的工程師,*起碼在現(xiàn)在這個階段技術(shù)迭代的速度是以月為單位的。所以保持前沿的追蹤是非常有必要的。但不同于做科研,算法工程師了解前沿的目的不一定是要在此基礎(chǔ)上繼續(xù)開拓創(chuàng)新,而是能對已有的技術(shù)深入理解,去偽存真,以便更好地在業(yè)務(wù)中為我所用。當(dāng)然對待新技術(shù)也不應(yīng)該盲從,而應(yīng)該看清想清之后再動手。*好能有同事朋友針對paper進(jìn)行討論和critique。
扎實(shí)的計算機(jī)原理基礎(chǔ)
不了解算法部署的平臺談研發(fā)高效的算法就像是空中樓閣。雖然這可能在初級算法的研發(fā)中并不明顯,但是會成為很多同學(xué)進(jìn)階中的一道坎。這一點(diǎn)對于非科班轉(zhuǎn)行來做算法的同學(xué)尤甚。相比于應(yīng)試教育式的學(xué)習(xí),更重要的是理解系統(tǒng)為什么被設(shè)計成了現(xiàn)在這個樣子,在這樣的過程中做了什么樣的取舍,以及作為上層用戶這樣的取舍對算法設(shè)計意味著什么。所以不用擔(dān)心,補(bǔ)習(xí)工作中所需要的知識,這個工作量是遠(yuǎn)比學(xué)習(xí)一遍本科計算機(jī)專業(yè)課要小很多的。
點(diǎn)贊
收藏
稍后學(xué)習(xí)規(guī)劃師會與您聯(lián)系,請保證手機(jī)暢通