當前位置:文思屋>社會工作>就業指導>

不做民工化的程式設計師

文思屋 人氣:1.26W

和大學同學祥子聊天討論到這幾年對開發的體會的時候,他說:"我在工作的時候就是在框架的基礎上把需求轉換為程式碼,一沒有學到業務,二沒有學到技術!那是非常的抑鬱!".軟體發展到今天,就是需要在框架的基礎上大規模的複製API,把相關的需求轉換為程式碼,讓公司能夠在最短的時間做出專案或者是一個新的產品。這樣的操作對公司的好處是:1:分工細化,缺少了誰都行;2:可以大規模的利用外包來節約成本。一句話形容一下:提高開發效率,降低開發成本。但是對程式設計師來說,這樣對個人的成長非常的不利。繼續拿出幾個問題來反思自己!

不做民工化的程式設計師

1:你在奉獻智慧麼?

書寫程式碼的過程中,必然會涉及到N多的.老程式碼的維護,有沒有考慮去抽象公用方法,有沒有考慮去改造包結構,有沒有考慮一些程式碼上的重構,有沒有考慮解決系統的效能瓶頸和可用性的問題?思考是必須的,只有在思考的過程中人才會成長起來。想辦法去奉獻智慧,人才可能慢慢的成長!

在專案組中,動手去解決問題要比說出自己的想法更加重要。因為在你考慮是否應該這樣做的時候,別人很可能就走到了你的前面。所以,在提高軟體可用性的前提下,任何的嘗試都應該動手去實施,作為行動的巨人。(這個地方本人是吃虧不少,總是想著和系統架構師的想法保持一致了,有些情況下,系統架構師是錯誤的。)

2:看的知識是不是越來越底層?

在平時接觸到不同的框架的時候,一般花上一天的時間看看架構圖並且理解其中關鍵環節的配置呼叫就可以了。但是如果想提高自己的架構水平,還是不斷的看別人的原始碼,吸取別人思想的精華部分,然後自己在工作中去發揮智慧。Rod Johson寫的spring框架也是在不斷吸取別人思想的基礎上逐漸的發展壯大起來的,在他大聲疾呼"develop without EJB"的時候,這個人對EJB非常的熟悉,不信的話可以去看看書的分析。其實EJB2.0是一個思想庫,只是我現在還沒有時間去研究這個。

cache物件的時候,有沒有考慮到物件的clone,HashMap中的clone的方法是深clone還是淺clone,ArrayList和LinkedList呢?什麼時候在建立ExectorService物件的時候使用newFixedThreadPool而不是newCachedThreadPool?java nio你知道多少?如果一開始我寫了足夠理解併發,積分計算和公共出發拉直的程式碼我會寫成另外一個樣子。那個為了改善效能的jobs我TMD也不會寫一個quartz的job了。我只能現在慢慢的修改其中程式碼來提升系統的效能和程式的健壯性。我需要花大功夫研究java的基礎知識。

3:和高手交流了麼?

其實網上很多技術blog寫的都很好,尤其那些持續更新的架構和技術的程式設計師們更是值得學習。找到他們,和他們討論一個方面的技術。真正的高手都是謙虛的,討教一些他們知道的東西,這些人會不遺餘力的指導你,前提是他們不是很忙。

4:必殺技是?

行走江湖,怎麼能沒有看家本領,其實大部分程式設計師都沒有。有人說自己精通java,但是我問一下他對concurrent包的瞭解情況的時候,卻是一問三不知。如果是我寫簡歷,我更樂意寫:精通java 的併發程式設計和nio.其實其他方面也需要關注,但是談到精通就差一點了。

如果未來和別人討論技術的時候,我希望總是能夠談到一些讓別人覺得成長的知識。

學習技術不怕慢就怕停,每天堅持編碼,堅持總結,成為那個"焊火箭的民工"也是完全可能的!