1. 程式人生 > >成為一個程式設計師真有那麼難嗎?

成為一個程式設計師真有那麼難嗎?

寫在開頭

工作有一年多了,從來沒有寫過部落格,以前總是拿個本子記一下。本子寫完了後就扔到垃圾桶裡面去了。忽然發現原來自己學習的很多東西都忘記了,需要用的時候找都找不到。更加沒有留下什麼學習心得,經驗之談。
這是第二家公司,在這裡已經工作一年零兩個月。從一個語言的菜鳥招進來,現在多少也能寫一兩句程式碼了。以前總以為大學裡面學得已經夠好了,分數夠高。一出來才發現自己什麼也不是,這也不會那也不會。曾經引以為傲的知識,在外人看來都是半吊子,什麼都沒學到。
工作了才發現自己很多都不懂,也不知道從何入手。學習了三個月的c 語言,書算看了無數遍。就是沒有動手寫過幾句程式碼。這是那三個月的最深的體會,看完就等著忘記。
期間公司沒有什麼事情做,我們課長帶著我們學習了很多內容。比如用MFC 編寫影象處理程式。研究公司裡面前輩留下的會議室預約系統,學習了資料庫方面的程式設計,學習了網路程式設計,等等。
雖然我們跟這課長一步一步來學習,但是我還是學的不夠紮實。總是以任務的形式來完成,而不是作為一個專案去完成。沒有想到去最優化這個專案。完成的質量也是很低下的,其實自己在做專案之前學了一本書《深入淺出MFC》,上面有很多功能我都沒有想過要應用到我們的專案上去,去完善他們。
一年後我出去找了一次工作,雖然在公司有學很多東西,但是當我去面試的時候發現什麼都不記得了,頭腦裡面完全是一遍空白,一些簡單的程式設計例項讓我寫出來,我卻想不出怎麼樣去實現它,原來我還是那麼菜,一問就露餡了。這就是copy 別人的後果。沒有認真一個一個程式碼敲出來,也沒有總結每一次的收穫。
後面就再也沒打算出去找工作了,還是學的不夠好,運用得少了。
找工作過後的兩個月一直都在迷茫中度過,走也不是,不走也不是。真心很糾結,走了沒有公司會要你,就算要你也是想要你去打打雜。你能力不行啊。不走的話,這裡也沒有什麼事情讓你做,沒有一點點壓力,成長自然就慢下來了。
上週去同學那裡覺得跟同學的差距越來越大了,他都可以一個人承擔一個專案下來了,工資也跟著漲了四五千塊,可以直接跟老闆談工資,自己卻還在原地踏步踏。等著別人把自己幹掉,自己卻無能為力。
其實我花的時間也不少了,每天晚上都加班,每天都在學習,可以沒有什麼效率,好似乎一邊學習一邊忘記,總有學不完的。迴圈往復,沒有一點點進步。學了C 語言,學了C++ ,現在正在學習java。可是沒有真正很好的運用到工作中去,總是在學習而沒有真真正正的去運用它。

程式設計師提升篇

1. 善於讀書,買書是最划算的投資

軟體開發方面的圖書大致分為三類:
1. 淺顯的入門類圖書。這類書的標題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發實戰》等,通常從軟體的安裝講起。這類書只適於還沒有入門的初學者,從中學到一些入門招式。在剛起步時一般買一本就夠了。如果你善於使用搜索引擎,那幾乎沒有買這類書的必 要。
2. 國內外高手寫的實戰類圖書。這類書實戰性很強,將技術及原理講得很透徹。比如《Windows環境下32位組合語言程式設計》、《深入解析MFC》、 《Delphi深度探索》、《深入淺出WPF》、《深入剖析ASP .NET元件設計》等。如果能在學習的每個方向看兩三本 這類圖書,並通過實踐消化掉,那麼毫無疑問,你會成為一名優秀的程式設計師。
3. 國外大牛寫的揭露本質、有豐富思想的書。這類書就是所謂的經典書,例如《程式碼大全》、《程式設計珠璣》、《設計模式》、《重構》、《程式碼整潔之道》等。經典書 就像一個有深度、有思想的朋友,能給你啟發,每次閱讀都會有新的收穫,這類書具有真正的收藏價值。看經典書永遠是正確的選擇,它絕不會浪費你的時間,因為 經典書是無數人沙裡淘金、幫你挑選出的結果。

