當(dāng)我拿到一個(gè)前后端實(shí)現(xiàn)todolist的學(xué)習(xí)任務(wù)時(shí)攻礼,我應(yīng)該怎么做业踢?

林老師在群里給大家布置了一個(gè)學(xué)習(xí)任務(wù),為過(guò)一段時(shí)間的實(shí)戰(zhàn)項(xiàng)目做準(zhǔn)備礁扮。

任務(wù)是這樣的:

前臺(tái)用 react + redux知举,后臺(tái)用 jersey + mybatis + mysql 寫(xiě)一個(gè) todolist,可以對(duì) todo 進(jìn)行查看太伊,刪除雇锡,新增的功能

作為一個(gè)剛剛參加完ThoughtWorks暑期訓(xùn)練營(yíng)的同學(xué),我應(yīng)該怎么來(lái)完成這個(gè)任務(wù)呢?

首先看一下兩天之后部分同學(xué)的進(jìn)展:

”我準(zhǔn)備今天才開(kāi)始僚焦,準(zhǔn)備跟某茹同學(xué)一起合作學(xué)習(xí)锰提。還是以前那種5w1h,然后分享芳悲,一天最多兩個(gè)技術(shù)吧欲账,這樣想的。想著先搞懂基芭概, 然后結(jié)合寫(xiě)demo赛不。“

”我是昨天開(kāi)始學(xué)習(xí)的林老師任務(wù)罢洲。昨天主要學(xué)了mySQL踢故,基本知識(shí)點(diǎn)差不多了,還沒(méi)寫(xiě)demo練習(xí)惹苗,打算從今天開(kāi)始和某秀同學(xué)結(jié)對(duì)學(xué)習(xí)java的相關(guān)東西殿较。jersey + mybatis 我們暫定時(shí)間是一個(gè)星期,然后開(kāi)始寫(xiě)todolist“

”老師桩蓉,我前幾天了解了一下docker和selenium淋纲,昨天看了jersey 后期準(zhǔn)備和某紅同學(xué)結(jié)對(duì)學(xué)習(xí)mytalis和mysql以及復(fù)習(xí)java的知識(shí)。暫定用一周來(lái)了解這些技術(shù)棧院究∏⑺玻“

看到同學(xué)們已經(jīng)開(kāi)始了,有了一個(gè)粗略的計(jì)劃业汰,并且沒(méi)有忘記我們?cè)谟?xùn)練營(yíng)中學(xué)到的”合作學(xué)習(xí)“伙窃、”5w1h“、”分享“样漆、”先寫(xiě)Demo“等方法为障,我覺(jué)得非常開(kāi)心,你們很棒!只是我有些擔(dān)心同學(xué)們的意愿是好的鳍怨,但是在如何把它想得更細(xì)呻右,并劃分成可以有效執(zhí)行的任務(wù)時(shí),會(huì)遇到困難鞋喇。

所以我在這里想聊一下声滥,如果我接到了這個(gè)學(xué)習(xí)任務(wù),我應(yīng)該做什么以及怎么做确徙。同學(xué)們?cè)陂喿x的過(guò)程中,可以回想一下我們?cè)谟?xùn)練營(yíng)里所教授的東西执桌,結(jié)合起來(lái)鄙皇,希望在下一次遇到類(lèi)似的任務(wù)時(shí),也能按類(lèi)似的方法給自己定出一個(gè)詳細(xì)的學(xué)習(xí)計(jì)劃仰挣。

先在前面說(shuō)一下我的套路:

明確需求 -> 分解問(wèn)題 -> 各個(gè)擊破 -> 總結(jié)分享 -> 小步快跑伴逸,不斷循環(huán)

明確這個(gè)學(xué)習(xí)任務(wù)的需求

當(dāng)林老師告訴我們這個(gè)學(xué)習(xí)任務(wù)時(shí),我們需要問(wèn)自己(以及林老師)這幾個(gè)問(wèn)題:

  1. 老師為什么要給我們布置這個(gè)學(xué)習(xí)任務(wù)膘壶?
  2. 通過(guò)這個(gè)任務(wù)错蝴,我們要鍛煉哪些軟硬技能?
  3. 我們應(yīng)該在什么時(shí)間前完成颓芭?
  4. 我們應(yīng)該學(xué)到什么程度顷锰?
  5. 我們應(yīng)該使用什么樣的合作方式?自學(xué)亡问,結(jié)對(duì)官紫,還是建立一個(gè)學(xué)習(xí)小組?
  6. 這些學(xué)習(xí)任務(wù)中州藕,哪些是最重要的束世,必須掌握的,哪些可以延遲床玻?
  7. 這看起來(lái)是一個(gè)比較大的任務(wù)毁涉,我怎么對(duì)它進(jìn)行拆分?
  8. 我怎么知道我掌握了锈死?比如每個(gè)小任務(wù)應(yīng)該有什么輸出贫堰?
  9. 我最近有什么其它的事情要忙,怎么安排我的時(shí)間與精力待牵?

