更新時間:2019-10-25 11:19:12 來源:動力節點 瀏覽2894次
大道至簡,所以扎實有用的方法,其實都是很簡單的,難在踏踏實實的執行過程。今天為大家介紹的就是Java學習的8個看起來非常簡單的方法,快學起來吧。
為什么要學習Java?
Java是目前最流行的編程語言,主流公司框架基本上都離不開Java的影子,未來還會火很多年。Java應用范圍極其廣泛,無論在客戶端還是在服務端都有。
學習一門語言
語言有很多選擇,我已經將它們分成幾類,以便更容易做出決定。對于剛開始進入后端開發的初學者,我建議你選擇任何腳本語言,因為它們有很多功能,可以讓你快速起步。如果你有一些前端知識,你可能會發現Node.js更容易(還有一個很大的就業市場)。
如果你已經是后端開發并了解一些腳本語言,我建議不要選擇其他腳本語言,而是從「函數式(Functional)」或「多范式(Multiparadigm)」中選擇。例如,如果你已經在使用PHP或Node.js,請不要使用Python或Ruby,而應該嘗試使用Erlang或Golang。它一定會幫助你延伸思維,并將你的思想帶到新的視野。
練習你學到的東西
沒有比實踐更好的學習方式了。一旦你選擇了語言,并且對這些概念有了基本的了解,就可以使用它們,盡你所能制作盡可能多的小應用。下面是一些讓你開始的Idea:
在bash中實現一些你自己使用的命令,比如嘗試實現ls;
編寫一個獲取和保存reddit上/r/programming文章的命令,并保存為JSON;
編寫一個以JSON格式列出目錄結構的命令,例如jsonifydir-name返回一個帶有dir-name內部結構的JSON文件;
編寫一個讀取從上面的步驟得到的JSON的命令,并創建目錄結構;
考慮將每天做的一些任務,并嘗試將其自動化。
學習軟件包管理器
了解該語言的基礎知識并制作了一些示例應用之后,需要了解如何使用該語言的軟件包管理器,包管理器可幫助在應用程序中使用外部庫,并分發你自己的庫供其他人使用。
如果你選擇了PHP,你將學習的是Composer,Node.js有NPM或Yarn,Python有Pip,Ruby有RubyGems。無論選擇什么,請繼續學習如何使用其包管理器。
標準和最佳實踐
每種語言都有自己的標準和開發的最佳實踐,例如PHP有PHP-FIG和PSR,使用Node.js有許多不同的社區驅動指南,其他語言也有相同的指導。
安全
請務必閱讀有關安全的最佳實踐,閱讀OWASP指南并了解不同的安全問題以及如何以選擇的語言避免它們。
實踐
你已經掌握了語言、標準和最佳實踐的基礎知識,安全性以及如何使用軟件包管理器。現在開始創建一個包并分發給其他人使用,并確保遵循迄今為止學到的標準和最佳實踐。例如,如果您選擇了PHP,那么可以在Packagist上發布,如果選擇了Node.js,那么可以在Npm上發布,等等。
如果完成了,在Github上搜索一些項目,并在某些項目中提一些PR。下面是一些Idea:
重構并實現學到的最佳實踐
查看未解決的issue并嘗試解決
添加任何附加功能
了解測試
了解如何在應用程序中編寫單元測試和集成測試,另外,了解不同的測試術語,如mocks,stubs等
練習
為目前為止所做的實際任務編寫單元測試,尤其是步驟6中所做的練習。還要學習和計算編寫的測試的覆蓋率。
了解關系數據庫
了解如何將數據保存在關系數據庫中。在選擇要學習的工具之前,請先了解不同的數據庫術語,例如鍵,索引,規范化,元組等。
這里有幾個選項,但如果你學習一個,其的應該也是相當容易去學。你想學習的應該是MySQL,MariaDB和PostgreSQL。可以選擇MySQL。
PracticalTime
現在是時候把學到的東西拿來用了,使用迄今為止學到的所有內容創建一個簡單的應用程序。選擇任何一個idea,可以是創建一個簡單的博客,并實現其中的以下功能:
用戶帳戶——注冊和登錄
注冊用戶可以創建博客文章
用戶應該能夠查看他創建的所有博客文章
用戶應該能夠刪除他們的博客文章
確保用戶只能看到他的個人博客文章(而不能看其他人的)
編寫單元/集成測試
應該為查詢應用索引,分析查詢以確保索引有作用。
學習框架
根據選擇的項目和語言,可能需要也可能不需要框架。每種語言都有幾個不同的選項,繼續看看選擇的語言有哪些選項可供選擇,然后選擇一個。
如果選擇了PHP,我會建議使用Laravel或Symfony以及微架構(Lumen或Slim),如果你選擇Node.js,有幾種不同的選擇,但突出的是Express.js。
PracticalTime
將step10中創建的應用程序轉換為使用選擇的框架,還要確保移植包括測試在內的所有內容。
學習NoSQL數據庫
首先了解它們是什么,它們與關系數據庫有什么不同以及為什么需要它們。有幾種不同的選擇,稍微研究下看看,并比較它們的特點和差異。可以選擇的一些常用選項有MongoDB,Cassandra,RethinkDB和Couchbase,如果必須選擇一個,請使用MongoDB。
緩存
了解如何在應用程序中實現應用程序級緩存,了解如何使用Redis或Memcached,并在step12中創建的應用程序中使用緩存。
創建RESTfulAPI
了解REST并學習如何制作RESTfulAPI,在RoyFielding的文章中閱讀關于REST的部分,如果他們說REST只適用于HTTPAPI,那么確保你能夠與他人爭論。
了解不同的認證方法
了解不同的認證和認證方法,你應該知道他們是什么,有什么不同以及什么時候使用偏好。
OAuth—OpenAuthentication
BasicAuthentication
TokenAuthentication
JWT—JSONWebTokens
OpenID
消息代理
了解消息代理并了解何時以及為何使用它們。同樣有多種選擇,但突出的是RabbitMQ和Kafka,如果你想選擇一個的話,可以先從RabbitMQ開始。
搜索引擎
隨著應用程序的增長,關系數據庫或NoSQL數據庫的簡單查詢不能夠滿足要求,而不得不求助于搜索引擎。
了解如何使用Docker
無論是在復制與生產環境相同的環境,保持操作系統清潔或加快編碼、測試或部署,Docker可以在開發過程中大大方便工作,學習如何使用Docker。
Web服務器知識
如果你已經走到這么遠了,你可能已經在前面的步驟中使用了服務器,這一步主要是找出不同Web服務器之間的差異,了解限制和不同的可用配置選項,以及如何最好地利用這些限制編寫應用程序。
了解如何使用WebScoket
雖然不是必需的,但在工具帶中有這些知識是有益的,學習如何使用web-sockets編寫實時Web應用程序并使用它創建一些示例應用程序。可以在上面制作的博客應用程序中使用它來實現博客文章列表中的實時更新。
學習GraphQL
學習如何使用GraphQL制作API,了解它與REST的不同之處,以及它為什么被稱為REST2.0。
看看圖數據庫
圖模型代表了一種非常靈活的處理數據關系的方式,圖數據庫為其提供了快速高效的存儲、檢索和查詢方式,學習如何使用Neo4j或OrientDB。
繼續探索
一旦你開始學習和練習,你一定會遇到我們在這個路線圖中沒有涉及的東西,只要保持開放的心態和對新事物的渴望就好。
關鍵是要盡可能多地練習,起初你可能會覺得你并沒有抓住任何東西,但這是正常的,隨著時間的推移,你會覺得越來越好。
那如何學習才能快速入門并精通呢?
當真正開始學習的時候難免不知道從哪入手,導致效率低下影響繼續學習的信心。
但最重要的是不知道哪些技術需要重點掌握,學習時頻繁踩坑,最終浪費大量時間,所以有一套實用的視頻課程用來跟著學習是非常有必要的。
為了讓學習變得輕松、高效,今天給大家免費分享一套阿里架構師傳授的一套教學資源。幫助大家在成為架構師的道路上披荊斬棘。
想要領取資源的同學,可以到動力節點官網咨詢在線老師即可。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習