作者:King-Blog
來自:https://blog.csdn.net/qq1175421841/article/details/51030092
– 1 –
初級程式員:做一些靜態的介面;
程式員:做一些增刪改查的小模組;
中級程式員:做邏輯較複雜的模組;
高階程式員:做核心模組;
專案經理:系統的整體架構;
部門經理:多專案的管理;
總裁:多部門以及企業的發展規劃。
– 2 –
如果剛畢業,就多花幾年積累經驗,不可能靠一門絕技吃遍天下,不要指望java 賺錢多還是c++ or .NET 賺錢多。太早。 積累經驗為主。積累設計,架構,測試,交流,管理,情商等多方面的經驗。然後再根據以後n年的積累做出決定。理想的情況是一專,多能。必須有一樣精通的,但是要知道,所謂的高手決不是隻會一項,到了他們的級別,什麼都一樣,看的是學習能力和推理能力。
所以,先靜下心來積累經驗。
– 3 –
1、希望你能從中有所收穫。
2、一定要確定自己的發展方向,併為此目的制定可行的計劃。不要說什麼,“我剛畢業,還不知道將來可能做什麼?”,“跟著感覺走,先做做看”。因為,這樣的觀點會透過你的潛意識去暗示你的行為無所事事、碌碌無為。一直做技術,將來成為專家級人物?向管理方向走,成為職業經理人?先熟悉行業和領域,將來自立門戶?還是先在行業裡面混混,過幾年轉行做點別的?這很重要,它將決定你近幾年、十年內“做什麼事情才是在做正確的事情!”。
3、軟體開發團隊中,技術不是萬能的,但沒有技術是萬萬不能的!在技術型團隊中,技術與人品同等重要,當然長相也比較重要哈,尤其在MM比較多的團隊中。在軟體專案團隊中,技術水平是受人重視和尊重的重要砝碼。無論你是做管理、系統分析、設計、編碼,還是產品管理、測試、檔案、實施、維護,多少你都要有技術基礎。算我孤陋寡聞,我還真沒有親眼看到過一個外行帶領一個軟體開發團隊成功地完成過軟體開發專案,哪怕就一個,也沒有看到。倒是曾經看到過一個“高學歷的牛人”(非技術型)帶一堆人做完過一個專案,專案交付的第二天,專案組成員扔下一句“再也受不了啦!”四分五裂、各奔東西。那個專案的“成功度”大家可想而知了。
4、詳細制定自己軟體開發專業知識學習計劃,並註意及時修正和調整(軟體開發技術變化實在太快)。請牢記:“如果一個軟體開發人員在1、2年內都沒有更新過自己的知識,那麼,其實他已經不再屬於這個行業了。”不要告訴自己沒有時間。來自時間管理領域的著名的“三八原則”告誡我們:另外的那8小時如何使用將決定你的人生成敗!本人自畢業以來,平均每天實際學習時間超過2小時。
5、書籍是人類進步的階梯,對軟體開發人員尤其如此。書籍是學習知識的最有效途徑,不要過多地指望在工作中能遇到“世外高人”,並不厭其煩地教你。對於花錢買書,我個人經驗是:千萬別買國內那幫人出的書!我買的那些傢伙出的書,100%全部後悔了,無一本例外。更氣憤的是,這些書在二手市場的地攤上都很難賣掉。“擁有書籍並不表示擁有知識;擁有知識並不表示擁有技能;擁有技能並不表示擁有文化;擁有文化並不表示擁有智慧。”只有將書本變成的自己智慧,才算是真正擁有了它。
6、不要僅侷限於對某項技術的錶面使用上,哪怕你只是偶爾用一、二次。“對任何事物不究就裡”是任何行業的工程師所不應該具備的素質。開發Windows應用程式,看看Windows程式的設計、載入、執行原理,分析一下PE檔案格式,試試用SDK開發從頭開發一個Windows應用程式;用VC++、 Delphi、Java、.Net開發應用程式,花時間去研究一下MFC、VCL、J2EE、.Net它們框架設計或者原始碼;除了會用J2EE、 JBoss、Spring、Hibernate等等優秀的開源產品或者框架,抽空看看大師們是如何抽象、分析、設計和實現那些類似問題的通用解決方案的。試著這樣做做,你以後的工作將會少遇到一些讓你不明就裡、一頭霧水的問題,因為,很多東西你“知其然且知其所以然”!
7、在一種語言上程式設計,但別為其束縛了思想。“程式碼大全”中說:“深入一門語言程式設計,不要浮於錶面”。深入一門語言開發還遠遠不足,任何程式語言的存在都有其自身的理由,所以也沒有哪門語言是“包治百病”的“靈丹妙藥”。程式語言對開發人員解決具體問題的思路和方式的影響與束縛的例子俯拾皆是。我的經驗是:用面對物件工具開發某些關鍵模組時,為什麼不可以借鑒C、C51、彙編的模組化封裝方式?用傳統的桌面開發工具(目前主要有VC++、Delphi)進行系統體統結構設計時,為什麼不可以參考來自Java社群的IoC、AOP設計思想,甚至借鑒像Spring、Hibernate、JBoss等等優秀的開源框架?在進行類似於實時通訊、資料採集等功能的設計、實現時,為什麼不可以取用來自實時系統、嵌入式系統的優秀的體系框架與樣式?為什麼一切都必須以個人、團隊在當然開發語言上的傳統或者經驗來解決問題???“他山之石、可以攻玉”。
8、養成總結與反思的習慣,並有意識地提煉日常工作成果,形成自己的個人原始碼庫、解決某類問題的通用系統體系結構、甚至進化為框架。眾所周知,對軟體開發人員而言,有、無經驗的一個顯著區別是:無經驗者完成任何任務時都從頭開始,而有經驗者往往透過重組自己的可復用模組、類庫來解決問題(其實這個結論不應該被侷限在軟體開發領域、可以延伸到很多方面)。這並不是說,所有可復用的東西都必須自己實現,別人成熟的透過測試的成果也可以收集、整理、整合到自己的知識庫中。但是,最好還是自己實現,這樣沒有智慧財產權、版權等問題,關鍵是自己實現後能真正掌握這個知識點,擁有這個技能。
9、理論與實踐並重,內外雙修。工程師的內涵是:以工程師的眼光觀察、分析事物和世界。一個合格的軟體工程師,是真正理解了軟體產品的本質及軟體產品研發的思想精髓的人(個人觀點、歡迎探討)。掌握軟體開發語言、應用語言工具解決工作中的具體問題、完成標的任務是軟體工程師的主要工作,但從軟體工程師這個角度來看,這隻是外在的東西,並非重要的、本質的工作。學習、掌握軟體產品開發理論知識、軟體開發方法論,併在實踐中理解、應用軟體產品的分析、設計、實現思想來解決具體的軟體產品研發問題,才是真正的軟體工程師的工作。站在成熟理論與可靠方法論的高度思考、分析、解決問題,併在具體實踐中驗證和修正這些思想與方式,最終形成自己的理論體系和實用方法論。
圖片源自:《Philip K. Dick’s Electric Dreams》
10、心態有多開放,視野就有多開闊。不要抱著自己的技術和成果,等到它們都已經過時變成垃圾了,才拿出來丟人現眼。請及時釋出自己的研究成果:開發的產品、有創意的設計或程式碼,公佈出來讓大家交流或者使用,你的成果才有進化和升華的機會。想想自己2000年間開發的那些Windows系統工具,5、6年之後的今天,還是那個樣子,今天流行的好多Windows系統工具都比自己的晚,但進化得很好,且有那麼多使用者在使用。並且,不要保守自己的技術和思想,盡可能地與人交流與分享,或者傳授給開發團隊的成員。“與人交換蘋果之後,每個人還是隻有一個蘋果;但交換思想之後,每個人都擁有兩種思想”,道理大家都懂,但有多少人真正能做到呢?
11、儘量參加開源專案的開發、或者與朋友共同研製一些自己的產品,千萬不要因為沒有錢賺而不做。網路早已不再只是“虛擬世界”,網上有很多的開源專案、合作開發專案、外包專案,這都是涉獵工作以外的知識的絕好機會,並且能夠結識更廣的人緣。不要因為工作是做ERP,就不去學習和瞭解嵌入式、實時、通訊、網路等方面的技術,反過來也是一樣。如果當別人拿著合同找你合作,你卻這也不會,那也不熟時,你將後悔莫及。
12、書到用時方恨少,不要將自己的知識面僅僅侷限於技術方面。諾貝爾經濟學獎得主西蒙教授的研究結果表明: “對於一個有一定基礎的人來說,他只要真正肯下功夫,在6個月內就可以掌握任何一門學問。”教育心理學界為感謝西蒙教授的研究成果,故命名為西蒙學習法。可見,掌握一門陌生的學問遠遠沒有想象的那麼高難、深奧。多方吸取、廣泛涉獵。極力夯實自己的影響圈、儘量擴大自己的關註圈。財務、經濟、稅務、管理等等知識,有空花時間看看,韜光養晦、未雨綢繆。
13、本文的總結與反思:
A:不要去做技術上的高手,除非你的標的如此。雖然本文是關於提高軟體開發知識的建議,做技術的高手是我一向都不贊同的。你可以提高自己的專業知識,但能勝任工作即止。
B:提高軟體知識和技術只是問題的錶面,本質是要提高自己認識問題、分析問題、解決問題的思想高度。軟體專業知識的很多方法和原理,可以很容易地延伸、應用到生活的其它方面。
C:在能勝任工作的基礎上,立即去涉獵其它領域的專業知識,豐富自己的知識體系、提高自己的綜合素質,尤其是那些標的不在技術方面的朋友。
– 4 –
最高職位是技術總監又叫(CTO)首席技術師,年薪20到60W,程式員可以分很多,底層就程式員,寫底層程式碼,中級軟體工程師,高階軟體工程師,專案經理,實施,架構師,程式員到架構師一般要8到10年經驗。普通人每上一個臺階都要相應的證書,不過技術強硬就免了。
– 5 –
一個優秀程式員的工作並非只是編製程式碼,他要完成的工作是要把人類的思想利用語言告訴計算機,來做人類想讓它們做的事情。
那麼,問題來了。你有思想嗎?你知道要讓電腦做什麼嗎?比如說管理、計算、統計、動畫……如果到了35歲,你還是隻能在他人指導下做編碼工作(軟體藍領)恐怕在體力和精力上是不如年輕人的。
所以,談到職業規劃。在年輕時熟練掌握程式語言,而後是獨立承擔和組織一個完整的專案,在後是能夠帶領一個小組完成專案。在這過程中,你要與內部交流、溝通,要與使用者交流、溝通,要做出專案計劃並督導完成。
– 6 –
實習生—-底層程式碼工人—-底層程式員—–程式員——初級工程師——中級工程師—–高階工程師—-專案經理—-軟體設計師—–軟體架構師—(有可能的話)—-創業做老闆
圖片源自:《Philip K. Dick’s Electric Dreams》
Java程式員職業生涯規劃範文
一位哲人說過:“走好每一步,就是你的人生。”,人生之路說長也長,是因為這是你一生所要走的艱難險阻的跋涉;人生之路說短也短,因為你度過的每一天就是你的人生。每個人都在計劃自己的人生,都在實現自己的夢想,而我將在規劃的航線上拔錨起航。
一、認識自我
1、個人分析:
個人認為我的性格具有兩面性,我喜歡在安靜的環境下去看書,在有的時候與朋友聊天分享彼此的歡樂。也喜歡打羽毛球、跑步、旅遊,享受大自然的美景、陶冶自己的情操。另外,我也具有團隊合作精神與協作能力,比較強的動手能力與實踐能力。
人無十全十美,我在做事情時,有時比較急躁,但我會在以後的工作與學習中加以改進自己的不足。
二、職業生涯條件分析
1、社會環境分析:
總體來說,我們國家面臨著一個良好的社會的環境,社會安定,ZZ穩定,特別是當前經濟發展迅速,法制建設不斷完善,高新技術領域突飛猛進。因此,在這樣一個良好的社會環境下,制定一個合理的人生職業規劃是尤為必要的。
2、職業環境分析:
IT行業是隨著電子資訊產業的發展而逐步發展起來的,並且日益得到完善。
IT行業的平穩增長必然會帶來軟體工程師需求的增長,目前隨著IT產品出現的技術融合,市場需求的巨大和專業人才的缺乏,由此可知,軟體行業還是比較樂觀的。但軟體行業需要的也是複合型人才,軟體工程師需要掌握更多的程式語言。
三、職業標的定位
1、職業標的的確定:
1.1短期標的(1-2年):
註重Java基礎知識、多學習專案開發經驗,瞭解專案開發業務知識,併在學習中掌握DB2資料庫的SQL陳述句的複雜查詢以及管理操作,並深入學習瞭解struts、hibernate、spring相關操作。
1.2中期標的(3-5年):
至少瞭解並熟悉2門程式語言,如。net、C++、PHP;並學習掌握Oracle、MS-SQL資料庫管理操作;掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
1.3長期標的(5-10年):
學習管理方面的相關知識,由技術型向管理型方面的轉移。
2、成功標準:
只要自己盡心儘力,能力得到發揮,從實踐中得到提升與自我認識,就是最大的收穫。
四、評估調整
1、評估的時間
在一般情況下,每三個月對自己所做的工作進行一次總結,每半年對職業規劃重新評估併進行相應的調整。
2、評估的內容與調整的原則
不論標的如何調整,每一時間段必須有明確的工作計劃與標的,內容評估主要側重於實施策略的評估和調整,隨著社會以及行業的一些發展和變化,隨時適時調整自己的標的實現策略,做到最簡的規劃最快的提高。
五、結束語
路漫漫其修遠兮,吾將上下而求索。不經歷風雨怎能見彩虹。我們要時刻保持一顆清醒的頭腦,隨時為自己的標的而奮鬥。其實,每個人心中都有一幅畫,描述著理想、信念、追求、抱負;每個人心中都有一片森林,承載著鳥語花香的甜蜜、陰森恐懼的彷徨。一個人,若要獲得成功,必須拿出勇氣,付出努力、拼搏、奮鬥、成功。機遇不同情眼淚的憂傷、不相信頹廢的絕望,只期待愛打拼、時刻準備著的人。
圖片源自:《Philip K. Dick’s Electric Dreams》
●編號651,輸入編號直達本文
●輸入m獲取文章目錄
大資料與人工智慧
更多推薦《18個技術類公眾微信》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。