這些問(wèn)題大家都清楚了嗎严嗜?至少有一些,我是不太清楚的(比如時(shí)間等)洲敢,等林老師方便的時(shí)候問(wèn)下他漫玄。

明確TodoList的需求

回顧一下林老師的任務(wù):

前臺(tái)用 react + redux,后臺(tái)用 jersey + mybatis + mysql 寫(xiě)一個(gè) todolist,可以對(duì) todo 進(jìn)行查看睦优,刪除渗常,新增的功能

可以看到這里分為兩個(gè)部分,一是”技術(shù)需求“汗盘,另一個(gè)是”功能需求“皱碘。

技術(shù)需求就是我們要學(xué)習(xí)的,可以稍后再看隐孽,我們先看一下功能需求:

寫(xiě)一個(gè) todolist癌椿,可以對(duì) todo 進(jìn)行查看,刪除菱阵,新增的功能

這個(gè)描述還是不太清楚的踢俄,不過(guò)我們其實(shí)還有一些背景信息的:之前我們?cè)谡n堂上應(yīng)該了解過(guò)這個(gè)著名的http://todomvc.com,所以我覺(jué)得這里說(shuō)的就是上面的例子晴及。如果不太確定都办,我們可以先看看,然后再問(wèn)問(wèn)林老師虑稼。

隨便找了個(gè)例子(比如http://todomvc.com/examples/angularjs/)琳钉,看了一下它的demo,實(shí)際操作了一下蛛倦,看看我們要做成什么樣子歌懒。

這里先放個(gè)圖:

todomvc

我們可以在上面試試新增、刪除溯壶、標(biāo)記為完成歼培、修改等功能,另外要注意底部左邊的"n items left"的數(shù)字會(huì)變動(dòng)茸塞,底部右邊幾個(gè)按鈕還可以點(diǎn)擊躲庄。

這時(shí)我可以把這個(gè)網(wǎng)址發(fā)給林老師,問(wèn)問(wèn)我們是不是要做成這個(gè)樣子钾虐,底部那些按鈕需不需要做噪窘。當(dāng)然,我覺(jué)得林老師的回答肯定是效扫,你能做就做倔监,做不完就算了。菌仁。浩习。

明確技術(shù)需求

然后我們?cè)倏纯醇夹g(shù)需求:

前臺(tái)用 react + redux,后臺(tái)用 jersey + mybatis + mysql

這里列出了主要的技術(shù)點(diǎn)济丘,看起來(lái)不多谱秽,但是想一想洽蛀,發(fā)現(xiàn)后面其實(shí)還有很多的隱藏信息:

  • 我們的暑期訓(xùn)練營(yíng)上剛剛培訓(xùn)完,當(dāng)初教的各種實(shí)踐和方法都要用上吧:分解任務(wù)疟赊,提問(wèn)郊供,畫(huà)圖,限時(shí)近哟,Demo預(yù)研驮审,等等
  • 語(yǔ)言沒(méi)有提(JavaScript和Java),這假設(shè)我們已經(jīng)掌握了足夠的基礎(chǔ)知識(shí)吉执。真的嗎疯淫?
  • 項(xiàng)目實(shí)踐:構(gòu)建工具,IDE使用戳玫,git+github熙掺,測(cè)試,結(jié)對(duì)量九,合作
  • 這是一個(gè)學(xué)習(xí)任務(wù)适掰,所以還有:自學(xué)能力的鍛煉颂碧,規(guī)劃與總結(jié)荠列,分享

這樣一想,似乎東西還不少啊载城。怎么辦肌似?我到底需要學(xué)哪些東西啊诉瓦?

明確技術(shù)點(diǎn)

我們可以先把前面的技術(shù)需求再明確一些川队,只有再精細(xì)一些,我們才知道到底需要學(xué)習(xí)哪些東西睬澡。

這里固额,我把它們分為了”前端,后端煞聪,數(shù)據(jù)庫(kù)斗躏,工具,其它“五個(gè)方面昔脯。

前端

后端

數(shù)據(jù)庫(kù)

  • mysql
  • 圖形管理工具:自行尋找

工具

其它

天啊静陈,怎么會(huì)這么多燕雁,我是不是想多了?當(dāng)然,同學(xué)們可能一開(kāi)始是想不到這么多的贵白,但是隨著項(xiàng)目進(jìn)行率拒,你會(huì)發(fā)現(xiàn),到最后可能會(huì)比這還多禁荒。猬膨。。

那么有兩個(gè)問(wèn)題:

  1. 這些我們都需要在這個(gè)任務(wù)中學(xué)嗎呛伴?
  2. 我們有沒(méi)有辦法合作學(xué)習(xí)勃痴?

