從技術體系的角度來看,程式設計師的技能樹應該分為三大部分,其一是基礎學科知識,重點在於數學和物理,因為軟體問題說到底就是數學問題,硬體問題說到底就是物理問題,所以數學和物理的掌握情況,能夠決定程式設計師是否能夠在技術領域走得更遠。
其二是計算機基礎知識,涉及到作業系統、計算機網絡、資料庫、算法設計、編譯原理等內容,這部分內容對於程式設計師的學習能力和工作能力有非常大的影響。
這些科目雖然稱為計算機基礎知識,但是內容卻很有深度,以作業系統為例,如果想搞清楚作業系統的體系結構,比較常見的方式是讀一下Linux作業系統的原始碼,這個過程還是具有較大難度的,往往初期難度要更大一些。
基礎學科和計算機基礎知識的掌握情況,對於程式設計師能夠獲得持續的能力提升具有重要的意義,所以計算機專業研究生的入學考試,往往也主要考察這兩部分知識的掌握情況,有了這兩部分知識,才能夠具備在技術領域進行創新的基礎。
程式設計師技能樹的第三部分是具體的開發技術,這與程式設計師的具體崗位有比較密切的關係,比如Web開發崗位、Android開發崗位、大數據開發崗位等都需要掌握不同的知識結構,而且不同的開發團隊在技術選型上也有一定的區別。
當前在大數據、雲計算的推動下,程式設計師的技能樹也產生了較為明顯的變化,未來更多的程式設計師需要掌握大數據和雲計算技術。
我從事網際網路行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智慧領域,我會陸續寫一些關於網際網路技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。
如果有網際網路、大數據、人工智慧等方面的問題,或者是考研方面的問題,都可以在評論區留言!