2.只學習與工作相關的東西

首先,可以集中精力,在某一方面鑽研得更加深入。所謂“百招會不如一招絕”,有了絕招,你還怕不能在“武林”立足嗎?
其次,可以學得更快、更深入,因為學習更具有針對性,而且可以立即在工作中運用,可以馬上檢驗出學習的效果。對存在的問題進行深入研究,掌握的知識也會更加牢固。
再次,學習與工作結合在一起,工作時間也就成了學習時間,這樣就突破了三個8小時的限制:有人說,我們每天所擁有的時間可以分為三個8小時,工作8小時,睡覺8小時,另外還有8小時可以自己自由支配。工作和睡覺的兩個8小時大家都一樣,決定人生高度的是另外這個8小時。當我們把學習的焦點放到與工作相關的知識上時,工作時間中的很大一部分,同時也就成了寶貴的學習時間

3.問題是最好的學習機會

往往那些願意接受困難工作的人,能力會越來越強,那就是因為他們在克服困難的過程中取得了巨大的進步。

4.織網式學習

對於一名專案經理而言,知識的廣度更顯重要。專案中碰到的問題往往具有綜合性,只有具備廣博的知識,才能快速對問題進行分析和定位。在程式設計師成長的道路上,我們必須有意識地擴大自己的知識面,形成更完善的知識體系。

5.經常思考總結

頓悟非常可貴,然而它不是隨便發生的,而是經過一次次苦苦思索之後、靈光閃現的結果。思考的過程,其實就是將外在知識內化為自己的知識的過程。而頓悟,則批量實現這種內化,將無數個知識點連線在一起,達到融會貫通的境界。

6.克服“高原現象”

高原期,實質是一個消化期。由於前期的學習積累了太多的知識點,這些知識點在大腦中亂作一團,還沒有形成一個知識體系。這時需要一定的時間來消化它,讓它融會貫通,經常思考總結可以快速幫你跨過高原期。
處於高原期時,還可以換一個相關的方向來學習。例如,程式語言學不下去了,可以學習一下設計模式,設計模式也學不下去了,再換成資料庫。通過學習這些相關的知識,不但補齊了知識體系中的短板,而且各個知識點之間可以互相啟發,幫助你實現頓悟,跨過高原期。

7.學習要靜心

“欲速則不達”,想快快地學,往往會形成東一榔頭、西一棒槌的學習方式,每一個點都沒有吃透。心沉不下去,知識也會沉不下去。要想成為真正的高手,只能靜下心,一步一個腳印慢慢來。

8.學習是持續一生的過程

子曰:“吾十有五而志於學,三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲,不逾矩。”可見孔子也不是天生的聖人,也在不停地學習、進步,從“志於學”到“從心所欲,不逾矩”,孔子一共花了55年的時間。
作為一名程式設計師,更需要不斷豐富自己的知識庫。我們所知道的東西,就像一個白色的圓圈,圈外則是黑暗的未知的世界。當圓圈越大,所接觸到的黑暗部分就越多。我們只有不停地學習,才能打破更多的黑暗,找到更多光明。

9.保持飢餓,保持愚蠢

喬布斯的一句話:“求知若飢,虛心若愚”(Stay Hungry,Stay Foolish)。其實我更喜歡它更原生態的翻譯“保持飢餓,保持愚蠢”。我們只有認識到自己還很飢餓和愚蠢,才會像沒吃飽一樣,由衷地需要學習、愛上學習。

寫在結尾

參考以上別人的學習心得,覺得為時未晚。現在最重要的是改變自己的學習習慣,改變自己的學習方式。千里之行始於足下,以後的路有多艱難需要信心去客戶。要知道沒有什麼可以難倒我的。
你有信心嗎?準備挑戰吧!