1. 程序員一般的工作都是干什麼的
程序員的工作內容如下:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
(1)程序員除了寫前端還有啥擴展閱讀:
數據顯示,近四成程序員處於單身狀態,明顯高於非互聯網從業者24%的比例。廣州、深圳、北京成為單身比例最高的三大城市。單身的程序員在擇偶方面也有區別於其他人的偏好,更注重對象的顏值、身材和家庭背景。
統計顯示,互聯網從業人員對買房有不小熱情。互聯網從業人員更勇於背負房貸,29%互聯網從業人員正背負房貸,這一比例兩倍於非互聯網從業人員。其中在各大城市排名中,杭州、北京、廣州位列前三大互聯網從業者背負房貸人數比例最高的城市。
在互聯網企業的一個特色是,沒有明確的上班時間和下班時間,靈活的工作時間和高強度的工作量,使得加班成了行業特色。在睡眠時間方面,程序員的睡眠時間集中在11點至凌晨1點之間,而非互聯網從業人員的睡眠高峰在10點至12點之間。
2. 程序員分前端與後端,那麼後端程序員都做些什麼看完就知道了
我剛開始做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++高級工程師學習路線圖:
3. 程序員一般都有哪些職業
程序員可以做的職業有很多,最多的是到軟體公司做程序員,編寫程序開發軟體,也有做軟體測試工作,工作經驗豐富的程序員轉到後台做項目管理。程序員是比較辛苦的工作,996是常態,經常熬夜,所以做程序員一般是年輕人為主,上了年紀的程序員很多改行或者換崗做管理,年紀大了思維和精力都跟不上,已經很難適應行業節奏,所以程序員做其他方面的工作也是很正常的。
4. 學習軟體編程未來可以從事哪些崗位
學習軟體編程未來可以從事哪些崗位。首先學習軟體編程未來是可以從事軟體相關的工作,關系最為密切的就是軟體研發工程師,也就是俗稱的程序員,當然程序員還可以細分為前端程序員、後端程序員、移動端程序員、服務端程序員等等。還有比如軟體實施、運維、測試、設計、分析、咨詢、銷售等等,包括還有項目管理之類的。
學習軟體編程其次也可以從事互聯網行業相關的工作崗位,研發、設計、運營都可以。
希望對你有幫助。
5. 從事軟體開發的就業方向有哪些
第一就是研發的程序員
第二是演算法程序員
第三種是測試崗位
第四種是運維崗
第五種是產品崗
第六種 是運營崗
6. 現在學編程有哪些方向
首先,當前程序開發的方向還是比較多的,由於IT互聯網行業的技術迭代速度比較快,所以程序開發的細分方向也在不斷增加,當前規模比較大的開發方向包括Web開發、移動互聯網開發、物聯網開發(嵌入式)、大數據開發、雲計算開發、人工智慧開發等。
Web開發和移動互聯網開發的規模比較大,對於開發人員的需求也比較多元化,既需要研發級程序員,也需要大量的應用級程序員,而物聯網、大數據等平台開發往往會匯集大量的研發級程序員。隨著各大科技公司紛紛開放自身的技術平台,未來行業領域也需要大量的程序開發人員來進行行業創新。
Web開發方向也有兩個大的細分方向,一個方向是後端開發,另一個方向是前端開發,在當前雲計算平台的推動下,前後端開發的界限正在逐漸開始模糊,前端程序員也可以走全棧開發路線,而且在移動互聯網的推動下,前端開發的邊界也在不斷得到拓展,所以當前也把前端開發稱為「大前端」。
物聯網平台、大數據平台和人工智慧等平台的開發任務也分為兩大部分,一部分是平台本身的開發,這部分開發任務的難度是比較大的,當前不少大型科技公司都紛紛布局平台研發領域,以便於構建起自身的生態體系。從近些年計算機專業研究生的就業情況來看,不少畢業生會從事平台研發崗位,相關崗位的崗位附加值還是比較高的。
另一部分是基於技術平台來進行業務端開發,這部分開發需求在工業互聯網時代很有可能會迎來大的爆發,所以對於廣大應用級程序員來說,掌握各種技術平台會為自己帶來更多的發展機會。
7. 程序員能做些什麼工作
WEB應用程序設計專業。畢業後能夠從事網站應用程序開發、網站維護、網頁製作、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用、非IT企事業單位信息化。
2、可視化程序設計專業。畢業後能夠從事軟體企業桌面應用開發、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用開發等工作。
3、資料庫管理專業。畢業後能夠從事企、事業單位資料庫管理、軟體開發、專業資料庫應用設計與開發、資料庫的應用與開發、信息管理系統開發、企、事業單位網路管理、軟體銷售等工作。
薪資待遇及升值空間與輕松的一定呈反比。
如果你想要輕松的工作,首先就不能對薪資待遇與升值空間有太高的期望值。
如果是計算機相關專業,又有些技術的,一般推薦去互聯網行業。
如果你性格內向,就做對內客服,前台,行政等職務。
如果你性格外向,就好辦了,可以做銷售,市場等前端的與人打交道的工種。
前者相對輕松,薪資待遇過得去,但是升值空間不大,後者轉行的成功率很高,薪資待遇全憑自己打拚。那能做的還是比較多,互聯網的話可以往新媒體,文案策劃,電商運營,影視,視頻剪輯等等
傳統領域的話那也是比較多的呢,銷售,公務員,教師,等等。
8. 想問下程序員工作內容有哪些分類啊
碼農工種一般就是研究開發、開發、開發測試,運維開發,開發根據負責的內容一般分前端和後端,像界面就是前端,伺服器和資料庫就是後端開發。AI系統一般是研究開發。
但碼農的工作一般是按照階段性的項目中負責的模塊分的,所以可能一個人一段時間是前端,一段時間就變成後端了,當然裡面的技術差別很大,不是每個人都可以隨便轉。
但其實這些分類並不嚴格,比如世界最大的社交網站fb,他們的程序員必須從前端後端、研究開發測試維護一攬子全包。
軟體工程中相配套的,除了程序員以外,還有產品經理、測試(和開發測試不一樣)、行政等等崗位。
9. 跟程序員相關崗位有哪些
1.技術+技術(深入階段)
這算是一條純技術路線,具體又可以分3個方向:
技術(2年以上編程經驗)+技術(軟體測試,或系統分析師,或系統架構師)
有軟體開發的工作經驗,再加軟體測試,比剛開始就進入軟體測試行業的人要更具競爭優勢。軟體測試工作經驗越多越好,可以干到退休,不用擔心年齡問題。
如果選擇「系統分析師,系統架構師」,則首先要打好扎實的「理論基礎」(可以通過考證書,比如參加軟考),以保證自己「後勁力十足」,這樣等有了4,5年的工作經驗後,才有可能能沖上這個高端領域。平時工作中要不斷的鍛煉自己的「發散思維」,培養善於發現業務需求的「眼光」。
2.技術+管理 :比如 項目經理。
像雷軍說的那樣:「程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量(8萬行以上)的程序,才會有感覺,這是一個苦力活,沒有任何捷徑可走。」項目經理大多是從「優秀」的程序員里挑選出來,想走這條路,平時就要瘋狂的編碼,迅速累積豐富的編程經驗,然後再補充一些管理方面的知識。(本人打算走這條路,呵呵)
3.技術+銷售:比如 技術銷售工程師,技術支持工程師。
這類工作要有一定的技術背景(入門級也可以),具備較好的語言表達,溝通能力。工作比較輕松,月薪待遇主要看個人銷售業績等,個人收入差別可能比較大。
4.當培訓老師
如果你「樂於分享」工作經驗,傳授知識,或者覺得自己年齡比較大,精力不夠充沛,且往上升又比較困難的話,可以選擇去培訓機構當老師,就目前而言,當老師工作輕松,待遇也不錯。
10. 程序員分為哪幾種
1、WEB前端
前端開發是創建Web頁面或app等前端界面呈現給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術、框架、解決方案,來實現互聯網產品的用戶界面交互。
2、硬體工程師
硬體工程師要求熟悉計算機市場行情;主要工作為:制定計算機組裝計劃、選購組裝需要的硬體設備、合理配置和安裝計算機以及外圍設備、安裝和配置計算機軟體系統等。
3、硬體測試工程師