算法工程師,顧名思義,如果連算法都不過關,就和低配版后端工程師沒什么區(qū)別了。雖然工程師是根本,然后才是算法,必備的基礎開發(fā)技能不能少,但與工程崗位不同,也要有對算法理論的一些比較高的理解。那么今天就來介紹一下作為算法工程師,我們需要具備哪些開發(fā)能力。
自己能簡單的完成算法功能,例如一些簡單的數(shù)據(jù)處理,文件操作、特征工程,復雜一些則是一些自動化打標的方法,最好的考查方式其實就是應屆生考試里面的算法題。
如何用分布式的方法實現(xiàn)對數(shù)據(jù)的離線處理,算法處理成千上萬甚至更多的數(shù)據(jù)可以說是家常便飯了,使用大數(shù)據(jù)的方法能加快數(shù)據(jù)的處理,早期有mapreduce,在hadoop生態(tài)下現(xiàn)在的spark就是也非常成熟,會使用這些方法來進行處理,能大大提升處理的效率。
對一些特定任務,要逐步有比較完整的認識,一方面是有哪些常用的方法,各個方法的優(yōu)缺點要比較了解,以命名實體識別為例,要知道CRF、BILSTM、BERT-BILSTM-CRF之類的常用玩法,每個玩法的效果、性能都是什么樣的,有哪些適用范圍和改進空間,這些都十分有用。在對一些穩(wěn)定任務比較擅長后,開始了解更多的相關任務,開始提升,文本分類,文本相似度什么的,都開始慢慢了解。
要成長,從來都需要從點到面,要從慢慢做一個工作的人,成為一個能解決問題的人,舉個例子,以前更多是有個leader告訴我我該做什么,怎么做,現(xiàn)在要升級為自己想出一個合適全局、效果最好的方法。
對于校招的新人,工作其實本身就是成長,因此需要學會沉淀,這里的沉淀是指有一些自己的工作,可以抽象出來,日后是可以用的,這個能有效提升未來的工作效率所以很有用。