關(guān)于第一個(gè)問(wèn)題,大家留意一下上面加粗的技術(shù)點(diǎn)热康,就屬于特別重要沛申、必須掌握的,其它的可以參考已有代碼或者根據(jù)自己的情況來(lái)定(或者分工姐军,一人學(xué)一些铁材,然后分享給其他人)

關(guān)于第二個(gè)問(wèn)題,我們需要找到組織奕锌。

找到組織

我們有十幾位同學(xué)都在做相同的學(xué)習(xí)任務(wù)著觉,我們能不能成立一個(gè)或者多個(gè)學(xué)習(xí)小組?我們已經(jīng)有:

當(dāng)然辽话,如果你們有自己的學(xué)習(xí)小組肄鸽,也可以建立自己的github組織或者項(xiàng)目。

找個(gè)學(xué)習(xí)的小伙伴

有了組織油啤,但是一個(gè)人學(xué)習(xí)還是太孤單典徘,找一個(gè)小伙伴吧。兩個(gè)人平時(shí)可以一起學(xué)習(xí)益咬、討論逮诲、寫(xiě)代碼。

對(duì)于這個(gè)任務(wù)來(lái)說(shuō)础废,找一個(gè)離自己近的汛骂,聊得來(lái)的,經(jīng)常能坐在一起交流的同學(xué)更合適一些评腺。

準(zhǔn)備博客

在學(xué)習(xí)的過(guò)程中帘瞭,大家都需要通過(guò)寫(xiě)博客來(lái)記錄和分享自己所學(xué)。由于大家在學(xué)差不多的東西蒿讥,所以可以互相關(guān)注蝶念,及時(shí)看到別人的成果抛腕,節(jié)省自己踩坑和卡住的時(shí)間。

有些同學(xué)在csdn或者cnblogs等地方有自己的博客媒殉,我推薦大家使用簡(jiǎn)書(shū)担敌,界面漂亮,寫(xiě)作體驗(yàn)非常好廷蓉,能讓人愛(ài)上寫(xiě)作全封。里面還可以使用markdown語(yǔ)法,寫(xiě)起來(lái)非常方便桃犬,另外還可以自動(dòng)保存刹悴,歷史版本比較,最贊的是可以發(fā)布的朋友圈讓人打賞攒暇!說(shuō)不定你寫(xiě)的東西解決了某個(gè)同學(xué)的問(wèn)題土匀,他一高興打賞你十塊八塊的。

(插播:本文求打賞:)

然后每個(gè)人都有了博客形用,怎么才能最快的知道別人寫(xiě)了什么新博客呢就轧?推薦使用一個(gè)叫inoreader的RSS訂閱服務(wù),它在安卓和蘋(píng)果下都有客戶端田度,比較好用妒御。把同學(xué)的博客地址貼上去,就可以訂閱了每币。一旦有新文章携丁,就可以第一時(shí)間看到琢歇。

這里需要注意的是兰怠,簡(jiǎn)書(shū)并沒(méi)有提供rss服務(wù),不過(guò)我們可以使用簡(jiǎn)書(shū)RSS生成器李茫,把簡(jiǎn)書(shū)上的用戶地址貼上去揭保,如果正確的話,就能生成相應(yīng)的RSS鏈接魄宏,貼到inoreader里就可以啦秸侣。

現(xiàn)在知道老師為什么能第一時(shí)間知道同學(xué)們寫(xiě)了什么新博客嗎?

inoreader安卓客戶端

建議大家像老師一樣宠互,把大家的博客(甚至我們的BBS)都訂閱上味榛,需要鏈接的可以找老師,到時(shí)候把種子文件導(dǎo)入一下就行了予跌,非常簡(jiǎn)單搏色。

Markdown

大家寫(xiě)博客肯定需要貼一大堆代碼,還有各種標(biāo)題券册、列表等等频轿,使用普通的富文本編輯器垂涯,又麻煩又難控制,最終的效果通常也不怎么好看航邢。

這時(shí)我們就可以花半個(gè)小時(shí)學(xué)習(xí)一下markdown耕赘,就可以高效的寫(xiě)出漂亮的博客了!而且這種語(yǔ)法在github/stackoverflow等各種地方都可以使用膳殷,受益終生啊操骡。

需要注意的是,markdown有很多增強(qiáng)版赚窃,我們通常使用的是github的版本当娱,參看這里:https://guides.github.com/features/mastering-markdown/

你也可以試試在線的markdown編輯器,可以實(shí)時(shí)看到效果考榨,方便學(xué)習(xí)跨细,比如:https://stackedit.io/

IntelliJ IDEA也提供了markdown插件,常用的編輯器如Sublime Text, atom也都有Markdown插件河质。

分解任務(wù)冀惭,制定計(jì)劃

