1. 程式人生 > >談談程式設計師如何快速提升職業技能

談談程式設計師如何快速提升職業技能

IT行業有很多分支:AI,大資料,區塊鏈,遊戲等等,其中游戲開發由於Unity引擎的普及入門門檻很低,收入相對來說比較高,導致了大量的應屆畢業生或者說其他IT行業和非IT行業的人蜂擁轉到遊戲開發中,其實,遊戲開發涉及到的技術也是蠻多的,其中包括很多演算法:四叉樹,八叉樹,Bezier,A* 演算法,人工智慧,行為樹,高斯,圖形學演算法等等。要想在IT行業立於不敗之地,我們需要縮短與高手之間的差距,怎麼去彌補這個差距呢?這裡說的差距不僅僅指的是技術,如果你只是技術牛逼,你做不到技術總監的位置,管理方面的能力也是必不可少的。主要還是看IQ和EQ。筆者也是從底層做起來的,從程式設計師,主程,技術經理,上市公司技術總監,創業,從事IT行業10多年了,也是一個IT老兵了,待過大企業比如網龍,久遊,趣遊等,小公司不知名的也待過,跟朋友創過業,成功過,失敗過,只是經歷的酸甜苦辣多一些而已,感覺自己的歷程還是有些小小的經驗跟大家做一個分享,希望能幫助到讀者。

學習資料

學習資料的選擇很重要,學習資料分很多種:書籍,部落格,論壇,視訊等等,面對這麼多資料我們該如何選擇呢?書籍作為工具書,我不建議大家買到書本就開始從頭看到尾,這樣很難記住,除了瞭解幾個概念以外對自己的技術毫無提升,買技術書籍,一定要與自己正在做的專案相關,遇到問題先從網路上查詢,如果找不到滿意的答案再從書本去查詢,技術書籍是作為工具使用的,書籍的選擇:技術比較深入的,在這裡還是推薦國外的書籍,有的國內已經翻譯過來了,有的是英文的,作為程式設計師英文不能太差啊,對於初級的技術,買國內的就可以,書的選擇根據你技術掌握去選擇,這是一種學習方式。還有學習別人寫的部落格,比如:知乎,CSDN上面的技術文章,國外也有很多技術部落格可以學習。論壇這塊,我一般都是看國外的論壇,有問題也是去國外的論壇請教,這裡不是貶低國內的,只是國外的響應速度比較快,而且有很多坑別人已經趟過了,你可以直接借鑑。比如:

https://stackoverflow.com。除了上面提到的這幾個,視訊的學習也是一個捷徑,在此我也做個自我推銷,我在CSDN做了一些視訊教程都是一些實戰專案的經驗分享,如下圖所示: 這裡寫圖片描述 每個分享的人,如果有人購買課程,還可以從課程中賺到一筆小的費用。這個教程主要是針對U3D的實戰技術和經驗分享,值得Unity開發者學習。資料的選擇對於開發者來說也是非常重要的,尤其對於初級開發者,視訊學習也是加快技術提升的一種重要手段。

引擎技術

每個專案開發都離不開引擎,不論是大資料,人工智慧AI,遊戲研發等等,引擎的主要作用是把一些核心的,可公用的程式碼封裝在一起供開發者呼叫,引擎的開發都是由一些資深或者專家級別的人研發完成,是一個團隊才能完成並維護的工作,作為程式設計師開發者,這個就是我們努力的方向。要想做到財務自由,在職業上必須達到專家級別,你才能得到你想要的。我們以遊戲開發為例,UE4對外開源了引擎程式碼,由於現在學習C++的人越來越少了,使用者大多是以前老的程式設計師用其開發專案,UE4開發遊戲坑還是很多的,為什麼還是有人選擇呢?掌控,作為程式設計師我們使用別人的東西,大家記住一點,一定是所有程式碼是開源的,包括使用外掛也好,因為只有這樣我們才能遇到問題找到解決方案,否則就跟Unity一樣,我們只能從邏輯方面入手,遇到引擎的東西,我們都無能為力。學習引擎其實也並不難,DX或者OpenGL必須掌握其中之一,引擎的圖形API都會使用DX和OpenGL。在這裡建議大家先學習DX,因為它是微軟官方維護的,更新頻率很高,案例很多適合學習。OpenGL是開源的,但是更新太慢,可以學習完DX後再學習OpenGL就容易的多了,學習DX建議除了看官方提供的文件外,可以學習一下視訊教程,在此推薦我錄製的關於DX學習視訊,從DX基礎程式設計到GPU程式設計開發,對於學習DX的基礎技術模組幫助很大的: 這裡寫圖片描述

