演算法還是項目
『壹』 想要成為優秀的程序員,在大學階段更應學習數據結構演算法(參加ACM)還是項目開發(學JAVA,PHP,Python..)
優秀的程序員需要的是謙虛,熱愛。大學的基本課程要優秀。少於90分不合格。同時大量參加各種項目。不管大事小事,都是有價值的。另外就是嚴格按軟體 工程的方法都編程。此外還需要一個好的榜樣。現在優秀的程序員太少了。我已經10幾年沒有見到了。因為同90年代比,現在的程序員都缺少熱愛與專注。大部分人都缺少謙虛。沒有謙虛就沒有進步。
『貳』 關於擇業,對於我的情況,演算法和開發該選哪個好
我感覺你還是應該根據自己的愛好擇業。因為你愛號的工作你比較熟悉,所以就能幹好。
『叄』 計算機專業的選擇:ACM競賽和做項目設計
其實ACM和項目各有優勢,你可以根據自己的情況選擇,ACM要求基礎知識多一些,比如數學,數據結構和很多的演算法,主要是腦力勞動,項目則不需要太多的思考,偏「體力」勞動吧。
你可以根據自己的情況選擇,或者說選一個作為重點,另外一個作為自己的業余愛好。
如果你畢業了打算考研,那麼選擇ACM好好乾一下吧,那樣以後會很有優勢的。如果你打算畢業了就工作,那麼有項目經驗就比較重要,但是如果你ACM拿獎了也是簡歷的一個籌碼。
『肆』 演算法和開發崗相比,哪個前景更好呢
這兩個崗位的工作內容我都接觸過,目前我帶的大數據團隊中既有演算法工程師也有開發工程師,所以我說一說這兩個崗位的區別,以及未來的發展方向。
演算法設計與演算法實現
通常涉及到演算法的崗位有兩個,分別是演算法設計和演算法實現,現在有不少團隊把這兩個崗位進行合並,做演算法設計的同時也要負責實現。但是也有一些團隊是分開的,做演算法設計的不管實現過程。
演算法崗位門檻是很高的,人才也是稀缺的,總體發展空間很好。還有一點演算法崗位的不可替代性強,如果有機會去演算法崗建議是去的,一般學歷要求在碩士,Java本科大專都是可以的哈。從工作的復雜性上來說,演算法工程師的工作強度還是比較大的,但是演算法工程師的職業周期也比較長。
演算法崗主要是在於如何量化我們的產出,寫代碼做開發非常簡單。你完成了一個任務或者是項目,有了經驗之後,這是在簡歷上實打實的東西。很多演算法工程師最終成長為企業的首席科學家,或者是首席技術官等崗位,可以說演算法工程師的發展前景還是非常不錯的。
開發崗位
軟體團隊的大部分崗位都是開發崗位,有前端開發、後端開發、移動端開發等,可以說大部分程序員做的都是開發崗的工作。
與演算法崗位不同的是,開發崗位人數多,佔比大,而且大部分開發崗位的職業周期都比較短,一般開發崗位在做到一定年齡(比如35歲)之後都會轉型。一部分會轉向項目經理等管理崗位,一部分會轉型做架構師,還有一部分轉型為行業咨詢專家等,當然,也有一部分開發人員轉型為演算法工程師。
一個優秀的開發者不是網上說的那樣吃青春煩的,每一個崗位都會有自己的未來職業發展。開始確實是青春飯,因為大多數人不懂如何提升自己在公司當中的潛在價值,或者不知道如何更加聰明的完成任務。
其實兩個崗位沒有什麼可比性。聊聊這兩個崗位的突出項,開發門檻不很高的,演算法就相對高一些,因為涉及大數據人工智慧等等。現在做演算法的話,5年左右基本會成為專家,給別人講,因為大多數的人是不太懂演算法的,所以會覺得你很牛。收入上來說,演算法的收入是高於開發的。創業的話,大白話就是演算法其實是更容易給別人講故事的,而且相對產品來說,演算法是更容易形成產品的。
『伍』 怎麼打編程基礎,做項目還是刷演算法題
第一英語必須過五級第二學習編程是一件好事 不過之前你得先了解 你學習編程的目的是什麼 這個很重要 因為目的決定發展方向
目前對於編程有很多種編程語言以及相對應的開發軟體 下面說明一些常用的編程語言 根據你的情況選一種語言進行學習 不要盲亂學習
C語言 一種可移植性和多系統平台的編程語言 開發軟體TC
VB 一種可以說是既學既用的軟體開發語言 開發軟體如:VB6.0
DELPHI 一種和VB差不多的既學既用的軟體開發語言不過其功能遠比VB強大 代碼書寫上更加方便
開發軟體 DELPHI7.0
JAVA 一種功能強大可移植性強開發語言
程序語言,顧名思義就是語言,是用於交流的,程序就是計算機的語言和人的語言的翻譯者,做一個程序員就是要把人類世界的問題用計算機的方法去解決和展現,可是因為種種原因,大多數人在如何學好語言,如何學好開發平台上疲於奔命,到頭來你只會敲寫代碼。
程序基本上都是自學的,買書是一開始碰到的最頭痛的問題,計算機的書大多都很貴,現將我的一點經驗供大家參考:
如果想做一個合格的程序員,C++是一定要學的,
首先你要花兩個月的時間學習C,C++,這樣的書很多,去選一些大學的教材足亦,切記,不要花過多的時間研究C++,兩個月夠了,只要學會其中語法就行了,不要為了深入用DOS編寫菜單什麼的,那是吃飽人參了。
如果你有過多的時間,接下來你可以學習數據結構,推崇《數據結構C++語言描述》,清華大學出版,58元,但如果無過多時間,還是不看為妙,至少我現在從未用過這本書的知識,許多東西MFC VCL等開發平台都為你已經做好。
接下來開始學習Windows下的SDK編程, 推崇《Windows程序設計》160元,建議去借,不要買,而且你只看上冊,你只要了解Windows的運作機制即可。兩個月
然後你將轉入VC的世界,既然要在Windows下編程,VC不可不學, 推崇《VC++技術內幕》第四版,96元,三個月,不要全部看,看前面的三部分,後面不要看。後面的只是對COM,資料庫,Internet形如雞肋的介紹。
接下來你應該考慮一下你將要發展的方向,如果是做資料庫,你可以用VB和Delphi或CB, 如果要做通信方面,或者硬體,你將要深入VC, 如果是WEB相關的,去學學ASP,JAVA,JSP,XML等,但有一樣你必須要學的,COM。COM與其說是一樣新的技術,還不如說是種機制,推崇潘愛民的《COM原理和應用》39元,你可以一邊看這本書,一邊學習些ActiveX組件,ATL控制項等等。如果你有的是時間,不急於找工作,你還可以看看《Windows高級編程》或《Windows核心編程》,但不管怎麼樣,你要切記,VC不是用來做界面和資料庫的,做網路的現在也有JAVA,都是用來做一些很底層的東西,VC是很高薪的,如果你對自己有充分的信心和有的是時間,你才可以深入VC。否則的話,還是看看人才市場,看看行情,再說。
還有一點切記,有些書,諸如《MFC深入淺出》這些書主要是關於那些技術原理的介紹,我個人認為程序只是工具,只是技術,只要學會用,能完成任務即可,如果有的是時間,才會去探索根源,也許有許多人會說,懂了原理對你編程會有很大幫助,我不否認,但是,要知道,就算你編程技術如何了得,你只是個技術人員,當你學了那麼多的技術和知識,第一,計算機的知識其實是各大公司制定出的標准,標准變了,你不是白學了嗎?第二,當你花了幾年的時間學習,到頭來你只不過程序水平提高一點。我認為應當將你的大部分智力和精力用在如何與人打交道,電腦讓你用的好有什麼用,人腦讓你擺弄的好才算真本事,就如《黑冰》裡面的計算機工程師,雖然對計算機十分精通,可有什麼用,還不是死在王志文的手裡?而且死的很慘,臉都毀了。
另外,不要去學你喜歡的,也不要去費勁腦子想該學什麼,看看人才市場,市場需要什麼,你學什麼
『陸』 搞演算法好還是搞開發好,演算法就是純數學
數學是一門工具性很強的科學,它與別的科學比較起來還具有較高的抽象性等特徵。起初是計算機科學工作者離不開數學,而數學工作者認為計算機對他們可有可無,但是現在是互相都離不開對方了,計算機也提高了數學工作者在人們心目中的地位,大部分的數學工作者開始認識到計算機的重要性,並越來越多地進入到計算機領域發揮作用。但是隨著人工智慧、GPS(全球定位系統)等飛速的發展和計算機運算性能飛躍性的提升,計算機的優勢越來越深入到思維領域,於是計算機將高深的數學理論用到實際中來,十分有效地解決了許多實際問題,例如著名難題四色問題就是被計算機證明的。問題的求解過程中有許多具有實用價值的數學分支如分析幾何、小波分析、離散數學、仿生計算、數值計算中的有限單元方法等。它讓人們知道計算機程序設計結合的就是數學知識和數學思想。
編程是基於數學模型的基礎上面的,所以,數學是計算機科學的主要基礎,以離散數學為代表的應用數學是描述學科理論、方法和技術的主要工具。編程中不僅許多理論是用數學描述的,而且許多技術也是用數學描述的。從計算機各種應用的程序設計方面考察,任何一個可在存儲程序式電子數字計算機上運行的程序,其對應的計算方法首先都必須是構造性的,數據表示必須離散化,計算操作必須使用邏輯或代數的方法進行,這些都應體現在演算法和程序之中。此外,到現在為止,演算法的正確性、程序的語義及其正確性的理論基礎仍然是數理邏輯,或進一步的模型論。真正的程序語義是模型論意義上的語義。於是編程思想運行的嚴密性、學科理論方法與實現技術的高度一致是計算機科學與技術學科同數學學科密切相關的根本原因。從學科特點和學科方法論的角度考察,編程的主要基礎思想是數學思維,特別是數學中以代數、邏輯為代表的離散數學,而程序技術和電子技術僅僅只是計算機科學與技術學科產品或實現的一種技術表現形式。
(一)數學在計算機領域的發展
如今形形色色的,都與數學有必然的聯系,它們相互相成。例如,邏輯學在學科中的應用從早期的數理邏輯發展到今天的程序設計模型論;數學在學科中的應用從早期的抽象代數發展到今天的圖形學、工程問題方面;幾何學的應用從早期的二維平面計算機繪圖發展到今天的三維動畫系統,並在與復分析的結合中產生了分形理論與技術;在游戲、圖形開發中引用了線性代數中大量的坐標變換,矩陣運算;在數據壓縮與還原、信息安全方面引入了小波理論、代數編碼理論等。
(二)編程的思維定式
編程的思維定式決定了一個人編程的水平,在編程過程中,數學思維清晰,編寫出來的程序讓人耳目一新。結合教學,通過調查分析,了解到超過85%的學生,他們在編程時是根據語法而編寫程序,完全脫離了編程的思維,這種思維定式使得他們編寫的程序相當糟糕,沒有一點邏輯。
之所以造成這種編程的思維,是因為他們平時對數學思維的培養不夠重視。很多學計算機的學生想:學高數,這有什麼用?學線性代數有什麼用?學離散數學,有什麼用?於是他們很少去上這些課,馬馬虎虎,整天悶在寢室里,玩玩游戲,裝裝,看看C語言。只知道概率問題和矩陣知識在其它課程上起到了互補作用,學的不是很深。但是當他們看到<<數據結構和演算法>>時,感到其中的內容對他們而言感覺相當的艱澀難懂,這時他們就隱約感覺到了數學思維的作用了。在此之前,他們不僅荒廢了大學的高等數學,連初中的初等數學也忘的好多,當他們進行高抽象思維時,確實感覺自己的思維已經很遲鈍了。學計算機的學生之所以覺得《數據結構》這門課程很難,就是因為他們的數學思維鍛煉的不夠!其實生活中有很多這樣的例子:對於一個剛畢業的,編應用的大學生,在編程中用到《線性代數》的矩陣時,恐怕便會想,在大學把線性代數學好就好了;當在程序中用到動態鏈表、樹時,恐怕也會想「在大學時花點時間去學《數據結構》,會多麼的有意義」;當學數據結構時,恐怕也會想「學《離散數學》時為什麼要逃那麼多的課,要不然學離散的時候就會很輕松」。所以數學思維不夠,在編程會有很多的疑慮,顯的有點縮手縮尾,而且寫的程序也不夠健全,缺乏邏輯。
(三)編程與數學思維的融合
很多專業人士覺得數學和編程能力就像太極和拳擊,編程能力很強就好比出拳速度很快很重,能直接給人以重擊;數學很好的話就好像一個太極高手,表面上看沒有太大的力量但是內在的能量是更強大的,但是好的拳擊手是越年輕越好,而太極大師都是資歷越深越厲害。所以數學是成就大師的必備能力,雖然很多學生看上去感覺沒有什麼用途,但是到了一定的水平之後就會體會它的力量了。
『柒』 計算機系學生本科階段是學演算法搞acm比賽好還是進實驗室做項目好
進實驗室做項目,對本科畢業找工作會很有幫助。
搞acm比賽似乎只能有點小小的榮譽吧,不實在。
『捌』 項目和演算法那個有前途
怎麼說呢,都有前途,演算法牛的人【比如ACM能到亞洲賽甚至全球總決賽等】都會有公司搶著要,比如微軟、網路可能請你去喝茶。最後你要做到一方面的專家,演算法也主要吃年輕飯,年齡大點腦子就轉不過來啦,但是我感覺在我們國家來說,這樣的人不吃香。而項目的話,你主要學的是項目管理的經驗,學習項目架構,能夠保證項目組裡面的人好好溝通,高效率完成項目。實際就是做項目管理,中國賺錢多的都是做管理的【個人感覺要比做演算法的來的容易,但是做演算法的賺錢也不弱,要就就是高了點】,想做演算法,也可以考慮學到博士什麼的留校當老師,搞科研做演算法比較實際。個人拙見,還需要你自己好好考慮
『玖』 研究生做演算法還是開發
研究生做開發的比較常見,做演算法的比較少,很多公司演算法崗的hc比開發崗少很多,足以見得演算法崗的難和門檻高。