Ⅰ 程序員怎麼學
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等,至少能讀懂這些腳本代碼。
Ⅱ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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、《活著》
Ⅲ 如何成為一名高級程序員
程序員可以分為很多種,像Unix程序員、Windows程序員,或是C++程序員、Delphi程序員,等等。今天我想談的是Web程序員,一名真正的Web程序員應該懂得那些方面的知識,應該注意學習哪些東西。
也許有些朋友會說,我知道Asp、Jsp,會做網站、會做bbs,這應該叫Web程序員了吧。確實,我承認,這些技術是一名Web程序員應該具備的;但是,你如果僅懂得這些,卻只能叫做Asp程序員、Jsp程序員,而不是真正意義上的Web程序員。現在的世界是屬於Internet的,大部分的應用基於Internet,大家可以想想,像Yahoo、Microsoft、Amazon那樣的網站,其訪問量之大、應用之復雜,需要什麼樣的技術才可以支撐,難道僅僅是硬體的功勞么。
我想在Windows平台下來談談Web程序員應該掌握的技術
1. 首先,就是上面提到的各種腳本,asp、jsp、php等等,這些東西大同小異,基本可以舉一反三。
2. 資料庫,
相信做Web的人肯定用過,像Access、Sql Server、Oracle。很多人會用各種資料庫,但是僅限於寫一些sql,select、update、insert,用ADO來操作,如果這樣,就算會用100種資料庫又有什麼用呢?
你應該考慮用戶量、訪問速度、內存消耗,這些東西和你的sql密切相關,我經常見到很多分頁程序根本不去考慮資料庫中有多少條數據,統統select出來,很明顯,當你從資料庫中查出1萬條數據和100條數據,佔用的內存是不同的。
另外,資料庫連接池和事務機制是非常重要的,應該知道資料庫用什麼來保證事務,連接池如何實現,這些都是商務應用的關鍵。譬如,目前很多的應用服務,像weblogic、MTS,都包含事務處理,可以說好的事務處理決定了他們的競爭力。
3. 組件技術
我想是現在的Web應用推動了組件技術的發展。以前,從老式的靜態庫、動態庫(dll),到現在的COM/DCOM,再到正在興起中的Web Service;從單機調用,到基於內部網的分布式調用,到現在基於Internet的分布式計算。現在的應用都是基於組件的n層結構,最明顯的就是COM和JavaBean。
這些東西體現了軟體架構的發展,以前是基於單機的應用,然後是C/S結構,到現在的B/S結構。我記得李維曾經說過,程序員一定要注意軟體技術的發展趨勢,只有這樣,才不至於被淹沒在技術的洪流中。我想,作為Web程序員,一定要明白COM的原理,如何實現這種調用、如何進行分布式調用。說實話,我覺得COM還是比較復雜的,否則微軟為什麼要提供ATL和VB呢,要搞明白,應該學學C++,因為VC中提供的ATL庫可以很明顯的說明COM的內部運行機制。
4. 網路技術
這可以說是Web程序員最應該懂得東西。起碼,應該知道Web伺服器的機制,要明白Http協議。就拿IIS來說,要懂得web應用程序運行的進程安全和IIS的關系,懂得ISApi的作用。
如果有時間,就看看TCP/IP,看看winsock,這些都是底層的網路的東西。
我所說的這些都是基於微軟技術下的東西,其他的像Java方面的東西都可以對照參考,就不多說了,這也是我這幾年來的一些心得。總之,學海無涯,每當接觸一些新的東西,就會發現自己的不足,同時也就覺得基礎知識的重要。說實話,像我們做應用開發,用別人的東西,在現在這種情況下,新的技術層出不窮,稍不注意就會被甩開,這也是沒有辦法的事情。
Ⅳ 如何成為一名高級程序員
牛逼的人總是讓人羨慕,但如何才能讓自己成為牛逼的人對我們來說更重要,本文分享的是如何才能成為java高級程序員,你和java高級程序員只差這一篇雞湯!幹了這碗雞湯,未來不可限量!
1、離開舒適區,提高個人代碼能力
不安於現狀,高級程序員一般都具有豐富的項目經驗,經驗是能力最好的試金石,即使在碰到未知的問題,豐富的項目經驗也不會讓你覺得就束手無策。程序員是一個技術跨度很大的工種,對某種既定環境語言的依賴性太強,知識和技能都無法很好的遷移。
2、將復雜的問題簡單化處理
喬布斯曾經說過,簡單便能移動一座大山。一個高級程序員之所以讓人覺得牛逼,不僅僅能用寫出優雅簡潔的代碼,更重要的是他們還能將這種化復雜為簡單、化繁為簡的功力內化至各項工作,不管是面對多復雜的項目、多棘手的 bug 都能面不改色、心不跳,步步拆解問題,逐一各個擊破。
3、自我總結,提升學習和解決問題能力
代碼能力、工作狀態只是一個高級程序員區別於普通程序員的外在表現,王者和青銅的核心區別在於思考方式和解決問題能力的區別。高級程序員可能每天會花半個小時總結當天的項目經歷,反思自己的不足,思考問題解決或優化的方案。區別於初級程序員,高級程序員總結問題的往往能從本質出發,不會只停留在表面,弄清問題內在聯系,抓住問題關鍵。這也就解釋了為什麼拿到一個項目需求,很多高級程序員不會首先去想代碼實現,而是去想需求與架構的行為。
4、責任心和需求理解能力
高級程序員對自己的要求不僅限制於完成項目、解決問題本身,往往還會去思考並權衡需求涉及的一切,比如如何去支持設計模式、庫、框架、重構和流程等,從內核到外層界面,既重視功能需求,還會注意到拓展性能、穩定性等需求,甚至還需要評估設計模塊對整個項目中的影響及潛在的威脅。
總結:如何才能成為高級程序員,關鍵還是思想,學習的思想、總結的思想、創新的思想!
Ⅳ 初級Java程序員要怎樣發展,如何晉升
作為新手,你會先從實習生或者初級程序員做起,然後隨著自己技術的成熟,逐步的達到中級工程師的水準,能夠獨立完成一部分開發任務,如果達到高級工程師的水準的話,你還需要再學習更多的技術,這些技術不僅僅局限於Java,如js和資料庫等,當你對整套技術都非常精通時,你便是一個真正的高級工程師,而Java則只是你所掌握的主要技術之一。
2.實際上有不少初中級Java程序員或項目經理轉行做產品經理了,產品經理不僅僅需要對技術頗為了解,更需要懂得策劃和規劃,了解項目管理和產品管理的知識,並要具備非常好的溝通能力。當然,一個剛剛從業的人很難跨入產品經理的行列,一般做1到2年開發工作的人可能會跨到這個行業來。
3.不少人學了Java後,可能往軟體工程方向發展,這個時候參與具體的編碼工作不會那麼多,主要要做的工作是需求分析,項目管理,隨著水平的提升,有可能做到系統架構師的職位,一般能做系統架構的都是大牛或者高學歷者,因為這不僅僅需要掌握Java技術,更需要掌握資料庫和演算法邏輯等知識。
Ⅵ 程序員應該怎麼學習
1、選定方向
編程的世界是多元紛繁的,大的方向就分前端開發、後端開發、移動開發、雲計算、數據處理、智能硬體、物聯網、虛擬現實等等,光編程語言都幾十種。如果沒有做過功課,貿然進入只會分分鍾懵逼。所以最好是根據自己的興趣愛好再結合市場前景,先選定一個方向,再選擇一門語言,然後頭也不回的深深扎進去。
2、優化學習方式
做好筆記,記錄經驗,我們大多數人並沒有過目不忘的神技,很多時候我們學了也不一定馬上掌握,需要過後花時間慢慢領悟,而且還有忘掉的風險,所以對於重要的知識點都要做好筆記。
3、多看官方文檔,外文資料
互聯網是一個更新迭代很快的行業,所有編程語言都會不斷的更新新功能和修復舊Bug,網上查的資料很有可能是舊的解決方案,現在已經不適用了。所以最好最快的方法就是查看官方文檔。
4、動手做項目
我們學習編程的最終目的就是用所學的做出具有一定功能的項目,而做項目又是最好的學習和鞏固知識的方式。如果前期能力不足就先做一些簡單的功能模塊,一步一步慢慢來,不要一開始就要實現各種酷炫炸天功能,遇到不會的就在網上查, 現在互聯網這么發達,獲取資源也及其方便。
自學過程中的一些注意事項
1、要善於構建大的知識框架體系,不要執著於細枝末節的知識點。中國的應試教育培養出來的人都喜歡啃細節,對於自學來講這是大忌,比如在遇到一個函數的時候,非要把這個函數的參數,返回值都弄得清清楚楚才肯罷休。
2、先學重要的知識點,用不到的可以暫時放一放,因為你時間有限,遇到比較難的知識點,如果不是特別重要的,就跳過去,當你哪天用到的時候再來好好的研究,帶著問題去學習,你會發現學習難的知識點也沒有那麼痛苦。
3、要善於查資料,互聯網就是最好的老師,遇到問題先網上查,至少能夠解決你98%的問題,因為你遇到的問題別人肯定也會遇到,除非你已經到了高處不勝寒的境界。
Ⅶ 初級程序員到高級程序員需要多長時間的過渡時間具體點/
這位朋友,您好,對於程序員,現在有幾種語言在編寫 有asp php asp.net java 等 不知道你是學得哪種語言 如果要說程序員的等級的話,其實我覺得最重要的是經驗,畢竟我也是學程序開發的 ,我們老師說過,初級程序員一般要有三年所有的時間,中級程序員一般在5年左右 而高級程序員的話, 一般在10年左右 ,但這個也一定準確,因為這要看你是學了幾種語言,像我們專業老師 已經學了 三門編程語言了 就已經花上了10年左右了。但他最精通的還是Sun 公司的語言 JAVA 編程語言。。。。
Ⅷ 如何從初級程序員過渡到中高級程序員
在程序員圈,一直流傳著這樣一個傳說,用發量來判斷程序員的級別,這明顯是種調侃。那麼,中級程序員,相對於初級程序員,有哪些不一樣的特質呢?
總得來說,比較於初級而言,中級程序員在執行層面屬於攻堅力量,他們不僅能獨立完成高檔難度的開發使命,並且在用戶體驗(質量提高)和功能優化(優化效率)都能作更全面的考量。
以下,是小編總結的關於中級程序員七大特點,各位可以對號入座。
(一)善於溝通
程序員內向的居多,喜歡交流的很少,但中級程序員往往能夠克服自己的內新的恐懼心理,多和同事交流。
甚至有管理者認為,程序員應該80%的時間,花在同事的交流上。不僅是部門內的同事,也還包括跨部門溝通,敲代碼的需要經常與產品經理、運營的同事溝通需求。
日本不少跨國公司,甚至有讓程序員去體驗幾個月銷售員的傳統。公司要求,程序員在敲代碼的同時,也要能夠理解一線用戶的需求。
交流對於初級程序員了解技術的發展,也相當有好處:讀讀博客、學學新語言和框架、討論討論話題、看看同行在做什麼。自掃門前雪,很難成為一個優秀的程序員。閉門造車型的程序員終將被時代的潮流所淘汰。
(二)對編程有激情
有些程序員干這一行只是為了掙錢,如果有更好的職業,他們會毫不猶豫的辭掉程序員的工作。
能夠順利晉升為中級程序員的人,往往熱愛編程,喜歡鑽研代碼中的問題,他們感到能指揮電腦來幫助人們和自己解決現實生活中的問題是一種神奇的能力。當遇到問題無法解決時,他們會茶不思、飯不想,無法入睡。
每個人都有心理上的舒適區,但是中級程序員,會不斷地突破自己心理上的舒適區。
他們很樂於經常去研究沒有接觸過的代碼,也正因為這樣,成長速度快的中級程序員會越來越熟悉不同的代碼結構和設計模式。
(三)精通代碼調試
幾乎所有的程序員寫代碼都不是一遍就能寫好的。精通代碼調試 ( debug )很多人在寫代碼的過程中,經常會有的一個問題就是:為什麼我寫出來的代碼不能運行?為什麼運行的結果不是我想要的?
中級程序員非常快的就明白自己代碼的問題可能是什麼。代碼調試是一個很重要的能力,但是偏偏學校里不教,面試的時候考官也不經常提及。那麼怎麼去調試代碼呢?
代碼調試是有一套方法論的。最簡單的就是在代碼里輸出日誌來判斷,復雜一點則需要去接觸一些高級的工具,或者直接帶有 Debug 功能的編輯器。
(四)主人翁精神
部分初級程序員剛入行,可能還沒有進入狀態,往往認為自己是打工者,以打工者的身份和心態工作。
中級程序員卻會把自己當成企業的主人,他們知道企業的利益和自己休戚相關。
成熟的程序員明白一點,作為一名優秀的企業員工,自己是生產者而非消費者。他們心中一直想得是自己能夠為公司,為顧客創造什麼價值,而不僅僅只想著待遇。
(五)工具型思維
中級程序員知道如何能更高效的完成任務,如何更能有效的解決問題。其原因是工具型思維,如同荀子所言,「君子生非異也,善假於物也。」
Facebook 前技術總監 Bobby Johnson 說,高效率的程序員都把時間花在製作工具上。很多人也認為工具是很重要的,但是他們並沒有花時間去製作、整合自己的工具。但是,Jonson 團隊最出色的員工耗費了他們 1/3 的時間在工具製作上,這些工具可以用來發布代碼,監控系統,以及能讓他們花更少的時間去做更多事情。
中級程序員遇到問題時,不鑽牛角尖,善於利用外部工具解決自己的問題,特別是能熟練應用搜索引擎。
(六)刻意練習迭代速度
魔鬼在細節上,如果一個程序員想要提高自己的工作效率,就需要他能夠不斷地在細節方面,進行微創新,提高效率。
舉一個例子,假設一個初級程序員,每次要花 12 秒鍾去搜索某個函數是在哪裡定義的。如果,他每天做這個動作 60 次,就要花 12 分鍾去搜索函數定義。
中級程序員會選擇用一個好一點的編輯器,每次找到函數定義只要 2 秒鍾,那麼他每天將節約 10 分鍾,每年節約 40 個小時。如果能夠找到 3 個這樣的場景去優化一下,那麼對於中級程序員來說,每年可以節約一個月的時間。
(七)系統學習
學習是要有方法的,尤其是在職場中,程序員的自我學習要符合兩點要求:一是有結果;二是高效。因此,系統性學習,非常重要。
高級程序員系統學習指南如下:
第一步,源碼分析。看看大牛是如何寫代碼的,提升技術審美,提升核心競爭力。
第二步,工程化。工欲善其事必先利其器,不管是小白,還是資深開發,都需要先選擇好的工具,提升開發效率和團隊協作效率,讓自己有更多的時間來思考。
第三步,分布式。從深度到廣度的完善自己的知識體系,准備迎接高並發大數據的挑戰
第四步,微服務。繞微服務的通用模式,學習spring Cloud的常見用法及原理,讓微服務的開發更加方便 快捷,讓微服務應用更加穩定 可用。
第五步,性能優化。從JVM底層原理到內存優化 再到各個中間件的性能調優,做最科學和最嚴謹的性能調優。
第六步,並發編程。深入了解底層原理,不只是做一個開發者。
第七步,積極參加大牛的分享。
(八)總結
可以理解,對於初入職場的程序員來說,他們在內心也知道學習的重要性,但因為沒有時間,被老闆的需求給填滿,沒有精力去提升自我。
然而,根據人類的學習曲線來說,任何一門新的技藝,都是一條對數曲線。其分為兩個階段:緩慢期和高速發展期,即初期很慢,後期進展迅速。
如果,能夠讓程序員在剛進入職場的時候,便擺脫初級程序員的桎梏,直接擁有中級程序員的實力,是不是就能跨越學習曲線的緩慢期呢。
知名IT教育機構傳智播客已開通了中級程序員課程,發布了全新的項目,想學習的小夥伴抓緊