教程怎么學(xué)才有用?三大系統(tǒng)對比與高效學(xué)習(xí)路徑指南)
前幾天有個(gè)朋友問我APP開發(fā)教程到處都是到底有什么作用是不是照著敲一遍就會(huì)了說實(shí)話這個(gè)問題看著簡單但真把它想明白的人不多。很多人把教程當(dāng)成抄代碼的說明書打開一個(gè)視頻照著把界面搭出來就覺得自己學(xué)會(huì)了。結(jié)果換一個(gè)需求依然無從下手。我自己的體會(huì)是APP開發(fā)教程的價(jià)值從來不在代碼本身而在于幫你建立一套從想法到上架的完整認(rèn)知。三大系統(tǒng)——Android、iOS、鴻蒙HarmonyOS——各有各的開發(fā)語言、框架體系和設(shè)計(jì)規(guī)范教程的形式和側(cè)重點(diǎn)也完全不同。這篇指南會(huì)把教程的作用拆開講清楚也會(huì)聊聊怎么選、怎么下載、怎么學(xué)才能真的把教程吃透而不是囤灰。如果你正準(zhǔn)備入行移動(dòng)開發(fā)或者已經(jīng)在學(xué)但總覺得學(xué)了個(gè)寂寞這篇文章應(yīng)該能幫你省下不少瞎撞的時(shí)間。下面直接進(jìn)入正題。1. 先搞明白APP開發(fā)教程到底在教你什么很多新手對教程的預(yù)期是錯(cuò)的以為教程等于手把手教我把這個(gè)App寫出來。這個(gè)預(yù)期不能說完全不對但它把教程的價(jià)值縮小了太多。一份完整的APP開發(fā)教程至少包含四個(gè)層次的內(nèi)容你只有把四個(gè)層次都吃透才算真正學(xué)會(huì)。1.1 教程內(nèi)容的四個(gè)層次語法、框架、規(guī)范、鏈路第一層是語法層。Android主流的開發(fā)語言是KotliniOS是Swift鴻蒙是ArkTS。這一層解決的是這門語言長什么樣、有哪些基礎(chǔ)語法、怎么寫一個(gè)函數(shù)、怎么處理異常的問題。如果完全沒有編程經(jīng)驗(yàn)這一層會(huì)占掉入門階段大部分時(shí)間如果有其他語言基礎(chǔ)這一層更多是熟悉差異通常一兩周就能過一遍。第二層是框架層。有了語言基礎(chǔ)下一步是學(xué)會(huì)用系統(tǒng)給你的腳手架蓋房子。Android有Jetpack組件體系和XML或Compose布局iOS有SwiftUI和UIKit鴻蒙有ArkUI聲明式框架。這一層教你界面怎么搭、頁面之間怎么跳轉(zhuǎn)、列表怎么加載、狀態(tài)怎么管理。這是教程內(nèi)容占比最大的一部分也是最容易讓人產(chǎn)生我好像會(huì)了錯(cuò)覺的部分——因?yàn)檎罩媒缑嬲娴哪芘艹鰜?。第三層是?guī)范層這是最容易被忽略、但性價(jià)比極高的一層。每個(gè)系統(tǒng)都有自己的一套交互規(guī)范和設(shè)計(jì)語言Android的Material DesigniOS的人機(jī)交互準(zhǔn)則鴻蒙的自有設(shè)計(jì)規(guī)范。教程里關(guān)于規(guī)范的內(nèi)容看似零散——按鈕多大、字體多小、權(quán)限怎么向用戶解釋、后臺(tái)任務(wù)怎么申請——但它們直接決定了你的App像個(gè)正規(guī)軍還是野路子。我見過不少開發(fā)者代碼能力沒問題但提交應(yīng)用商店審核時(shí)因?yàn)闄?quán)限描述不清、界面元素過小之類的原因被退回這些恰恰是教程規(guī)范層講過的內(nèi)容。第四層是鏈路層。代碼寫完了不等于App誕生了。教程還會(huì)覆蓋構(gòu)建打包、調(diào)試工具、性能分析、簽名證書、上架發(fā)布這一整條鏈路。這一層的內(nèi)容平時(shí)用不上但真到你要發(fā)版、要做內(nèi)測、要處理崩潰日志時(shí)沒有它寸步難行。1.2 好教程和壞教程的分水嶺在哪判斷一份教程好壞我有一個(gè)很樸素的標(biāo)準(zhǔn)它有沒有回答為什么。壞教程的典型畫像是照抄式教學(xué)打開IDE建工程拖一個(gè)按鈕寫一行點(diǎn)擊事件運(yùn)行完事。你跟著做一遍界面出來了但你不明白為什么要這么做換一個(gè)場景直接抓瞎。好教程會(huì)停下來解釋設(shè)計(jì)的取舍。同樣是講登錄頁面好教程除了教你放兩個(gè)輸入框和一個(gè)按鈕還會(huì)講輸入校驗(yàn)怎么寫、登錄狀態(tài)怎么保持、Token過期了怎么辦、弱網(wǎng)環(huán)境下用戶點(diǎn)了登錄按鈕應(yīng)該給什么反饋。這些內(nèi)容不會(huì)讓界面更好看但會(huì)讓你的App更像一個(gè)真正能上線的產(chǎn)品。所以我在看教程時(shí)會(huì)先跳過代碼部分直接看它怎么解釋為什么。如果一份教程全篇都是接下來我們這樣做沒有任何之所以這樣做是因?yàn)槟撬m合當(dāng)速查手冊不適合當(dāng)學(xué)習(xí)材料。2. 三大系統(tǒng)教程差異拆解Android、iOS與鴻蒙三大系統(tǒng)的教程不能一套思路打天下。很多人在A系統(tǒng)上學(xué)到的經(jīng)驗(yàn)?zāi)玫紹系統(tǒng)里直接套結(jié)果到處碰壁。這不是你笨是這三大系統(tǒng)從語言到哲學(xué)本來就不一樣教程的內(nèi)容側(cè)重自然也完全不同。2.1 Android教程的側(cè)重開放生態(tài)、機(jī)型適配與Kotlin轉(zhuǎn)型Android教程最花篇幅的地方往往不是基礎(chǔ)語法而是適配。Android設(shè)備品牌多、屏幕尺寸多、系統(tǒng)版本分散教程會(huì)用大量內(nèi)容教你處理屏幕適配、不同廠商ROM的兼容問題、低內(nèi)存設(shè)備的表現(xiàn)差異。你在模擬器上跑得好好的換一臺(tái)千元機(jī)就卡頓、閃退這是Android開發(fā)者獨(dú)有的功課。語言方面近兩年的新教程基本全面轉(zhuǎn)向Kotlin但網(wǎng)上還殘留大量基于Java的老教程。如果你是零基礎(chǔ)直接學(xué)Kotlin就好不必先學(xué)Java再轉(zhuǎn)Kotlin省掉無謂的反復(fù)。教程里另一個(gè)高頻內(nèi)容塊是Jetpack組件庫這相當(dāng)于官方推薦的Android標(biāo)準(zhǔn)開發(fā)范式學(xué)會(huì)了它你在代碼里看到Lifecycle、ViewModel、Room這些名詞才不會(huì)發(fā)怵。2.2 iOS教程的側(cè)重設(shè)計(jì)規(guī)范、閉環(huán)體驗(yàn)與SwiftiOS教程的核心詞是體驗(yàn)。因?yàn)閕OS生態(tài)相對封閉設(shè)備型號(hào)有限適配壓力小很多教程于是把重點(diǎn)放在交互細(xì)節(jié)和設(shè)計(jì)規(guī)范上——頁面轉(zhuǎn)場怎么過渡、列表滾動(dòng)性能怎么優(yōu)化、動(dòng)畫怎么做到跟手、觸控反饋怎么設(shè)計(jì)。這套東西學(xué)起來不像寫代碼倒更像學(xué)產(chǎn)品設(shè)計(jì)但對做出手感好的App特別重要。語言上Swift的學(xué)習(xí)曲線比Kotlin略陡協(xié)議導(dǎo)向編程、可選類型這些概念需要一點(diǎn)適應(yīng)時(shí)間。iOS教程還會(huì)花相當(dāng)篇幅講證書、簽名、打包流程因?yàn)閕OS應(yīng)用上架要走應(yīng)用商店審核整個(gè)發(fā)布鏈路比Android更繁瑣。教程里這部分內(nèi)容看起來枯燥但跳過的后果很直接——開發(fā)完裝不到真機(jī)上連調(diào)試都進(jìn)行不下去。2.3 鴻蒙教程的側(cè)重分布式能力、ArkTS與一次開發(fā)多端部署鴻蒙系統(tǒng)的教程是三大系統(tǒng)里更新最快、體系化程度仍在快速完善的。它的語言ArkTS脫胎于TypeScript的語法風(fēng)格如果你有前端基礎(chǔ)上手會(huì)非常順暢沒有的話把它當(dāng)一門新語言學(xué)也不難。鴻蒙教程最獨(dú)特的內(nèi)容是分布式能力這也是它和其他兩個(gè)系統(tǒng)差異最大的地方。一個(gè)應(yīng)用可以同時(shí)運(yùn)行在手機(jī)、平板、智慧屏等多類設(shè)備上還能實(shí)現(xiàn)跨設(shè)備調(diào)用——教程里會(huì)有大量篇幅演示這些場景比如一個(gè)音樂App怎么從手機(jī)無縫續(xù)播到智慧屏。另外一次開發(fā)多端部署也是高頻主題它教你用同一套代碼適配不同屏幕形態(tài)的設(shè)備。學(xué)習(xí)鴻蒙教程時(shí)的最大挑戰(zhàn)是版本迭代快API變化頻繁。我建議以官方最新文檔為準(zhǔn)選擇近半年內(nèi)更新的教程半年前的教學(xué)視頻都可能用了已經(jīng)被廢棄的接口。2.4 三大系統(tǒng)怎么選一張對比表直接看清如果你還沒確定主攻方向看這張表基本能有個(gè)數(shù)對比維度AndroidiOS鴻蒙開發(fā)語言Kotlin主流SwiftArkTS核心IDEAndroid StudioXcodeDevEco Studio界面框架Jetpack Compose / XMLSwiftUI / UIKitArkUI發(fā)布門檻相對低應(yīng)用市場審核周期較短高審核嚴(yán)格鏈路繁瑣中等應(yīng)用市場審核流程持續(xù)完善中學(xué)習(xí)重點(diǎn)機(jī)型適配、組件化、性能調(diào)優(yōu)設(shè)計(jì)規(guī)范、交互體驗(yàn)、發(fā)布流程分布式能力、多端適配、聲明式UI適合人群想快速上架、接觸真實(shí)設(shè)備碎片化問題的開發(fā)者注重產(chǎn)品細(xì)節(jié)、愿意在設(shè)計(jì)和體驗(yàn)上下功夫的開發(fā)者看好多設(shè)備協(xié)同方向、有前端基礎(chǔ)的開發(fā)者我的建議是不要三線并進(jìn)。先選一個(gè)作為主戰(zhàn)場做到能獨(dú)立上架一個(gè)App再橫向拓展。三個(gè)系統(tǒng)的框架思維是相通的把一門學(xué)深了第二門會(huì)快很多。3. 教程下載與篩選的正路別讓資源變成收藏夾里的化石下載這個(gè)動(dòng)作本身沒有技術(shù)含量有技術(shù)含量的是知道從哪里下、下什么、怎么篩。這年頭免費(fèi)資源多得讓人眼花繚亂真正的問題反而是選擇太多。3.1 官方文檔是第一優(yōu)先級(jí)沒有之一任何系統(tǒng)的官方開發(fā)者文檔都應(yīng)該排在所有教程之前。它的最大優(yōu)勢不是免費(fèi)而是和當(dāng)前版本同步。市面上的書和視頻課程有制作周期出版那一刻就已經(jīng)滯后了官方文檔卻是跟著系統(tǒng)版本實(shí)時(shí)更新的里面的API用法、示例代碼、遷移說明都是最新狀態(tài)??垂俜轿臋n的正確姿勢也不是從頭到尾讀而是帶著問題查。學(xué)UI框架時(shí)遇到一個(gè)組件不懂就直接查它的接口定義和官方示例做網(wǎng)絡(luò)請求時(shí)先看官方推薦的網(wǎng)絡(luò)庫和最佳實(shí)踐。文檔適合當(dāng)工具書不適合當(dāng)小說。值得多提一句的是文檔里的示例工程。官方文檔通常附帶了可運(yùn)行的最小Demo這些Demo是最好的入門教材——代碼量不大但每一處都是官方推薦的寫法。把示例工程下載下來改一改比東拼西湊看十篇博客都管用。3.2 開源項(xiàng)目是最好的進(jìn)階教程如果你已經(jīng)有基礎(chǔ)語法和框架的底子我強(qiáng)烈建議把學(xué)習(xí)重心從教程轉(zhuǎn)向真實(shí)的開源項(xiàng)目。代碼托管平臺(tái)上到處是完整的App項(xiàng)目從項(xiàng)目結(jié)構(gòu)、模塊劃分到代碼風(fēng)格、注釋習(xí)慣都是可以直接觀察學(xué)習(xí)的對象。但讀開源項(xiàng)目不是把代碼拉下來從頭讀到尾那個(gè)效率太低。我的做法是四步走先跑起來。把項(xiàng)目clone到本地編譯運(yùn)行體驗(yàn)它的功能和界面找核心模塊。通過代碼結(jié)構(gòu)定位核心業(yè)務(wù)鏈路比如登錄流程、數(shù)據(jù)加載流程從入口文件追著數(shù)據(jù)流走一遍打斷點(diǎn)調(diào)試。在關(guān)鍵位置打斷點(diǎn)看變量在運(yùn)行時(shí)的變化這一步比單純讀代碼理解深得多改一個(gè)功能。不動(dòng)核心邏輯單獨(dú)改一部分比如換個(gè)主題色、加一個(gè)列表項(xiàng)改完跑通這個(gè)項(xiàng)目就真正屬于你了。挑項(xiàng)目時(shí)別只看收藏?cái)?shù)和star數(shù)更要看維護(hù)活躍度。一個(gè)半年沒更新、issue堆積如山的項(xiàng)目說明作者早已不維護(hù)學(xué)它可能學(xué)到過時(shí)寫法。優(yōu)先選最近幾個(gè)月還有提交記錄、release版本清晰的項(xiàng)目。3.3 視頻課程和電子書的篩選標(biāo)準(zhǔn)視頻課程最大的價(jià)值是幫你第一次接觸陌生概念真人講解配上畫圖演示比干巴巴的文檔更容易建立直覺。但選視頻課有幾個(gè)硬性指標(biāo)看錄制時(shí)間。超過一年的移動(dòng)開發(fā)課程內(nèi)容很可能過時(shí)。除非它專門講思想方法、不涉及具體API否則謹(jǐn)慎對待。看是否提供源碼。不能提供可運(yùn)行源碼的課程含金量直接打五折。你跟著敲到一半發(fā)現(xiàn)敲不出效果時(shí)沒源碼對照就是災(zāi)難??词欠裰v原理。一個(gè)課程目錄里如果全是動(dòng)手做XX沒有原理分析源碼解讀這類章節(jié)它的天花板很低。電子書同理。優(yōu)先選擇有配套代碼倉庫的電子書閱讀時(shí)邊看邊跑。另外下載教程之后建議立即建立學(xué)習(xí)索引按系統(tǒng)分類、標(biāo)注語言版本和更新時(shí)間。我見過太多人下載了幾百G資料最后連里面有什么都不記得那些文件就成了收藏夾里的化石。每份資源下載后花兩分鐘建一條索引寫上來源、版本、適用范圍學(xué)的時(shí)候才能快速找到正確的材料。4. 一套可落地的三系統(tǒng)學(xué)習(xí)路徑把教程價(jià)值真正吃到嘴里教程有了怎么安排學(xué)習(xí)節(jié)奏是個(gè)大問題。我看到太多人敗在規(guī)劃混亂上一會(huì)兒看Android一會(huì)兒學(xué)iOS每個(gè)都開了個(gè)頭每個(gè)都沒學(xué)完。下面這條路徑是我反復(fù)驗(yàn)證過、也推薦身邊朋友使用的一套方案核心思路就一句話先縱深打通一個(gè)系統(tǒng)再橫向快速拓寬。4.1 為什么必須先縱深后橫拓移動(dòng)開發(fā)的知識(shí)體系有很強(qiáng)的系統(tǒng)耦合性——語言、框架、工具鏈、發(fā)布流程是綁在一起的。如果你今天學(xué)Android的Kotlin明天看SwiftUI后天又去折騰ArkTS大腦需要在三種不同的思維模式里來回切換認(rèn)知負(fù)荷極高結(jié)果往往是三個(gè)系統(tǒng)都只學(xué)了個(gè)皮毛。把第一個(gè)系統(tǒng)學(xué)到能獨(dú)立上架應(yīng)用的程度你就有了一套完整的參照系。這時(shí)候再學(xué)第二個(gè)系統(tǒng)你會(huì)發(fā)現(xiàn)很多概念是相通的只是語法和規(guī)范不同。有了參照系橫向拓展的速度會(huì)快到你驚訝。4.2 分階段目標(biāo)與產(chǎn)出物以主攻Android為例我建議分四個(gè)階段推進(jìn)階段周期參考核心目標(biāo)階段產(chǎn)出語言基礎(chǔ)1-2周掌握Kotlin基礎(chǔ)語法、面向?qū)ο笏枷?、常見?shù)據(jù)結(jié)構(gòu)能用命令行寫一個(gè)簡單的成績管理系統(tǒng)UI框架3-4周掌握界面布局、組件使用、頁面跳轉(zhuǎn)、列表渲染做一個(gè)單頁面的記賬本界面系統(tǒng)能力第2個(gè)月掌握數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)請求、權(quán)限申請、生命周期管理記賬本可正常保存和讀取數(shù)據(jù)調(diào)試發(fā)布第3個(gè)月掌握真機(jī)調(diào)試、打包構(gòu)建、性能優(yōu)化、商店上架流程完成一個(gè)功能完整的App并上架每個(gè)階段的階段產(chǎn)出非常重要。沒有產(chǎn)出物學(xué)習(xí)進(jìn)度無法驗(yàn)證你永遠(yuǎn)不會(huì)知道自己是真會(huì)了還是假會(huì)了。我見過太多人卡在第二階段出不來——界面學(xué)了八個(gè)組件一個(gè)完整頁面都拼不出來。產(chǎn)出物就是逼迫你把知識(shí)組裝在一起的手段。4.3 兩個(gè)高性價(jià)比的實(shí)戰(zhàn)項(xiàng)目選題學(xué)到第三、四階段時(shí)你需要做兩個(gè)能拿得出手的Demo項(xiàng)目。選題不要求大而全但要能覆蓋一個(gè)App的核心鏈路。第一個(gè)推薦待辦事項(xiàng)App。它看起來簡單但五臟俱全列表展示、增刪改查、本地?cái)?shù)據(jù)存儲(chǔ)、編輯狀態(tài)切換進(jìn)階一點(diǎn)還可以加通知提醒、按優(yōu)先級(jí)分組。做完這個(gè)項(xiàng)目你對UI狀態(tài)管理和數(shù)據(jù)持久化會(huì)有完整認(rèn)知。第二個(gè)推薦天氣查詢App這個(gè)的核心在數(shù)據(jù)鏈路接入第三方天氣接口、解析JSON數(shù)據(jù)、加載狀態(tài)管理、請求失敗重試、本地緩存上次查詢結(jié)果。做完它你就掌握了所有C端App通用的那套拉數(shù)據(jù)—展示—兜底的模式。做完這兩個(gè)項(xiàng)目后強(qiáng)烈建議走一遍真機(jī)安裝或上架流程。哪怕只是自己掏錢注冊一個(gè)開發(fā)者賬號(hào)把自己寫的App裝到手機(jī)里感受一下從源代碼到點(diǎn)擊圖標(biāo)啟動(dòng)的完整過程這個(gè)體驗(yàn)是模擬器給不了的。也是從寫出代碼到做出產(chǎn)品的分水嶺。5. 學(xué)習(xí)教程時(shí)的五個(gè)誤區(qū)以及我踩過的坑這一章沒有理論全是教訓(xùn)。有些坑我踩過不止一次寫出來希望你能繞開。5.1 誤區(qū)一看教程的時(shí)間遠(yuǎn)遠(yuǎn)多于動(dòng)手寫代碼這是新手最普遍的毛病包括當(dāng)年的我??匆曨l時(shí)腦子說我會(huì)了一關(guān)視頻坐在編輯器前手卻不知道該往哪放。后來我給自己定了一條鐵律看1小時(shí)教程至少要?jiǎng)邮智?小時(shí)代碼。并且不是跟著教程敲是合上教程憑記憶和筆記自己實(shí)現(xiàn)一遍卡住了再回頭看教程。這個(gè)卡住—回看—繼續(xù)的循環(huán)才是真正吸收知識(shí)的過程。只看不敲等于在岸上學(xué)游泳。5.2 誤區(qū)二教程版本過舊還在傻傻跟著敲有次我按一份老教程配置依賴庫照著敲完后編譯直接報(bào)錯(cuò)查了半天才發(fā)現(xiàn)那個(gè)依賴的新版本已經(jīng)改了包名老教程里的寫法早就廢棄了。移動(dòng)開發(fā)的技術(shù)棧變化非常快零基礎(chǔ)入門一定要用最新版本的教程并且在學(xué)習(xí)前先確認(rèn)教程對應(yīng)的系統(tǒng)版本和開發(fā)工具版本。遇到編譯報(bào)錯(cuò)第一反應(yīng)不是懷疑自己敲錯(cuò)代碼而是先檢查API是否過時(shí)。這個(gè)排查思路能幫你省下大量調(diào)試時(shí)間。5.3 誤區(qū)三只學(xué)語言和框架忽略工具鏈很多教程會(huì)把精力放在語法和UI上調(diào)試工具、性能分析、版本管理這些內(nèi)容一筆帶過。但實(shí)際開發(fā)和面試中工具鏈能力往往比背API有用得多。斷點(diǎn)調(diào)試、日志篩選、內(nèi)存檢測、Git回滾這些技能在你處理真實(shí)項(xiàng)目時(shí)會(huì)頻繁使用。我的建議是教程里講工具的部分不要跳過至少要熟練掌握官方IDE的調(diào)試面板和構(gòu)建日志定位。學(xué)完一個(gè)階段后嘗試不看教程純靠斷點(diǎn)和日志定位并修復(fù)一個(gè)問題這個(gè)能力越早練越受益。5.4 誤區(qū)四無視各系統(tǒng)的設(shè)計(jì)規(guī)范這個(gè)坑最隱蔽。教程里講設(shè)計(jì)規(guī)范時(shí)新手覺得不就是排版嗎跳過不看結(jié)果做出來的App功能齊全但界面混亂。我見過有人做的安卓應(yīng)用列表項(xiàng)點(diǎn)擊區(qū)域小到要用指甲蓋去按提交應(yīng)用商店時(shí)因?yàn)榻换ピ剡^小被駁回。設(shè)計(jì)規(guī)范不是審美問題是可操作的用戶體驗(yàn)底線。學(xué)教程時(shí)凡是涉及系統(tǒng)設(shè)計(jì)規(guī)范的內(nèi)容建議拿出做筆記的勁頭來間距、字號(hào)、觸摸目標(biāo)尺寸、權(quán)限申請?jiān)捫g(shù)這些細(xì)節(jié)直接決定你的App能否過審、用戶用起來是否順手。5.5 誤區(qū)五囤教程不消化用收藏代替學(xué)習(xí)收藏了就是學(xué)會(huì)了下載了就是掌握了——這是現(xiàn)代人的新型錯(cuò)覺。我有段時(shí)間收集了幾百個(gè)G的教程資源真正打開看過的不到十分之一。后來我給自己定了規(guī)矩每下載一份教程必須先看目錄在索引里寫下它解決什么問題每學(xué)完一份教程必須在三天內(nèi)產(chǎn)出一個(gè)實(shí)際運(yùn)行的效果。這樣下來資源才從庫存變成了養(yǎng)分。如果一份教程下載后兩周都沒打開第二次果斷刪掉它對你來說沒有價(jià)值。最后分享一點(diǎn)個(gè)人體會(huì)。教程的真正作用不是替你寫代碼而是給你一張地圖。三大系統(tǒng)的地圖畫法不太一樣Android教你面對碎片化世界怎么兼容iOS教你把體驗(yàn)和規(guī)范做到極致鴻蒙教你怎么讓一個(gè)應(yīng)用在多設(shè)備間流動(dòng)起來。下載教程之前先想清楚自己要去哪張地圖然后再動(dòng)手。我見過太多人收藏了幾百個(gè)課程鏈接最后真正跑通的還是第一個(gè)Hello World。少囤一點(diǎn)多敲一點(diǎn)三個(gè)月后你一定會(huì)感謝現(xiàn)在動(dòng)手的自己。