1. 請問如何做精通Windows系統的程序員呢
程序員之路比較漫長,要學的東西很多。而且你看到的那些軟體並非一人就能夠開發成功的,需要一個team的努力。
選擇做程序員,除非你天賦很高,否則不要當作一個愛好,要當作一個事業,一個人生規劃的方向,只因為你要付出很多去掌握。
你可以先試著學習C或JAVA或別的一門計算機語言,
學習中,很多你現在的問題,你都會有新的理解。
出色的程序員離不開數據結構與演算法,你也可以同時去看去學。
2. 如果,我想當一名程序員,如何從零開始
1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老闆發薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)
2、你是學文的還是學理的,編程序也許需要浪漫,但更需要邏輯和嚴謹。(說坦白點就是,在你沒有找到樂趣以前,它很枯燥)
3、你有對新技術追求的熱情嗎?你有刨根問底的探索精神嗎?(熱情絕對是最重要的!你仔細思考一下自己的性格適合當程序員嗎?)
4、當程序員決不是什麼好差事,時刻需要學習,需要思考。(直到你成為那個可以引導別人去學習和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序員的未來很迷茫。(但我認為關鍵看你自己!我希望你是一個有追求的人,不僅僅是混碗飯吃。因為真正的樂趣在於創造;如果你能改變軟體業的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie和 Bjarne Stroustrup,我會說你沒有追求。有個關於程序員未來的笑話,也許你還沒聽過,你該聽一聽,摘抄如下:
一個程序員對自己的未來很迷茫,於是去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Lippman,他現在領導的程序員的隊伍可能是地球上最大的」
於是他去問Lippman。
Lippman說「程序員的未來就是駕馭程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Gates,他現在所擁有的財產可能是地球上最多的」
於是他去問Gates。
Gates說「程序員的未來就是榨取程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問侯捷,他寫的計算機書的讀者可能是地球上最多的」
於是他去問侯捷。
侯捷說「程序員的未來就是誘惑程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝搖搖頭「唉,我的孩子,你還是別當程序員了」)
6、當程序員還是很有樂趣的。(當你學到新知識時,當你有新的思想見解時,當你有新的產品問世時,和知己探討你的成果時…我問你,覺得這些是樂趣嗎?)
7、當程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)
8、你真的要當程序員?是你自己的想法?
9、你捨得花錢買書嗎?(讀好書絕對是學習編程的最佳捷徑。你一定會說,現在電腦書籍真他XX的貴,沒法子,誰讓知識和技術在人家的腦袋,在人家的書里呢;等你寫書時可以把價格定低一點,記著還有好多沒錢但想買書的兄弟很困難呀。要捨得買書,買好書,不好的的書不如不讀,其害大於其益,關於買什麼書,你可以問高手或看候捷的書評;准備一個小本子記錄你想買的書的名字,逛書店時看看,如果好就買下,記住要讀,別光買不看。) 10、我告訴你,程序就是:任何有目的的、預想好的動作序列,它是一種軟體。
11、編程序就是編寫程序。
12、你想好了嗎?(如果你想好了還是決定要當程序員,可以繼續往下讀;否則,你可以繼續尋找別的出路了。)
(三) 一個程序員應該具備的基礎知識和概念
1、計算機是有什麼組成的,CPU是什麼東西,其工作原理是什麼。(對於這些以及下面將要提到的概念我不會告訴你什麼答案,你可以看相應的教材,關於教材我會在下一部分詳述,記住理解最重要!)
2、機器語言和微指令集的概念。
3、程序的概念。
4、匯編語言是低級語言但不是機器語言。
5、高級語言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中國軟體業的英雄,你也寫一門語言,最好不用英語) 6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫的)
7、HTML、XML等是標識性語言。
8、Prolog是人工智慧語言。
9、操作系統OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實時OS,嵌入OS,編這些的絕對是高手)
10、Windows編程說白了就是Windows API的調用。(中國的程序員很多隻是會編windows程序,用的是VB,我的建議是這些程序員頂多隻是低級編碼員,我稱其是coder)
11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環境,不是編程語言。
12、面向結構的設計概念。
13、面向對象的概念。(好好理解,兄弟,這個東西還是很重要的)
14、軟體工程的概念和原理。(如果你想當老總就需要好好研究了,系統分析員比編碼員要高一個等級,薪水也高喲)
15、資料庫的概念。(要熟悉一些著名的資料庫系統和語言的名字,如Orcle,SQL,DB2,DyBase等)
16、了解網路概念。
17、了解多媒體概念。
18、熟悉和掌握數據結構和基本演算法。
19、是不是要求太高了,別著急慢慢來,進步在不知不覺之中。(一旦開始學習,一個月以後你就會有一個基本的概念;兩個月以後你就會感覺自己有了全面的基礎知識;當你知道編程序是怎麼回事時,說明你已經入門了。也有很多人編了很多年程序還沒有入門呢,你不會希望自己步其後塵吧。要有信心和耐心。沉不住氣怎麼能成大事?!)
(四) 教材推薦
――-推薦的教材主要還是針對概念來的,最好選用名校的教學用書。
1、《計算機組成原理》(熟悉)
2、《數據結構》(掌握)
3、《操作系統》(了解->熟悉)
4、《The C language》(掌握)
5、《編譯原理》(了解原理)
6、《匯編語言》(了解)
7、《計算機網路》(了解)
8、《軟體工程》(了解)
9、《關系資料庫》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向對象設計》(掌握;結合C++學習)
(五)一些經驗和體會
1、真正的程序員用C++;(一位專家說的)
2、動手去編程序;
3、動腦去思考;
4、要有良好的編程風格;
5、讀書,讀好書,盡量讀原版書!(我反復強調這一點,讀書要有選擇,堅持讀好書,名家出的經典書,不要浪費實踐在一些粗製濫造的書上面;堅持博覽群書)
6、有自己的學習計劃;
7、總結自己的經驗教訓;(准備一個筆記本,記錄錯誤和心得)
8、不要怕學新東西;
9、要有軟體工程的思想;
10、善於發現問題,然後去尋找答案;
11、向高手請教;(要虛心直到你成為高手)
12、和同行交流;(不善於交流肯定不行)
13、懂得軟體的實質,不要被千變萬化的表象所迷惑;
14、真正要學慣用的是編程語言和方法,不是什麼庫,什麼類,什麼工具;(學用那些什麼庫都比較簡單,但光會這些庫,我覺得還遠遠不夠)
15、學習wiodows編程主要是學習windows OS和win32 API;
16、有空了解一下嵌入式開發;
17、有空了解一下PDA軟體開發;
18、了解一下.NET框架和C#語言,也許它是你新的衣食父母;
19、要有耐心,不要作浮躁的人; 20、對程序加註釋,並保留你的老程序;
21、學到的東西越多,了解的越多,你就越接近專家;
22、有空去逛逛CSDN,那裡有你很多知己;
23、要有信心成為一個優秀的程序;
(六)一些好書的推薦
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向對象高效編程》
8、《設計模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推薦)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技術內幕》
14、《MFC 深入淺出》
15、《軟體需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序員參考手冊》
19、《用TCP/IP進行網際互連》
20、《COM 本質論》
(七)學習計劃
――-這個學習計劃是我個人定的,也共享給大家參考一下,共同進步吧。 1、《計算機組成原理》
2、《操作系統》
3、《數據結構》
4、《匯編語言》
5、《 C 》
6、《 C++ 》
7、《VC 技術內幕》
8、《Programming Windows》
9、《深入淺出MFC》
10、《Advanced Windows》
11、《Inside The C++ Object Model》
12、《Thinking in C++》
13、《Effective C++》
14、資料庫
15、網路
16、嵌入式OS和編程
17、硬體單片機
18、.NET和C#
19、軟體工程
20、UNIX和Linux
3. 做Windows程序員,應該學什麼
說實話,做C#程序員對計算機體系結構,數據結構,匯編,操作系統,windows核心的要求並不高.
主要是要學好軟體工程,資料庫,網路.還有就是對面向對象的思想要有深入的理解.動的如何將客戶的需求比較完美的實現出來.
4. 如何成為windows的開發人員
作為一名程序員,選擇Windows作為自己的開發平台無疑是一個正確的選擇。但是,由於Windows開發人員數量的龐大,使得Windows開發人員的「價值」顯得普遍沒有Linux,Max等平台下的高。換句換說,就說庸庸碌碌之輩太多。從一個某某培訓機構學上幾個月的.net的人就自稱是Windows開發高手了,這當然會讓人笑掉大牙。其次由於Microsoft的開發平台和工具通常很容易入手,所以使得許多程序員誤以為這就是開發Windows應用,認為Windows開發理應簡單。 作為一名學生,我從自己的角度談談如何真正成為一名Windows開發高手。注意,以下說講的都是在自己的語言關已過的前提下,你應該熟練結構化程序設計,對面向對象程序設計有一定的理解。為什麼不是精通面向對象?面向對象這潭水真的太深了,做了一輩子開發的程序員也許都不敢說自己完全掌握了面向對象程序設計精髓。 1>熟練掌握Windows SDK編程 掌握Windows SDK開發其實是對WIndows操作系統進行一次初步的探究。雖然MFC已經將SDK進行了很好的封裝,但是想要真正掌握Windows程序設計的精髓,還是要從SDK開始。如果初學者一開始就拿著一本《深入淺出MFC》來看的話,我相信是看不下去的。從C語言控制台編程跨向Windows程序設計其實是需要花一點功夫的。初學者往往在學習Windows程序設計時第一個不習慣的地方是大量MicroSoft定義的宏和結構體。這些「旁枝」往往成為初學者的一大障礙,是的初學者將精力往往放在了這些不重要的地方,而不是放在Windows消息機制,窗口架構等主要的地方。MFC這一點做的更為深入,所以建議初學者一定要從Windows SDK進行學些。 推薦讀物: 《Windows程序設計》------經典中的經典,Windows開發人必備讀物,由微軟中國的員工翻譯過來的,現在已經是第五版了。 《Windows核心編程》------站在一個更高的層次審視Windows。 2>熟練掌握MFC編程 有很多人說MFC已經過時了。的確,這一點不得不承認,Windows自從將重點放在.net戰略上後,基本上對傳統C/C++開發這一塊基本上屬於放羊式管理。到現在為止都沒有一套像樣的界面庫。那麼,我們為什麼還要學習MFC。 首先,學習MFC學習的是一種思想,是從Windows SDK結構化程序設計跨向面向對象程序設計的一個堅實的橋梁。雖然不能說這座橋梁有多麼完美,但是歷經了這么長時間的考驗任然沒有被淘汰,一定有它存在的價值。MFC的架構是我們必須要學習的地方,他是.net Form開發的基礎。也許有很多人一開始就進行.net Form開發,C# ,VB用的很舒服,但是這僅僅是知其然不知其所以然。這樣的開發者永遠只是停留在表面,而不知道整個.net Form的架構是怎樣的。稍微遇上一些比較復雜的問題,就束手無策了。所以MFC是必須要掌握的。 其次,MFC是直接調用Win 32API對Windows進行操作的,效率要比在虛擬機上運行的.net高很多,其次C++語言的效率也是要高於C#的。這就是為什麼和圖形圖像有關的編程一般都會選擇C++了。在高性能的某塊通常都會選擇C/C++進行開發,C#,VB等來調用。並且.net對傳統Win32 API的調用是一度受限的。有的時候不得不用P/INVOKE的方式進行Win32 api的調用。 推薦讀物:《VC++深入詳解》--------孫鑫寫的書,非常適合MFC的初學者。 《深入淺出MFC》---------侯捷大師對MFC做了一次完美的外科手術,讀懂它,反復鑽研咀嚼,你將會完全掌握MFC的精髓所在。 3>掌握Windows操作系統的核心機制 通過上面兩步的學習,初學者應該已經對Windows有一定的了解了,初學者通過一種較為輕松的方式學習Windows。現在是時候對Windows進行一些深入的了解了。之前我們都是站在程序員的角度對Windows進行審視,角度可能有所單一。現在則是需要站在一名系統設計師的角度對Windows操作系統進行研究。 推薦讀物:《深入解析Windows操作系統》------這本書是將帶你全面的了解WIndows操作系統的各個方面 《Win32多線程程序設計》-----站在並發的角度更為深入的了解Windows機制。 讀者在有了1,2的基礎後學習3,相信不會有太大的難度。 4>掌握.net 作為一名Windows程序員,.net是你不得不去學習的一門技術。無論是學習還是工作你一定會遇到它。在有了以上基礎的情況下,學習.net是一件十分輕松的事。.net平台下有眾多語言可以選擇,不過這里推薦大家首選C#,理由就不用多說了。看看每個月的編程語言排行榜就一目瞭然了。 推薦讀物:《C#入門經典》-------Wrox公司的紅寶書,講的很全面。 《C#高級編程》--------同樣是Wrox公司的書,講的更加深入。 《C# via CLR》--------講述.net的核心機制。 《WPF高級編程》------新一代圖形界面技術,你應該了解。 5>掌握Win32 asm 人都是希望自己能越來越牛,而不是永遠停留在一個初級程序員的位置。如果你想真正掌握Windows真正成為一名計算機大牛的話,匯編是你必須要掌握的。 匯編是你進行Windows下的軟體調試,逆向工程,商業破解,內核研究,設備驅動開發的基礎。是否精通匯編語言是普通程序員和大牛之間的一道分水嶺。
5. 程序員平常用什麼系統做開發
Windows,MacOS,BSD,Solaris以及各大版本的GNU/Linux系統我都在不同的情況下用過。
只要你足夠了解系統知識,你可以去選擇任何你喜歡的系統,或者根據你面向的需求學習使用任何系統。
回答問題:這主要是要看是做什麼領域的程序員,或者要看程序員的個人愛好,比如:
1、做游戲開發的程序員多用Windows,因為Windows主要面對消費領域,特別是游戲消費領域,對各種圖形API也是支持最好最全的。
2、做前端的開發者比較樂於使用Mac,因為Mac的UI最適合出版和Web領域,Mac上有很多獨門的科技,例如字體渲染,頁面視覺效果最好。
3、做後端開發的程序員偏向於Linux。世界上大網站絕大部分後台跑的都是Linux系統,做後台開發肯定離不開Linux。