前面我們明確了技術(shù)點(diǎn),但真正動(dòng)手的時(shí)候掀鹅,我們還需要對(duì)它們進(jìn)行進(jìn)一步的細(xì)化散休,制定出可執(zhí)行、可驗(yàn)證的更小的任務(wù)乐尊,才能動(dòng)手做戚丸。在這個(gè)過(guò)程中,我們往往會(huì)發(fā)現(xiàn)一些事前沒(méi)有考慮到的問(wèn)題扔嵌,產(chǎn)生更多的小任務(wù)限府。

這里需要注意兩點(diǎn):

  1. 最終的每一個(gè)小任務(wù)都是應(yīng)該能在半天左右完成(熟練后一到兩個(gè)小時(shí)內(nèi))。這樣可以讓我們?cè)谕粫r(shí)刻需要關(guān)注的事情更少痢缎,并且能利用好每天的碎片時(shí)間胁勺,及時(shí)完成,及時(shí)分享独旷,每天都能感覺(jué)到進(jìn)步署穗。

  2. 每個(gè)任務(wù)必須有輸出,輸出形式可以根據(jù)任務(wù)類(lèi)型來(lái)定嵌洼,比如圖形案疲、博客、代碼麻养、視頻褐啡、分享、甚至教給別人等等

概念探索類(lèi)的小任務(wù)

當(dāng)我們第一次看到一個(gè)名詞回溺,對(duì)它一無(wú)所知春贸,或者僅僅是聽(tīng)說(shuō)過(guò)而已混萝,我們應(yīng)該怎么辦?

不要慌張萍恕,也不要隨便找了一篇文章或者一本書(shū)就從第一頁(yè)一直讀下去逸嘀,而且要圍繞著這個(gè)東西,問(wèn)一些問(wèn)題等等:

  • 它是什么允粤?
  • 它能做什么崭倘?
  • 它怎么來(lái)的?
  • 它有什么重要概念类垫?

先對(duì)這些最基本的問(wèn)題做一定程度的發(fā)散司光,搜索資料(請(qǐng)使用google)獲得一些信息,同時(shí)還會(huì)得到一些新的問(wèn)題悉患,然后再做發(fā)散残家,直到感覺(jué)那些問(wèn)題或者答案跟我目前想學(xué)習(xí)的東西關(guān)系不大時(shí),就可以及時(shí)停止售躁,然后再針對(duì)最核心的概念與知識(shí)進(jìn)行深入學(xué)習(xí)坞淮。

這里以webpack為例,看小波老師是怎么學(xué)習(xí)的陪捷。首先小波老師提出了一堆最基礎(chǔ)的問(wèn)題:

針對(duì)webpack的基礎(chǔ)問(wèn)題

然后找到了它們的答案:

找到了它們的答案

同時(shí)又引出了新的問(wèn)題:

引出新的問(wèn)題

以及新問(wèn)題的答案:

新的答案

我們可以看到回窘,其中有的問(wèn)題很早就結(jié)束了,比如“什么時(shí)候出現(xiàn)的市袖?”啡直,這可能是因?yàn)槠浯鸢覆⒉蝗菀姿训剑捎诓皇呛苤匾缘跃退懔恕?/p>

其它的問(wèn)題或者答案也可以根據(jù)我們的興趣酒觅、精力,以及它與我們當(dāng)前學(xué)習(xí)目標(biāo)的緊密程度驰怎,我們來(lái)決定是否繼續(xù)追問(wèn)下去阐滩。

比如二打,這里是小波老師的最終版本:

最后的問(wèn)題

當(dāng)我們畫(huà)完上面這個(gè)圖時(shí)县忌,我們對(duì)于webpack在宏觀上就已經(jīng)有相當(dāng)程度的了解了,足以支持我們當(dāng)成當(dāng)前的學(xué)習(xí)任務(wù)(甚至都可以做個(gè)分享出來(lái))继效。然后我們就可以深入到內(nèi)部症杏,去研究它的核心概念和方法(一般在文檔中都會(huì)重點(diǎn)提到),畫(huà)出一個(gè)“概念關(guān)系圖”瑞信。

這里以redux為例(因?yàn)閞edux是必學(xué)厉颤,并且概念很多),給出相應(yīng)的“概念關(guān)系圖”:

redux的概念關(guān)系圖

從圖中我們可以看出凡简,里面是真實(shí)的類(lèi)或者方法的名字逼友,通過(guò)連線表示出來(lái)它們之間的相互關(guān)系精肃,通過(guò)數(shù)字來(lái)表示它們之間的調(diào)用順序。

對(duì)于我們要研究的東西帜乞,相信只要我們能畫(huà)出這兩張圖司抱,我們對(duì)它的理解就達(dá)到很好的程度,后面再結(jié)合Demo預(yù)研黎烈,相信很快就可以掌握习柠。對(duì)于jersey, mybatis,甚至mysql照棋,我想大家都可以用上這種方法资溃。

