前言:逛知乎時,經(jīng)??匆娪写笊駥懙母鞣N小故事,感覺特別有趣。咳咳,這次也自己來嘗試下,將這學(xué)期的軟工實踐寫成故事試試看,故事中均已第二人稱來描述。故事中的人物均是化名。故事情節(jié)經(jīng)過些許加工。
說明:故事情節(jié)并沒有針對任何人,僅以此紀念自己的成長。
第一章:軟工前夕
一陣微風襲來,卷起了路邊的樹葉。推著行李箱,背著書包的你,從公交車下擠了下來。望著學(xué)校東門那福州大學(xué)四個大字,你嘆了口氣,又開學(xué)了。拿起手機,打了個電話給你舍友,叫他過來載你。掛了電話,你大呼了一口氣,頓了頓,往校門的方向走去。新的一學(xué)期開始了!
時間過得真快,轉(zhuǎn)眼間已經(jīng)大三了啊,渾渾噩噩度過了兩年的你開始覺得真的得開始做點事了,學(xué)點東西了,再這么下去畢業(yè)就找不到工作了,到時該怎么向家里說。
回想過去的兩年,因為沒有什么目標,你一直是按照學(xué)校的課程安排來,雖然沒有厭煩,但也沒有自主學(xué)習(xí)。只是該上的課學(xué)好而已,幸運的是你拿到了那么幾次獎學(xué)金,而成為了同學(xué)們所說的“學(xué)霸”,大學(xué)專有名詞,明明高中時候的你比大學(xué)牛逼好學(xué)多了。你突然間感覺好諷刺,同級生都已經(jīng)有人參加各種軟件設(shè)計大賽了,然而身為所謂的“學(xué)霸”的你,居然連android都沒接觸過。
好在,你聽說了這學(xué)期的軟工實踐似乎就是要求要寫博客,做軟件的,于是你變得很期待這門課。
終于,第一堂課上,那個叫做懂哥的老師手舞足蹈,半恐喝半安慰的講述了這堂課的要求。他講了很多,你并沒有全部記住,但你記住了懂哥說過這門課要求所有人參與編程,要求最后做出一個發(fā)布的產(chǎn)品,要求要有實際用戶體驗。你頓時感覺非常的激動,這就是你想要學(xué)習(xí)的課程。終于不是像以前那種大白菜的學(xué)生管理系統(tǒng)了,終于不是那種老師都不重視,自己也懶得重視的實踐了。
興奮的你,一下課就找了班上的另一大神,瓜哥,說明了等實踐進入團隊合作流程時要跟他一起組隊。因為這時的你想跟著牛人一起做點牛事!好了,團隊的人選搞定了,接下去是結(jié)隊的對象,但懂哥說過,結(jié)隊過后就不能再組成團隊,于是這時你找上了暑期一起留校學(xué)習(xí)的一個伙伴,元哥。但元哥并不著急,說這也太早了吧,個人作業(yè)都還沒布置呢。于是你只能暫時放一邊,等結(jié)隊時再說了。
很快,第一次作業(yè)來了,要求你寫一篇對這門課程的預(yù)期,以及對自己的目標,另外再發(fā)表一篇關(guān)于移動開發(fā)平臺的演變??戳诉@題目,你突然感覺,這是什么作業(yè),做這個有什么意義,你想學(xué)的是做軟件,寫博客。哎,也難怪,被同學(xué)稱呼了兩年的“學(xué)霸”的你,變得有點眼高手低,變得有點自負,然而自己卻沒有意識到。但這畢竟是第一次作業(yè),于是你還是老實的網(wǎng)上找資料,對比,然后將自己的答案寫上去。
第一次作業(yè)評分下來了,滿分八十,你只得了60+,屬于中下,心高氣傲的你覺得接受不了,于是你把分比你高的同學(xué)的博客全部看了一遍,你想找出為什么他們的分會比你高。你一直以為這種題目的作業(yè)能寫的東西就那么一些,大同小異,為什么分數(shù)就會差那么多。但其實,只是你自己對這作業(yè)的態(tài)度不好而已,好的同學(xué)寫出的博客一看就是很用心來完成的,或許老師布置這任務(wù)希望看到的也就是心態(tài)。于是你心服口服,并關(guān)注了那些用心寫博客的同學(xué),覺得以后可以向他們學(xué)習(xí)。
很快,第二次作業(yè)來了,因為懂哥另有安排,于是將流程換了下,先進行結(jié)隊任務(wù)。要求要進行需求分析和原型設(shè)計,需求分析還好,但原型是個什么鬼。無奈,誰叫你是第一次接觸的開發(fā),以前接觸的不是C語言的黑框,就是Java的控制臺,根本不知道開發(fā)一款軟件的流程是什么。好在,跟你一樣的基礎(chǔ)的人占大部分,所以你還是可以接受的。可以慢慢來學(xué)習(xí)。
但突然間,你發(fā)現(xiàn)你之前找的那個元哥已經(jīng)被人搶走去當結(jié)隊隊友了。這下慘了,因為懂哥說過結(jié)隊后不能再組隊,可剩下的還沒結(jié)隊的都是你已經(jīng)打算最后組成一隊的成員了。無奈,只能找不認識的人了。算了,反正團隊作業(yè)才是最重要的,你這樣的為自己安慰道。于是等到課上時,讓懂哥幫忙給剩下的還沒結(jié)隊的人組成一隊,就這樣,你開始了和一個新的同學(xué)的結(jié)隊之旅。
懂哥給的時間有幾天,你覺得時間應(yīng)該夠了,也就沒聯(lián)系你的新隊友,直接自己在空閑時間研究起了原型是什么鬼。經(jīng)過了一天的時間,嘗試過了懂哥推薦的各種工具,最終你選擇了墨刀。一款可在線編輯的原型工具。然后又過了幾天,你一直在等你的隊友先發(fā)消息來問作業(yè)怎么完成,你好開始給他講分工。
其實,你自己也不知道你自己為什么不先主動發(fā)消息給你的隊友,跟他討論作業(yè)?;蛟S你的心底里覺得你可以自己完成,或許你心里正在吐槽你又碰上一個抱大腿的了,但或許你的隊友也正在心里這樣的吐槽你。你并沒有意識到原來是你缺少主動溝通。就這樣,在幾天時間里,你根據(jù)自己對需求的分析做了一個最初版的原型出來,這時的你終于忍不住了,離截止時間就剩不到兩天了,你們一句話還沒說過。
于是,你上QQ問了一下他什么時候有空,他給你說了明天的一個時間。你想,那個時間你也有空,于是就沒回了。你心里等著他明天那個時候再來聯(lián)系你,但其實你自己卻只把話說一半,別人根本不知道你想表達的是什么。到了第二天,過了那個時間點了,他仍舊沒有發(fā)任何消息給你,你開始把他定位為一個抱大腿的了,但其實是你自己太高估了自己了。
之后,你稍微意識到了一點,或許是不是因為你自己沒把事說清楚,于是你聯(lián)系他,你主動跟他講了作業(yè)目前的進展,跟他討論了你對需求的理解,跟他確定了原型的設(shè)計,跟他討論了可行性的解決,最終叫他寫段總結(jié),然后你們交了作業(yè)。
這時候,你意識到了自己的問題了,不能無故猜疑別人,既然兩人都不習(xí)慣主動,那么必須要有一人來主持項目,或許你隊友已經(jīng)默認你是項目的領(lǐng)導(dǎo)者了,那么你自己也就要有這個意識,如果兩人都將自己定位為底層人員,那么自然沒人來推動項目的進展,底層的人自然會互相抱怨。
又一次懂哥的課上,懂哥給排名前三的發(fā)了《構(gòu)建之法》電子書作為獎勵,你開始羨慕起來了,你覺得自己應(yīng)該也有能力拿到才對。于是你對作業(yè)的態(tài)度更用心了,花更多時間了,別人一小時內(nèi)能搞定的博客,你覺得你需要兩三個小時,因為你覺得你還可以寫很多東西。
很快,作業(yè)又下來了,是一次個人作業(yè),要求總結(jié)git的使用,懂哥說過這是個很好的工具,必須學(xué)會使用,但其實你并沒有聽進去,你只是覺得,你要用心把這次作業(yè)做好,你想拿到那本電子書。于是你查了很多資料,做了各種實踐來學(xué)習(xí)git,或許別人只花了一早上,而你卻花了整整一天的時間。寫了一篇博客出來,也自認為自己已經(jīng)掌握了git,但其實你還僅僅只是摸到它的門檻而已。過了幾個月后的你再回來看自己當初寫的博客時,突然覺得當初的自己好天真,好傻,這么簡單的問題都搞不懂。當然,這是后話,暫且不提。
果然,這次的作業(yè)你的成績得分挺高,排名直接刷刷往上漲。但這只是次練習(xí),并不算正式的作業(yè),因此并沒有什么獎勵。雖然什么都沒有,但你還是很開心,你覺得助教是個很厲害的人,你覺得你的用心收到了應(yīng)有的回報。于是你的心態(tài)開始發(fā)生轉(zhuǎn)變,你開始對這門課程很用心。同時,你也喜歡上了寫博客,雖然經(jīng)常會隔很久才發(fā)表一篇,但每一篇中,你總是會寫很多很多字,別人說那是廢話,你卻覺得那是你的風格。
很快,第三次作業(yè)來了。是結(jié)隊編程,終于要開始編程了,你心里也激動了起來。因為從開學(xué)初到現(xiàn)在,你一直拿著一本《第一行代碼》在看,你一直在抓緊時間學(xué)習(xí),因為該死的懂哥說軟工課不教語言,而且默認大家是已經(jīng)掌握并會使用語言的程度。哦,錯了,你不該罵懂哥的,他畢竟是個老師,這是很不好的行為。那就該死的軟工。
你很喜歡編程,你覺得能用自己的代碼寫出一個能跑起來的軟件簡直碉堡了。于是,當作業(yè)內(nèi)容下來后,你直接跟你隊友分配了下工作。這次你成長了,不再像之前那次那樣誰都不主動,誰都在等對方。這次作業(yè)一下來,你就跟你隊友說好了各自的內(nèi)容。但其實你的經(jīng)驗還是太少了,你只是跟他說了他要做什么,你要做什么,你并沒有跟他說清楚項目該統(tǒng)一使用的各種東西。
幾天的時間一下就過了,你突然覺得編程的時候時間過得好快,好在你自己給自己劃分的任務(wù)基本算完成了。于是你找你的隊友討論了起來,結(jié)果一討論你才發(fā)現(xiàn),原來隊友學(xué)習(xí)的方向跟你的是相反的,因為當初沒有說清楚,你只是跟他說讓他負責從數(shù)據(jù)庫取數(shù)據(jù)的部分,并沒有說清楚你選擇的數(shù)據(jù)庫是Android自帶的SQLite,因此你的隊友往mysql的方向去學(xué)習(xí)。你突然感覺很焦躁,并且你發(fā)現(xiàn)你們的開發(fā)工具用的也不一樣,你的項目他根本打不開。于是,你開始怪你隊友不早跟你說,其實是你根本沒意識到你最初根本就沒提過要統(tǒng)一這些,這是作為項目領(lǐng)導(dǎo)者你的失誤,然而你卻怪在別人身上。
好在,這只是給定時間的中期,還有時間來得及補救。于是你跟你隊友統(tǒng)一了下該統(tǒng)一的,并把你們在項目分歧的地方討論了下。最終確定下了方案,然后就各自繼續(xù)完成去了。
最后,在截止時間前一天,你隊友在你編寫的代碼基礎(chǔ)上添加了他完成的那部分內(nèi)容,最終算是完成這次任務(wù)的要求。軟件可以跑起來了,雖然很多實現(xiàn)的地方都是寫死的,但你仍然很開心。
過了幾天,成績出來了。你跟你隊友的作業(yè)得分最高,排名直接刷刷到了前列。懂哥獎勵了你一本電子書,拿到書的那時,你覺得一切都值了。這幾天的熬夜,都值了。你并沒有覺得自己敲的代碼,實現(xiàn)的功能有多完美,比你好的自然有。你只是覺得,你用心,花時間,花功夫完成的任務(wù)得到了肯定,這點是最讓你開心的。
后話:幾個月后,結(jié)束軟工課后的你再來翻當初的博客,回想當初努力的背影,你突然做出假設(shè),要是當初自己那么多次花時間,花心思完成的作業(yè)最后老師又不重視,隨便給個分數(shù)的話,那樣你是否還是會保持每次用心的去對待,你是否還會保持你的熱情,你的向往。
一陣微風襲來,你抖了抖身子,呼了口氣,拿起杯子喝了口熱水。這時已經(jīng)凌晨0點了,你回望了下你背后的舍友,仍在啪啪啪的敲著他自己的鍵盤,轉(zhuǎn)過身。你笑了,自己居然會去做這么傻的假設(shè)。想了想,你又笑了,你突然間覺得自己太幸運了。有那么一個好學(xué)的舍友,因為他的努力讓你覺得如果自己也不努力的話似乎很說不過去。如果不是他,或許你早已經(jīng)沉迷在游戲中了。搖搖頭,你又笑了,這次的軟工選得太對了,你覺得你需要感謝的人太多了,懂哥跟助教都那么盡職盡責,是真正的良師啊。
又一陣涼風襲來,不知道為什么,你突然覺得你還得再笑一下,這時,你身后傳來聲音,“你在干嘛,怎么一直在傻笑。”,“沒,笑你太帥了?!蹦阋荒樞σ獾睦^續(xù)著像以往開舍友玩笑一樣對他開著玩笑。