1. 程式人生 > >在ThoughtWorks實習六個月所學到的

在ThoughtWorks實習六個月所學到的

引言: 看到某篇文章在說在微軟8個月所學到的,想想自己也可以總結一下自己在實習的時候所學到的。半年前,我開始了在ThoughtWorks某專案的學習生涯,並在大學畢業(本科)後,在原來的團隊中工作。確實對於一個剛畢業的本科學生來說在專案上有所作為,還是有些難度的。我們是作為BAU(Business as usual)程式設計師工作的,同樣的列舉一下我所學到的:

那些值得稱讚的

敏捷開發的實踐

作為一家收費較高的外包公司,交付的程式碼質量也應該相當的高。剛開始真正在專案上寫程式碼的時候,每次我寫完的程式碼都被作為重構的示例。好在只是在結對程式設計的時候,並沒有帶來多少的不快,作為一個實習生,只能感嘆原來程式設計還可以這樣。

在學校的時候,看過很多書,書上教了一個又一個的方法,只是這些都沒法用在自己的專案上。因為沒有深入的理解,以至於在一開始的時候,我寫出來的程式碼(ps:如最小物聯網系統設計)不夠讓自己滿意。而在一次次的學習會發現,在我開始重新寫一個開源專案——墨頎 CMS,為了獲取更充足的經驗。而所謂的那些敏捷開發的思想,都不會在公司內部的一些課上出現,更多的是在專案上的實踐。

結對程式設計

在實習的時候結對程式設計,對技能的成長,和專案上的學習等等都帶來很大的幫助。多數情況下,結對程式設計的都是團隊中相當有經驗的,可以從中學習到現在多的經驗,不僅是在專案上,還有一些如在Mac OS的使用上。於是,在這時候降低了學習上的成本,可以有效地在實踐中學習。結對程式設計的時候經常會對問題進行討論,討論的時候會加強其中一些程式碼思想的理解。

可以走在技術前沿

因為大家在不同的專案上實踐,國外的專案更多的是在一些大的平臺、大的使用者量及大資料,自然也然的可以實踐那些走在前沿的技術。這些技術的一些思想及技術可以自己的小專案上進行實踐,如上面說到的移動CMS一些前沿技術的實踐。或許這就是為什麼一些服務類公司不容易撐不下去的原因,技術上是先進的,實踐的經驗也相當豐富。

成為全棧工程師

在這個專案上或者那個專案上,總會接觸到和自己技術棧不同的東西,久而久之,需要不同的能力去解決問題。從產品的開發、測試、再到上線,總會經驗到寫shell指令碼、linux環境、產品優化等等。成為全棧工程師的捷徑也許就是維護一個部落格,然而我們可以在不同的領域,從後臺到前臺,再到瀏覽器除錯。或許,交付專案更容易成為這樣的程式設計師。

那些忍不住吐槽的

每天真正的程式設計時間不到一半

同樣的因為專案不是一個新的專案,因此多半的時間都花費在除錯bug,跑測試,站會等等。

在專案的某個子專案中,程式碼是從十年前開始的,這也就意味著我們需要去深入理解程式碼的邏輯。有時,一天我們沒有寫任何程式碼,只是在除錯,看看程式碼如何真正的運作起來。對於,一個專案來說,要讓他能跑起來,可能是要幾個星期之後才可以。同時,作為一家交付公司,我們還需要花時間去站會,和客戶,而這些都差不多會花費半小時的時間。真正在修改程式碼上的時間少之又少,相信這是在大專案上要經歷的。

等等

如果你想知道的話,可以留言。