Rails 后端開發(fā)訓(xùn)練營(Beta)
時間:2023-05-25 02:51:02 | 來源:網(wǎng)站運營
時間:2023-05-25 02:51:02 來源:網(wǎng)站運營
Rails 后端開發(fā)訓(xùn)練營(Beta):
更新時間:2021 年 12 月 4 日 18:49:003 個月后的你,還想如如現(xiàn)在這樣碌碌無為嗎?
90 天,成功轉(zhuǎn)型為 Rails 開發(fā)工程師。
Ruby on Rails 是一個用于開發(fā)數(shù)據(jù)庫驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序的完整框架。從開發(fā)效率上來說,Rails 無疑是最快的。但是 Rails 的學(xué)習(xí)曲線相對陡峭。
本訓(xùn)練營將為你展示如何從零開始學(xué)習(xí) Rails,并且在實踐中讓你更加深入地理解基于 Rails 的網(wǎng)絡(luò)服務(wù)的開發(fā)過程。
90 天,成功轉(zhuǎn)型為 Rails 開發(fā)工程師,升職加薪不是夢。
課程要求
時間投入
90 天,每天 6 小時以上,總投入 700 小時以上。
認(rèn)為如果想深入掌握一門編程類的技術(shù),并且想以此為生,通常需要花費 1000 個小時左右。如果有行業(yè)前輩帶教,可以壓縮到 700 個小時左右。
Rails 后端開發(fā)訓(xùn)練營周期為 3 個月,如果你是現(xiàn)在還在上班,并且從事編程相關(guān)的工作,建議你每天至少投入 5 個小時,周末每天至少投入 10 個小時,這樣才能保證 200+小時的投入。堅持三個月,也就是 700 個小時左右, 基本上就可以成為合格的 Rails 后端初級開發(fā)工程師了。
如果你是編程小白,1000 個小時是遠(yuǎn)遠(yuǎn)不夠的,至少需要 1500 個小時甚至更多,可能需要 6 個月左右的時間。在沒有教練帶教和生活壓力的強迫下,基本上兩個月內(nèi)就放棄了。
每日要求
學(xué)習(xí)編程,需要長期持續(xù)的投入,與人性做斗爭。我對學(xué)員的最基本要求如下:
- 日計劃
- 學(xué)習(xí)時間 >= 5 小時
- 500 字以上技術(shù)博客
- 算法題、每日一題
做日計劃的目的是養(yǎng)成時間管理的好習(xí)慣。學(xué)習(xí)時間大約 5 個小時,是為了在短期內(nèi)讓學(xué)員能夠更好地學(xué)習(xí),更好地掌握編程技術(shù),記住是每天都大于 5 個小時,不是平均值。每天至少寫一篇 500 字以上的技術(shù)博客, 通過輸出技術(shù)博客,讓學(xué)員養(yǎng)成寫作習(xí)慣,同時總結(jié)學(xué)習(xí)過程中的經(jīng)驗和教訓(xùn),最終提供輸出倒逼輸入。
優(yōu)秀的后端程序員算法能力都不差。算法差的程序員都都不能稱為優(yōu)秀的后端程序員,不接受反駁。
學(xué)習(xí)是一項反人性的活動,大部分人堅持不下來,所以機(jī)會總是留給少數(shù)人的。如果你想轉(zhuǎn)型為
Rails 后端開發(fā)工程師,可以私信我,我會給你免費設(shè)計學(xué)習(xí)計劃,三個月 90 天,每天 5 小時以上,掌握 Rails 后端開發(fā),快速轉(zhuǎn)型為 Rails 后端開發(fā)工程師,搞定升職加薪。臨淵羨魚,不如退而結(jié)網(wǎng)。
課程設(shè)計思路
本課程充分利用互聯(lián)網(wǎng)已有的知識,但是更系統(tǒng)化體系化。讓學(xué)員把知識串聯(lián)起來。課程基于 MVP 模式,持續(xù)迭代改進(jìn),不求最全,只求最貼合企業(yè)實際需求。
- 根據(jù)實際工作要求,深度打磨課程體系
- 不只是停留在語言層面,幫學(xué)員建立系統(tǒng)大局觀;
- 厘清知識與知識之間的關(guān)系,培養(yǎng)學(xué)員解決問題的能力;
- 貼合工作場景,分享真實的干貨案例。
課程安排
每個人的基礎(chǔ)不一樣,下面是主線任務(wù)。教練會根據(jù)每個學(xué)員的學(xué)習(xí)進(jìn)度,可以調(diào)整課程安排。根據(jù)學(xué)員實際情況,有針對性的調(diào)整課程安排。主要包括一下 13 個部分 (可能還會調(diào)整):
第一部分:Ruby 基礎(chǔ)課
Rails 后端開發(fā)訓(xùn)練營的第一課就是 Ruby 基礎(chǔ)課,這是基于我多年的帶教經(jīng)驗教學(xué)刻意安排的。如果你擁有別的編程語言的基礎(chǔ),如果不經(jīng)過一段時間的 Ruby 基礎(chǔ)練習(xí),你可能會寫出 Java、Python 風(fēng)格的 Ruby 代碼,這會限制你快速稱為一名合格的 Rails 后端工程師。
Ruby 是一門語法相對規(guī)整又及其靈活的編程語言,初步掌握 Ruby,會大大縮短學(xué)習(xí) Rails 的時間。
Ruby 基礎(chǔ)課不僅要求掌握 Ruby 基礎(chǔ),下面的技能點也是要必須掌握的:
- Markdown、VS Code
- Ruby、HTML、CSS
- Git、GitHub/Gitee
第二部分:數(shù)據(jù)庫基礎(chǔ)課
后端開發(fā)工程師的核心技能之一:數(shù)據(jù)庫設(shè)計,本部分從最基礎(chǔ)的 SQL 講起,并使用最簡單的關(guān)系型數(shù)據(jù)庫 SQLite 開展教學(xué)。
SQLite 是一門上手難度最低的關(guān)系型數(shù)據(jù)庫,即使你會使用 MySQL、PostgreSQL 等其他數(shù)據(jù)庫,也建議你先學(xué)習(xí) SQLite,補齊 SQL 技能。
本部分要求你通過 SQLite 掌握大部分常用的 SQLite 語句,而不是僅會 CRUD 操作。同時還要求你學(xué)會 Ruby 中使用 sqlite3 gem 完成 SQLite 數(shù)據(jù)庫操作。
最后也是本課程的核心就是學(xué)會使用 activerecord,這是 rails 內(nèi)置的 ORM 框架。請務(wù)必完成如下內(nèi)容的學(xué)習(xí):
- Active Record 基礎(chǔ)
- Active Record 遷移
- Active Record 數(shù)據(jù)驗證
- Active Record 回調(diào)
- Active Record 關(guān)聯(lián)
- Active Record 查詢接口
第三部分:Rails 基礎(chǔ)課
基于《Ruby on Rails 教程(原書第 6 版)》一書,并且使用最新的 Rails 7 開發(fā),從零到一熟悉 Rails 開發(fā)項目流程和基礎(chǔ)知識。
- Rails 7 安裝
- 使用 Rails 開發(fā)一個輕博客網(wǎng)站
由于我們在第一部分已經(jīng)安裝了 Rails 開發(fā)環(huán)境,不管是本地環(huán)境還是云環(huán)境。所以建議僅看看第一章即可,其他章節(jié)請認(rèn)真自行練習(xí)。
在基于《Ruby on Rails 教程(原書第 6 版)》練習(xí)過程中,可以結(jié)合 Rails 指南 學(xué)習(xí),英文閱讀能力強的可基于最新版 Rails Guides 學(xué)習(xí)。
如果遇到測試和部署相關(guān)的內(nèi)容,可以先跳過,不是說測試和部署不重要,只是為了方便學(xué)習(xí),先掌握 Rails 基礎(chǔ)知識,后續(xù)專項提升測試和部署能力。
第四部分:后端開發(fā)數(shù)據(jù)庫進(jìn)階課
企業(yè)真實的 Rails 項目,由于業(yè)務(wù)量大, SQLite 數(shù)據(jù)庫不適合企業(yè)級項目開發(fā),所以我們需要一個性能和特性都符合企業(yè)級別的數(shù)據(jù)庫,通常來說也就兩個選擇:PostgreSQL 和 MySQL。
不過 Rails 項目更喜歡使用 PostgreSQL,因為它更加穩(wěn)定,更加安全,更加高效,更加可靠,特性也更加豐富。本部分主要學(xué)習(xí) PostgreSQL 相關(guān)的知識。當(dāng)你掌握了 PostgreSQL 后,只需要花費很少的時間就能掌握 MySQL。總體來說,只需要精通一個即可。
注:如果你有 MySQL 基礎(chǔ),就持續(xù)打磨 MySQL 相關(guān)技能。
第五部分:Rails 開發(fā)實戰(zhàn)課
當(dāng)你學(xué)習(xí)到這一部分時,你已經(jīng)掌握了 Rails 的基礎(chǔ),也掌握了 MySQL 或 PostgreSQL,但是如何結(jié)合起來使用,就是本講的重點。企業(yè)級項目開發(fā),需要一個穩(wěn)定的數(shù)據(jù)庫,而且數(shù)據(jù)庫的特性也要求高,這樣才能滿足企業(yè)級項目的要求。
對于 Rails 后端開發(fā)工程師來說,安全、測試、部署、性能都是要考慮的問題。由于企業(yè)項目通常都是多人協(xié)作開發(fā),在實現(xiàn)業(yè)務(wù)功能的同時又要考慮代碼質(zhì)量。你要認(rèn)識到:代碼首先是給人閱讀的,然后才是讓機(jī)器運行的。
第六部分:Rails 前端基礎(chǔ)課
Rails 開發(fā)者,通常前后端都要做。但是初期來說,后端為主,前端也不能落下。所以,我們需要一個前端基礎(chǔ)課,特別是針對 Rails 開發(fā)者的。
第七部分:NoSQL 基礎(chǔ)課(Redis)
SQLite 和 PostgreSQL 都是關(guān)系型數(shù)據(jù)庫。隨著項目業(yè)務(wù)的復(fù)雜,有些項目可能需要使用 NoSQL 數(shù)據(jù)庫,比如 MongoDB,Redis 等。
Redis 是一個高性能的鍵值數(shù)據(jù)庫,它支持各種各樣的數(shù)據(jù)類型,比如字符串、數(shù)字、列表、集合、有序集合等等。對于 Rails 開發(fā)者來說,Redis 還可用于消息隊列和實時通信。
第八部分:NoSQL 基礎(chǔ)課(MongoDB)
MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB 是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。
本部分主要學(xué)習(xí) MongoDB 的相關(guān)知識,以及如何在 Rails 項目中使用這些數(shù)據(jù)庫。
第九部分:Linux 和 Shell 進(jìn)階課
Rails 后端開發(fā)工程師通常兼任系統(tǒng)管理員,這時候你需要掌握 Linux 和 Shell 的進(jìn)階知識。
第十部分:Docker Rails 開發(fā)課
Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 既可以用于開發(fā)環(huán)境,也可以用于生產(chǎn)環(huán)境。通過 Docker 這種輕量虛擬化技術(shù),可以簡地開發(fā)和部署的成本。
第十一部分:實用 Gem 實戰(zhàn)課
在實際的后端開發(fā)過程中,我們需要使用到很多 Rails 之外的 Gem 庫,比如 devise 和 cancancan 等,這些 gem 庫都是非常有用的,但是它們的使用方式可能比較復(fù)雜,這里就提供了一些實用的 Gem 實戰(zhàn)課。
第十二部分:項目開發(fā)實戰(zhàn)課
搭建 Rails 模板項目,便于快速基于 Rails 開發(fā)項目。搭建一個完整的項目,并且實現(xiàn)一個有實際意義的網(wǎng)站。
第十三部分:面試輔導(dǎo)課
優(yōu)化簡歷,模擬面試場景,搞定滿意的工作。