Ⅰ 關於程序員職業生涯規劃
鏈接:http://pan..com/s/1p1G4NCUtPNVvkkXE7qxFbQ
程序員進階攻略。如何才能持續成長,是每一個程序員都繞不開的話題。入行之初,你可能會困惑於技能選擇的方向和掌握的方法;編程前期,你可能會苦惱於Bug的調試與修復;技術水平達到瓶頸期,你可能又急於尋求突破和上升。除此之外,職業倦怠了,如何去面對?技術停滯了,如何去解決?人到中年,是選擇工作還是選擇生活?換工作?換城市?換方向?如是種種,磨蝕著曾經的樂觀和現在的不甘,是放任自流還是逆流而上?
課程目錄:
開篇詞 (1講)
開篇詞 | 程序行知:走在同樣的路上,遇見自己的風景
征途:啟程之初 (4講)
01 | 初心:為什麼成為一名程序員?
02 | 初惑:技術方向的選擇
03 | 初程:帶上一份技能地圖
04 | 初感:別了校園,入了江湖
修煉:程序之術 (10講)
05 | 架構與實現:它們的連接與分界?
......
Ⅱ 程序員進階:怎麼成為一個軟體架構師
軟體架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規范的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟體構架和關鍵技術決策的人員。
⑴確定軟體架構師在軟體組織中的職責和充當的角色,確定其相應的必須具備的知識體系,確定軟體架構師的職業及其相關制度,制定軟體架構師的培養目標和培養方案。
⑵堅持以大學教育為主(特別是各軟體學院在這方面可以大施身手),以項目實踐為輔的教育方針。大學可以聘請現有的軟體架構師擔任核心課程的講師,通過學校教育,系統學習軟體架構師所必需的知識體系;通過項目實踐使其具有初步的軟體開發和設計經驗,逐步成長為一名合格的軟體架構師。
⑶作位第2條的補充,聘請現有的軟體架構師,個人認為適合以講座的形式在學校開展。
⑷對國外一些大公司的軟體架構師的培訓和認證予以支持,但是在認證的過程中必須堅持符合中國實際情況的原則。例如,在認證考試之前對考生的知識體系進行系統的測試和評估,在通過認證後的適當時間內進行重新認證和繼續教育。
⑸建立完善的軟體架構師教育和認證制度,使得通過認證的人員能夠在實際的軟體開發中成為稱職的和優秀的軟體架構師。並通過此制度能夠為國家培養出更多、更優秀的軟體架構師,解決當前軟體架構師急缺問題。。
Ⅲ java初級程序員進階要學哪些東西
jdk類庫,常見的要有印象。
java基礎,如控制語句到文件IO,網路編程要會。
資料庫要會,至少一種。基本查詢,視圖,索引,存儲過程(玩過,會就行)這些。
枚舉,反射,註解。
框架啥的要會用即可,最好從模擬入手,配置啥的不用太在意,要懂點原理,能吹。
html,css,jsp啥的必須,能寫簡單頁面,js,jquery必須會。控台前端框架最好會一個,比如bootstrap,好像控台的前端的框架都很相似。
初級程序員需要自信,需要眼光放大,你真的工作了就知道初級需要的真的不多,你大都會。
都會的話多看書,設計模式,演算法,數據結構,操作系統也玩玩,一些常用工具多玩玩,都不需要太深,滿足需要即可。
進階的過程比較長,各種知識都慢慢補充吧。
我是個初級,僅代表我的看法
Ⅳ 程序員如何進階
程序員是一個沒有極限的職業,所以要成為一個成功的程序員,你就需要不斷的超越極限。在程序員職業生涯的開始階段,他們將面臨許多挑戰,面對困境,他們之中有一些人將會放棄,而只有少數人會堅持到底,並成為這個領域的領頭羊。
1.學習新技術
隨著新技術的不斷進步,我們學到和實施的技術會很快地過時。所以,作為一個程序員,你就需要了解與學習這些新技術,保持與時俱進。出現的這些所謂的新技術通常由一些進程和語法變化而構成,但邏輯是相通的,所以你可以很快地掌握,不要害怕去學習。
2.調試技巧
程序員不但需要創建代碼,當軟體未能按照預期方式工作時,程序員還必須能夠快速而有效地解決問題。
3.解決問題的技巧
當一名程序員獲得項目時,會直接寫代碼。但一名進階的程序員會試圖找出代碼出現問題的根源,並通知團隊領導或項目負責人。因為有時在文檔化項目需求並啟動項目後,甚至在完成項目後,我們才會在項目中遇到一些問題。所以最好在出現問題之前先找到問題。最好可以快速地找到解決問題的方法。
4.對工作的熱情
我們的工作時間大多為朝九晚五,但是當你對工作迸發激情時,那麼不要到了休息日就將工作束之高閣。一直工作直到完成它。當然,我的意思不是說如果你沒有解決方案,還得成天垂頭喪氣對著電腦,我的意思是如果你已經接近於完成的時候,那麼索性一鼓作氣搞定吧。
Ⅳ 程序員進階...
1.不要看到別人的回復第一句話就說:給個代碼吧!你應該想想為什麼。當你自己想 出來再參考別人的提示,你就知道自己和別人思路的差異。 2.初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久 都是只對部分功能熟悉而已,不系統還是不夠的。 3.看幫助,不要因為很難而自己是初學者所以就不看;幫助永遠是最好的參考手冊, 雖然幫助的文字有時候很難看懂,總覺得不夠直觀。 4.不要被對象、屬性、方法等詞彙所迷惑;最根本的是先了解最基礎知識。 5.不要放過任何一個看上去很簡單的小問題--他們往往並不那麼簡單,或者可以引伸 出很多知識點;不會舉一反三你就永遠學不會。 6.知道一點東西,並不能說明你會寫腳本,腳本是需要經驗積累的。 7.學腳本並不難,JSP、ASP、php等等也不過如此--難的是長期堅持實踐和不遺餘力的博覽 群書; 8.看再多的書是學不全腳本的,要多實踐 9.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡; 10.學習腳本最好的方法之一就是多練習; 11.在任何時刻都不要認為自己手中的書已經足夠了; 12.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看; 13.別指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍; 14.請把書上的例子親手到電腦上實踐,即使配套光碟中有源文件; 15.把在書中看到的有意義的例子擴充;並將其切實的運用到自己的工作中; 16.不要漏掉書中任何一個練習——請全部做完並記錄下思路; 17.當你用腳本到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將余 下的部分粗略的完成以保證這個代碼的完整性,然後分析自己的錯誤並重新編寫和工 作。 18.別心急,寫腳本確實不容易;水平是在不斷的實踐中完善和發展的; 19.每學到一個腳本難點的時候,嘗試著對別人講解這個知識點並讓他理解----你能 講清楚才說明你真的理解了; 20.記錄下在和別人交流時發現的自己忽視或不理解的知識點; 21.保存好你做過的所有的源文件----那是你最好的積累之一; 22.對於網路,還是希望大家能多利用一下,很多問題不是非要到論壇來問的,首先 你要學會自己找答案,比如google、網路都是很好的搜索引擎,你只要輸入關鍵字就 能找到很多相關資料,別老是等待別人給你希望,看的出你平時一定也很懶! 23,到一個論壇,你學會去看以前的帖子,不要什麼都不看就發帖子問,也許你的問 題早就有人問過了,你再問,別人已經不想再重復了,做為初學者,誰也不希望自己 的帖子沒人回的。 24,雖然不是打擊初學者,但是這句話還是要說:論壇論壇,就是大家討論的地方, 如果你總期望有高手總無償指點你,除非他是你親戚!!討論者,起碼是水平相當的 才有討論的說法,如果水平真差距太遠了,連基本操作都需要別人給解答,誰還跟你 討論呢。 浮躁的人容易問:我到底該學什麼;----別問,學就對了; 浮躁的人容易問:JS有錢途嗎;----建議你去搶銀行; 浮躁的人容易說:我要中文版!我英文不行!----不行?學呀! 浮躁的人分兩種:只觀望而不學的人;只學而不堅持的人; 浮躁的人永遠不是一個高手。
Ⅵ 好程序員:Java進階需要掌握哪些必要的技術
1網路編程
2多線程
3工具類的使用
4資料庫編程
5對介面和抽象類的理解
6 23種設計模式
7設計介面的能力
個人拙見
Ⅶ 一個程序員所要經歷的步驟
程序員應具備的12種能力
畢業四年來,感覺自己也是從一名不合格的程序員一步步走過來的。回頭反思一下,合格的程序員有很多標准和要求,下面是我總結的一個合格程序員應該具備的12種能力。中國軟體行業的崛起,靠的是合格的程序員。任何華麗的管理制度都不能保證軟體項目的成功交付,合格的程序員就是有力的保證,是項目成功的基礎。寫下這些,是為了給剛剛進入程序員這個職業的新同學們一點參考。我一直以為,當程序員是很辛苦的,如果不是真正的喜歡,很難堅持下去。如果真的不喜歡這個職業,也該尊重這個職業,尊重自己,趕緊改行。
1. 編程語言能力
不用多說,作為合格的程序員,精通一門語言是必須的。這種精通,不是說看了一本《24小時精通XXX》,抄了幾個程序就能說精通的,要靠長時間的積累和浸淫。
2.編碼能力
我曾經看多很多程序員寫的代碼,在同一個jsp或者java源文件里,出現了三種以上的對方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首字母的。就像一個菜市場,雜亂無比,估計10天後,他自己都無法看的懂。遵守編碼規范,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這個問題的嚴重性。隨意堆砌網上搜來的代碼,根本不管可讀性和可維護性,只要能實現功能就行了,心想做完這個項目,就拍拍屁股走人了,缺少最基本的職責素養。我經常把代碼必須成程序員的孩子,你就是是孩子他爹,孩子他媽,是有感情的。對你自己的孩子,你能不仔細呵護嗎?你是稱職的父母嗎?這是我編寫的一個Java編碼規范,供大家參考,這里可以下載http://gurudk.javaeye.com/blog/111734
另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內注釋進行說明。
思維的條理性,寫代碼之前,先簡單計劃一下,用自然語言把流程寫下來,用於整理實現思路。不要看了需求或設計之後,馬上就敲代碼了,敲完代碼馬上就debug。花點時間思考,敲代碼只是最後一個很簡單的工作,不要把自己變成一個代碼打字員,編寫邊想,寫了刪,刪了寫。安安靜靜把實現過程想清楚,在腦子里先實現一遍。再去敲代碼,水到渠成。
3.面向對象思維能力
如今,多數編程語言都是面向對象的編程語言。而這些面向對象的編程語言的共同的精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,介面隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。我面試過很多程序員,沒有一個能說得上幾句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的傢伙,工作效率可以提升數倍。你編程序,有沒有選擇一個很好的IDE,以前聽說編程高手都用記事本寫程序,我覺得那是一種自虐。就像以前看到的一篇文章,說一幫戶外旅行愛好者,出去旅遊,背了重重的旅行包,裡面裝著什麼壓縮餅乾等快速食品。他們寧可就著礦泉水啃壓縮餅干,也不肯去1里路都不到的快餐店,農家菜館吃飯。工具是為目的服務的,好用,提高效率就行,形式無所謂。
另外一個常用的工具就是日記本,好聽點可以稱為知識管理工具,我用的是myBase,感覺非常好用,在之前,我的所有的片段內容都是記錄的單獨的文本文件里的,非常不好找,管理也很混亂。
經常上互聯網,看到好多好的資料想保存下來,作為日後查看之用.一開始,我用的是firefox自帶的書簽,但是自己分類太累,多了之後不便於查找,很麻煩。後來用了得樂書簽(del.icio.us)的firefox插件,非常方便,現在成為了我必備的一個工具。
還有一個最重要的工具就是搜索引擎了,我裝了google forfirefox插件,感覺不錯,還有英文翻譯功能。按照我同事的說法,內事用,外事用google。很多技術資料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等於打開了一扇通向知識寶庫的門,使用搜索引擎,關鍵字選擇很重要。
經常去瀏覽大牛的blog,逐個網站訪問很麻煩,去看了又可能沒有更新,可以藉助於RSS訂閱工具,我是用iGoogle桌面工具,每天早上花半個小時掃一下,大牛的最新文章盡收眼底了。
5. 英語能力
新的技術資料都是英文的,英語國家的IT技術走在我們前面至少10年(這是我自己估計的數字,可能正在縮小)。就連印度,一個連基礎設施建設都不太完善的國家,因為其英語基礎較好,其在軟體外包領域的發展也非常迅猛,遠遠超過了我們。學英語,首先是有信心,其次就是花時間。多閱讀英文資料,使用金山詞霸,google的firefox插件等工具配合,貴在堅持。
6.學習能力
在IT也混飯吃不容易,整個環境進化的太快,你不學習,就等於落後了。學習要有針對性,別今天學ruby,明天學python,後天php的。首先要認清自己的目標,自己短期目標是什麼,1年後,3年後,5年後的目標是什麼。結合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務。
要想系統的學習一門技術或工具,看書是最好的方法。看完後,然後上網找相關資料,進行深入學習。學習要抓緊一切可以利用的時間,比如電腦啟動要花1分多鍾,旁邊放一本書,可以看上幾頁了。公交車上,地鐵上也可以看。
當然,不能只學習技術,要經常聯系自己的軟技能,比如溝通能力,表達能力。你可以把自己學到的東西,解釋給自己的同事聽,既加深了理解,又增進了同事之間的交流。學習的最高境界就是你能夠把學到的東西解釋給別人聽,這才說明你理解了。在學習心理學上,稱之為構成主義。
我學一樣東西,總是先上網了解有沒有相關書籍,如果想學,就買一本或者去圖書館找相關的書來讀。我買的書,家裡快放不下了(到目前位置,我買了1萬多塊的書)。我多半是把目錄看完,了解這本書講解的主要內容,然後需要的時候,我就可以立即補充它進入到我的知識結構。每個人可能都有自己的學習方法,意識到學習的重要,並能夠根據需要補充自己的知識,這種能力更重要。
7.創造能力
普遍認為,東方人模仿能力很強,但創造能力差。我見過很多這樣的程序員,經常說,「這個只能這么解決了,我想不出有什麼別的方法。」可能他根本都沒想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決辦法都是非常容易的,簡單的google一下,可能就是數十種。悲哀的是,有些程序員經常止步於自己構建的狹小領地之內。對待客戶也是這種態度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。
打破這一思維定勢的首先的一個辦法就是在面臨一個問題時,首先想到的是「沒有不可能」,或是「一切皆有可能」,前面那個是阿迪的廣告語,後面是李寧的。只有這樣去想,才能尋找解決問題的別的出路,即使最後我們試了很多種辦法,還是只有著一種解決方案,但我們在這種尋找解決方案的過程中,常常會產生很多好的想法,這樣才會使我們真正深刻思考一個問題。建議大家看一看《水平思考》這本書,他提供了一些進行創造性思考的方法和工具。
但我認為,堅持認為存在另一種解決方案的信念是第一位的,方法和工具都是其次。
8.文檔能力
也許有人會質疑,程序員跟寫文檔有什麼關系。大家開源軟體也用過不少,看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。其實寫代碼也相當於寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當於寫程序,簡單明了,清晰易懂,這樣的「程序」誰看誰舒服。同樣,對於想進階到設計師或者需求分析員角色的程序員,文檔能力更是非常重要。
word是一個最實用的工具,很多程序員,多級編號都不會用,索引目錄也不知道如何生成,更別靈活應用樣式了。很多排版都是所謂的dirty work。垃圾樣式一大堆。其實,靜下心來,稍微學習一下,就能寫出一篇格式漂亮的文檔。
9.抽象能力
抽象能力是認識事物從現象到本質的能力。如果你只是停留在「見山是山,見水是水」的層次,客戶說什麼,你就做什麼,設計怎麼做,你就怎麼實現,從來不過問為什麼,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質,才能讓你的程序具備更大的靈活性和可擴展性。在做企業應用軟體開發中,抽象能力體現為對問題域的理解能力,對領域模型的抽象。合理的抽象也是代碼重構的前提,每一次重構,都是向更好的抽象邁進了一步。
10.代碼評審能力
代碼評審和單元測試是保證代碼質量的兩種常用手段之一。代碼評審能力,說明了你的審美標准,知道什麼是好的,什麼是不好的,什麼是優雅的代碼,什麼是糟糕的代碼,你才能讓自己做的更好。
11.單元測試能力
沒有單元測試的代碼,只能說是半成品。因為沒有什麼能證明你的代碼是可以運行的。測試驅動開發是一個非常好的敏捷過程的最佳實踐。單元測試還可以作為回歸測試,在修改代碼時,起到警戒線標志的作用。是否具有單元測試的意識是區分程序員是否合格的重要標准。寫不寫單元測試是區分平庸程序員和優秀程序員的重要標桿。
12.DRY
DRY是一種原則,就是Don't RepeatYourself.出自《程序員修煉之道-從小工到專家》。這條原則可以用到很多地方,比如你經常要編譯,打包,部署應用程序,供集成測試用。每次你都在重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。
還有一個就是我們經常在不同的地方切換IP,如果每次手工做,也非常浪費時間,寫一個bat命令可以解決,找一個小工具也可以解決。
編碼時,對代碼的復用也是在重復你自己,雖然拷貝過程很爽,但是維護一致性就要付出巨大的工作量,特別是將來維護的人不是你的時候,使用代碼生成工具可以解決這個問題。類似的例子太多了,如果你發現你經常做一些重復的工作,就要警惕了,是否違背了這個原則,想一些辦法將他們自動化。
Ⅷ 初級Python程序員如何進階
做好職業規劃
確定好自己的職業規劃,以後是走技術路線還是以後管理路線
確定技術方向後努力專研技術
首先,在某一個技術方面深入進去,學懂學透學精,深入了解其原理,當你把某個技術方面學精學透之後,你會發現讓你再去學其他的技術棧,你會發現易如反掌。
基礎很重要,打好基礎,學習好數據結構和演算法,以及設計模式
具體如何成為技術高手,突破技術瓶頸呢?首先基礎要打扎實,要學好數據結構和演算法以及設計模式!因為這可以說是整個計算機技術大廈的基石,沒有了這就談不上計算機技術了,任何其他技術方向都會用到!
看視頻
比起看書,看視頻是學習技術最高效的學習方式,看書可能你會覺得枯燥無味,看不進去,看不懂!但視頻會通過別人的講解印象更深更有立體感,某個知識點可能比起看書來說有人講解突然讓你豁然開朗,效率更高,學習成本更低!
當然,也不是說完全不讀書,當你學習技術有一定深度後,再專研透該技術方向的一本經典書,切記,一本經典就行,不要多!
讀技術書,選定一本經典,先讀薄再讀厚再讀薄~這才是正確額讀書方式
工作中多和別人交流溝通!
工作中多溝通多交流,特別是同組中技術牛的,不管是技術的還是生活的!多和別人交流後你會發現你會收獲不少,別人的經驗可能對你很有幫助,讓你少走彎路!頓時讓你掌握訣竅~
工作中多積極主動,不要抱怨
在承擔自己本質工作外,主動承擔其他的工作,因為裝進自己腦子的思想和學到自己身上的技能是別人奪不走的
不要抱怨,抱怨無濟於事,只能帶來負能量,最重要的是改變
堅持寫博客和技術文章,多總結,多參與開源項目
選擇一家好的有發展前途的公司陪其成長
當發現現在公司不能滿足自己的成長和發展時,果斷跳槽,因為人生畢竟最寶貴的是時間,特別是程序員界~
當公司發展不錯,自己能學到東西得到鍛煉時,就沉下心來一直陪著公司成長
切記,不要輕易跳槽,不要因為工資和在公司乾的不爽而跳槽!畢竟人生最寶貴的還是時間!永遠都是為了自己的發展和提高自己的能力而跳槽
最後,貴在堅持
制定好學習計劃,持之以恆的堅持!
Ⅸ 剛踏入職場的程序員,如何快速踏實地提升自己的能力
程序員提升主要靠實踐,跟一個完整的項目能最大限度的提升項目能力,以後找工作不用愁啊,現實工作中很難達成,你可以去找找培養這方面人才的,提升一下自己,你看看願碼ChainDesk,有你需要的
Ⅹ 極客時間IT課程的老師胡峰寫的《程序員進階攻略》主要是什麼內容
在專欄中,他圍繞程序員這個職業,繪制了一條清晰的成長路徑圖,深入講解了技術人在不同的成長階段會面臨的常見問題和困擾,結合他自己和團隊成員的親身經歷,總結了一套從畢業入行到逐步進階的完整方法論,掃清迷茫與障礙的同時,幫你建立明確的自我定位與認知,進而一步一個腳印地,實現理想中的自我。