另外,在提問(wèn)烈炭、尋找答案溶锭、畫(huà)圖的過(guò)程中,建議大家和自己的小伙伴一起符隙,這樣效率更高暖途,效果更好。

對(duì)于這類(lèi)小任務(wù)膏执,我們的輸出通常是這些:

  • 自學(xué)提問(wèn)圖
  • 概念關(guān)系圖
  • 相應(yīng)的博客

功能驗(yàn)證類(lèi)的小任務(wù)

當(dāng)我們經(jīng)歷了前面的畫(huà)圖探索之后驻售,雖然我們對(duì)它的整體情況有了一定程度的了解,但是我們還沒(méi)有用真實(shí)可執(zhí)行的代碼來(lái)驗(yàn)證更米,這時(shí)我們?cè)偌?xì)分出一些demo預(yù)研的小任務(wù)欺栗。

這些小任務(wù)通常要比較小,從簡(jiǎn)單到復(fù)雜征峦,每個(gè)小任務(wù)只完成一個(gè)功能集中且相對(duì)簡(jiǎn)單的任務(wù)(比如可以在一到兩個(gè)小時(shí)內(nèi)完整實(shí)現(xiàn))迟几。我們會(huì)創(chuàng)建一個(gè)新的目錄,從零開(kāi)始栏笆,創(chuàng)建一個(gè)獨(dú)立类腮、完整、僅包含要驗(yàn)證功能的最小代碼的一個(gè)項(xiàng)目蛉加,然后把它push到github上蚜枢,僅自己使用或者分享給同學(xué)。

代碼中除了必要的代碼外针饥,還需要有一個(gè)README文件厂抽,里面用簡(jiǎn)潔的方式說(shuō)明這個(gè)項(xiàng)目是做什么的,怎樣配置和運(yùn)行丁眼,有什么注意的地方筷凤,以及相關(guān)的資料鏈接等。分享給別人后苞七,別人應(yīng)該不需要再來(lái)問(wèn)你藐守,就可以自己運(yùn)行起來(lái)挪丢。

在這個(gè)過(guò)程中,需要特別強(qiáng)調(diào)的幾點(diǎn):

  1. 項(xiàng)目命名非常重要卢厂,請(qǐng)盡量使用能夠突出主要目的的關(guān)鍵字吃靠。比如我想寫(xiě)一個(gè)最簡(jiǎn)單的react項(xiàng)目,那么名字可能是react-hello-world-demo足淆;如果想演示state的使用巢块,那么是react-state-demo;如果想強(qiáng)調(diào)使用的是ES6中的class巧号,那么可以是react-es6-class-hello-world-demo族奢。當(dāng)我們小項(xiàng)目越來(lái)越多時(shí),你會(huì)覺(jué)得這些命名實(shí)在太重要了丹鸿。

  2. 每個(gè)項(xiàng)目要完成的功能一定要單一越走。不論是自己以后使用,還是分享給別人靠欢,如果項(xiàng)目中混合了多個(gè)功能廊敌,基本上就沒(méi)法使用,因?yàn)閯e人很難區(qū)分項(xiàng)目到底哪些代碼是為這個(gè)功能门怪,哪些是為那個(gè)功能骡澈,它們之間有沒(méi)有聯(lián)系≈揽眨可以多建一些項(xiàng)目肋殴,但是不要混合在一起。

  3. README一定要有坦弟,但要簡(jiǎn)潔护锤。我們不必假設(shè)使用這個(gè)項(xiàng)目的是一個(gè)完全不了解它的小白,而應(yīng)該是有一定經(jīng)驗(yàn)的開(kāi)發(fā)人員酿傍。這樣烙懦,readme中可能給出一些關(guān)鍵的命令,以及一些需要的注意的點(diǎn)赤炒,必要的時(shí)候再加一些擴(kuò)展閱讀的鏈接即可氯析。比如:


    readme示例
  4. 依賴的版本號(hào)要明確。比如package.json中可霎,最好使用固定的版本號(hào)魄鸦,比如"react": "15.3.0",而不要使用默認(rèn)的"react": "^15.3.0"癣朗。這是因?yàn)樵趈s的世界里,依賴庫(kù)的升級(jí)非常容易導(dǎo)致不兼容的現(xiàn)象旺罢,而當(dāng)我們?cè)谝粋€(gè)比較久的時(shí)間之后來(lái)運(yùn)行這些代碼旷余,很可能因?yàn)樘嗟膸?kù)有新版本而導(dǎo)致程序出錯(cuò)绢记。

  5. 當(dāng)我們的demo項(xiàng)目越來(lái)越多后,為了方便對(duì)它們進(jìn)行分類(lèi)正卧,我們可以在github上創(chuàng)建一些組織(orgnization)蠢熄,用于存放不同語(yǔ)言的Demo。

