㈠ 我不想當程序員,自己更傾向於搞一些底層或演算法的研發,大學這四年該如何規劃呢
演算法的話,《演算法導論》自然是重中之眾,如果有時間可以嘗試去搞搞acm比賽,在oj上做習題,參加演算法比賽,多看stackoverflow之類的網站,關注一些演算法牛人,看看大家都在做什麼,看一些machine learning和artificial intelligence的東西
㈡ 計算機搞演算法和搞開發的區別
第一點:因為開發是要做功能的開發,雖然開發的難度沒有演算法的難度高,但是開發的工作量比演算法的工作量更多,開發是有時間的限制的
第二點:演算法是沒有時間限制的,演算法是對功能的一種優化,不需要實時的運用到實際項目中去。
綜上所述兩點可以得出的結論是開發的加班多一點。
㈢ 演算法和開發崗相比,哪個前景更好呢
這兩個崗位的工作內容我都接觸過,目前我帶的大數據團隊中既有演算法工程師也有開發工程師,所以我說一說這兩個崗位的區別,以及未來的發展方向。
演算法設計與演算法實現
通常涉及到演算法的崗位有兩個,分別是演算法設計和演算法實現,現在有不少團隊把這兩個崗位進行合並,做演算法設計的同時也要負責實現。但是也有一些團隊是分開的,做演算法設計的不管實現過程。
演算法崗位門檻是很高的,人才也是稀缺的,總體發展空間很好。還有一點演算法崗位的不可替代性強,如果有機會去演算法崗建議是去的,一般學歷要求在碩士,Java本科大專都是可以的哈。從工作的復雜性上來說,演算法工程師的工作強度還是比較大的,但是演算法工程師的職業周期也比較長。
演算法崗主要是在於如何量化我們的產出,寫代碼做開發非常簡單。你完成了一個任務或者是項目,有了經驗之後,這是在簡歷上實打實的東西。很多演算法工程師最終成長為企業的首席科學家,或者是首席技術官等崗位,可以說演算法工程師的發展前景還是非常不錯的。
開發崗位
軟體團隊的大部分崗位都是開發崗位,有前端開發、後端開發、移動端開發等,可以說大部分程序員做的都是開發崗的工作。
與演算法崗位不同的是,開發崗位人數多,佔比大,而且大部分開發崗位的職業周期都比較短,一般開發崗位在做到一定年齡(比如35歲)之後都會轉型。一部分會轉向項目經理等管理崗位,一部分會轉型做架構師,還有一部分轉型為行業咨詢專家等,當然,也有一部分開發人員轉型為演算法工程師。
一個優秀的開發者不是網上說的那樣吃青春煩的,每一個崗位都會有自己的未來職業發展。開始確實是青春飯,因為大多數人不懂如何提升自己在公司當中的潛在價值,或者不知道如何更加聰明的完成任務。
其實兩個崗位沒有什麼可比性。聊聊這兩個崗位的突出項,開發門檻不很高的,演算法就相對高一些,因為涉及大數據人工智慧等等。現在做演算法的話,5年左右基本會成為專家,給別人講,因為大多數的人是不太懂演算法的,所以會覺得你很牛。收入上來說,演算法的收入是高於開發的。創業的話,大白話就是演算法其實是更容易給別人講故事的,而且相對產品來說,演算法是更容易形成產品的。
㈣ 研究生做演算法還是開發
研究生做開發的比較常見,做演算法的比較少,很多公司演算法崗的hc比開發崗少很多,足以見得演算法崗的難和門檻高。
㈤ 做研發好還是做數據挖掘或演算法好,或者說哪個更有前途
這個看怎麼說,事實上如果你做得比較淺,都很容易,因為門檻低。也正因為這個所以你能做,別人也能做。因此談不上什麼前途。但你如果做得深,那基本都不會太差。
㈥ 演算法工程師、研發工程師、軟體工程師都是什麼
演算法工程師是利用演算法來處理事物的人,根據研究領域,主要包括軟體開發和軟體開發方面的知識和知識,它主要包括對軟體開發的知識/視頻專業進行加工的工程師,軟體開發的工程師和軟體開發的工程師需要有豐富的經驗。
研發工程師是從事某一行業的專業人員,系統地研究和開發一些不存在的東西,並且有一定的經驗,或者改進已經存在的東西以達到最廣泛的工作目標的程序員,它需要強烈的好奇心,喜歡新的東西,有趣的學習。
軟體工程師是從事軟體專業的人的專業能力的認證,它表明他具有從事工程開發的系列的相關工程師的集體資格。
(6)演算法研發是做什麼的擴展閱讀:
演算法工程師根據研究領域來分主要有音頻/視頻演算法處理、圖像技術方面的二維信息演算法處理和通信物理層、雷達信號處理、生物醫學信號處理等領域的一維信息演算法處理。
研發工程師創新意識:
思路開闊,能從市場、用戶和生產工藝角度考慮產品開發。唯技術至上的人,思路狹隘,即使聰明過人,只能扮演一個處理具體問題的小角色。企業的唯一目標是賺錢,能賺錢就是好產品,不能賺錢就等於零。
對於軟體工程師,不太重視學歷,但並不是對學歷沒有要求,重點關注項目的經驗和學習知識的能力,能否利用軟體工程專業知識來解決問題,根據崗位不同,對軟體工程師的要求也有所不同。
㈦ 軟體開發是做什麼的
軟體開發的內容是:需求、設計、編程和測試!
需求:不僅僅是用戶需求,應該是開發中遇到的所有的需求。比如,你首先要知道做這個項目是為了解決什麼問題;測試案例中應該輸入什麼數據……為了清楚地知道這些需求,你經常要和客戶、項目經理等交流。
設計:編碼前,肯定有個計劃告訴你要做什麼,結構是怎樣等等。你一定要按照這個來做,否則可能會一團糟。
編程:如果在項目截止日,你的程序不能跑起來或達不到客戶的要求,你就拿不到錢。
測試:目的是讓你知道,什麼時候算是完成了。如果你聰明,你就應該先寫測試,這樣可以及時知道你是否真地完成了。否則,你經常會不知道,到底有哪些功能是真正完成了,離預期目標還差多遠。
軟體開發中,客戶和開發人員都有自己的基本權利和義務。
客戶:
定義每個用戶需求的商業優先順序;
制訂總體計劃,包括用多少投資、經過多長時間、達到什麼目的;
在項目開發過程中的每個工作周,都能讓投資獲得最大的收益;
通過重復運行你所指定的功能測試,准確地掌握項目進展情況;
能隨時改變需求、功能或優先順序,同時避免昂貴的再投資;能夠根據各種變化及時調整項目計劃;
能夠隨時取消項目;項目取消時,以前的開發工作不是一堆垃圾,已開發完的功能是合乎要求的,正在進行或未完成的的工作則應該是不難接手的。
開發人員:
知道要做什麼,以及要優先做什麼;
工作有效率;
有問題或困難時,能得到客戶、同事、上級的回答或幫助;
對工作做評估,並根據周圍情況的變化及時重新評估;
積極承擔工作,而不是消極接受分配;
一周40小時工作制,不加班。