程序員成功之路(二) ——The road ahead for programmer

七、如何做一個成功的程序員?
下面是我和一些朋友談過之後的小結,希望對於各位有所幫助。
1. 培養對軟件開發的興趣。
因爲不喜歡,所以才感覺的痛苦,因爲痛苦,所以很難有大的發展,因爲一直沒有大的進步,所以,更加不喜歡。如此惡性循環。而正確的應該是,先做到對於軟件開發感興趣,如何做呢?首先你要產生對於軟件本身的好奇心,做這項生活的人,多數有這方面的愛好,也能感受到其中的樂趣,否則就會成天痛苦不堪。
­
2. 第二步,其實更簡單,給自己進入軟件行業一個理由!
然後,寫下來,放在一個適當的地方,不要隨便看到,但是,永遠不要忘掉。
爲什麼需要這個理由?原因很簡單。當我聽一些朋友聊他的苦悶時,總覺得對於自己選擇軟件行業是一個錯誤,如何的不好。我就問他,你當初爲什麼選擇軟件這一行?想了半天,他纔回答我。我說,你在猶豫 ,就證明你已經淡忘了當初你爲什麼決定入行了。關於選擇,應該說人生無處不在抉擇,一旦選擇了就不會放棄。既然選擇了就不要輕易後悔,執著的走下去,因爲你一後悔,任何選擇和決定都是錯誤的。永遠不要把時間浪費到對往事後悔的追憶上。
如果你一直記得入行的理由,那麼,在做軟件開發這份寂寞的路上,你永遠不會被寂寞擊倒。成功就在你堅持的那一刻來臨。
3. 一切從dos開始。
也許你覺得奇怪,爲什麼要從dos開始,因爲這裏我是說你要成爲一個成功的軟件程序員,而不是僅僅是一個程序員,既然你要成功,所以,你要厚積薄發,所以,從dos開始是有道理的。因爲從dos開始,你就知道,要想刪除一個文件不是右鍵點一下,然後,選擇刪除菜單,可能還要點一個確定,就一切OK了,你可以要執行一下del指令,然後,還要輸入一些參數如文件名,可能還需要路徑,知道這兩個區別有什麼用呢?當然有用,你不會被漂亮的窗口界面(所見即所得的精美畫面)所迷惑。 當你現在纔開始學習的時候,擋住窗口界面的引誘,或許你會更容易成功。
 你可以猜測出它們大概處理的過程是什麼。
4. 開始你選擇的工具決定了你將來的發展水平
世界上流行的程序語言有許多種,這種情況將來也不會改變,因爲這是由我們所面臨的需要解決的計算問題的五彩繽紛所決定的。任何語言都不可能是最完美的工具,不可能在處理任何問題時都是最銳利的寶劍。“爲完成目的而不擇工具”; 一個計算機工作者需要理解掌握多種程序設計語言,只有這樣,在遇到具體問題時纔可能做出更合理的選擇。
目前流行的:.net; Java; VB; VC等等。
各種開發工具各有千秋,應根據具體應用來採用不同的工具。例如寫MIS用PB/VB就很好,界面設計用VB/Delphi很不錯,寫系統軟件,用C是最好的。對於初學者來說,先用一種可視化強的工具(如 VFP/VB/DELPHI)比較好,容易掌握,上手也快。但如果你想做一名真正的程序員,我建議你還是很有必要去精通C。
  單從一個很功利的角度來說說。Delphi/ VB對於一般人來說學上幾個月就可以上手了。易學的東西學的人肯定多。而對於C來說,由於它難掌握,學的人不火,但一旦你真正掌握了,你的競爭實力就比其他人強。現實中,C程序員的工資普遍高於其他程序員就是一個證明。