同樣分享,如果有人購買也可以獲取獎勵啊。。。。。。。

學習了DX基礎知識後,我們也要了解引擎的架構以及相關技術開發,這對於讀者深入學習引擎技術至關重要,掌握了引擎技術即使我們利用商業引擎開發,我們也可以利用已有的技術輔助我們做一些深層次的優化工作。筆者以前做端遊開發的,引擎,客戶端都涉及到,在移動端開發時,端遊的經驗幫了我很大的忙,很多優化想法以及演算法實現都是借鑑端遊開發。所以掌握引擎的技術對我們來說是邁入專家行列的必經之路。在這裡也給讀者推薦一個學習視訊: 這裡寫圖片描述 除了技術學習之外,我們還要學習一些技術之外的東西,作為輔助,熟話說我們要做到文武雙全,那就是溝通。

溝通與人脈

技術開發離不開與人打交道,很多人不願意說話,一門心思做事情,這樣不是說不好,但是如果因為溝通不暢,會導致做很多無用功。溝通包括很多方面的:專案需求溝通,人與人之間技術溝通,會議溝通,下級與上級溝通等等。別小看溝通,這裡面學問也是很大的,大家在公司經常可以見到一些技術水平一般但是混的還風生水起,其實這些人的功夫就是在嘴上,它們對領導研究的很透徹,知道領導喜歡聽什麼,自己做什麼領導喜歡,這些人不能為公司帶來什麼效益,但是他哄著領導開心啊,不能說這些人是多餘的,領導需要這樣的人。自古有忠臣就有奸臣,這裡不是說這些人是奸臣,只是說這些人是領導喜歡的,離不開的,當然如果公司全是這樣的人,公司肯定完蛋,所以公司同樣需要踏踏實實搞技術的,因為真正搞技術的才能為公司帶來效益,這些人對公司來說是最重要的。反過來,我們可以思考一下,這些人技術一般,為啥混的不錯?他們肯定有自己的可取之處的,這裡面會涉及一些心理學研究,以及口才方面的技巧,同樣一句話,甲說的,領導愛聽,乙說的領導很煩,如果我們技術牛逼,做事再圓滑一些,那你可以平步青雲了。所以推薦大家看看這方面的書籍,作為程式設計師不能僅侷限於技術,在公司你要結交朋友,結交領導,除了完成規定的任務外,保持經常的溝通也是很重要的,人脈在當今社會是極其重要的,以後你的事業發展離不開你的這些朋友,現今社會一個人很難做一個團隊做的事情,需要協作。筆者剛開始作為程式設計師也是比較悶的人,後期看了幾本書籍後,有點茅塞頓開的感覺,注意了溝通的技巧,這樣我隨著技術的提升,職位也一直在提升,雖然我不是什麼牛逼的人,但是自我感覺還是不錯的。。。。。。,每個人在社會立足都有他的道理,我們利用業餘時間可以靜下心來思考一下,自己的為人處事方式是否有欠缺的地方,反思自己,找幾本書補充一下自己這方面的缺失,久而久之,你與人打交道就能得心應手,見什麼人說什麼話。

總結

要想在社會生存的好一些,必須要做到文武雙全,人要有兩樣東西:一是能養家戶口的手藝,二是能助你步步高昇的人脈;學習技術至少能養活自己,能生存,但是很難發大財,擁有人脈,能幫助你快速的實現職業目標,作為程式設計師更應該重視人脈的培養,他是你通往人生的巔峰必備的武器,所以溝通,口才,心理學等等這些與技術毫不相干的知識還是要好好學學的。