哎,開始工作了
來源:互聯網
上載者:User
到現在為止整整實習了一個星期的時間了,就是在公司裡面編程式。說句丟人話,一個星期唯寫了一個CString。公司裡面主要是寫C++的,因為做的項目都是C++的。當學了C++以後正是大金哥在課上說:C#在5年內肯定會成為最流行的程式設計語言的,微軟出的東西……當時也只是聽聽而已,不過對於C++我自己還真的不敢恭維~從C以來到,指標這種囂張的東西就一隻困擾著大批的程式員進階,貌似成為了一道門檻似的。是的,那玩意兒可以在記憶體中完全沒有顧忌地進行任何操作,想在想想還真有點後怕。new了就要delete,弄不好不是指標越界就是記憶體溢出~當時也把我自己搞到了頭大為止,太痛苦了。在大金哥的教導下,我開始看起了C#。首先書的介紹裡面就大談特談C#裡面關於指標以及記憶體管理方面的技術,可能C++程式員轉到C#上最開心的就是不用手動管理資源了,它都由記憶體回收行程來搞定。當時看到這裡只是感覺:可能有點方便吧…… 其實當時對C++也就是建立在C基礎上的延伸而已,就像高中裡英語我在吃初中的老本一樣,完全沒有深入的認識,可以這樣說,我當時還沒感受到C++比起C來給編程世界帶來了多大的改變,雖然知道C++的好多好處,但是總是基於Console的程式也總讓我對它和C沒多大的區別感受。最近到公司裡面實習(也不能叫實習吧,應該叫培訓才對),Boss讓做一個CSring的類,不允許使用string類庫以及MFC的東西。開始覺得也不難吧,或來才發現自己指標和資料操作有多糟糕……編譯執行有一堆一堆的錯誤啊!開始總是痛苦的,沒辦法,一個一個錯誤檢查,排除,一直弄了一個多禮拜,發現自己還是沒有吧這個CString類做好。前幾天看了CString的原始碼,發現自己相差好多,還有很多地方沒有想到的,不過寫出了大多的東西自己還是比較欣慰的,畢竟不是一事無成。自己主要還是很粗心大意,又想不周全。今天於老大還看了我的程式崩潰地說:你寫程式用不用腦子的?感覺這句話打擊蠻大的,當時覺得好委屈,因為總是把自己沒有經驗當成擋箭牌。現在回頭想想,確實沒腦子,好多很簡單的地方都寫錯掉,即使思路正確也有好多小Bug。於老大說,雖然有後期的排錯,檢查,測試,但是整個程式的品質還是取決於程式員的編寫的,很多Bug其實在編碼階段就能排除的。程式員要思路清晰,敏捷,我這幾天感受最深的就是要有理解,充分理解。沒有理解,寫出來的程式就跟別人的沒什麼兩樣,因為可能上午寫的下午就忘記思路了。
感覺現在寫C和C++的程式員好苦,當然,那是相對於C#或者Java來說的。C#或者Java都是打著把程式員從底層工作中釋放出來專註於程式邏輯上來的口號,確實,C或者C++相對於C#和Java來說都太底層操作了,程式員也許就解決一個記憶體問題就要絞盡腦汁,也沒有更多的精力去寫整個架構的邏輯結構了。確實,現在的程式語言就是使得編程的門檻越來越低,目的也許是做到任何一個懂電腦操作的人都能編程。C++很麻煩,所以現在越來越少的人做這個了,但是C++語言的高效率卻是那些相對方面的語言沒有的。對於資源和效率都第一位的伺服器程式來講,用Java來編寫就有點惡夢了。物以稀為貴,價格永遠是圍繞市場需求變動的。上次面試的時候有人對我說,你報什麼,我說我報.net和Java。他就說,做.net的很廉價的,你做個4到5年也就3000左右的薪水,主要是.net工程比較便宜(為什嗎?方便咯~),但是如果你做C++,乾的好3年左右就可能年薪10萬!也許就是這個樣子,使用者永遠不會關心程式員是累還是輕鬆,他們只要程式,並且在效率和快捷方面,大家都會選擇效率。C/C++會繼續存在下去,並且還將要存在很長一段時間。
其實自己程式語言很不紮實。因為寫一個C或者C++的程式就錯誤百出,雖然能調試好,但是這就是基礎不紮實的表現了。老說一句話,參天大樹的根系和枝葉肯定是一樣繁茂的。因為它必須要在狂風暴雨中承受比其他小樹更多的壓力。其實基礎學好了就好發展了,就如果我們老師在說考研的學科上說道:其實求發展的話,考研考數學是最好的,因為數學學好了什麼地方都能轉。金融是用數學的,經濟學是用數學的,電腦也是用數學的……
以後不能再沒頭沒腦地幹下去了,己不勉,何怨?