看了
.net程式設計師如何快速成長之我見
一文,本人有感而發,想嘮叨幾句.
我覺的程式設計師的成長速度取覺於兩點:
第一:基礎知識.
第二:後天的努力.
本人以乙個例子說明基礎知識對於程式設計師發展的重要性:
分油問題:
兩個小孩去打油,一人帶了乙個一斤的空瓶,另乙個帶了乙個七兩和乙個三兩的空瓶。原計畫各打一斤油,可是由於所帶的錢不夠,只好合打了一斤油,在回家的路上,二人想平分這一斤油,可是又沒有其它工具。現只用這三個瓶子(一斤、七兩、三兩)精確地分出兩個半斤油來。
當時我看到這個問題,在紙上畫了一陣,一頭霧水.最後只有放棄,正確的答案思路是這樣的:
通過分析題目並結合深度優先、廣度優先和迭代加深搜尋的演算法的特點以及有缺點,這裡選擇廣度優先演算法來求解該分油問題。如果採用深度優先演算法搜尋,由於其盲目性導致搜尋陷入區域性陷阱,並不一定能求得解即使得到解也不一定是最優解,因此並不採用此演算法。迭代加深搜尋則是在固定的深度上進行深度和廣度搜尋結合的策略來進行搜尋,這樣避免了單一的深度搜尋無法得到解的缺點,但是找到的解並不一定是最優解。廣度優先以犧牲空間代價和時間代價來換取保證取得最優解。由於該問題並不複雜,即使使用廣度優先演算法也不會占有太多的空間和時間,因此為了取得最優解這裡選擇廣度優先演算法來求解。
原來是應用了資料結構中的演算法.如果你在大學期間沒有上好資料結構這課的話,這個問題要想解決可能存在不小的問題,起碼本人就是其中的乙個.
本人是自考出生,學習期間難免沒有正規在校學生學的系統,起碼學習環境上比較差.學習期間學了c,資料庫原理,資料結構,但印象都不深,自己根本就不太會編寫c程式,只是明白些基本的語法.至於資料結構這方面當然就只算是聽過課,談不上理解,更談不上實際應用.例如比較經典的演算法題;大牛生小牛的問題,如果你對遞迴演算法沒有特別深入的理解的話,你很難想到用遞迴演算法去解決。想到用什麼方案後,你的問題基本已經解決一半.
在一次去書店的時候,我發現在有的書名叫asp.net,我覺的好奇,因為我學的是asp,覺得asp.net非常有意思,當時看了下內容,一下子就被datagrid強大的功能給征服了,因為我發現用datagrid可以非常方便的實現分頁,當時馬上決定學習.net,就這樣我開始認識.net,當然主要是asp.net這方面.
剛開始在工作中應用datagrid,分頁特別爽,不用寫太多的**,後來同事告訴我說這種要頁方式不好,是假分頁。後來經過指點才知道,datagrid分頁的原理,知道了它的原理後你才知道它的優點和缺點,才能寫出以後的自定義分頁。.net程式設計並不是簡單的拖放幾個伺服器控制項,要清楚伺服器控制項是如何執行的,如何自定義伺服器控制項,以及擴充套件原有的控制項。
在我後來的學習當中讓我明白了乙個道理,基礎太重要。如果你對oop,ooa,ood不是特別了解的話,你很難寫出擴充套件性強,維護性,可閱讀性強的程式.
現在很多的技術雖然我會,但是不一定能夠用書面的方式描述清楚,因為缺少理論知識.這讓我想起了有人說學校的知識沒有的話,其實並不然,學校學的固然不能當飯吃,但它是乙個重要的思想,只有具備了這種思想人才具備解決某種問題的能力.就像上面打油的問題,如果你對那些資料演算法不太清楚的話,想找出答案我怕花的時候會多很多,想對了方向才會事半功倍。
在原文中提到了一點:2.盡量縮小研究範圍
本人有自己的觀點:覺得要看你所處的環境。
如果你身在乙個大公司,開發的都是特別大的專案,團隊成員多,而且技術都強,那麼你此時就要縮小研究範圍,只有你在某方面有成就你才有生存的空間。
如果你身在乙個小公司,團隊就那麼幾個人,這時,你必須會相對多的技術,小專案用的技術可能會非常多,但不會太難,太深,太複雜,所以會要求你的知識面廣但並不要求特別精通。
所以我覺得要根據自己當下的專案開發環境,決定你研究的知識範圍。
本人自我覺得是個對新技術特別熱衷的程式設計師,有什麼新的技術書籍出來了我都會去買,但往往因為和實際開發環境不太匹配,說白點就是有的專案根本就用不上,這樣會大大的降低我學習的積極性。所謂實踐出真知,老是寫demo......,而且新技術的速度太快,人非聖人,我想大部分分程式設計師都不可能全學會。況且如果你什麼都會的話,那團隊就失去它的作用了。一味的追求還會出現園友們說的現象,每種技術都停留在表面,每方面都是學而不精。
注: 本人文筆不太好,只想和大家討論下程式設計師成長的經歷.
程式設計師成長過程中不可忽略的幾本書
本書聚焦於軟體開發人員生活的方方面面,從揭秘面試的流程到精耕細作出乙份殺手級簡歷,從建立大受歡迎的部落格到打造你,從提高自己工作效率到與如何與 拖延症 做鬥爭,甚到包括如何投資不動產,如何關注自己的健康。本書共分為職業篇 自我營銷篇 學習篇 生產力篇 理財篇 健身篇 精神篇等七篇,概括了軟體行業從業...
程式設計師成長之路
和同行溝通 了解最新潮流 跟蹤相關的業界變化 和人分享你的經驗和作品 1.最基礎的,卻是最重要的 c語言編譯原理 資料結構與演算法 計算理論 數學 英語 2.模仿大師 追隨大師 多看大師的設計 實現 想象下自己如何做 要認真 模仿直到你看起來像大師 3.養成優秀的 風格 命名規範 對齊方式。k rl...
談談程式設計師成長
本篇文章主要側重的是程式設計師的硬技能方面的,不涉及軟技能。綜合上述的幾個原因,我認為對於大部分人來說,要想成為技術大牛,首先還是要明白 主要靠自己 這個道理,適當的時候可以通過請教大牛或者和大牛 來提公升自己,但大部分時間還是自己系統性 有針對性的提公升。有人認為寫業務 一樣可以很牛逼,理由是業務...