{eval=Array;=+count(Array);}
為了增加說服力,先報一下自己的經(jīng)歷。
寫過5年Java,3年P(guān)ython,3年C#和兩年前端。現(xiàn)在已經(jīng)完全脫離前端。雖然也是個普通碼農(nóng),但是相信我的經(jīng)歷也能給到一些幫助。
其實我想推薦C#的,但是鑒于當(dāng)前C#的就業(yè)環(huán)境就業(yè)數(shù)量都還比不上其他幾位,包括培訓(xùn)也沒有其他幾位的選擇多,所以退而求其次選擇Java。畢竟對于一個新人來說,找到工作才是最要緊的,而這些語言里面論工作崗位的數(shù)量,Java是毫無疑問的大哥。對于打算進(jìn)入一個行業(yè)的人來說,最難的就是這個0到1的過程,沒有這個過程后面的1到n的裂變也無從說起。之所以科班出身的朋友相對輕松,就是因為在大學(xué)畢業(yè)的時候,他們通過大學(xué)所學(xué)完成了這0到1的過程。但后面的經(jīng)驗積累,技術(shù)增進(jìn),對于大部分人而言都是一樣的。只要自己努力了,不要好高騖遠(yuǎn),腳踏實地的學(xué)習(xí),你必然有機會做得比科班出生的好。
接下來,讓我們一起看看我們?nèi)绾窝驖u進(jìn)的學(xué)習(xí)。
1. 了解Java運行環(huán)境的安裝,知道運行環(huán)境的基本概念,最重要的幾個設(shè)置比如classpath之類的。知道如何使用IDE,熟練掌握下IDE的各個基本功能。對于個人推薦IntelliJ。幾乎無可爭議的Java最好的IDE。不要再去用eclipse了,更不要相信那些讓你命令行或者自己用vim打一個IDE的說法。這種對于新手而言,看來很酷,但是最可能的是興趣還沒有培養(yǎng)起來就放棄了,因為挫敗感太強烈。
2. 了解Java基本知識,包括基本數(shù)據(jù)類型(int,string等等),數(shù)據(jù)結(jié)構(gòu)(list,map等等),輸入輸出語法(input stream和output stream以及reader和writer),數(shù)據(jù)庫連接(JDBC),網(wǎng)絡(luò)編程(HttpClient等等)以及基本的面向?qū)ο蟮母拍睿ǘ鄳B(tài),重載等等)。掌握了這些東西基本上算入門了Java。推薦的讀物是《thinking in Java》。我閱讀的時候是基于JDK5的,不知道是否有更新的。雖然現(xiàn)在已經(jīng)JDK14了都,但是之前的那個版本已經(jīng)涵蓋了上述這些核心的知識。此書網(wǎng)上有,如果有需要也可以聯(lián)系老白。
3. 掌握多線程,各種thread,runnable,synchronized關(guān)鍵字,votile關(guān)鍵字都是怎么用的,背后原理是什么。以及一些JDK自帶的支持多線程的結(jié)構(gòu)比如Concurrency Hashmap 是如何實現(xiàn)的。通過IntelliJ 都能很快的看到源碼實現(xiàn)。
完成前三步就可以開始找工作之旅了
接下來的內(nèi)容,隨著工作經(jīng)歷的見長,會發(fā)現(xiàn)越來越需要,也越來越重要,直接決定了你的薪水。
4. 是時候該回頭看看數(shù)據(jù)結(jié)構(gòu)和算法了。掌握盡可能多的數(shù)據(jù)結(jié)構(gòu),明白各種不同實現(xiàn)的原理和差異。這些都可以通過直接看源碼達(dá)到。搞明白什么是空間復(fù)雜度什么是時間復(fù)雜度,如何計算。這也為我們之后進(jìn)入大廠做準(zhǔn)備?,F(xiàn)在的大廠面試幾乎都需要數(shù)據(jù)結(jié)構(gòu)和算法。
5. 學(xué)習(xí)設(shè)計模式,這將幫助你寫出簡潔可維護(hù)性強的代碼。
到此已經(jīng)完成了一次進(jìn)階了。理論上已經(jīng)可以獨立完成項目并且沒有和科班的有明顯區(qū)別。
6. 經(jīng)驗積累,以及思考。接下來的這步,要邁的是一大坎,可以去學(xué)習(xí)學(xué)習(xí)經(jīng)典的框架比如spring,mybatis(別學(xué)hibernate了,基本已被淘汰)。了解這些框架設(shè)計背后的思想光芒。以及很多項目是如何去結(jié)合的,以及不同框架又是如何選型的。學(xué)習(xí)各個通用的開源工具,了解他們?nèi)绾蜗嗷プ饔?,在什么場景下使用最佳等等。這些思考都將幫你向一個高級程序員方向發(fā)展。
到了這里,已經(jīng)超過很多普通程序員了,即使是一些科班出身的。
7. 架構(gòu)學(xué)習(xí)。將前面所有的融會貫通。
至此,打怪成功。
未來的世界,必然是電子的世界,編程能讓我們成為這個世界建設(shè)的一分子。希望樓主可以加入到這個隊伍中來,也希望樓主成為一個優(yōu)秀的工程師!
如有疑問,歡迎私信老白
老白將不時推出C#和Java學(xué)習(xí)內(nèi)容,歡迎關(guān)注
回答的多數(shù)就是自己學(xué)過的,或者就是給別人建議的,這個問題我算是比較了解的,我自己就是做培訓(xùn)機構(gòu)的,所以對java php 前端爬蟲這種也還算了解。
零基礎(chǔ)學(xué)習(xí)這些本質(zhì)上都可以,但是你學(xué)it肯定是打算從事這塊的工作,從事這塊的工作就不得不考慮職業(yè)發(fā)展和薪資待遇問題。
我以深圳舉例,不要去談什么batucloud這些,中國寫代碼的數(shù)百萬人,大廠只是少數(shù),所以我給大多數(shù)人的一個薪資參考標(biāo)準(zhǔn)。
先說下java 它出來都幾十年了,基本上現(xiàn)在做銀行 金融這類內(nèi)部系統(tǒng)的算是首選開發(fā)語言,在國內(nèi)薪資這塊也是算比較好的,基本上3年經(jīng)驗在深圳的話10到15k之間,大廠除外。
再說下php,php有個雞肋就是上手學(xué)習(xí)難度沒java大,但是php大多數(shù)居于外部系統(tǒng)項目較多,比如門戶網(wǎng)站,電商平臺這種等,搞php的實際上人數(shù)也要多于java的,因為自學(xué)php的人數(shù)可以說是所有編程語言最多的,至于為什么,光小型站長就是幾百萬人,目前大多數(shù)網(wǎng)站框架不管是帝國還是織夢都是php語言。薪資的話php要略低于java,本質(zhì)上和項目有關(guān),銀行 金融這種行業(yè)開的工資也要比做網(wǎng)站的工資高一些,一般3年經(jīng)驗大概8到15k居多。
再說下爬蟲,爬蟲python 出來也不短了,但是火也就是最近5年時間,薪資待遇一度超過java這些,原因是因為大數(shù)據(jù)的引起,對于高端爬蟲工程師的需求增加影響,但是目前學(xué)習(xí)爬蟲的人數(shù)可以說是所有編程語言里面最多的,在深圳可以普遍看到10k起步的爬蟲工程師,并且經(jīng)驗都是一年,加上這里面學(xué)習(xí)的人太多,目前爬蟲工程師就業(yè)難度算是比較大的,除非是3到5年以上的這種,新手找工作可能是很難的。
前端也是最近5年火起來的,尤其是一些小程序,h5頁面的需求增加,前端工資基本上和php相當(dāng),但是后勁比php大。
嚴(yán)格來說,如果非的選擇的話,技術(shù)難度是java大于php大于爬蟲大于前端
薪資水平是java大于爬蟲大于php大于前端
上面這兩個僅僅是前期角度,后期等你有個3到5年經(jīng)驗的時候,前端和java的工資是比較給力的,至于爬蟲的話做到后面職位發(fā)展?jié)摿μ。鰆ava的可以轉(zhuǎn)型架構(gòu)師,純做爬蟲的很難做成架構(gòu)師,因為都是和數(shù)據(jù)打交道比較多,而java的話和整體項目打交道多很多。前端的話還可以往產(chǎn)品方向發(fā)展,至于php追求高薪是有的,但是從招聘角度來說,php的崗位需求明顯要小于前面三者。
如果是女同志建議考慮前端或者php,男同志優(yōu)先java然后是爬蟲,做前端的強調(diào)頁面思維和細(xì)心,java開發(fā)強調(diào)代碼邏輯能力。
樓主所提到的這些編程語言,目前都是很主流的語言。就我個人而言,我是從27歲轉(zhuǎn)行的,轉(zhuǎn)行的過程也是相當(dāng)痛苦。
當(dāng)初我轉(zhuǎn)行的時候,也是零基礎(chǔ)入門,選擇的語言是java,當(dāng)時考慮的有三點:
一、java語言相較于其他語言,人才需求量更大。
二、有同學(xué)在做java開發(fā),可以給予一定的指導(dǎo)
三、網(wǎng)上的教程,社區(qū)活躍度較高
四、入手容易,但是深入不易。當(dāng)時想快速轉(zhuǎn)行,投入到實際的工作中。
最后在說一下目前的現(xiàn)狀吧:現(xiàn)在就職于一家智慧城市公司,目前也算是java高級開發(fā)工程師。
后續(xù)的發(fā)展完全是看個人的。現(xiàn)在網(wǎng)上的資料很多,ucloud課堂,開課吧,都有很多不錯的學(xué)習(xí)資源可以白嫖
樓主提到的java、php、python只是計算機語言的其中幾種。具體先學(xué)哪門語言,還是得根據(jù)自身的職業(yè)規(guī)劃考慮。
如果是你想學(xué)完找份和算法有關(guān)的工作,建議你從python入手。
如果你是從事平臺開發(fā),建議你從java或是php入手。java的基礎(chǔ)語法等。
如果你是想從事前端開發(fā),建議從html、css 、JavaScript入手。
掌握了一些基礎(chǔ)后,嘗試做一些例子,再模擬做一兩個完整項目就可以找份和編程相關(guān)工作了。
自學(xué)過程中,要不斷上機嘗試,對于有的知識點不是很清楚的,不要想當(dāng)然,多上機嘗試。在工作中實踐中不斷模式,不斷學(xué)習(xí)。
有一定基礎(chǔ)后,多閱讀一些源碼,因為面試中的很多問題我們都可以從源碼中找答案,其次要主動學(xué)習(xí)平時工作中遇不到的一些技術(shù),由于工作的原因,我們不可能通過公司的項目來解除到Android中所有的重要技術(shù),尤其是一些規(guī)模不大的項目來說,這個時候需要我們主動去學(xué)習(xí)。
如果你覺得這過程編寫代碼很枯燥,很無聊,建議你不要學(xué)編程了。
如果是零基礎(chǔ),打算自學(xué)編程,當(dāng)然建議選擇python。
建議題主直接采用python3進(jìn)行學(xué)習(xí),不要使用python2。
我實在想不出哪些推薦java的是咋想的,請不要誤人子弟,謝謝。
對零基礎(chǔ)入行的人來說,我建議學(xué)習(xí)前端開發(fā)。
總體來說學(xué)習(xí)計算機語言技術(shù)不是啥好的方向,累死你,要是非的學(xué)習(xí)計算機軟件,這些語言還遠(yuǎn)遠(yuǎn)不夠,php屬于web開發(fā),其它的屬于軟件設(shè)計,各種語言學(xué)習(xí)精通了也只不過是給別人打工,再精通些自己開發(fā)軟件售賣才是最賺錢的
我本身是學(xué)自動化的,在上學(xué)的時候?qū)W過C語言,但是不精通我想我能夠從我自身的角度回答你的問題,你是零基礎(chǔ),我是不精通,其實是可以畫約等于。
我認(rèn)為你應(yīng)該現(xiàn)學(xué)派森,因為拍森的語言它的語法不那么復(fù)雜,更接近于自然語言你不必理會過多的注意事項。事實上這些注意事項如果不是有多年的編程經(jīng)驗,你是很難保障程序可以順利編譯運行的,很多時候一個小小的細(xì)節(jié)都會讓抓狂
從應(yīng)用角度來說派森的應(yīng)用也越來越廣泛,很多大型的重要的應(yīng)用軟件都支持派森,而且應(yīng)用的領(lǐng)域也越來越多,從比較重要的人工智能領(lǐng)域網(wǎng)絡(luò)網(wǎng)站腳本應(yīng)用的層面越來越多所以我認(rèn)為學(xué)派森比較好
建議學(xué)習(xí)java,作為一門面向?qū)ο蟮恼Z言,它比C、C++更加簡單,易懂,然后它不像前端那么頻繁的變更,也不像C那么底層(略微枯燥),對python不是太了解,但是知道python做爬蟲非常好,做機器學(xué)習(xí)非常好,然后這些高大上的工作門檻一般都很高。
java就不一樣了,java有他們所有語言都沒有的優(yōu)勢,那就是低門檻,高需求,因為市場上大部門web項目都是用java開發(fā)的,不管是新開發(fā)、還是二次開發(fā)、項目維護(hù)都需要java開發(fā)者,所以java的市場需求量是最大的,工作崗位最多,當(dāng)然,學(xué)java的也非常多。
相對于其他語言,java網(wǎng)上能找到的學(xué)習(xí)資料也非常多,零基礎(chǔ)的,進(jìn)階的,免費的,收費的都有,從找工作和入門的角度,學(xué)習(xí)java是沒錯的。
我就是半路出道學(xué)習(xí)java的,學(xué)完之后陸陸續(xù)續(xù)換了幾份工作,這幾年學(xué)習(xí)編程的人越來越多,公司招聘的要求也越來越高,如果學(xué)習(xí)編程是為了找工作,要慎重,如果僅僅是興趣愛好,那就簡單了,根據(jù)你喜歡的方向選擇語言即可,比如python容易做爬蟲,機器學(xué)期,C語言偏計算機底層,C++可以做桌面應(yīng)用、游戲等,java可以做web應(yīng)用,php可以做網(wǎng)站等。
By the way,java是最好的計算機語言!
學(xué)習(xí)哪一門語言,都差不多,主要還是看你以后想從事什么類型的崗位
如果想從事前端,建議學(xué)習(xí) JS、HTML、CSS 等
如果想從事后端,建議學(xué)習(xí)Java
10
回答4
回答0
回答9
回答10
回答2
回答10
回答3
回答0
回答0
回答