<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          java開發(fā),入職半年。對未來迷茫,如何發(fā)展?

          共 4777字,需瀏覽 10分鐘

           ·

          2020-08-26 18:00


          全文?4578?個字

          閱讀約需?12?分鐘



          這篇文章總結(jié)于我們公司十三位使用Java作為開發(fā)語言的程序員前輩,方方面面近四千字。

          ?

          作為十大編程語言榜首的Java,真的太多人學(xué)也有太多要學(xué)的東西了,以至于后臺總有人問Java該怎么學(xué),甚至還有具體問編程問題的。

          ?

          乘此機會,整理Java程序員的從入門到精通之路,分享一下這么多年來我們公司Java程序員的學(xué)習心得。

          ?

          為了這篇文章,我是費盡口舌,軟磨硬泡收集到信息之后,又花了一整個星期才終于寫完。

          ?

          內(nèi)容框架如下:

          ?

          1.職業(yè)規(guī)劃

          2.學(xué)習安排

          3.實操技巧


          這一點專門針對大多數(shù)人所說的「大部分時間都在寫著重復(fù)的業(yè)務(wù)代碼,感覺成長很低」這一問題。

          ?

          ?

          一,職業(yè)規(guī)劃

          ?

          職業(yè)道路該怎么走?

          ?

          因為題主已經(jīng)明確了自己想要成為「真正的java開發(fā)工程師」,所以這里只介紹Java相關(guān)的職業(yè)規(guī)劃。

          ?

          Java這門語言可以發(fā)展的方向很多,如果想走開發(fā)這一條路的話,至少有七種選擇:

          ?

          傳統(tǒng)領(lǐng)域:

          后端開發(fā):Java、Shell、Python、SQL

          全棧開發(fā):Java、HTML、CSS、JavaScript、Shell、Python、SQL、PHP

          移動開發(fā):Java、C、C++、Python

          游戲開發(fā):Java、 C#、C++

          ?

          新興領(lǐng)域:

          AR/VR:Java 、C#,、C++

          物聯(lián)網(wǎng):Java、C、Python

          計算機視覺:java、C++ 、Python

          ?

          本文不做其他編程語言的發(fā)展道路以及非開發(fā)道路的職業(yè)分析,如果感興趣的話,可以移步作者的另外一篇文章,里面有非常詳細的介紹。


          計算機專業(yè)學(xué)什么語言好找工作?

          ?

          了解完了一門語言可能的職業(yè)發(fā)展方向之后,你就可以根據(jù)你的個人喜好以及當下情況,選擇不同的方向鉆研。

          ?

          因為你的人生是你自己的,我只能給你提供道路,沒辦法幫你選擇。所以第一步,我只能幫你到這里了。

          ?

          ?

          二,學(xué)習規(guī)劃

          ?

          通過上面的分析,你可以看到,不管你走哪條道路,你都不能只會一門編程語言,也就是說「真正的java開發(fā)工程師」不能只會用Java,你必須得會一些其他輔助性的語言。

          ?

          所以,關(guān)于學(xué)習規(guī)劃,我會分為下面三個部分來講:

          ?

          1.編程通用知識

          2.Java的學(xué)習步驟

          3.其他編程語言的學(xué)習

          ?


          編程通用知識:

          ?

          每一個知識點后面,我都放了一門推薦課程,如果自覺掌握扎實,可以跳過。

          ?

          算法

          ?

          算法導(dǎo)論-麻省理工:

          https://www.bilibili.com/video/BV1Tb411M7FAfrom=search&seid=12004933714620194673

          ?

          編譯原理

          ?

          編譯原理-哈工大:

          https://www.bilibili.com/video/BV1zW411t7YEfrom=search&seid=7656665281813628810

          ?

          ?

          數(shù)據(jù)結(jié)構(gòu)

          ?

          數(shù)據(jù)結(jié)構(gòu)-浙江大學(xué)

          https://www.bilibili.com/video/BV1JW411i731from=search&seid=5548436889164823839

          ?

          操作系統(tǒng)

          ?

          計算機操作系統(tǒng)精講-華中科技大學(xué)

          https://www.bilibili.com/video/BV1Wb411H7Gefrom=search&seid=4742768788475129453

          ?

          網(wǎng)絡(luò)原理


          計算機網(wǎng)絡(luò)原理 -哈爾濱工業(yè)大學(xué)

          https://www.bilibili.com/video/BV1gb411k7gdfrom=search&seid=5937420088890690226


          (以上課程均為 B 站鏈接)

          ?

          很多人都會問,學(xué)這些有什么用?我編程又用不到。

          ?

          這里我舉個例子,都說學(xué)習就像蓋房子,而基礎(chǔ)學(xué)習就是打地基,沒有地基能不能蓋房子?當然可以!

          ?

          但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。

          ?

          所以,為了你之后的學(xué)習更順暢,一定要耐著性子哪怕逼自己也要把這一塊給啃下來。

          ?

          這直接決定了你之后的發(fā)展高度。

          ?


          Java的學(xué)習步驟

          ?

          這一塊分為學(xué)什么以及怎么學(xué)兩部分。

          ?

          學(xué)什么

          ?

          1.語言基礎(chǔ)

          ?

          說白了,就是學(xué)習這門語言的基本語法。

          ?

          需要注意一點的是學(xué)習Java語言基礎(chǔ)的時候,一定要多動手,不要覺得自己理解了就跳過去了。不然等你真的要實操的時候,你會發(fā)現(xiàn)有很多細節(jié)是你之前忽略了的,而這些細節(jié)阻礙了你的整個編程。

          ?

          下面是推薦的一些書籍以及課程:

          ?

          書籍:《Head First Java》《Java核心技術(shù)》

          ?

          視頻:

          Java零基礎(chǔ)教程視頻——

          https://www.bilibili.com/video/BV1Rx411876f?from=search&seid=15227919425633671150

          ?

          學(xué)到最后,你能掌握下面這些知識就夠了:


          ?

          ?

          ?

          2.進階學(xué)習

          ?

          1.多線程高并發(fā)

          ?

          推薦課程:

          馬士兵2020年最新Java多線程高并發(fā)講解:

          https://www.bilibili.com/video/BV1xK4y1C7aT?from=search&seid=16473881755082685982

          ?

          2.Web開發(fā)

          它們的學(xué)習順序應(yīng)該是從上到下,因此最先學(xué)習的應(yīng)該是前端開發(fā)的HTML/CSS/JS三種語言。

          ?

          推薦課程:

          HTML5+CSS+JS全方面解析

          https://www.bilibili.com/video/BV1ds411r7o7?from=search&seid=5914830773101836336

          ?

          學(xué)完這方面的內(nèi)容后,你可以試著自己寫一些頁面。要求是盡量做的漂亮一點。

          ?

          接下來,你需要學(xué)習的是Servlet/JSP(J2EE)部分,這部分是Java后端開發(fā)必須非常精通的部分,因此這部分是這三部分中最需要花精力的。

          ?

          Servlet和JSP

          https://www.bilibili.com/video/BV16t411Z7tA?from=search&seid=7816585874651535099

          ?

          還是那句話,一定要多動手。

          ?

          3. 數(shù)據(jù)庫使用

          ?

          你需要學(xué)會使用數(shù)據(jù)庫,mysql是個不錯的入門選擇,而且Java領(lǐng)域里主流的關(guān)系型數(shù)據(jù)庫就是mysql。這部分一般在你學(xué)習Servlet/Jsp的時候,就會接觸到的,其中的JDBC部分就是數(shù)據(jù)庫相關(guān)的部分。你不僅要學(xué)會使用JDBC操作數(shù)據(jù)庫,還要學(xué)會使用數(shù)據(jù)庫客戶端工具,比如navicat,sqlyog,二選一即可。

          ?

          MySQL 基礎(chǔ)+高級篇- 數(shù)據(jù)庫-sql -尚硅谷

          https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=11418667468726396464


          4、開發(fā)框架


          ?

          ?

          開發(fā)過程中一般為了提高效率,會使用一些JavaWeb框架,而這也是你需要掌握的。

          ?

          目前比較主流的是SSM框架,即spring、springmvc、mybatis。

          ?

          學(xué)習這個框架,經(jīng)常接觸到一個叫maven的工具,這個工具也是你以后工作當中幾乎是必須要使用的工具。所以在你學(xué)習搭建SSM之前,可以先了解一下maven的知識,不需要太深入,只要大概即可,進一步的學(xué)習可以邊用邊學(xué)。

          ?

          至于學(xué)習三個框架的搭建,你一定要可以快速的利用它們?nèi)齻€搭建出一個Web框架。

          ?

          推薦課程:

          mybatis-spring-springmvc-Java一站式學(xué)習

          https://www.bilibili.com/video/BV1mE411X7yp?from=search&seid=15801924176319161348

          ?

          學(xué)完之后,你可以嘗試著做一個簡單的增刪查改的Web項目,檢驗學(xué)習成果。

          ?

          ?

          其他編程語言的學(xué)習

          ?

          作為一個程序員,不可能靠一種語言走遍天下。所以你還要拓展至少一種其他語言。

          至于,精通python之后的編程語言該如何選擇,首先就得看你自己的工作需要。

          ?

          或者,你可以參考下面的這篇文章。

          ?

          ?計算機專業(yè)學(xué)什么語言好找工作?


          ?

          怎么學(xué)?


          每個人的學(xué)習方法都不一樣,有的人喜歡邊做項目邊學(xué)習,有的人則喜歡學(xué)一段時間做一個項目,有的人喜歡看書學(xué),有的人喜歡看視頻學(xué),這些都不是問題,重要的是找到適合你自己的。


          但下面這幾點,最好還是不要去做了,因為我?guī)Я诉@么多人,敢這樣做的都是事倍功半,結(jié)果慘不忍睹。


          1.一味的對著別人的代碼去敲。


          剛開始不會做只有跟著別人敲,這不是問題,問題是跟著別人敲了之后你要自己理解自己記憶把它變成自己的東西。照著別人代碼敲一遍兩遍哪怕三遍,除了讓你看得仔細點,練了打字外并沒有其它任何幫助。


          因為模仿復(fù)現(xiàn)不是關(guān)鍵,思考才是關(guān)鍵。你要能做到思考學(xué)習別人思路后,脫離書本和博客,完全自己實現(xiàn)功能。只有這樣,你的學(xué)習才是有效的。


          2.想著一口氣吃成個胖子


          這一塊的情況稍微少見,但也不是沒有,有的人急于求成,學(xué)習只學(xué)個大概只求個會用,沒有做到知其然還知其所以然。


          一個典型的例子,我兩年前帶的應(yīng)屆生,北京一所高校來的。當時他做的那部分出了點問題,我就推薦了一本書給他,讓他看完后把這個問題解決,因為不是很急,我說一個星期搞定就行了。結(jié)果兩天后,他就跑過來跟我說書看完了,問題也解決了。我問他怎么做的,他說他看了個大概后直接照著書上做了。


          技術(shù)這玩意兒,不是看了個大概能照著做就會了,一口氣吃不成個胖子,必須得扎扎實實地把事情做好。所以不要試圖一次性解決所有問題,這里給個建議:可以將每天的學(xué)習過程拆分成小塊,分階段學(xué)習,這樣的效率會更高些。


          說完了第一點如何學(xué)習基礎(chǔ)知識,接下來說說第二點如何鞏固基礎(chǔ)知識。方法千千萬,最有效的我認為還是刷題,有方法的刷題。


          下面這個刷題方法很普通但也很實用,推薦給你:


          第一遍:可以先思考,之后看參考答案刷,結(jié)合其他人的題解刷。思考、總結(jié)并掌握本題的類型,思考方式,最優(yōu)題解。


          第二遍:先思考,回憶最優(yōu)解法,并與之前自己寫過的解答作比對,總結(jié)問題和方法。


          第三遍:提升刷題速度,拿出一個題,就能夠知道其考察重點,解題方法,在短時間內(nèi)寫出解答。


          在這里,給大家推薦兩本書還有一些學(xué)習網(wǎng)站,能夠讓大家學(xué)得更輕松些。

          ?

          ?

          三,實操技巧

          ?

          這一點專門針對題主所說的「大部分時間都在寫著重復(fù)的業(yè)務(wù)代碼,感覺成長很低」這一問題。

          ?

          如何找項目練手:

          ?

          1.做一些實操性強的個人項目,自己練練手

          田納西大學(xué)助理教授奧斯汀·亨利結(jié)合自身經(jīng)驗,給出了一份“程序員都應(yīng)該嘗試的挑戰(zhàn)性項目”清單,包含下面六個項目,我之前做了一遍覺得還不錯,推薦給大家:


          • 文本編輯器
          • 2D游戲-太空侵略者
          • 編譯器-Tiny BASIC
          • 迷你操作系統(tǒng)
          • 電子表格
          • 電子游戲機模擬器

          每一個項目都存在不同的挑戰(zhàn),比如文本編輯器就要求在不使用GUI框架中內(nèi)置的文本框組件的情況下,搭建支持光標移動、選擇、插入和刪除操作的文本框并將文本文檔存儲在內(nèi)存中。

          如果你能解決掉這些項目中的這些問題,然后把項目獨立完整的做出來并且運行成功,你的能力肯定能再上一個臺階。

          2.寫技術(shù)文章

          大家想必都知道費曼技巧,這也是其中的一種應(yīng)用了,把你自己弄懂的東西教給別人,讓別人也能看懂,在這個過程中你肯定還是要把一個完整的項目給做出來的,一整套下來,你會將自己理解的東西掌握的更透徹更深入。

          也算是一種不錯的實操方式了,能讓你的基礎(chǔ)更加牢固。

          3.接一些開發(fā)兼職

          這是三種方法中實操性最強的一種了,沒有之一。

          而且不用說,這也是最快最有效的方法了,畢竟編程這件事,光有理論是不夠的,動手實踐才是關(guān)鍵也是最終目的。

          但兼職也有很多坑很多小門道,你首先得注意項目是不是靠譜,像那種沒有需求文檔的就不要接了。



          End



          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色婷婷五月 | 久久久久久久久久久久久性性 | 国产激情视频网 | 91成人视频18 | 牛牛精品一区二区 |