如果你不知道怎么做炉旷,就到看看老師的demo签孔,找找感覺(jué)。我把我的兩個(gè)demo orgnization放在上里窘行,你會(huì)在上面發(fā)現(xiàn)很多有用的demo:

js-demos上的項(xiàng)目
java-demos上的項(xiàng)目

(注意饥追,剛才我在查看的過(guò)程中,發(fā)現(xiàn)不少項(xiàng)目的README上的名字或者內(nèi)容有錯(cuò)誤罐盔,歡迎同學(xué)們指出但绕。這是因?yàn)槲覄?chuàng)建了一些最基本的demo項(xiàng)目,然后在做新的demo時(shí)copy它們導(dǎo)致的)

對(duì)于這種類(lèi)型的任務(wù)惶看,我們的輸出通常是一個(gè)github上的demo(可分享給其他同學(xué))捏顺,以及,如果過(guò)程中我們遇到了坑或者有意思的東西纬黎,可以寫(xiě)一篇博客分享出來(lái)幅骄。

細(xì)分小任務(wù)

前方高能。

對(duì)于前面提到的技術(shù)點(diǎn)本今,讓我們對(duì)它們細(xì)分吧昌执!

前端

  1. 常用ES6語(yǔ)法(比如class, map/reduce/filter等)
  2. 使用webpack+babel來(lái)支持es6完整語(yǔ)法(如import/export)
  3. 使用React在頁(yè)面上輸出"Hello world"
  4. 使用React在頁(yè)面上創(chuàng)建嵌套的兩個(gè)組件
  5. 使用react-router來(lái)切換兩個(gè)內(nèi)容塊
  6. 使用CSS或者Bootstrap來(lái)進(jìn)行布局
  7. 使用React state的簡(jiǎn)單例子
  8. 純Redux(不使用react)的簡(jiǎn)單的”點(diǎn)擊按鈕數(shù)字加1“
  9. Redux + react簡(jiǎn)單的”點(diǎn)擊按鈕數(shù)字加1“
  10. 使用superagent向后臺(tái)發(fā)AJAX請(qǐng)求
  11. 使用mocha運(yùn)行最簡(jiǎn)單的測(cè)試
  12. 在測(cè)試中使用nock模擬http服務(wù)器
  13. express例子(方便寫(xiě)服務(wù)器端來(lái)配合前端)
  14. 使用gulp來(lái)運(yùn)行webpack打包
  15. 使用gulp運(yùn)行測(cè)試

后端

  1. 在IDEA中成功運(yùn)行一個(gè)Java程序,輸出"Hello World"诈泼,使用1.6的語(yǔ)法
  2. 在IDEA中寫(xiě)一個(gè)最簡(jiǎn)單的JUnit測(cè)試懂拾,使用JUnit提供的assertEquals
  3. 在IDEA中寫(xiě)一個(gè)最簡(jiǎn)單的JUnit測(cè)試,使用assertj
  4. 使用gradle/maven來(lái)運(yùn)行一個(gè)最簡(jiǎn)單的hello world程序
  5. 使用gradle/maven來(lái)運(yùn)行一個(gè)最簡(jiǎn)單的測(cè)試
  6. 使用gradle/maven來(lái)運(yùn)行一個(gè)有多個(gè)第三方依賴庫(kù)的程序
  7. 使用jersey建立一個(gè)最簡(jiǎn)單的api铐达,返回hello world即可
  8. 使用spring運(yùn)行一個(gè)hello world岖赋,要使用到它的依賴注入功能
  9. 使用spring boot創(chuàng)建一個(gè)最簡(jiǎn)單的例子
  10. 使用mybatis來(lái)連接mysql數(shù)據(jù),執(zhí)行最簡(jiǎn)單的增刪改查功能
  11. 使用fastjson進(jìn)行對(duì)象與字符串之間的轉(zhuǎn)換

數(shù)據(jù)庫(kù)

  1. 在Linux下安裝和啟動(dòng)mysql數(shù)據(jù)庫(kù)
  2. 在Linux命令行下進(jìn)行常見(jiàn)的數(shù)據(jù)操作
  3. 通過(guò)命令行對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份
  4. 安裝mysql桌面管理工具
  5. 在mysql桌面管理工具中操作數(shù)據(jù)庫(kù)
  6. 結(jié)合實(shí)例使用常用的SQL語(yǔ)句

工具

  1. 使用Webstorm進(jìn)行Javascript項(xiàng)目開(kāi)發(fā)的常用技巧
  2. 使用IntelliJ IDEA進(jìn)行Java項(xiàng)目開(kāi)發(fā)的常用技巧
  3. 如何把一個(gè)簡(jiǎn)單Javascript項(xiàng)目部署到Travis-CI上
  4. 如何把一個(gè)簡(jiǎn)單Java項(xiàng)目部署到Travis-CI上
  5. 如何把一個(gè)使用了mysql數(shù)據(jù)庫(kù)的Java項(xiàng)目部署到Travis-CI上
  6. 簡(jiǎn)書(shū)有什么功能瓮孙,如何切換成markdown唐断,如何生成rss
  7. Markdown的常用標(biāo)簽總結(jié)和示例
  8. inoreader介紹與使用
  9. postman的常用操作
  10. httppie的常用操作

