㈠ 怎麼做好程序員必備職場有什麼要素
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,如何才能成為一名合格的程序員,一名合格的程序員需要掌握哪些技能呢?為此天天招生網采訪到幾位孳生的程序工作人員,就如何做好一名成功的程序員談出了自己的經驗。
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C和java是重點推薦的開發工具,C/C以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知資料庫
為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。
對操作系統有一定的了解
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。
懂得網路協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
明白DCOM/CORBA/XML/WEB Services存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。
不要將軟體工程與CMM分開
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
擁有強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
如果您正為如何成為一名合格的程序員而發愁的話,希望以上文字能為您排除一些顧慮和問題。如果您想獲得更多有關程序員的信息,那麼請隨時關注天天招生網,我們將在最短的時間內提供最
真實,最准確的相關信息。
㈡ 程序員如何在職場上讓自己脫穎而出
最近組內先後招了兩名開發,作為他們的mentor,一方面我在觀察他們的工作方式和編碼習慣,另一方面也在對比思考自己的經歷。自己有些感悟,覺得一名新人程序員,應該做好以下三點:
1.遇事追蹤溯源,不要怕改已有的代碼
2.編碼在保證正確的前提下,要足夠快
3.主動承接團隊里他人不願意做的或者沒做的事
下面將逐一分析說明這三點。
1.遇事追蹤溯源,不要怕改已有的代碼
新人通常會從新加一個相似的功能或者修bug開始逐步熟悉原有的系統,這時無論原有的代碼寫的怎麼樣,都應仔細的思考每段相關代碼的作用和對應的需求,努力做到追蹤溯源,掌握它們的來龍去脈,這時再做task就會游刃有餘,在做相似功能時,你知道哪些地方已經實現可以復用,哪些地方因為新加的代碼應該做些重構;修bug時,你可以從根本原因出發,解決問題,而不是在出現問題的地方修修補補;更重要的是你不會打怵修改原有的代碼而躡手躡腳。當然一旦發現要修改大段的原有代碼或者設計,還是要主動和老員工先確認下思路是否可行,是否有遺漏的地方再開始。但不出意外,你會一下子就給別人留下一個好的第一印象,因為你沒有在機械的完成任務,而是先做了深入思考。
寫到這里不禁想起,自己剛工作時改了一個bug,當時的做法是在創建一個文件的代碼之後3行再把這個文件刪了,只加了一行代碼就修好了,發給老員工review時還在竊喜自己只改一行代碼就解決問題了,結果老員工一句話就把我問傻了,前面的那個文件為什麼要創建呀?我當然不知道了,因為當時我想原有的代碼我不熟悉就最好不動。於是,那一刻我得到了工作生涯第一個重要的建議,應該找到根本原因(rootcause)後再修改代碼。這時你不僅可以做好手中的任務,還能進一步思考問題是不是代碼設計不合理造成的,同時不會怕改已有的代碼。
2.編碼在保證正確的前提下,要足夠快
新人在做第一個任務時都想留下好印象的,首先要做的就是一定要保證修改是正確的,這里不僅局限於正常情況下功能正確,還應考慮邊界條件,錯誤處理情況等等,最後再提交代碼時要最終確認一下單元測試過不過,提交代碼後再注意下Jenkinsbulid過不過。這一切都是為了防止出現以下情況:
*一提交代碼就breakbuild或unittest
*測試隨便一點就有各種問題
*匆匆忙忙修了一個問題,一提交又有其他問題
別以為這些都些小事,它直接關乎別人對你的評價。不犯低級錯誤,建立起嚴謹的印象,是非常有助於你在新環境下脫穎而出的。
但僅僅這樣是不夠的,如何在保證正確的前提下,提高速度或者效率則是另外一個要點。試想一下,你持續超出別人的預期,並保質保量的完成了task,哪個領導和同事會不喜歡你呢?千萬不要狹隘的覺得自己做的快了要多做事,何苦呀。也許短期內你多做了一些原本沒分配給你的任務,但你在別人心中逐步建立起嚴謹高效的印象,從長期來看將給你帶來更多的機遇(本人就是因此受益)。
3.主動承接團隊里他人不願意做或者沒做的事
逆向思考下,人家為什麼招你進來?相信絕大多數情況是事情多做不過來,缺人了。事情多了一定有老員工不願意做,或者因為各種原因沒做的事。作為新人,做了別人不願意做的事可以緩和他人的壓力;做了別人沒做的事,將為團隊增加產出,如果這件事還是一個技術難題,那不是正好可以讓別人眼前一亮,證明自己的實力嗎?
其實關於這一點,在做的時候要進一步深入思考。別人為什麼不願意做或者沒做某些事?是因為缺乏相關知識而沒有做?還是因為沒有自動化每次手動操作既耗時又容易出錯?是因為優先順序不高?還是因為投入產出比不高?是因為代碼結構不合理導致無法快速加上?還是因為需求不明確?是不是團隊里的人因為思維定式錯誤估計了問題?是不是可以從其他的角度解決這個問題?要深入思考後,才能從根源入手,從而正確的解決問題。切記不要機械的完成任務,要努力讓你的加入使團隊變的更好。
自己在第二份工作的開始階段,就發現團隊還沒有使用持續集成的工具在統一的環境下交付測試,測試還在通過訪問開發機器上的網站驗證功能,結果開發之間互相break情況經常發生,項目質量也無法保證。詢問後才知道,大家也很希望改進現狀,只是因為一些原因沒法得到系統組的支持,組內也沒人來搭建持續集成的環境。於是我利用一開始相對輕松的時間,使用teamcity搭建出持續集成的環境,一時間大家都紛紛叫好,加上自己又接連解決了項目中一些棘手同時沒人做的問題,一下子就樹立了可靠的形象和在團隊里技術主力的地位,慢慢的即使是公司中其他組沒合作的過的人也對我評價很高。我自己琢磨出的原因是團隊里缺能幹活的人,但更缺能讓團隊變好的人。
其實巧的是,如何使用teamcity搭建持續集成環境是我在第一份工作離職交接時主動做的最後一個task,因為當時有個小項目是我獨立負責的,我想在交接時讓項目更正規些,就主動提出這個想法,雖然在離職的前天晚上還在加班調試,當天上午還在和同事討論一些細節,但就是這主動多做學會的技能成了我在第二份工作里出色開端的重要一環。
總結:
1.做事要知其然並知其所以然。
2.努力建立起嚴謹高效的形象。
3.成為讓團隊變的更好的人。
㈢ Java程序員應具備哪些職場發展的素質
隨著軟體開發行業的高速發展,程序員的薪資普遍都很高,一般在一線的城市,工作一年多就能月薪8k,從而引發更多的人選擇IT行業,但發展的路上也會出現各式各樣的問題,只有在行業里具備更專業的職業素質才能在行業中取得更好的發展。
那麼作為一個真正合格的程序員除了具備完成一些代碼工作外,還應該具備哪些職業素質呢?
1、要有很好的學習能力(特別是自學能力)
目前Java行業飛速發展,技術淘汰速度也隨之增長,一年內你要沒有學習新的東西就會被市場淘汰,所以你要時刻保持學習的心態,能夠快速挖掘自己的不足,然後去尋找幫助你提升能力的學習資料,並記錄下你對此知識點的總結,不但能加深你對知識點的理解,也能方便你日後查找此類問題。
2、提高動手能力
真正的大牛程序員並不是糾結書本上的知識,書本上的知識點只起到輔助作用,更多的你需要從成千上萬的代碼運行中找出問題、解決問題,只有親自實踐過才能加深對這類問題的認知。
3、要有耐心和毅力
寫程序是一件很枯燥、乏味的事情,更多時候在寫完程序後又遇到一堆的bug,這會大大影響你工作的心情,此時,你要學會調整心態;也要學會逆向思維,這對你解決問題、調整思路很有幫助。
4、表達能力
要回表達自己的想法,能夠在大庭廣眾下把自己的想法有條理的講出來,同時還能夠確保對方聽得懂。
5、文檔習慣
每個程序員無論你水平高低都要會寫文檔,良好的文檔是正規研發流程中非常重要的環節,如果你大部分時間都在寫程序,那麼你不是一個合格的程序員,作為高級程序員和系統分析員需要花費大於30%的工作時間寫技術文檔,如果沒有技術文檔這個軟體就缺乏生命力,在未來的查錯、升級以及模塊的復用會遇到很大的問題。
6、要養成規范化、標准化的編程習慣
在編程中無論是代碼的變數命名、代碼內注釋格式、嵌套中行縮進的長度,還是函數間的空行數字都有明確規定。養成良好的編寫習慣有助於代碼的移植和糾錯,而且對後期不同技術人員間的溝通合作也至關重要。
7、編程的速度和效率
Java程序員在編寫程序前要有清晰的思路和節奏,也要制定一份好的規劃和設計方案,同時要對各種突發情況作出預估,這對提高你的編程速度、驗證你的經驗很是重要;另一方面,你要最少代碼實現你想要的效果,簡單又高效的代碼不但提高運行速度,還能節省內存和資源,做到這一點,你離優秀的程序員就不遠了。
8、養成好的測試習慣
對於軟體開發人員來說,養成好的測試習慣可以越早的發現問題,這樣可以降低解決問題的成本,所以,Java程序員在每段代碼、每個子模塊完成後都要細心的測試,盡早的發現一些潛在的問題,這讓整體系統建設的效率和可靠性得到了保障。在測試的時候也要注意以下幾點:
正常調用測試:這可以檢測程序是否能在正常調用下完成基本功能,這是身為程序員最基本的測試職責;
異常調用測試:例如在高壓力負荷下的穩定性測試、用戶潛在的異常輸入情況下的測試、整體系統局部故障情況下該模塊受影響狀況的測試、頻發的異常請求阻塞資源時的模塊穩定測試等等。程序員不用對每段代碼都進行完整測試,但程序員必須要了解代碼任務在整體項目中的各種性能展示,對需求要深入了解,只有這樣你才能針對性的進行相關測試,這樣可以經早的發現問題、解決問題。
藍鷗Java課程採用雙師授課,授課老師VCR講解+技術講師輔導實時練習。優勢:確保最好的老師把技術講解透徹,同時立即進入練習,技術老師再次講解及輔導,立即吸收消化知識點。進度技術講師可以根據學員吸收情況控制,確保學習效果。擴充知識點,翻轉課堂,學員深度參與其中。培養學習方法,形成學習習慣。
㈣ 程序員想要在職場中實現「跨越式」成長,該如何學習呢需要培養什麼能力
程序員想要在職場中實現「跨越式」成長,學習需要培養的能力:程序編寫世界是多元化繁雜的,大方向就分前端工程師、後端工程師、移動應用開發、雲計算技術、數據處理方法、智能產品、物聯網技術、虛擬現實技術這些,光計算機語言都幾十種。假如沒有做過課程,盲目進到只能一下子懵圈。所以盡量是依據個人興趣愛好再根據行業前景,先選中一個方向,重新選擇一門語言,隨後頭也不回的深深地扎進去。
㈤ 作為一名合格的java程序員需要具備什麼能力
如何快速為合格的程序員從初入職場菜鳥到職場大咖,很多程序員在努力充實自己,有時候我們需要對自己進行一次能力定位,了解自己的優勢和沒有掌握的技術。芯學苑本文列出幾點作為初入職場的新手評估自己,明了前進學習的方向。1、技術能力(解決問題的能力)這是非常重要的事;過硬的技術能讓你得到面試機會,並在工作中游刃有餘。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等於其解決問題的能力。如果拿一個尺度來衡量這個能力的話,一個程序員的能力可以用能完成任務的數量和難度來衡量。一個程序員能基本無誤的完成項目中的一個功能算是合格,但在此之前,他對項目的生產力為負,為他布置的任務,中間環節的溝通,修補bug的時間其實要多於自己直接完成該功能的時間的。能較好完成一個完整模塊的程序員才算是較好的程序員,也是項目中的主要開發者。能獨立完成整個項目才是優秀的程序員。2、專業基礎(知識的積累)一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背後的演算法將使你從人群中脫穎而出。3、主流編程工具今天,事實是,你不能成為一個樣樣都懂的人(雜而不精)。你必須選擇你要掌握的工具。有時這是由工作的環境決定的,但是按照下面說的去做也是一個很好的選擇:構建工具:Maven或Gradle。SCM:Git(不是GitHub。大不相同)。構建自動化:Jenkins。IDE:Netbeans或Eclipse——不僅用於編寫代碼,而且還從IDE中重構和調試代碼。我遇到了很多沒有如何從他們最喜歡的IDE調試的開發人員。Bug跟蹤:Bugzilla或Jira。4、JSF的知識應用程序伺服器所有Java開發人員應該知道如何在ApacheTomcat中部署。當Glassfish開發停止時,下一個最好的事情是JBossWildFly。5、溝通的能力溝通是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看並非如此。從大的尺度(比如一個人的工作生涯)來看,一個程序員知識積累的多少只決定於其自學能力和他對編程本身的興趣。在一個分工明確的項目中,程序員需要理解產品,和領導溝通理解自己的任務,和同事們溝通以正確的方式進行合作。無論哪一個方面溝通出了問題都不是小事情,同時,程序員還需要正確的傳達設計的實現難度,以及讓別人正確的理解自己設計模塊的介面。在不寫文檔時,正確的口頭溝通非常重要,需要寫文檔時,良好的編輯能力也算做是溝通能力的一部分。6、自學能力這是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從WEB前端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。7、良好的團隊合作精神無論是部分編程還是大型項目,所有開發人員都是作為團隊的一部分在協同工作。你需要致力於團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種「我只要做好我的本職工作,下班就直接回家」的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。就像拿破崙說的不想當元帥的士兵不是好士兵,追求參與一個大型軟體系統的開發,是每個程序員的夢想。在此之前,我們應該學習的專業知識,達到優秀程序師的標准。最後希望各位程序員閱讀本文後能夠得到一些裨益,在這條路上走得更好。
㈥ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。
但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。
11月22日下午,清華大學經管學院互聯網發展與治理研究中心與領英聯合發布《中國經濟的數字化轉型:人才與就業》,揭示我國數字人才現狀與趨勢。
報告顯示我國數字經濟發展面臨人才短缺的挑戰,但這種短缺主要體現在擁有中高級專業技能數字人才的比例不高,擁有人工智慧、智能製造等前沿技術的人才更是少之又少。
與美國、英國、加拿大等國家相比,中國的數字人才儲備尚有很大差距。
此外,報告根據對人才需求的數據分析,結果顯示我國數字人才的技能需求不再強調單一編程技能,更加看重技術、管理和領導力等綜合技能。
2015年,我國從事信息傳輸、軟體和信息技術服務相關工作的人數約350萬,但其中中高端人才,特別是前沿技術的數字人才並不多。根據領英中國智庫的研究,在人工智慧領域,美國的從業者數量在85萬人以上,印度15萬,英國14萬,中國只有5萬多人。
報告負責人、清華大學經濟管理學院副院長陳煜波教授表示,我國目前在大數據與人工智慧領域人才缺口明顯。
他解釋說,目前中國85%以上的數字人才分布在產品研發類,而深度分析、先進製造、數字營銷等職能的人才加起來只有不到5%,存在較大缺口,新興技術人才和創新型人才培養方面存在滯後和不足。
這份研究報告的基礎數據來自領英在中國的3600萬個人用戶,這些用戶畢業於1.5萬多所國內外院校,分布在36.4萬家企業,擁有超過2.3萬項技能。
陳煜波研究團隊從中篩選了72萬數字人才,多維度提取用戶畫像並跟蹤其職業軌跡,以此預測不同地區的人才流向、僱傭率、受僱主歡迎的技能等人才趨勢層面的信息。
陳煜波說,根據數據分析結果,整體來看,雖然編程技能和數據分析技能需求占據主導,然而隨著數字產業走向成熟,企業除了強調編程技能,也逐步更加看重人才的技術、管理和領導力等綜合技能。
近年間,項目管理、產品運營等「技術+管理」類技能的需求呈現出明顯的上升趨勢,懂技術、懂管理的人才被認為是「一將難求」。
領英中國代理總裁曾志恆也提醒,如果你有興趣向數字職能轉型,不能僅僅專注於自己的技術能力,溝通和領導力等軟性技能將成為你脫穎而出的關鍵。
陳煜波希望這些研究結果能為教育行業和政府部門提供借鑒。他說,教育行業可根據職位的供需趨勢更好地規劃人才培養的方向,政府也可更好地了解人才流動方向、技術缺口等,以此制定有針對性的引才策略。
程序員崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
相關書籍:
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
10、《活著》