① 程序員分前端與後端,那麼後端程序員都做些什麼看完就知道了
我剛開始做Web開發的時候,根本沒有前端,後端之說。
原因很簡單,那個時候伺服器端的代碼就是一切: 接受瀏覽器的請求,實現業務邏輯,訪問資料庫,用JSP生成HTML,然後發送給瀏覽器。
即使後來javascript在瀏覽器中添加了一些AJAX的效果,那也是錦上添花,絕對不敢造次。因為頁面的HTML主要還是用所謂「 套模板 」的方式生成:美工生成HTML模板,程序員用JSP,Veloctiy,FreeMaker等技術把動態的內容添加上去,僅此而已。
那個時候最流行的圖是這個樣子:
在最初的J2EE體系中,這個 表示層 可不僅僅是瀏覽器中運行的頁面,還包括Java寫的桌面端,只是Java在桌面端太不爭氣, 沒有發展起來。
每個程序員都是所謂 「全棧」工程師 ,不僅要搞定HTML, JavaScript, CSS,還要實現業務邏輯,編寫訪問資料庫的代碼。等到部署的時候,就把所有的代碼打成一個WAR包,往Tomcat指定的目錄一扔,測試一下沒問題,收工回家!
不差錢的公司會把程序部署到Weblogic,Websphere這樣的應用伺服器中,還會用上高大上的EJB。
雖然看起來生活「簡單」又「愜意」,但實際上也需要實現那些多變的、不講邏輯的業務需求,苦逼的本質並沒有改變。
隨著大家對瀏覽器頁面的 視覺和交互 要求越來越高,「套模板」的方式漸漸無法滿足要求,這個所謂的表示層慢慢地遷移到瀏覽器當中去了,一大批像Angular, ReactJS之類的框架崛起,前後端分離了!
後端的工程師只負責提供介面和數據,專注於業務邏輯的實現,前端取到數據後在瀏覽器中展示,各司其職。
像Java這樣的語言很適合去實現復雜的業務邏輯,尤其是一些MIS系統,行業軟體如稅務、電力、煙草、金融,通信等等。 所以剝離表示層,只做後端挺合適的。
但是如果僅僅是實現業務邏輯,那後端也不會需要這么多技術了,搞定SSH/SSM就行了。
互聯網,尤其是移動互聯網開始興起以後,海量的用戶呼嘯而來,一個單機部署的小小War包肯定是撐不住了,必須得做分布式。
原來的單個Tomcat得變成Tomcat的 集群 ,前邊弄個Web伺服器做請求的 負載均衡, 不僅如此,還得考慮狀態問題,session的一致性。
(註:參見文章《小白科普:分布式和集群》)
業務越來越復雜,我們不得不把某些業務放到一個機器(或集群)上,把另外一部分業務放到另外一個機器(或集群)上,雖然系統的計算能力,處理能力大大增強,但是這些系統之間的通信就變成了頭疼的問題, 消息隊列 (MQ), RPC框架 (如Dubbo)應運而生,為了提高通信效率,各種 序列化的工具 (如Protobuf)也爭先空後地問世。
單個資料庫也撐不住了,那就做資料庫的 讀寫分離 ,如果還不行,就做 分庫和分表 ,把原有的資料庫垂直地切一切,或者水平地切一切, 但不管怎麼切,都會讓應用程序的訪問非常麻煩,因為數據要跨庫做Join/排序,還需要事務,為了解決這個問題,又有各種各樣「 數據訪問中間件 」的工具和產品誕生。
為了最大程度地提高性能,緩存肯定少不了,可以在本機做緩存(如Ehcache),也可以做 分布式緩存 (如Redis),如何搞 數據分片 ,數據遷移,失效轉移,這又是一個超級大的主題了。
互聯網用戶喜歡上傳圖片和文件,還得搞一個 分布式的文件系統 (如FastDFS),要求高可用,高可靠。
數據量大了,搜索的需求就自然而然地浮出水面,你得弄一個支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出來。
林子大了,什麼鳥都有,必須得考慮 安全 ,數據的加密/解密,簽名、證書,防止SQL注入,XSS/CSRF等各種攻擊。
前面提到了這么多的系統,還都是分布式的,每次上線,運維的同學說:把這么多系統協調好,把老子都累死了。
得把持續集成做好,能自動化地部署,自動化測試(其實前端也是如此),後來出現了一個革命化的技術 docker , 能夠讓開發、測試、生成環境保持一致,系統原來只是在環境(如Ngnix, JVM,Tomcat,MySQL等)上部署代碼,現在把代碼和環境一並打包, 運維的工作一下子就簡化了。
公司自己購買伺服器比較貴,維護也很麻煩,又難於彈性地增長,那就搞點虛擬的伺服器吧,硬碟、內存都可以動態擴展(反正是虛擬的), 訪問量大的時候多用點,沒啥訪問量了就釋放一點,按需分配,很方便,這就是 雲計算 的一個場景。
隨著時間的推移,各個公司和系統收集的數據越來越多,都堆成一座大山了,難道就放在那裡白白地浪費硬碟空間嗎?
有人就驚奇地發現,咦,我們利用這些數據搞點事情啊, 比如把數據好好分析一下,預測一下這個用戶的購買/閱讀/瀏覽習慣,給他推薦一點東西嘛。
可是這么多數據,用傳統的方式計算好幾天甚至好幾個月才能出個結果,到時候黃花菜都涼了,所以也得利用分布式的技術,想辦法把計算分到各個計算機去,然後再把計算結果收回來, 時勢造英雄, Hadoop 及其生態系統就應運而生了。
之前聽說過一個大前端的概念,把移動端和網頁端都歸結為「前端」,我這里造個詞「大後端」,把那些用戶直接接觸不到的、發生在伺服器端的都歸結進來。
現在無論是前端還是後端,技術領域多如牛毛,都嚴重地細分了,所以 我認為真正的全棧工程師根本不存在,因為一個人精力有限,不可能搞定這么多技術領域,太難了 。
培訓機構所說的「全棧」,我認為就是前後端還在拉拉扯扯,藕斷絲連,沒有徹底分離的時候的「全棧」工程師。
那麼問題來了, 後端這么多東西,我該怎麼學?
之前寫過一篇文章叫做《上天還是入地》,說了學習的廣度和深度,在這里也是相通的。
往深度挖掘,可以成為某個技術領域的專家,如搜索方面的專家、安全方面的專家,分布式文件的專家等等,不管是哪個領域,重點都不是學會使用某個工具和框架, 而是保證你可以自己的知識和技術去搞定這個領域的頂尖問題。
往廣度發展,各個技術領域都要了解,對於某種需求,能夠選取合適的軟體和技術架構來實現它,把需求轉化成合適的技術組件,讓這些組件以合適的方式連接、部署、運行,這也需要持續地學習和不斷的經驗積累。
最後,以一張漫畫來結束吧!
C/C++高級工程師學習路線圖:
② tomcat中間件審計記錄在哪裡查詢
常見的中間件。tomcat中間件審計記錄查詢的時候是非常的方便的,其是在常見的中間件就可以查詢的,Tomcat是Apache軟體基金會的Jakarta項目中的一個核心項目,由java語言編寫,需要運行在jvm虛擬機中。
③ 程序員是如何找項目練手的
首先,你能想到平時找項目來進行練手,說明你是一個在技術上面是一個非常上進的同學。 想要找到項目進行練手,第一個想到的地方應該是 Github。Github 上擁有全球最多的開源項目,你可以從其中找到自己感興趣的開源項目,然後參與到開源項目的開發中去。 能夠參與開源社區,這也是很多互聯網公司非常看重的一點。
其次現在也有很多舉辦計算機類比賽的平台,比如阿里雲的天池大數據、Kaggle、Datacasle等。 你如果有時間,可以參與上面舉辦的比賽,進行項目練手。
想要在 Github 上面找到自己想要參與的開源軟體,首先你要確定好自己對什麼技術方向感興趣。 比如對於我來說,我對實時計算非常感興趣,所以我找了很多開源的實時計算引擎,最後選擇了 Flink 開源項目,現在也在努力的參與到 Flink 的開發中去。想要使用開源項目來進行練手,你一定要確定好自己的技術方向,找到感興趣的開源項目,接著就是嘗試參與到其中。
確定好自己感興趣的開源項目後,第一步就是去訂閱官方社區的郵件組,在社區的郵件組裡面,你可以看到很多同學對於開源項目的問題以及解答,你未來有任何問題時,也可以在開源項目郵件組中進行提問。 其次,你可以去開源項目的官方網站,將裡面的官方文檔閱讀和理解一遍,這對於你未來 API 的使用和概念的理解,會有很大的幫助。
最後,你可以去開源項目的 JIRA(問題主頁),查看自己能解決哪些 JIRA,隨著你解決的問題越來越多,我相信你的能力也會提升的越來越快。
其他方面,你也可以去阿里雲的天池大數據等平台上面查找自己想要參與的比賽,上面的比賽主要以演算法類比賽為主,但也有性能優化相關,編程類的比賽項目。 我以前在上面參加過阿里中間件的比賽,但是還是和同學一起來進行參加,一路跟著做下來,自己的能力也提升了很多,而且在校招的時候,面試官也問了很多這方面的問題。如果你能夠跟著比賽做下來,我相信你肯定能夠得到一定的收獲。
我會持續大數據、資料庫方面的內容,如果你有任何問題,也歡迎關注私信我,我會認真解答每一個問題。期待您的關注
剛入門可以在GitHub或者各個技術網站找一些基礎的DEMO,不需要很復雜,有幾個知識點就可以了,熟練了在學其他知識點。最後再找一些完整的DEMO練,理解各個知識點之間的聯系,熟練掌握常用的設計模式。
初級程序員可以拿公司的項目練手,從頭到尾熟悉代碼,然後跟著版本更新,鞏固掌握的技能,有新技術點多在網上查查資料,多理解,活學活用。
高級程序員可以對現有項目進行重構,搭建框架,深入底層原理。
大神程序員一般都很神秘,是我膜拜的對象[呲牙]
給你推薦一些比較實用的小項目吧,另外千鋒也有很多實戰項目視頻教學。
文本操作
網路
類
線程處理
Web應用
文件
資料庫
圖像和多媒體
游戲
不用刻意找項目練手,可以從興趣入手自己做一個項目,然後再不斷的用新技術重構這個項目 。
從興趣入手為什麼說要從興趣入手呢?因為這個是一個需要長期進行下去的項目,如果不是自己感興趣的東西,很難有動力堅持下去。
有哪些方向可以參考呢?比如你喜歡動漫,那麼可以做一個動漫圖片素材收集的網站;你喜歡足球,那麼可以做一個 歷史 數據統計的網站,其實只要是你感興趣的都可以動手去做。
一個項目做成以後並不是一層不變的,因為技術永遠在更迭。當我們學習了一個新技術時,那麼我們就可以用新技術把這個項目重構,順便練練手。
比如說原來項目里有一個用Java寫的用來抓取數據的爬蟲,現在你正好在學習Python語言,那麼你就可以嘗試用Python語言將這個爬蟲重構。
總結我一直認為一個好的程序員必定具備良好的產品思維,可以根據自身的興趣點做一個項目並長期維護下去,並不斷的用新技術重構這個項目,在練手的同時還能兼顧興趣,可謂一舉兩得。
想通過項目練手,這說明你有上進心,非常值得鼓勵。互聯網上有不少資源,這些項目是比較成功的實踐案例,還有相應的教程或者豐富的文檔,便於使用者理解,這類項目非常適合程序員練手實踐。這些寶藏級的資源在哪裡最多呢,毫無疑問,在GitHub上最多。
有同學會問,GitHub上面這么多項目,我應該如何找到合適自己的呢?
從自己的興趣出發每個人喜歡做的項目都不一樣。有的人喜歡爬蟲,有的喜歡自己做些小 游戲 。從自己的興趣出發入手,這樣有利於保持學習的動力和熱情,肯花時間學習,自然進步就快。
從容易的項目入手一開始不要選擇太難的項目,要從簡單容易的項目入手,再慢慢過渡到難得項目。就像打 游戲 一樣,先殺小怪積累經驗,最後再跟boss單挑。順序不要搞反了。
想要找項目練熟的話,肯定是找已經有人做出來的,有源程序的,如果你在項目中遇到問題不懂又沒有人指導那這時候源程序就是你最好的指導老師,找項目最好是找自己喜歡的,這樣你做起來就不會覺得累,即使做一天都不會感覺到累,特別是每一次中的小小的成功可以讓自己更興奮和開心。我以前就是這樣過來的。
任何項目都沒有實際項目練手快,各種進度,各種bug,各種要求,想想就頭痛,剛解決了一個進度,下一個又來了,下一個寫完了上一個又出bug了,沒玩沒了,這是練手最快學習最快,網上找的項目只能全是熟悉,要解決問題卻比不上實際項目來的快
程序員的世界雖然是很精彩的,但是寫代碼本身是很枯燥的。
跟工作不一樣,練手的項目一般不會給你任何回報,除了能夠提高你的水平之外不能帶給你其他東西。為了防止我們因枯燥的代碼過程放棄練手,要盡可能地去找熱門的東西,能夠與人交流才能使這個練手的過程豐富起來,來自同行或者愛好者的交流反饋能使我們在枯燥的代碼過程中更有目標,更能堅持下去。一個人枯燥的壘代碼學到的東西比與同行在論壇上或者開源項目上的交流中要少得多。
所以說找項目練手最好是找自己感興趣的,並且最好是有很多用戶或者同行交流的,這樣才能學的更多並且不容易放棄。
可以去bilibili上找找相關的項目練習,主要還是得跟著視頻老師講解多加練習才好,熟能生巧嘛。推薦你可以看看尚矽谷bilibili上的視頻,更新及時內容也是貼合企業開發的需求呢。
「我的做法是,自己創造項目,然後哪裡做不出來就去問,去搜。
童年接觸過很多fc 游戲 ,我就把他們重新做一遍。
」
- - - - - - - - - - - - - - -
④ 程序員工作軟體有哪些在哪裡可以下載
從事程序員這個行業工作,為了更好編程代碼,提高效率,更好完成工作質量,安裝必備的軟體是必不可少。下面介紹程序員常用的軟體。
Sublime
這是代碼編程軟體,可以性感編程自己代碼,有著非常豐富的插件,界面整潔清爽。第一次使用可能不習慣,當你使用一段時間之後,你就會愛上它。
打開網路App,看更多圖片
VMware
經常安裝使用Linux系統都VMware虛擬機是很好用的虛擬機,可以隨便安裝你喜歡習慣的系統,比如常見的centos,ubuntu。
新手也不用擔心自己不會用,VMware提供可視化圖形界面和我們常用的window頁面一樣,如果你熟練Linux之後,可以關閉可視化圖形界面。
postman
這個軟體對於開發後台人員是經常使用的,Postman可以提供強大的 Web API 和 HTTP 請求的調試,可以發送任何類型(GET, POST, PUT, DELETE)的HTTP 請求,前端可以測試調用介面數據,在測試自己API介面之後可以保存寫來,方便上線使用。
phpmyadmin
資料庫界面管理工具,是一款免費的資料庫管理工具,安裝完成之後可以進入資料庫查看信息,可以用代碼編程資料庫,也可以直接在上面修改信息,添加數據表,欄位等功能。
Gitlab版本控制
Git軟體庫管理對大型開發團隊來說是個必不可少代碼管理工具工具,可以讓你們團隊的代碼井井有條,安全且高效開發。
以上是程序員必備且常用的開發軟體或工具,你用過嗎?如果你有更好的軟體分享出來讓更多的程序員一起學習,分享經驗。
⑤ 程序員是做什麼的
程序員一般的工作是從事程序開發、程序維護。
程序員是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。具體工作職責如下:
1、負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態。
(5)程序員中間件在哪裡擴展閱讀:
職業要求
一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。
大約有20%的人在這一領域的計算機科學和工程學擁有更高的學位。還有很小一部分程序員是自學的,盡管一些專業性的學校或者綜合大學可以提供,但是也需要一些別的途徑來提供相關的人才。
盡管學歷是比較重要的,但是公司經常把重點放在應聘者的工作經驗上,很多剛從大學畢業的大學生雖然有引人注目的學位證書,但是他們找不到工作是因為他們缺乏經驗。
一個程序員雖然沒有正規的學歷,但是如果一個人擁有程序設計的深厚知識背景或者豐富的工作經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。
對於職業程序員,另外一個重要的方面就是,程序員需要不斷提升自己的業務技術,他的技術必須一直保持在一個較高的水平,並且要不斷發展,程序員也要尋找貿易的機會,要參加研討會,在周刊上發表文章和接受職業教育,這些使程序員在自己的領域中分級或者不斷並排前進。
⑥ 中間件是什麼幹嘛用的
中間件是一種獨立的系統軟體或服務程序,是連接兩個獨立應用程序或獨立系統的軟體,即使它們具有不同的介面,但通過中間件相互之間仍能交換信息。
中間件在操作系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟體。
隨著計算機技術的快速發展,更多的應用軟體被要求在許多不同的網路協議、不同的硬體生產廠商以及不一樣的網路平台和環境上運營。這導致了軟體開發者需要需要開發多種應用程序來達到運營的目的。所以,中間件技術的產生,在極大程度上減輕了開發者的負擔,使得網路的運行更有效率。
(6)程序員中間件在哪裡擴展閱讀
中間件技術
1、遠程過程調用
一個應用程序使用RPC來「遠程」執行一個位於不同地址空間里的過程,並且從效果上看和執行本地調用相同。事實上,一個RPC應用分為兩個部分:server和client。server提供一個或多個遠程過程;client向server發出遠程調用。
在RPC模型中,client和server只要具備了相應的RPC介面,並且具有RPC運行支持,就可以完成相應的互操作,而不必限制於特定的server。
2、面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。
對應用程序的結構沒有約束:在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造並沒有增加應用程序的復雜性。
3、對象請求代理
可向上提供不同形式的通訊服務,包括同步、排隊、訂閱發布、廣播等等,在這些基本的通訊平台之上,可構築各種框架,為應用程序提供不同領域內的服務,如事務處理監控器、分布數據訪問、對象事務管理器OTM等。
4、事務處理監控
事務處理監控最早出現在大型機上,為其提供支持大規模事務處理的可靠運行環境。隨著分布計算技術的發展,分布應用系統對大規模的事務處理提出了需求,比如商業活動中大量的關鍵事務處理。
⑦ java 中間件開發是指什麼 目前,該方向的發展前景如何 就業情況如何 請不吝賜教,感激不盡!
你好,我也只是學生一個。我想就我所知和你交流一下:
JAVA中間件:就是做一些東西出來給程序員進行二次開發時用。比如說,用來進行郵件開發的:JMail,用來處理Excel文件的POI;
狀況:目前我們國家的中間件市場還是挺大的,比如說我們非常熟悉的 用友 金蝶 等國產企業
都是中間件的佼佼者。
前景:這個沒有實際經驗,還是不發表意見了。不過,我國很多時候都是在幫外企做這樣一些東 西 ,而且它的開發難度比做**系統要難,所以個人覺得前景還是不錯的。
有空的話,我們一起交流一下哈。
⑧ 幹了兩年程序員了,不知道下面的路該怎麼走了,請前輩們指點下好嗎
我有幾個做程序員的朋友,因為我是做職業規劃的,之前有朋友也咨詢過我類似的問題,答復如下:
1.首先,程序員是非常枯燥的工作,做了大概兩年左右都會有倦怠期,這個時候應該問問自己,我還要不要繼續做IT類工作。
2.若確認繼續做此類工作,那麼有兩個選擇,第一是繼續鑽研技術,平時多到網路平台找同行交流或學習。第二是轉運維類工作,我有兩個朋友就是由編程轉到了運維。其實還有第三,可以走管理方向,不過這個需要自己多學習管理類技能,同事也要有這方面的興趣。
作為一名從業多年的程序員,同時也是一名教育工作者,我來回答一下這個問題。
對於從業兩年的程序員來說,正處在技術成長期,如果未來想在技術領域走得更遠,此時應該注重開發經驗的積累,同時應該廣泛涉獵各種技術體系,尤其要注重各種新技術的學習,包括大數據、物聯網、雲計算、區塊鏈、人工智慧等技術體系。對於程序員來說,在從業的最初五年,一定要多做「加法」,更多的技術儲備能夠為崗位升級奠定一個扎實的基礎。
對於專注於行業領域的應用級程序員來說,還應該重視行業經驗的積累,在產業互聯網時代,行業經驗對於程序員未來的發展有非常重要的影響。對於大部分基礎知識比較薄弱的程序員來說,如果不能在技術研發的道路上走得更遠,就應該考慮未來的發展方向,如果具有豐富的行業經驗,會在很大程度上拓展自身的選擇空間。從當前行業發展趨勢來看,程序員可以考慮向產品經理、項目經理、行業信息化專家等方向發展。
對於從業兩年的初級程序員來說,如果條件允許的話,還可以考慮通過讀研來提升自身的崗位級別,目前有不少初級程序員都會選擇考研。按照 歷史 經驗來看,大部分程序員在考研之後都會獲得崗位升級,不少人在讀研之後會選擇進入互聯網大廠發展,薪資待遇也有了一定程度的提升。從這個角度來看,程序員讀研也是一個不錯的選擇。
最後,隨著產業互聯網的發展,當前程序員應該注重雲計算平台、物聯網平台和人工智慧平台相關技術的學習,未來這些平台將有廣闊的發展空間。
兩年也就相當於是剛入行的一個程度,那這個程度就是要多努力幹活,多學多練,想任何其他的都是白費功夫,因為你沒有其他的時間積累,在二至四年的這個時間里,要把自己的工資技術水平提升到你所在的那個城市圈子裡面的中上等的水平,然後你要有一個比較謹慎的思維,不要空有一個想法。
那麼這個時候你個思想和你這個能力就不匹配了。我們首先要選擇考慮的就是北上廣深。你現在還可以努力干到35歲左右。另外技術這個行業它分為一個是偏技術型,另外一個是業務驅動型,還有就是屬於技術骨乾性。偏技術型的話,不建議你選這個,因為不管是程序員也好,前端也好,都是工程師,都是幹活的,不搞科研,雖然很多it公司技術部要求很多,但是都是幹活的,沒有說太深的一些技術要求,基本上就是用於日常的技術啊bug。
另外一個是業務驅動型,也叫業務,就是你要主導需求就是客戶你能找到自己的客戶,然後還要和前端一起去搞定這些問題,你要有老闆的一個思維,自己乾的時間長了,那麼你就能找到自己的這個路了,不管是你創業還是說去其他的地方去做都對自己非常有好處。
你現在考慮的可能就是說以後怎麼發展他這個技術程序員發展的話一般是年齡平均到35歲左右的時候,你就可以通過前期的一些積累,然後鋪墊到35歲的時候,你就可以去做其他的行業的,因為你到35歲的時候,不管是去面試或者是帶領團隊熬夜,很多時候有些東西都跟不上了,所以建議你到那個時候去轉行。
你好,作為一個工作4年的同學,我想以個人經歷回答下這個問題。對於工作兩年的程序員來說,大都是處於技術的快速上升期,應該也接觸了挺多的技術面,包括但不限於分布式、資料庫、網路、大數據等,並且可能對某個框架或者技術有了自己的深入見解。
對於以後的發展,如果是想往 中間件方向發展 的話,需要掌握分布式原理、網路通信、消息隊列、資料庫操作、緩存等,大多數中間件都涉及到分布式支持。可以看幾個不同類型的中間件的原理與設計實現,比如MQ可以看Rockermq,資料庫可以看MySQL,緩存可以看Redis,網路通信庫可以看Netty,配置中心可以看Apollo等,注意,每種類型的中間件或者框架重點學習一個即可,因為思想都是相同的,理解了一個之後在學其他的很快就能上手掌握。當然,除了自己的技術學習之外,一個好的平台也是很重要的,不僅僅能夠認識一幫志同道合的朋友,還能有實際的業務平台去實現技術的價值,這里推薦阿里的中間件相關崗位,目前中國中間件團隊的java水平基本是阿里最高水平了,在這里誕生了很多知名的開源軟體。
針對1-5年的程序員關於技術點來說,可以參考芋道源碼整理的下面一張圖進行查漏補缺:
上面羅列的技術目前我也在學習中,對於技術人來說,知道自己想要什麼,要比自己知道怎麼要什麼更重要。知道自己想要什麼,你就會想方設法去實現它。不管怎樣,腳踏實地做好自己的工作,學習技術,肯定沒錯。
說實話我對程序這東西一竅不通,但我知道不管什麼事情沒有了程序那就亂了,電腦沒有程序就死機了,人幹事情沒有了程序那就沒有頭緒,我覺得你還是好好乾吧,這個行業永遠淘汰不了。永遠是最需要的東西!
說實話,只是普通的編程圈子不會很大,跳出這個圈子會發現還有很多其他相關的職業。如果在一個小公司,程序員工資雖然偏高,但在運營商務銷售其他職務心裡多少還是會有些輕視,畢竟現在普通程序員太多了,大部分人做的東西千篇一律,而他們認為工資其實是靠他們的能力賺取的。
如果想在小公司發展,可以深入了解業務,和一些其他職位的主力人員維護好關系,倒時候想創業可以合夥,想轉行也會輕鬆些。
如果想在大公司發展,可以走管理,大公司一般比較看重資歷,學歷,管理能力。
還有一種走技術路線的,一般只存在於大公司,這種部門在有的公司很閑只是撐個場面,有的是真正能做出實用的東西值得敬佩。
做任何行業都要堅持,兄弟你才做了兩年,相當於是剛入門,以後要走的路還會很遠。
就現在來說,程序員還屬於是高收入行業,工作還比較好找,趁年輕時好好乾,多積累一些經驗,多做一些大的項目,以後的路會越走越寬。
不太清楚你目前的困惑點在哪裡,是學習新技術感覺力不從心了?還是對技術沒有興趣了?還是不想當程序員了?還是對程序員的發展路線迷茫了?不管怎樣,幹了兩年的程序員,對編程這個工作還是有些經驗了,也能夠解決工作中的一些技術問題,但還處於相對初級的一個水平,畢竟積累不太夠。
建議繼續做2-3年開發工作,提升編程水平,提升解決問題的能力,逐漸成長為公司的技術骨幹。等到那個時候,你的選擇會相對多一些,也會理智一些。例如:你在開發過程中,覺得自己更喜歡跟人打交道,想做項目管理,那麼,你多做2年開發工作,並不耽誤你後面轉為項目經理。你可以將接下來的2年作為一個潛伏期,在做好本質工作的同時,注意一定要做好你的工作,你的工作做好了,自然會得到別人的尊重,也會贏得人脈,千萬不可以為將來不做開發了,就開始敷衍、不用心,做好當下,再考慮將來的發展方向,是換一個公司,換一個崗位,還是換一個城市?畢竟程序員的待遇還是可以的,多做2、3年,沒啥損失。
在迷茫的時候,不要做任何決定,靜觀其變。
大家好!我是鍵盤手,
關於這個問題我想說一下我個人的看法,我個人也是吃技術飯的,現在過了三十五歲了,打工已經沒有公司要了,也不想和大學生去搶飯碗,去工作人在心不在。以前二十幾歲的時候,總認為吃技術飯經驗很重要,年齡越大經歷越豐富,薪資就越高,而現實是,現在的公司一般不招三十五歲以上的人員,而且有些公司把三十五年以上的員工解聘掉,主要是人過了三十五歲,思想和創新能力、學習能力沒有二十幾歲時候強,所以對於技術員來說就是一道坎,很多人到了這個歲數都不敢隨意跳槽,也不敢創業。
所以我個人認為如果你不是很喜歡這個行業,就早點作出選擇,當然越早越好,如果你喜歡,那就深造下去,見意在三十歲之前能夠有所作為,不要再給別人打工,我過了三十五歲才明白,打工是最不劃算的買賣。
就這個問題,我根本不了解你的任何情況,我能指點個毛線。再說我還不是前輩。
幹了兩年程序員了,沒有說乾的好還是不好, 回答裡面的各位大佬,你就認為人家 是乾的不好,說不定這個哥牛的一B。
下面的路怎麼走, 我不知道~ 我也是渣渣,不夠格當人生導師~