其它

  1. 如何理解http協(xié)議
  2. 常用的http code介紹
  3. 對(duì)Restful的理解

上面的這些任務(wù)是我拍腦袋想出來(lái)的,可能并不全杭抠,以后會(huì)根據(jù)大家實(shí)際遇到的情況進(jìn)行添加和修改脸甘。當(dāng)然你也可以根據(jù)自己的情況,創(chuàng)建不同的小任務(wù)偏灿,這里僅供參考丹诀。

對(duì)于這里的每個(gè)小任務(wù),大家可以根據(jù)自己的情況,來(lái)決定輸出是什么铆遭。只需要記住最重要的一點(diǎn):你的輸出一定是可以分享給其他人的東西硝桩。

如何完成一個(gè)需要寫(xiě)代碼的小任務(wù)

對(duì)于上面需要寫(xiě)代碼的小任務(wù),我們應(yīng)該怎么做枚荣?

沒(méi)錯(cuò)碗脊,你已經(jīng)測(cè)到了,就是我們?cè)谟?xùn)練營(yíng)中已經(jīng)練習(xí)了一遍又一遍的“基于管道圖的任務(wù)分解大法”橄妆,或者用英文“基于pipeline的tasking大法”衙伶。

已經(jīng)不記得的同學(xué),請(qǐng)閱讀下面幾篇文章害碾,這都是仝校長(zhǎng)的智慧結(jié)晶:

以及我們核心的做事方式:

同時(shí)矢劲,大家不要忘了:

  • 小步快跑
  • 估時(shí)編程,反思問(wèn)題
  • Test First

那我什么時(shí)候才能開(kāi)始做Todolist蛮原?

前面列出來(lái)了這么多的小任務(wù)卧须,我應(yīng)該把它們?nèi)迹ɑ蛘叽蟛糠侄迹┱莆找院蟛砰_(kāi)始做Todolist嗎?

當(dāng)然不是儒陨,如果這樣的話花嘶,不知道要等多久了。蹦漠。椭员。

正確的做法是,我們需要開(kāi)兩條線并行前進(jìn):

  1. Todolist線:完成林老師要求的Todolist功能
  2. 小任務(wù)線:分解小任務(wù)進(jìn)行demo預(yù)研

我們應(yīng)該從Todolist線開(kāi)始笛园,如果我們沒(méi)有遇到問(wèn)題隘击,那就繼續(xù)實(shí)現(xiàn)功能;當(dāng)我們遇到了不會(huì)的東西時(shí)研铆,離開(kāi)Todolist線埋同,把剛才遇到的問(wèn)題抽象成一個(gè)或多個(gè)簡(jiǎn)單的小問(wèn)題,轉(zhuǎn)到小任務(wù)線棵红,把它們實(shí)現(xiàn)出來(lái)凶赁;然后再回到Todolist線,用剛才學(xué)到的知識(shí)繼續(xù)實(shí)現(xiàn)逆甜。

如果同學(xué)們組成了學(xué)習(xí)小組虱肄,我們就可以互相分享小demo,這樣就可以省掉了很多自己研究的時(shí)間交煞,同時(shí)也有了人可以討論咏窿。

有問(wèn)題及時(shí)提

知識(shí)至少分為兩種:

  • 信息型的:沒(méi)法推理出來(lái),需要搜索或者別人告訴
  • 研究型的:可以根據(jù)已有信息推理出來(lái)素征,需要自己花時(shí)間去想去嘗試

對(duì)于初學(xué)者來(lái)說(shuō)集嵌,最浪費(fèi)我們時(shí)間的往往都是信息型的知識(shí)萝挤。比如需要某個(gè)功能但是不知道什么庫(kù)可以做到,怎么引用它纸淮,IDE怎么配置平斩,有什么注意事項(xiàng)亚享,哪里有什么坑咽块,等等,往往一卡就是幾個(gè)小時(shí)欺税。這時(shí)候我們需要做的不是自己悶著頭侈沪,不搞定不睡覺(jué),而是及時(shí)提問(wèn)晚凿,說(shuō)不定幾分鐘就搞定了呢亭罪?

我們有哪些提問(wèn)和信息獲取渠道呢?

  • google
  • stackoverflow
  • 你身邊的同學(xué)
  • 我們專門(mén)建立的bbs
  • 微信群
  • 同學(xué)的博客和項(xiàng)目demo
  • more ...

