對(duì)于大學(xué)生來說,暑期兩個(gè)月的假期是一個(gè)很好的時(shí)間去實(shí)習(xí),讓我們?cè)诔砷L中學(xué)習(xí)中度過有意義的暑假,你寫好暑期實(shí)習(xí)心得了嗎?下面小編帶來的是遠(yuǎn)程工作獨(dú)立開發(fā)者暑期實(shí)習(xí)工作總結(jié)。
六月中旬,我接手了一個(gè)基于WordPress平臺(tái)的網(wǎng)頁開發(fā)項(xiàng)目,作為遠(yuǎn)程工作的獨(dú)立開發(fā)者,計(jì)劃用三周時(shí)間實(shí)現(xiàn)核心功能,但沒有取得任何實(shí)質(zhì)性的進(jìn)展;七月初,我作為實(shí)習(xí)生開始為期八周的全職工作,繼續(xù)獨(dú)立的推進(jìn)這個(gè)項(xiàng)目,用四周時(shí)間實(shí)現(xiàn)核心功能,上線了內(nèi)部員工測(cè)試版;在接下來的四周中,我實(shí)現(xiàn)了更多重要功能,整合同事提供的用戶界面,最終在離職前上線了對(duì)外部訪客的正式網(wǎng)頁。本文試圖從一名開發(fā)者的視角,以上述三個(gè)階段為線索,總結(jié)這段經(jīng)歷。
6.18 ~ 7.4 圣地亞哥
考到學(xué)期最后一天的期末考,令人精疲力盡的搬家,短暫愉快的潛水旅行,這些之后我宅在家中開始著手項(xiàng)目。坦白說,這是一段舒適而效率不高的時(shí)光:每天花四五小時(shí)在電腦前工作,白天在陽光通透的客廳,晚上在燈火昏黃的臥室。因?yàn)樘幱趧倓偡攀罴俚男膽B(tài),難以長時(shí)間專注,經(jīng)常是遇到障礙時(shí)研究一兩小時(shí)就開始刷社交媒體,瀏覽無關(guān)的網(wǎng)站。
我的計(jì)劃是一邊研究項(xiàng)目所需的技術(shù),一邊與身在上海的領(lǐng)導(dǎo)溝通網(wǎng)頁設(shè)計(jì),試著確定一版設(shè)計(jì)稿。然而,遠(yuǎn)程工作溝通不便的性質(zhì)決定了我們的交流不可能百分百有效,不能完全理解領(lǐng)導(dǎo)的意圖;而急于給領(lǐng)導(dǎo)留下好印象的我,在技術(shù)研究不順利的情況下,盲目的希望用設(shè)計(jì)圖展示自己的能力,于是精耕細(xì)作的設(shè)計(jì)出許多我們所不需要的東西,浪費(fèi)了不少原本可以用于學(xué)習(xí)技術(shù)時(shí)間。
在技術(shù)研究上,我的問題是急于求成,缺少腳踏實(shí)地的耐心。面對(duì)一個(gè)新的編程語言和開發(fā)環(huán)境,一開始的手足無措是正常的。但我的應(yīng)對(duì)方式是花一半左右的時(shí)間尋找第三方插件,寄希望于通過修改專業(yè)人士的代碼來解決我的問題,或至少通過看別人的代碼搞懂項(xiàng)目架構(gòu)。但是,項(xiàng)目的復(fù)雜性不允許我們整體采用第三方代碼,而且我并不能完全看懂專業(yè)開發(fā)者的代碼,修改更無從談起。
我也有自起爐灶的嘗試,下載了文件傳輸,本地服務(wù)器等各種軟件,但慚愧的是,在我遠(yuǎn)程工作期間始終沒有走出自己開發(fā)的關(guān)鍵一步:搭建本地網(wǎng)站。現(xiàn)在回頭看,我當(dāng)時(shí)已經(jīng)有了搭建本地網(wǎng)站的所有軟件、文件,也許再多Google一次,再看一篇教程就能做到。但別的無效嘗試耗盡了我本就不多的耐心。
7.11 ~ 8.6 上海
經(jīng)歷了上一階段的不順利,我一度覺得自己沒有能力在這個(gè)項(xiàng)目中起到主導(dǎo)作用。所幸,公司依然安排我擔(dān)任項(xiàng)目開發(fā)的主力,這要感謝領(lǐng)導(dǎo)對(duì)我的信任。
在同事的幫助下,我搭建起本地網(wǎng)站,F(xiàn)下有了八周全職工作時(shí)間,不再急躁的我打開我能找到的最貼近實(shí)用的教程,像個(gè)初學(xué)者一樣一個(gè)一個(gè)模塊的實(shí)現(xiàn)教程里的代碼,不去想是否有用。比起復(fù)制黏貼,我更喜歡一行行打出功能相同的代碼,換幾個(gè)變量名稱,即便代碼一模一樣也堅(jiān)持自己手打。這樣做讓我以最快的速度上手了PHP這門對(duì)我來說全新的語言。
跟隨教程建立最基礎(chǔ)的開發(fā)環(huán)境后,我接下來所面臨的一大問題是明白自己要找什么。一個(gè)例子,在上一階段對(duì)于第三方包裹的研究中,我知道了“短代碼”這一概念。這時(shí)我搜索的內(nèi)容,從“WordPress插件如何在用戶端顯示內(nèi)容”,變成“如何實(shí)現(xiàn)WordPress短代碼”?梢韵胍,后者遠(yuǎn)比前者更容易找到滿意的答案。知道“短代碼”這一概念,使我能夠把較為模糊的最終目的,具象為清晰可行的技術(shù)手段,這便是我所謂的“明白自己要找什么”。
另一個(gè)更為曲折的例子,在本地實(shí)現(xiàn)核心功能后,我發(fā)現(xiàn)在線上測(cè)試時(shí)數(shù)據(jù)庫讀取不成功。改用了新版本的數(shù)據(jù)庫函數(shù)并在本地測(cè)試通過后,運(yùn)用到線上時(shí)依然不成功,但報(bào)錯(cuò)信息發(fā)生改變,花了五六小時(shí)調(diào)試沒有成效。這時(shí)我認(rèn)為我已經(jīng)排除了數(shù)據(jù)庫函數(shù)版本問題,問題理應(yīng)不在我的代碼中,于是請(qǐng)求負(fù)責(zé)數(shù)據(jù)庫的同事著手,自己開始研究下一步的開發(fā)。兩天后,同事發(fā)給我一段代碼讓我嘗試,雖然沒有成功,但其中一個(gè)關(guān)鍵詞引起我的注意。經(jīng)過幾番搜索,我發(fā)現(xiàn)我的數(shù)據(jù)庫函數(shù)版本在改動(dòng)后仍然不符合現(xiàn)有平臺(tái),改用面對(duì)對(duì)象的數(shù)據(jù)庫函數(shù)后,問題解決。
目前,我把“明白自己要找什么”不準(zhǔn)確的定義為“已知所需的功能,落實(shí)到技術(shù)細(xì)節(jié)”的過程,我認(rèn)為這經(jīng)常比學(xué)習(xí)一項(xiàng)技術(shù)更難。比如在第二個(gè)例子中,我先前誤認(rèn)為問題出在線上數(shù)據(jù)庫,正是已知出錯(cuò)的功能,而沒有準(zhǔn)確定位需要修改的技術(shù),直觀上說就是“找錯(cuò)了地方”。單純學(xué)習(xí)一項(xiàng)技術(shù)可以簡(jiǎn)單的借助搜索、教程以及不斷地實(shí)踐;而功能落實(shí)到技術(shù),常常不能搜索到明確的答案,而要依賴自己或他人的經(jīng)驗(yàn)與主觀判斷。至于如何更好的“明白自己要找什么”,容我留到下一部分再說。
我能在四周中完成核心功能,做完之前三周毫無進(jìn)展的工作,主要是做到了專注、踏實(shí)——專注于技術(shù),踏實(shí)的從零開始做起。
8.7 ~ 8.10 & 8.20 ~ 9.6 上海
進(jìn)入這一階段的開發(fā),我面臨一些新的難點(diǎn)。面對(duì)更多樣的功能需求,快速上手使用各種第三方包裹;在編寫面向客戶的頁面時(shí),與領(lǐng)導(dǎo)合作完成設(shè)計(jì)。好處在于,此時(shí)的我更熟悉崗位和項(xiàng)目,與領(lǐng)導(dǎo)和同事更好的溝通使我更專注并獲得更多支持,對(duì)編程語言和項(xiàng)目結(jié)構(gòu)的熟悉讓我更好的工作在手頭需要的功能中。
我上文提到的,如何“明白自己要找什么”,在這一階段的工作中依然是最大的困擾。具體而言,學(xué)習(xí)、編寫新功能之后,測(cè)試時(shí)出現(xiàn)“網(wǎng)頁超時(shí)”、“下載失敗”等有多種可能原因的問題,此時(shí)我往往沒有好辦法。也是在一次次解決問題的嘗試中,我獲得一些淺薄的見解。想要“明白自己要找什么”,根本的途徑是提高項(xiàng)目經(jīng)驗(yàn)與代碼能力,前者幫助我們更準(zhǔn)確的推斷問題,后者使我們能夠更快更好的驗(yàn)證每個(gè)改動(dòng)。但顯然,這兩者不是一時(shí)能夠提升的。
一個(gè)事半功倍的解決方法是高效的搜索,一項(xiàng)重要而需要練習(xí)的技能:用英文簡(jiǎn)短準(zhǔn)確的描述問題,篩選有用的搜索結(jié)果(因?yàn)橛⑽幕ヂ?lián)網(wǎng)中的技術(shù)指導(dǎo)更多更精)。比如,針對(duì)“WordPress插件如何在用戶端顯示內(nèi)容”這個(gè)功能,谷歌搜索“WordPress plugin display content to user”,跳過搜索結(jié)果中前三項(xiàng)對(duì)可下載插件的介紹,第四項(xiàng)就是對(duì)于我們需要的技術(shù)的詳細(xì)教程。
同樣重要的是耐心和交流。有用的一則信息完全可能出現(xiàn)在十篇不相關(guān)的文章之后,少一分耐心就會(huì)錯(cuò)過;向他人解釋自己遇到的問題可能是最好的理清思路方法,而外來的建議,即便來自不如自己了解技術(shù)的人,也常有旁觀者清的效果。
以上之外,我想提的另一點(diǎn)不僅僅關(guān)于代碼,同樣關(guān)于做好任何一樣工作,那便是精益求精。一方面是追求完美,在領(lǐng)導(dǎo)和同事無暇配合時(shí),能否不僅僅停留在“我已經(jīng)研究好了技術(shù),就等你來配合我”,而是盡力做好所有自己眼下能準(zhǔn)備的要素,待開始合作時(shí)就能緊密無間;另一方面是不懈努力,在一個(gè)功能測(cè)試失敗,想盡辦法沒法獨(dú)立解決時(shí),能否不要沮喪的開始玩手機(jī),而是轉(zhuǎn)而研究另一個(gè)將來也要用的功能,保持整個(gè)項(xiàng)目總有一處在推進(jìn)。這當(dāng)然是說起來容易的高標(biāo)準(zhǔn)要求,但我清楚要是我在這兩方面做的更好,或許能留下更完滿的結(jié)果。
當(dāng)然,盡管留下一些不完美的妥協(xié),我最終在離職前比較好的完成了這個(gè)項(xiàng)目。這些能力和意愿上的可提高之處,不妨礙我為自己的工作成果而驕傲。
總結(jié)
開展新項(xiàng)目時(shí),應(yīng)聚焦于眼下的技術(shù)研究,并在搭建完整的開發(fā)環(huán)境后從最基礎(chǔ)開始。
“明白自己要做什么”,即把功能上的問題落實(shí)到技術(shù)細(xì)節(jié),是最大的難點(diǎn),可能的應(yīng)對(duì)方案包括:
提高搜索效率
秉持更大的耐心
更主動(dòng)的交流
工作中追求完美,不懈努力
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。