中國作家林建
如果只是單純做算法、數(shù)據(jù)挖掘的話,就永遠只是服務于數(shù)據(jù),一輩子跟著需求走,對我而言,沒有什么前途,我還是想站在公司和市場的最前端,推著公司走。而且簡單說來,大家都知道程序員這個職位,年齡會成為發(fā)展瓶頸,到了一定年紀或者做到管理層,或者直接轉(zhuǎn)行,很少有人愿意過著一輩子寫代碼領工資的人生。其實,不論是人、是事還是物,核心競爭力都是你能產(chǎn)出什么價值。學數(shù)據(jù)挖掘、自然語言這些知識相對來說含金量比較高,門檻也高,不是誰都能做,對于價值變現(xiàn)來說,可能速度會更快。但要想切切實實體會到成就感所帶來的快樂,就一定得自己鎖定一個目標,不再跟著別人的需求兜兜轉(zhuǎn)轉(zhuǎn)。拒絕被那些提出各種要求的聲音轉(zhuǎn)移注意力,這一點是我當程序員帶不來的。我認為人生最重要的事還是學習如何創(chuàng)造自己的價值,時間會推動著你選擇不同的道路,我很幸運,能夠?qū)⒆约荷瞄L的東西應用到別的領域,把自己的價值發(fā)揮到極致。
小劍2016
一、算法工程師簡介(通常是月薪15k以上,年薪18萬以上,只是一個概數(shù),具體薪資可以到招聘網(wǎng)站如拉鉤,獵聘網(wǎng)上看看)算法工程師目前是一個高端也是相對緊缺的職位;算法工程師包括音/視頻算法工程師(通常統(tǒng)稱為語音/視頻/圖形開發(fā)工程師)、圖像處理算法工程師、計算機視覺算法工程師、通信基帶算法工程師、信號算法工程師、射頻/通信算法工程師、自然語言算法工程師、數(shù)據(jù)挖掘算法工程師、搜索算法工程師、控制算法工程師(云臺算法工程師,飛控算法工程師,機器人控制算法)、導航算法工程師(@之介感謝補充)、其他【其他一切需要復雜算法的行業(yè)】專業(yè)要求:計算機、電子、通信、數(shù)學等相關專業(yè);學歷要求:本科及其以上的學歷,大多數(shù)是碩士學歷及其以上;語言要求:英語要求是熟練,基本上能閱讀國外專業(yè)書刊,做這一行經(jīng)常要讀論文;必須掌握計算機相關知識,熟練使用仿真工具MATLAB等,必須會一門編程語言。算法工程師的技能樹(不同方向差異較大,此處僅供參考)1 機器學習2 大數(shù)據(jù)處理:熟悉至少一個分布式計算框架Hadoop/Spark/Storm/ map-reduce/MPI3 數(shù)據(jù)挖掘4 扎實的數(shù)學功底5 至少熟悉C/C++或者Java,熟悉至少一門編程語言例如java/python/R加分項:具有較為豐富的項目實踐經(jīng)驗(不是水論文的哪種)二、算法工程師大致分類與技術要求(一)圖像算法/計算機視覺工程師類包括圖像算法工程師,圖像處理工程師,音/視頻處理算法工程師,計算機視覺工程師要求l 專業(yè):計算機、數(shù)學、統(tǒng)計學相關專業(yè);l 技術領域:機器學習,模式識別l 技術要求:(1) 精通DirectX HLSL和OpenGL GLSL等shader語言,熟悉常見圖像處理算法GPU實現(xiàn)及優(yōu)化;(2) 語言:精通C/C++;(3) 工具:Matlab數(shù)學軟件,CUDA運算平臺,VTK圖像圖形開源軟件【醫(yī)學領域:ITK,醫(yī)學圖像處理軟件包】(4) 熟悉OpenCV/OpenGL/Caffe等常用開源庫;(5) 有人臉識別,行人檢測,視頻分析,三維建模,動態(tài)跟蹤,車識別,目標檢測跟蹤識別經(jīng)歷的人優(yōu)先考慮;(6) 熟悉基于GPU的算法設計與優(yōu)化和并行優(yōu)化經(jīng)驗者優(yōu)先;(7) 【音/視頻領域】熟悉等視頻編解碼標準和FFMPEG,熟悉rtmp等流媒體傳輸協(xié)議,熟悉視頻和音頻解碼算法,研究各種多媒體文件格式,GPU加速;應用領域:(1) 互聯(lián)網(wǎng):如美顏app(2) 醫(yī)學領域:如臨床醫(yī)學圖像(3) 汽車領域(4) 人工智能相關術語:(1) OCR:OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程(2) Matlab:商業(yè)數(shù)學軟件;(3) CUDA: (Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平臺(由ISA和GPU構成)。 CUDA?是一種由NVIDIA推出的通用并行計算架構,該架構使GPU能夠解決復雜的計算問題(4) OpenCL: OpenCL是一個為異構平臺編寫程序的框架,此異構平臺可由CPU,GPU或其他類型的處理器組成。(5) OpenCV:開源計算機視覺庫;OpenGL:開源圖形庫;Caffe:是一個清晰,可讀性高,快速的深度學習框架。(6) CNN:(深度學習)卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network)CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。(7) 開源庫:指的是計算機行業(yè)中對所有人開發(fā)的代碼庫,所有人均可以使用并改進代碼算法。(二)機器學習工程師包括機器學習工程師要求l 專業(yè):計算機、數(shù)學、統(tǒng)計學相關專業(yè);l 技術領域:人工智能,機器學習l 技術要求:(1) 熟悉Hadoop/Hive以及Map-Reduce計算模式,熟悉Spark、Shark等尤佳;(2) 大數(shù)據(jù)挖掘;(3) 高性能、高并發(fā)的機器學習、數(shù)據(jù)挖掘方法及架構的研發(fā);應用領域:(1)人工智能,比如各類仿真、擬人應用,如機器人(2)醫(yī)療用于各類擬合預測(3)金融高頻交易(4)互聯(lián)網(wǎng)數(shù)據(jù)挖掘、關聯(lián)推薦(5)無人汽車,無人機相關術語:(1) Map-Reduce:MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。(三)自然語言處理工程師包括自然語言處理工程師要求l 專業(yè):計算機相關專業(yè);l 技術領域:文本數(shù)據(jù)庫l 技術要求:(1) 熟悉中文分詞標注、文本分類、語言模型、實體識別、知識圖譜抽取和推理、問答系統(tǒng)設計、深度問答等NLP 相關算法;(2) 應用NLP、機器學習等技術解決海量UGC的文本相關性;(3) 分詞、詞性分析、實體識別、新詞發(fā)現(xiàn)、語義關聯(lián)等NLP基礎性研究與開發(fā);(4) 人工智能,分布式處理Hadoop;(5) 數(shù)據(jù)結構和算法;應用領域:口語輸入、書面語輸入、語言分析和理解、語言生成、口語輸出技術、話語分析與對話、文獻自動處理、多語問題的計算機處理、多模態(tài)的計算機處理、信息傳輸與信息存儲 、自然語言處理中的數(shù)學方法、語言資源、自然語言處理系統(tǒng)的評測。相關術語:(2) NLP:人工智能的自然語言處理,NLP (Natural Language Processing) 是人工智能(AI)的一個子領域。NLP涉及領域很多,最令我感興趣的是“中文自動分詞”(Chinese word segmentation):結婚的和尚未結婚的【計算機中卻有可能理解為結婚的“和尚“】(四)射頻/通信/信號算法工程師類包括3G/4G無線通信算法工程師, 通信基帶算法工程師,DSP開發(fā)工程師(數(shù)字信號處理),射頻通信工程師,信號算法工程師要求l 專業(yè):計算機、通信相關專業(yè);l 技術領域:2G、3G、4G,BlueTooth(藍牙),WLAN,無線移動通信, 網(wǎng)絡通信基帶信號處理l 技術要求:(1) 了解2G,3G,4G,BlueTooth,WLAN等無線通信相關知識,熟悉現(xiàn)有的通信系統(tǒng)和標準協(xié)議,熟悉常用的無線測試設備;(2) 信號處理技術,通信算法;(3) 熟悉同步、均衡、信道譯碼等算法的基本原理;(4) 【射頻部分】熟悉射頻前端芯片,扎實的射頻微波理論和測試經(jīng)驗,熟練使用射頻電路仿真工具(如ADS或MW或Ansoft);熟練使用cadence、altium designer PCB電路設計軟件;(5) 有扎實的數(shù)學基礎,如復變函數(shù)、隨機過程、數(shù)值計算、矩陣論、離散數(shù)學應用領域:通信VR【用于快速傳輸視頻圖像,例如樂客靈境VR公司招募的通信工程師(數(shù)據(jù)編碼、流數(shù)據(jù))】物聯(lián)網(wǎng),車聯(lián)網(wǎng)導航,軍事,衛(wèi)星,雷達相關術語:(1) 基帶信號:指的是沒有經(jīng)過調(diào)制(進行頻譜搬移和變換)的原始電信號。(2) 基帶通信(又稱基帶傳輸):指傳輸基帶信號。進行基帶傳輸?shù)南到y(tǒng)稱為基帶傳輸系統(tǒng)。傳輸介質(zhì)的整個信道被一個基帶信號占用.基帶傳輸不需要調(diào)制解調(diào)器,設備化費小,具有速率高和誤碼率低等優(yōu)點,.適合短距離的數(shù)據(jù)傳輸,傳輸距離在100米內(nèi),在音頻市話、計算機網(wǎng)絡通信中被廣泛采用。如從計算機到監(jiān)視器、打印機等外設的信號就是基帶傳輸?shù)?。大多?shù)的局域網(wǎng)使用基帶傳輸,如以太網(wǎng)、令牌環(huán)網(wǎng)。(3) 射頻:射頻(RF)是Radio Frequency的縮寫,表示可以輻射到空間的電磁頻率(電磁波),頻率范圍從300KHz~300GHz之間(因為其較高的頻率使其具有遠距離傳輸能力)。射頻簡稱RF射頻就是射頻電流,它是一種高頻交流變化電磁波的簡稱。每秒變化小于1000次的交流電稱為低頻電流,大于10000次的稱為高頻電流,而射頻就是這樣一種高頻電流。高頻(大于10K);射頻(300K-300G)是高頻的較高頻段;微波頻段(300M-300G)又是射頻的較高頻段?!居芯€電視就是用射頻傳輸方式】(4) DSP:數(shù)字信號處理,也指數(shù)字信號處理芯片(五)數(shù)據(jù)挖掘算法工程師類包括推薦算法工程師,數(shù)據(jù)挖掘算法工程師要求l 專業(yè):計算機、通信、應用數(shù)學、金融數(shù)學、模式識別、人工智能;l 技術領域:機器學習,數(shù)據(jù)挖掘l 技術要求:(1) 熟悉常用機器學習和數(shù)據(jù)挖掘算法,包括但不限于決策樹、Kmeans、SVM、線性回歸、邏輯回歸以及神經(jīng)網(wǎng)絡等算法;(2) 熟練使用SQL、Matlab、Python等工具優(yōu)先;(3) 對Hadoop、Spark、Storm等大規(guī)模數(shù)據(jù)存儲與運算平臺有實踐經(jīng)驗【均為分布式計算框架】(4) 數(shù)學基礎要好,如高數(shù),統(tǒng)計學,數(shù)據(jù)結構l 加分項:數(shù)據(jù)挖掘建模大賽;應用領域(1) 個性化推薦(2) 廣告投放(3) 大數(shù)據(jù)分析相關術語Map-Reduce:MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。(六)搜索算法工程師要求l 技術領域:自然語言l 技術要求:(1) 數(shù)據(jù)結構,海量數(shù)據(jù)處理、高性能計算、大規(guī)模分布式系統(tǒng)開發(fā)(2) hadoop、lucene(3) 精通Lucene/Solr/Elastic Search等技術,并有二次開發(fā)經(jīng)驗(4) 精通Lucene/Solr/Elastic Search等技術,并有二次開發(fā)經(jīng)驗;(5) 精通倒排索引、全文檢索、分詞、排序等相關技術;(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;(7) 優(yōu)秀的數(shù)據(jù)庫設計和優(yōu)化能力,精通MySQL數(shù)據(jù)庫應用 ;(8) 了解推薦引擎和數(shù)據(jù)挖掘和機器學習的理論知識,有大型搜索應用的開發(fā)經(jīng)驗者優(yōu)先。(七)控制算法工程師類包括了云臺控制算法,飛控控制算法,機器人控制算法要求l 專業(yè):計算機,電子信息工程,航天航空,自動化l 技術要求:(1) 精通自動控制原理(如PID)、現(xiàn)代控制理論,精通組合導航原理,姿態(tài)融合算法,電機驅(qū)動,電機驅(qū)動(2) 卡爾曼濾波,熟悉狀態(tài)空間分析法對控制系統(tǒng)進行數(shù)學模型建模、分析調(diào)試;l 加分項:有電子設計大賽,機器人比賽,robocon等比賽經(jīng)驗,有硬件設計的基礎;應用領域(1)醫(yī)療/工業(yè)機械設備(2)工業(yè)機器人(3)機器人(4)無人機飛控、云臺控制等(八)導航算法工程師要求l 專業(yè):計算機,電子信息工程,航天航空,自動化l 技術要求(以公司職位JD為例)公司一(1)精通慣性導航、激光導航、雷達導航等工作原理;(2)精通組合導航算法設計、精通卡爾曼濾波算法、精通路徑規(guī)劃算法;(3)具備導航方案設計和實現(xiàn)的工程經(jīng)驗;(4)熟悉C/C++語言、熟悉至少一種嵌入式系統(tǒng)開發(fā)、熟悉Matlab工具;公司二(1)熟悉基于視覺信息的SLAM、定位、導航算法,有1年以上相關的科研或項目經(jīng)歷;(2)熟悉慣性導航算法,熟悉IMU與視覺信息的融合;應用領域無人機、機器人等。
apple櫻子
軟件工程師(Software Engineer),是從事軟件職業(yè)的人員的一種職業(yè)能力的認證,通過它說明具備了工程師的資格。軟件工程師是從事軟件開發(fā)相關工作的人員的統(tǒng)稱。通常人們會和程序員(英文Programmer)產(chǎn)生混淆,但其實是兩種不同的性質(zhì)。程序員是從事程序開發(fā)、維護的專業(yè)人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。軟件從業(yè)人員分為初級程序員、高級程序員、系統(tǒng)分析員,系統(tǒng)架構師,測試工程師五大類。軟件工程師的工作不同于程序員但是一個軟件工程師必定是一個優(yōu)秀的程序員。首先軟件工程師與程序員工作上最大的不同,可以打一個比喻:把一款軟件比做一座大橋,那么軟件工程師相當于施工總指揮,而一般的開發(fā)人員也就是程序員相當于建筑工人,所以很多人就說自己是IT民工就是這么來的。想要成為一名優(yōu)秀的軟件開發(fā)工程師,就必須具備以下能力:1、需求分析能力對于軟件工程師而言,理解需求就可以完成合格的代碼,但是對于研發(fā)項目的組織和管理者,他們不但要理解客戶需求,更多時候還要自行制定一些需求。2、項目設計方法和流程處理能力軟件開發(fā)工程師必須能夠掌握不少于兩到三種的項目設計方法,并能夠根據(jù)項目需求和資源搭配來選擇合適的設計方法進行項目的整體設計。3、復用設計和模塊化分解能力作為一個從事模塊任務的軟件開發(fā)工程師,他需要對他所面對的特定功能模塊的復用性進行考慮,而作為一個系統(tǒng)分析人員,他要面對的問題復雜的多,需要對整體系統(tǒng)按照一種模塊化的分析能力分解為很多可復用的功能模塊和函數(shù),并針對每一模塊形成一個獨立的設計需求。4、整體項目評估能力作為系統(tǒng)設計人員,必須能夠從全局出發(fā),對項目又整體的清醒認識,比如公司的資源配置是否合理和到位,比如工程進度安排是否能最大化體現(xiàn)效率又不至于無法按期完成。5、團隊組織管理能力(1)工作的量化沒有量化就很難做到合適的績效考核,而程序量化又不是簡單的代碼行數(shù)可以計算的,因此要求技術管理人員需要能真正評估一個模塊的復雜性和工作量。(2)對團隊協(xié)作模式的調(diào)整一個優(yōu)秀的軟件開發(fā)工程師應該能夠根據(jù)程序員之間的能力水平差距,以及根據(jù)項目研發(fā)的需求,選擇合適的組隊方式,并能將責權和成員的工作任務緊密結合,這樣才能最大發(fā)揮組隊的效率。
美食界女王
java開發(fā)工程師一般做以下開發(fā):
一、初級部分
1、Java 程序設計基礎,包括 J2sdk基礎、Java面向?qū)ο蠡A、Java API使用、數(shù)據(jù)結構及算法基礎、Java AWT圖形界面程序開發(fā);
2、J2SE平臺Java程序設計,包括Swing圖形程序設計, Socket網(wǎng)絡應用程序設計,對象序列化,Java 常用數(shù)據(jù)結構,Applet,流和文件,多線程程序設計;
3、Java桌面系統(tǒng)項目開發(fā),4~5人組成一個項目組,項目大小為(15人*工作日)
4、Linux的基本操作,Linux下的Java程序開發(fā),Linux系統(tǒng)的簡單管理;
5、Oracle數(shù)據(jù)庫,包括SQL/PLSQL;數(shù)據(jù)庫和數(shù)據(jù)庫設計;簡單掌握ORACLE9i 數(shù)據(jù)庫的管理。
二、中級部分
1、Java Web應用編程,包括 Java Oracle 編程,即JDBC;
2、JavaWeb編程,包括JSP、Servlet,JavaBean;
3、Java應用編程,包括Weblogic、Websphere、Tomcat以及利用Jbuilder開發(fā)Java程序;
4、MVC與Struts,學習業(yè)界通用的MVC設計模式和Struts架構。
三、高級部分
1、J2ME程序設計,包括J2EE程序、J2ME;Java高級程序設計(J2EE),包括J2EE體系結構和J2EE技術、EJB;Weblogic使用、 JBuilder開發(fā);
2、Java和XML,包括Java Web Service,JavaXML, 業(yè)界主流XML解析器程序設計;
3、軟件企業(yè)規(guī)范和軟件工程,包括UML系統(tǒng)建模型和設計(Rational Rose 200x)軟件工程和業(yè)界開發(fā)規(guī)范;CVS版本控制、Java Code書寫規(guī)范。
優(yōu)質(zhì)工程師考試問答知識庫