Vb/delphi 寫界面的4000元
vc 寫通訊DLL的5000到6000元
linux c/c++ 寫服務器的7000到9000元
知道C/C++有前途了吧
5. 編譯原理
如果你有足夠的好奇的話,你現在應該想知道編譯工具背後的故事,寫代碼時,你也許會奇怪,不同的程序語言爲什麼會有不同的語法,語義,語用;變量名爲什麼不能數字開頭?計算機如何識別這些定義,運算,名字空間等等。這個時候看看《編譯原理》多少能夠給你一些解釋。學習一點理論知識,加強你的理論功底,很多人都說科班出身的程序員比參加社會認證培訓出來的程序員強的地方,就是理論功底強,系統思考能力強,時間長了就會體現出其優勢。學習編譯原理的另一個好處在於將來你學習其它開發工具時, 特別是學習不同底層語言的開發工具時,雖然它們的底層語言相關非常大,但是,除去這些語言的外衣,用編譯原理層面來看它們,原來它們是如此相似。
6. 操作系統原理
你要知道,任何你做出來的軟件都是運行在操作系統環境中的,操作系統爲你的作品提供了什麼樣的環境呢? 這很重要,如果是DOS,它是以軟中斷的方式提供的,而Windows則是以一系列的API提供的。然後,你還可以知道,如何判斷系統當前路徑,內存管理機制、進程/線程調度、信號、內核對象管理、系統調用等,操作系統中如何處理死鎖的 。
7. 現在讓我們進入windows時代,windows下的開發工具
畢竟在微軟統治的時代,大家還是識時務者爲俊傑比較好,windows下的開發工具一定要重點掌握。 面向過程編程向面向對象轉變,現在流行的開發工具VC,VB都差不多。
8. 數據庫原理和開始數據庫編程
現在做軟件一個最基本的應用類型就是數據庫編程,這是可能使你可以勝任很大一部分工作了。也就是說,如果你掌握了數據庫之後,你就可以出去找工作了。很多應用程序都是以數據庫的數據爲中心,而數據庫的產品也有不少,其中關係型數據庫仍是主流形式,用SQL server作爲起點吧,因爲這東西使用起來挺方便的。寫一個簡單的單表輸入程序,簡單一點容易掌握。比如寫一個客戶資料錄入程序。
10 英語
統計表明,全世界45個國家的官方語言是英語,1/3的人講英語,75%的電視節目用英語播出,80%以上的科技信息用英文表達,幾乎100%的軟件源代碼用英文寫成。
學習英語真得很重要,且不說它是程序世界的主導語言,且不說它是計算機專業本科畢業生四年的必修課,且不說它是全世界程序高手們互相切磋尋求幫助的主要工具,它還是現在大多數用人單位的敲門磚,在這樣一個開放性的社會裏,如果你不懂英文,你是不是很難稱得上是一個人才啊!
多讀英文書。信息技術發展太快,而大部分的技術最先出現的時候都是英文版本的,要幾個月以後纔有中文版本的書出來,因此要想跟上步伐,一定要努力提高自己的英文水平,這樣才能同步跟上信息技術。你可能擔心自己的英語水平不行,沒關係,剛開始多查字典。
很多東西看中文的譯版不如原版的清晰,中文的可能越看越糊塗,可是英文卻可以一目瞭然。再說對於一些最新的技術和動態文章,你哪裏有時間去等到別人給你翻譯出來再看啊,等你看到了,也快過時了。不懂英語,你真得很難算得上是一個人才!
到了這裏,你沒有發現你在和別人聊軟件開發時,別人對你的態度有變化呢?
八、從現在開始,你要注意和別人交流了,因爲從現在開始的很多東西,都是別人一指點就可以,而你自己看需要很久的。可以經常去一些論壇交流,都是很不錯的,沒有不上網的程序員,也沒有不在網上取長補短的程序員。不過在問問題之前,自己一定要先努力嘗試過,再給出自己的想法。動不動就問別人,自己水平得不到提高,別人也不再會回答你的問題。
­
­
九、程序員最喜歡的網站:
­
(IBM SUN Borland orACLE BEA CISCO GOOGLE)
­
http://www.csdn.net  中國軟件
­
www.china-pub.com互動出版社
­
www.codestudy.net程序員聯盟
­
­
msdn.microsoft.com/msdnmag
­
十、程序員的七種武器
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成爲開發工具中的利器,很多系統級的軟件還是用C/C++編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的“網絡即計算機”的概念相當欣賞,並相信JAVA即其相關的技術集JAVA One會成爲未來的主流開發工具之一。其次,如果能掌握一種簡便的可視化開發工具,如 VB,PowerBuilder,Delphi,C++ Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
第二種武器:數據庫
爲什麼數據庫是如此重要?很多應用程序都是以數據庫的數據爲中心,而數據庫的產品也有不少,其中關係型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關係型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業數據庫系統,可以使用免費的數據庫產品是一個不錯的選擇,如mySQL, Postgres等。
第三種武器:操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成爲一個真正的編程高手,需要深入瞭解操作系統,瞭解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作爲開發源碼的操作系統,是一個很好的學習平臺, Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的瞭解後,你會發現自己上了一個新的臺階。
第四種武器:網絡協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議 TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟件運行的模式,從最早的客戶/服務器結構,到今天的 WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧爲基礎的網絡協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
第五種武器:DCOM/CORBA/XML/WEB Services
隨着技術的發展,軟件與網絡的無縫結合是必然趨勢,軟件系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分佈計算的中間件平臺,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG(object Management group)支持的規範。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即爲什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻爲互聯網上的“世界語”,是分佈計算的基石之一。 (轉載)
發佈了9 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章