比如我可以提前告訴大家一個(gè)坑:我創(chuàng)建了一個(gè)哪怕非常簡(jiǎn)單的gradle項(xiàng)目歼秽,下載依賴居然卡幾個(gè)小時(shí)应役,把我坑了很久。后來(lái)解決了惰爬,發(fā)現(xiàn)只要在build.gradle里加上一個(gè)jar包倉(cāng)庫(kù)的配置即可积蜻。當(dāng)你遇到了同樣的問(wèn)題撵孤,問(wèn)我的話,一分鐘就能解決袍祖,不問(wèn)的話,谢揪,蕉陋,哈哈

另外我們?cè)赽bs專門(mén)創(chuàng)建了To-Do List 學(xué)習(xí)任務(wù)討論版,有問(wèn)題第一時(shí)間上去問(wèn)啊拨扶,老師們都盯著呢凳鬓。(已經(jīng)把這個(gè)bbs加入到我的inoreader閱讀器里了)

學(xué)到了東西及時(shí)分享

再?gòu)?qiáng)調(diào)一下,當(dāng)你學(xué)到了東西患民,不論是完成了小任務(wù)缩举,還是解決了一個(gè)問(wèn)題,一定要花時(shí)間把它分享出來(lái)酒奶。比如寫(xiě)博客蚁孔,給同學(xué)講,在網(wǎng)上直播寫(xiě)代碼惋嚎,或者在實(shí)驗(yàn)室定期組織分享活動(dòng)杠氢,都可以。

也許這會(huì)花掉你的一些時(shí)間另伍,但是要知道鼻百,這在鍛煉你的軟技能:你的思考能力绞旅、信息整理能力、寫(xiě)作能力温艇、表達(dá)能力因悲、同理心、公眾演講能力勺爱,你的收獲可能會(huì)比你寫(xiě)的那些代碼更大晃琳!

及時(shí)關(guān)注其他同學(xué)的輸出

像老師一樣,在手機(jī)上安裝一個(gè)RSS閱讀器(推薦inoreader)琐鲁,把同學(xué)們的博客卫旱,github,以及bbs全都加進(jìn)去围段,這樣當(dāng)你沒(méi)事的時(shí)候顾翼,就可以打開(kāi)看一眼,也許只花10秒種就可以讓你省掉幾個(gè)小時(shí)奈泪。

最后适贸,祝大家能通過(guò)這一個(gè)簡(jiǎn)單的Todolist學(xué)習(xí)任務(wù),真正學(xué)到項(xiàng)目所需要的各種技能涝桅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拜姿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苹支,更是在濱河造成了極大的恐慌砾隅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件债蜜,死亡現(xiàn)場(chǎng)離奇詭異晴埂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)寻定,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)儒洛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人狼速,你說(shuō)我怎么就攤上這事琅锻。” “怎么了向胡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵恼蓬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我僵芹,道長(zhǎng)处硬,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任拇派,我火速辦了婚禮荷辕,結(jié)果婚禮上凿跳,老公的妹妹穿的比我還像新娘。我一直安慰自己疮方,他們只是感情好控嗜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著骡显,像睡著了一般疆栏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟆盐,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天承边,我揣著相機(jī)與錄音遭殉,去河邊找鬼石挂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛险污,可吹牛的內(nèi)容都是我干的痹愚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蛔糯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拯腮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蚁飒,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤动壤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后淮逻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體琼懊,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年爬早,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哼丈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筛严,死狀恐怖醉旦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桨啃,我是刑警寧澤车胡,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站照瘾,受9級(jí)特大地震影響匈棘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜网杆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一羹饰、第九天 我趴在偏房一處隱蔽的房頂上張望伊滋。 院中可真熱鬧,春花似錦队秩、人聲如沸笑旺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筒主。三九已至,卻和暖如春鸟蟹,著一層夾襖步出監(jiān)牢的瞬間乌妙,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工建钥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藤韵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓熊经,卻偏偏與公主長(zhǎng)得像泽艘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镐依,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,288評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)匹涮、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,120評(píng)論 4 61
  • 作業(yè) 問(wèn)題一: 沒(méi)有資料庫(kù)槐壳,讀書(shū)口味雜亂然低。 問(wèn)題二: 目前想寫(xiě)一個(gè)玄幻小說(shuō)。 背景是人和妖魔鬼怪生活在一起的世界务唐,...
    水金兔閱讀 332評(píng)論 2 3
  • 云云這兩年的進(jìn)步神速雳攘,莊周早就教不了了,就抽空帶著兒子去自己的那位高手朋友那里學(xué)習(xí)绍哎,順便自己也學(xué)習(xí)下来农,后來(lái)在一次全...
    琴癡1102閱讀 498評(píng)論 0 0
  • 世間遺憾事 往往起始于再見(jiàn)二字 而世間幸運(yùn)事 又往往在于之后真正再見(jiàn)之時(shí) 只可惜 遺憾事多 而幸運(yùn)事少
    哀慕熙榮閱讀 239評(píng)論 0 1