當一個java程式設計師到底有多難
當你下定決心要當一名程式設計師,特別是java程式設計師,你可能並不知道你將要面對的是什麼。也許僅僅是因為興趣,或許是歪打正著的入了這一行,又或者以為這個一個高收入的行業(毫無疑問,你悲催了)。
那,一個標準的java程式設計師到底要了解什麼?擅長什麼?精通什麼?
首當其衝,你需要學習java語言(廢話),於是你開始買個各種書籍,例如,Thinking in Java,Core Java,java 資料結構,設計模式(java版);上各種培訓班,各種網站以及論壇。當然,你會發現你根本不知道書裡所說的什麼物件導向程式設計,工廠模式這些狗屁不通的東西,你也不知道論壇上各種大神在爭論不休的HashMap的實現方法,SSH的框架原理。但,沒關係。無論如何你已經入行了,讓我們看看,接下來你需要做什麼……
半年之後,你終於對java有一些基本瞭解了,也寫了一些自己的類,或者介面,雖然,它們只實現的了一個功能:Hello World. 你也瞭解了javac命令,classpath的載入規則,於是你不甘於只是在後臺寫寫Hello World這樣的程式碼,你希望能全方位的使自己的才華得到體現,於是你的噩夢開始了……
你聽人說,現在流行的是B/S三層架構,無論是大神還是無名小卒,都在張開雙臂,擁抱B/S三層架構,那,就它了,於是你開始瞭解三層架構,當你在度娘上搜尋這個詞彙的時候,你發現了SSH這個詞出現的頻率很高,於是,你要以SSH作為突破口,開始研究三層架構,不出意外的話,3個月後,你就分別學習了Struts,Srping和Hibernate;
你又發現了Struts是負責前端的展現,進而你又發現了JSP,JSF,Servlet,Spring MVC這些東西都是類似的功能,於是你又分別學習上述的幾個名詞,在分別使用了上述的前端以後,你發現,它們雖然設計理念很好,有的還是MVC的設計理念,但它們有一個共同的特點,醜。所以,為了讓你的前端介面能漂亮一點,你又開始瞭解前端UI,於是你又開始了JQuery,Ext,Dojo的學習,你把它們和你的Struts或者Spring MVC整合起來,你長吁一口,終於看起來像那麼回事了,為了儘快實現功能,你迫不亟待的要開始研究資料持久化了……
Hibernate是你的切入點,隨即你又發現了它的替代品,包括iBatis和JPA,它們功能重合而又各有優缺,有官方的,有民間的,但它們的作用對你來講只有一個就是GRUD(增刪改查),你對它們的瞭解也就到此為止了……
於是,你又繼續往下一層走,你發現了你還需要掌握資料庫知識,因為它們才是真正的資料載體,於是,你開始學習,Oracle,Sql Server,My Sql甚至是DB2,你還學會了SQL的基本語法,可以自己寫查詢指令碼,甚至是儲存過程;你發現它們和你當年學的的Access是何等的相似,但體積卻打了無數倍,因為增加了太多你這輩子都不會用到的功能,當你慶幸自己終於是關係型資料庫一知半解的時候,突然發現自己處在了資料庫革命前夜,隨著facebook,twitter這個社交網站的風靡,越來越多的程式設計師開始使用NO-SQL和NEW-SQL,它們像海嘯一樣撲面而來,你還是由於是否要加入它們的時候,發現自己早已經被它們包圍,於是,你不得不再一次的學習,Redis,MongoDB,Cassandra,Neo4j ……這些雖然都是非關係型資料庫,但卻是完全不同的設計理念和操作方法,這也就意味著,你要分別學習它們,What`s the f@#k.但,終於,在歷經了另外3個月的磨難後,你終於瞭解它們了……
現在,你終於進入了SSH框架最核心的那個S了,Spring。多麼喜人的名字,充滿了生機。你瞭解到當年它的出現就是為了推翻EJB專政,所以,為了更好的瞭解它的對手,你一邊學習Spring,一邊學習EJB,你發現了它們是多麼的類似,如今的Spring越來越臃腫,而當年的EJB如今卻煥發著青春,於是,你迷茫了,在你學完了Spring的核心框架Spring-Core,安全框架Spring-Security,Web框架Spring-MVC和WebFlow,快速開發框架Spring-Roo。
當你終於從前端到資料庫走了一遍,開始寫程式碼的時候,Spring告訴你,你一定要面向介面程式設計,這樣我就可以更好的使用我的依賴注入了,於是你有意識的按照規範約定來寫程式碼,定義配置檔案,宣告和使用註解。當然,這還不後,你還需要管理好你的程式碼,於是你又開始學習版本管理工具,VSS,CVS,以及SVN,最後讓你發現SVN是最適合你的工具,你把自己的程式碼和文件轉入SVN之後,你突然發現,當下最流行的是GitHub,你又一次落在了潮流之後;隨後,為了更高效的管理和編譯你的程式碼,你開始學習Ant,這個Apache基金會的開源專案,當你發現它給你帶來的益處並決定好好研究一番的時候,Apache已經開始全力推Maven了,甚至還建立了專門的jar的資料庫,來方便他的使用者維護自己的jar檔案,在巨大的誘惑之下,你轉入了Maven陣營,在學完了Maven之後,你繼續發掘其他的自動化工具,於是你找到了JUnit,它大大簡化了你的測試流程,在你寫好了合理的測試用例之後,而且Maven在編譯打包你的應用的時候,甚至可以自動找你的測試類,並自動測試,簡直就是火力全開,你跟高興……
終於,在Maven的幫助下,你打好了自己第一個應用的war包,現在將它部署到應用伺服器上的時候了,這時候,選擇題又來了,到底是選用哪個應用伺服器,有著選擇綜合症的你,果斷的把WebLogic,Tomcat,GlassFish,WebSphere……都學習了一遍,當你發現Tomcat這個小巧玲瓏的容器更適合你的時候,你終於開始了自己的釋出流程,在輸入了http://localhost:8080/yourapp之後,你終於看到了自己的應用…… 沒有出來,因為,報錯了,跟隨著Tomcat的日誌,你發現了問題所在,是JNDI的配置問題,你通過查資料,學會了JNDI的配置,糾正了錯誤。這件事讓你也意識到了日誌是個有用的東西,於是你開始學習Log4j,並把自己的應用中都加入了日誌。
當你看著自己的應用終於釋出成功,你意識到,你可以接活了……
隨後你就發現,你的客戶遠比你的電腦要複雜的多
它們要求,與其他系統整合,於是你開始學習Web Service;
它們要求,系統的冗餘性,於是你開始學習Tomcat叢集和Apache負載均衡;
它們要求,呼叫本地應用,於是你開始學習JNI和JNA;
它們要求,文件列印,於是你開始學習iText和POI;
它們要求,Linux做伺服器,於是你研究Linux下的配置和部署;
它們要求,任務派發,於是你學習工作流;
……
於是,你才發現,當一個程式設計師不難,難的是一個有勇氣面對客戶需求的程式設計師。
原文釋出時間為:2018-10-8
本文來自雲棲社群合作伙伴“Java程式設計師聯盟”,瞭解相關資訊可以關注“Java程式設計師聯盟”。
相關文章
- 招個程式設計師,難?程式設計師
- 程式設計師何苦為難程式設計師?程式設計師
- 進大公司拿30K+到底有多難?一名開發三年的Java程式設計師陳述Java程式設計師
- 95後為什麼想當程式設計師?難道只是因為掙錢多?程式設計師
- 一個JAVA程式設計師成長之路分享Java程式設計師
- 這些程式設計師到底有多搶手?真相在這裡…程式設計師
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- Java從程式設計師到架構師其實並不難Java程式設計師架構
- 中外程式設計師到底有啥區別?程式設計師
- 程式設計師到底有沒有必要考研程式設計師
- 程式設計師到底有沒有女朋友?程式設計師
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- java程式設計師最難面試之“今日頭條”Java程式設計師面試
- 【程式設計師翻身計劃】Java高效能程式設計第一章-Java多執行緒概述程式設計師Java執行緒
- 搭個ChatGPT演算法模型,離Java程式設計師有多遠?ChatGPT演算法模型Java程式設計師
- 當程式設計師寫不出程式碼了……程式設計師
- 好程式設計師Java培訓分享Java多執行緒程式設計師Java執行緒
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師
- 一個專為程式設計師設計的精緻 Java 部落格系統程式設計師Java
- 作為一個程式設計師程式設計中經常碰到且覺得難的事是什麼?程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 分享給java程式設計師的文章:一年有多長Java程式設計師
- 一、(基礎知識)一個前端程式設計師的java小白之路前端程式設計師Java
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 第一個想取代程式設計師的AI程式設計師,失敗了?程式設計師AI
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- Java程式設計師的八個最佳實踐Java程式設計師
- 開發和設計溝通有多難? - 你只差一個設計規範
- 不滿現狀,三年逆襲拿下BAJTM高薪offer,自律的Java程式設計師到底有多可怕高薪Java程式設計師
- JGrowing-一個全面的Java程式設計師成長路線Java程式設計師
- 一個十年JAVA老程式設計師成長之路分享Java程式設計師
- 一個Java程式設計師的2018年總結 | 掘金年度徵文Java程式設計師
- 一個程式設計師 && 作者 && 設計師的 2018 年終總結程式設計師
- 程式設計師也難逃的二八定律,成為頂級程式設計師真的有那麼難嗎?程式設計師
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 面試了一個 5 年 Java 程式設計師,一個問題也不會。。面試Java程式設計師