-
1 # IT人劉俊明
-
2 # 明哥聊求職
第一步,還是要明確具體的職業方向。
程式設計師是個統稱,寫程式碼的都叫程式設計師,但Java程式設計師,或是Python程式設計師,這才是職業。就好像很多大學生,專業是軟體工程,這玩意兒並不是職業,學的內容也比較寬泛。更不要說計算機科學與技術之類的專業了,更加沒有指向性,基本就是知識大雜燴。
所以,如果想當成從業方向,先要確定做什麼,才能下一步是學什麼。
如果是轉行,計算機基礎薄弱且不是本科以上學歷,我比較建議,不要學Java或Python、Go等語言,可以考慮學PHP、H5等。
做什麼程式設計師有發展,其實也不難判斷,除了用Tobie程式語言排行,或者看下百度指數,介紹兩個更簡單粗暴的方法:
一,以終為始,看招聘網站。什麼最準確?招聘需求!
看看招聘網站上,你意向職位的招聘數量,意向職位的高薪職位招聘數量,就是最直接的參考。如果都沒多少招聘需求,你還硬著頭皮要一腦袋扎進去,這……不是瘋了嗎。
二,看看培訓機構的網站。有招聘市場,才能產生培訓需求,任何培訓機構開什麼課程,都是由此決定。
所以,培訓機構開設有什麼課程,基本就是一個風向標,如果都少有機構開設……這一定說明了點什麼事。
在明確了職業選擇之後,才是學會一技之長,學什麼的問題。
簡單的知道從業需要的技術,其實看招聘要求是權威的,搜一下相關職位的招聘要求,多比較幾家企業,其中共性的部分,就是你必須要會的。但這個是比較粗糙的,只有12345,更詳細的,不妨看下培訓網站上的課程大綱,都非常的詳細,可以作為自學的參考,基本上培訓的課程都會參照企業招聘的需要,比你自己瞎找影片或者買書學,來的更加系統。
-
3 # 綻放的驢蹄子
有耐心和自制力自己腦袋聰明可以從網站上找點免費的資料,有一定基礎或者熟悉那種模式了,就可以花點錢來學,然後記得實習,然後正經工作,然後各種跳槽,最後找個差不多的安穩下來。主要是幹這行命必須硬才行!你得有準備,並且聰明
-
4 # 武狂
學軟體開發?那可不是鬧著玩的。不從事這一行的永遠不知道這行的艱辛,還咋巴著小眼睛問程式設計好不好學?
不知道LZ看沒看過聖鬥士星矢這部動漫,首先你得問問自己,想學程式設計,你有沒有像星矢一樣持之以恆百折不撓一步一個腳印忍受常人無法想象的困難和痛苦的品質,沒有?你說我開玩笑逗你,那好,下面的不用看了,因為你確實不適合學。
如果你只想著掙大錢,勸你別碰這行,一句話,別來找虐。為什麼?你看到的手機APP,各種應用,要想開發出來,不知道需要多少種技術。拿最常見的網站開發,需要後臺資料庫mysql,資料格式json,xml,各種網路協議,還有網站開發語言PHP, JSP,ASP.NET,等等不下十幾種技術。而每一種技術都是一本厚厚的五六百頁的書,需要最少一年多時間掌握一門技術。最要命的,每種技術互不交叉還跨度很大,每種技術都有自己的設計理念和很多很多“天坑”在等著你攻克,你問問你自己,你有這個恆心和意志力天天捧著本大部頭的書天天看,天天上機操作學嗎?你說有,那好,你看電視上那些富二代天天瀟灑地到處遊玩泡妞基本於你無緣了,因為你根本就沒時間,談個戀愛都困難,還想打網遊玩王者?那算了,你還是別碰這行了,別耽誤你玩遊戲享受生活了。
程式設計師加班很恐怖,工作制通常是996,即早9晚9週六還要上班,晚9下班還是早的,一般到晚上十點。你想那時夜深人靜了人家都休息抱著老婆孩子睡覺了,你還在工作中,是不是很崩潰?
第2,程式設計師耗腦太嚴重。工作中需要十幾個小時大腦不停地運轉。需要設計算法,不斷地把程式碼改來改去來適應客戶一天幾變的需求。很多功能沒有現成的解決方案,還經常遇到一些天書一樣的疑難問題,bug,實際工作中突發狀況千奇百怪,你可能見都沒見過的bug,崩潰,需要一點一點查幾萬行的log日誌。而且也需要百度,google,英文論壇尋求幫助,理解錯誤資訊是什麼意思。所以英文不好的沒耐心的還是算了吧,不適合這行。
第3. 程式開發首先是非常難學的,任何一門程式語言都有自己獨到的思想,概念設計,很多情況下一門語言與另一門語言沒有多大關係,知識經驗無法串用。而且工作中你還不得不用到這些技術你不得不去學。而且程式技術日新月異,新類庫新SDK每天都會推出,你需要日復一日不斷地學習新技術。如最新影片解碼技術,遊戲引擎等等,而這些新技術可是國內沒有書和任何資料的,需要你到英文官方網站去找例項看文件去學,更要命的,新的技術和老的還沒太大關聯,你得重頭去學。而且老闆急趕專案不會給你什麼時間,一般三天就是極限了,你需要這麼短的時間快速掌握一項新技術...
綜上,你明白程式設計師為什麼總要加班了吧,也知道這行不是人乾的吧。為什麼說程式設計師幹到三十干不動。很簡單,以這種消磨人生所有時間狀態,你生命中只有加班加班工作工作學習學習,你將不能顧家不能跟朋友聚會不能再有自己一點點休閒時間,更別說談女朋友戀愛了,以這種狀態你能堅持到三十歲?我想那簡直是個奇蹟了
-
5 # 我是文老爺
如果你想轉行做程式猿,那麼我告訴你要乘早,至於要學什麼,你就需要先選擇一個方向了。
1.後臺:
後臺一般是服務端的開發,從事的門檻也比較低,工作崗位的需求量也比較大,想要從事後臺開發,語言基礎是必須的可以學java 、c++ 、go、python 等,這幾個是比較熱門的需求也比較大的,其次就是一些計算機基礎知識,像計算機網路、作業系統、資料結構與演算法、資料庫、linux、一些語言的常用框架、常用中介軟體等
2.大資料:
大資料的工作崗位分為資料平臺開發、資料應用開發、資料分析、大資料運維。大資料的工作相對與後臺要求要高一些,有的崗位也有學歷要求。主要學習的內容有Java語言基礎、Linux系統&Hadoop生態體系 、還有像spark 、kafuka、hdfs、hbase等
3.測試:
測試的定義、測試的分類、測試的方法、測試的生命週期。
測試計劃、測試方案、測試策略、測試用例的編寫。BUG的定義、BUG的分類、BUG的六要素、BUG的生命週期。測試和開發流程的關係、瀑布流、V字形、W字型(雙V)、螺旋型、敏捷等等。PDCA、5W2H等分析管理的方法質量管理體系CMMI(瞭解)
4.演算法:演算法的範圍就比較廣了,有人工智慧相關的演算法崗位,也有音影片演算法的崗位,演算法崗位型別
1.機器視覺2.語音識別3.自然語言處理4.資料探勘5.知識圖譜6.推薦系統。
演算法的學歷要求也是比較高的,一般要求碩士研究生以上才行。主要學習方向有: 好的數學知識指高等數學、數學分析、機率論、線性代數等,程式設計基礎c++、python等、機器學習與深度學習的知識這是重點。然後在選準一個型別就可以了。
5.前端:
前端就是指我們平時看到的頁面。CSS和HTML,JavaScript、Node與Ajax、VUE,前端的知識不是很難。
6.客戶端:
有安卓、ios、windows等的客戶端開發,也有遊戲客戶端的開發,學習的東西也不盡相同。但是也有一些共性如前端基礎、相關平臺的知識、程式語言、資料庫等
7.安全:
計算機應用、計算機網路、通訊、資訊保安等相關專業本科學歷,三年以上網路安全領域工作經驗;精通網路安全技術:包括埠、服務漏洞掃描、程式漏洞分析檢測、許可權管理、入侵和攻擊分析追蹤、網站滲透、病毒木馬防範等;熟悉tcp/ip協議,熟悉sql注入原理和手工檢測、熟悉記憶體緩衝區溢位原理和防範措施、熟悉資訊儲存和傳輸安全、熟悉資料包結構、熟悉ddos攻擊型別和原理有一定的ddos攻防經驗,熟悉iis安全設定、熟悉ipsec、組策略等系統安全設定;熟悉windows或linux系統,精通php/shell/perl/python/c/c++等至少一種語言。
這是資訊保安工程師的招聘的一些要求,從其中來看,計算機的基礎知識要精通,會程式語言,主要是對知識要深入理解,才能防範漏洞。
8.運維:工作內容包括應用系統的釋出、部署、變更、監控、事件處理、最佳化以及系統架構設計調優、提供運維報告等。負責日常網路及各子系統管理維護。主要學習內容有Linux系統基礎、網路服務、shell 指令碼、資料庫、負載均衡等,
9.嵌入式:
嵌入式工程師做嵌入式系統設計和開發,包括硬體系統的建設和相關軟體開發、移植、除錯等工作。崗位職責
設計晶片驅動程式,編寫軟體概要和詳細設計說明書。編寫驅動程式碼,並進行單元測試和系統測試。配合硬體工程師除錯硬體電路。單板軟體需求分析、設計、編碼與測試。學習內容:嵌入式Linux系統、驅動、應用開發知識,c 語言、作業系統原理、計算機網落、瞭解ARM的架構,驅動開發。
如果你是一個想要轉行的新人,或者是新人不熟悉相關領域的知識。可以先在網路上找到相關方向的學習路線圖,然後再一一對應去找學習資料,如一些影片資源。其實,我最推薦的的是直接去報個培訓班,因為他們會有完整的教學體系,知道公司的找人要求。這樣像一些沒有計劃性的人就不至於沒有頭目了。
--------------------
回覆列表
轉行做程式設計師需要學習的內容還是比較多的,雖然說現在程式設計師的門檻已經越來越低了,但是需要掌握的內容卻並不少。
首先要根據自己的知識結構選擇一門適合自己的程式語言,選擇程式語言的過程也是一個選擇未來就業方向的過程,因為不同的程式語言有不同的應用場景。
如果是理工科專業畢業,那麼可以選擇的面就比較廣了,由於大部分理工科畢業生都有紮實的數學基礎,所以在學習程式語言的時候並不會感覺特別困難。目前可以選擇的程式語言包括Java、C++、Python、PHP、Scala、JavaScript等語言,推薦從Java開始學起,原因有兩點,首先Java語言有健全的生態,其次Java使用人群龐大,就業比較好。但是Java在學習難度上相對較高,需要學習的內容也相對較多。
如果是非理工科專業畢業,建議學習Python。Python語言比較簡單,實驗環境比較好搭建,是一門比較容易上手的語言。雖然Python語言簡單,但是Python語言的應用領域卻比較廣泛,可以做Web開發、大資料開發、人工智慧開發和嵌入式開發(剛被列入嵌入式語言),而且隨著大資料的不斷髮展,Python的應用前景將十分廣闊。
選擇完程式語言之後,接下來就要制定一個學習計劃了。制定學習計劃一定要根據自身情況制定,因為每個人的情況不同,學習計劃也要因人而異(建議諮詢專業人士)。學習內容也要根據學習計劃進行相應的調整,但是基礎部分的學習內容是大同小異的,下面分別介紹一下Java的學習內容,以Web開發方向為例。
第一步學習Java的面向物件程式設計基礎,需要掌握幾個核心概念,包括類、物件、屬性、方法、封裝、繼承、多型、序列化、多執行緒等,其中多型、多執行緒是兩個難點,實驗是掌握概念的重要途徑,看一個例子:
第二步學習Java的分散式程式設計。分散式程式設計簡單的理解就是把不同的功能封裝成不同的元件,進而部署在不同的站點上。分散式程式設計的學習過程涉及到網路程式設計、序列化物件、資料庫程式設計、事務處理、資料交換等一系列內容,同時還需要掌握功能模組化等內容。可以透過RMI開始瞭解Java分散式程式設計的過程(不用安裝其他環境),RMI的程式設計過程分為三個過程,分別是介面定義、服務類實現、呼叫端實現,看一個例子:
第三步學習Java的Web程式設計。Java的Web程式設計是Java學習的重點內容,早期的Java Web程式設計通常的解決方案是JSP+Servlet+JavaBean的實現方式,目前多以SpringBoot+SpringCloud的方式來呈現,這種方式更加便捷,資源整合效果也更好。
如果有Java、Python等程式設計問題,也可以諮詢我。