簡體   English   中英

開始學習C#的最佳方法是什么?

[英]What is the best way to start learning C#?

我對vb 6和vb.net的編程經驗不多。 請告訴我成為專家C#程序員的最佳方法,而且我知道這將花費很長時間。

考慮一下如何學習人類語言-閱讀,寫作,口語和聽力。

  • 閱讀代碼。 閱讀文章。 閱讀示例。 如果您經驗豐富,請查看所使用的某些項目的源代碼。
  • 編寫代碼。 玩弄您已閱讀的示例。 修改它們。 解決Euler項目中的問題。 考慮您自己的項目,然后嘗試解決這些問題。
  • 討論代碼。 關於它的博客。 告訴你的朋友。 看看您的程序效果如何,可以打動您的祖母。 現在嘗試打動您的教授。 了解如何與不同類型的人進行編程交流。
  • 聽其他程序員的話。 他們中的許多人比您有更多的經驗,並且有很多可以說的東西可以向您學習。 學習他們使用的詞匯。 與他們討論您的想法。

實踐。 實踐。 實踐。

Google是您的朋友。

首先下載http://www.microsoft.com/express/並開始編程。 如果您沒有自己的項目或其他人想要完成的事情,請開始查找流行的算法並加以實現。 嘗試實現某些設計模式。 通過這種方式,而不是僅僅專注於語法,您將學到很多關於編程的更多知識。

即使我覺得此線程上的其他答案已經很好地涵蓋了基礎,但就回答一個非常“模糊”甚至“天真”的問題而言:我將添加另一種觀點(稍長的時間,只是一條評論)。

我恭敬地不同意一些帖子,這些帖子暗示學習編程語言類似於學習口語或書面語言。 SO並不是討論語言理論,語言理論與進化,認知結構以及Chomsky和Pinker等人的著作的地方。 等人,不僅暗示了語言學習的“先天性”,還暗示了““賦”(遺傳的,甚至是“氣質”)的變化,其與環境的動態相互作用以及“發展的機會之窗”學習可以以驚人的速度進行,對語素能力和音素能力的貢獻不同。

但是,請允許我提出一個假設 ,即在很多情況下,學習編程語言與學習口語和書面語言的類比更多是掩蓋復雜性的“包羅萬象”,而不是有用的工具。

另一方面,我懷疑(假設)一個已經精通一種以上口頭/書面語言的人確實已經發展出某些認知結構和技能,這些知識和技能可能對學習編程語言有用。

在我看來,以上兩段並不是天生矛盾的陳述。

總的來說,imho編程也不會像學習數學或幾何學那樣繁雜,數學或幾何學是將由公理或基本假設構成的結構構建成有時可以“正式”證明或驗證的復雜系統。 當然,有一些“稀有鳥類”從Knuth或Gamma等開始。 和“設計模式”,再到“現實世界” :)

我的“投票”是從一本好書開始的, 就像馬克·拜爾斯(Mark Byers)所建議的那樣 ,將其與實踐結合起來,進行自我測試,解決諸如馬克在歐拉項目中提到的問題,是的,當然,正如馬克所建議的那樣,學習別人的代碼。

但是,最開始的問題是恕我直言: 如何知道哪種代碼是好書

對我來說,答案是:研究真正好的書籍(如Jesse Liberty的書籍)提供的代碼示例,例如:O'Reilly的“ Programming C#”最新(第3版)。 注意:我的理解是第四。 該版本將於2010年3月發布。

imho Jesse作為編程語言老師有着非同尋常的天賦,能夠以熟練的方式“步伐”介紹材料,以正確的順序選擇和展示正確的示例,並在他的技術著作中提供了清晰的出色禮物。

CodeProject文章是學習代碼示例的重要資源。 在您感興趣的領域中尋找其他用戶給予很高評價且特定於C#的文章。

Liberty鮮為人知的書“ C#2005:開發人員的筆記本”是一個了不起的資源(恕我直言,就圖形設計和書籍結構而言,imho也是最令人着迷的書籍之一,在任何技術領域都是如此)。 我將一系列“練習”與音樂中“練習”的概念進行比較:每個練習都展示一個主題,挑戰您理解該主題的一個好例子,並且每個主題實際上都是對您有用的東西。 “現實世界”編程。

恕我直言,一旦您對.NET進行了大約100個小時的學習和實踐,便有了“腳上的地面”:飛起來, 別走了,喬恩·斯基特(Jon Skeet)撰寫的“深度C# ”到達“ 大師級”曼寧。 他(imho)還是一位出色的技術作家,他與Liberty分享了選擇性展示材料的天賦,並擁有他自己特殊,獨特的天賦,以“跳出書本直接與您講話”,解決各種問題。當您遇到更困難的材料時,您可能正在考慮。 我應該指出,我對本書的內容掌握還有很長的路要走,這只是激發了我理解本書的欲望。 在Skeet的寫作中,有一種幽默和幽默的元素,以我的經驗,在技術書籍中也很少見。

請注意:免責聲明:雖然我是Addison-Wesley的付費顧問,負責兩本主要.NET書籍的技術編輯,但我從未為O'Reilly或Manning工作,也從未收到過他們書籍的“比較”副本(該死的:)。

我必須尊重地反對阿爾巴哈里(Albarhari)和阿爾巴哈里(Albarhari)的“簡而言之C#”的建議(也是O'Reilly;我相信上面已經有第4版了:我只看過第3版):我認為對於.NET的新手來說,這是一個非常不合適的工具。 另一方面,當您學習Linq時: 天哪 ,您會發現Albahari的網站LinqPad的免費版本只是有史以來最酷的事情,可以幫助您“進入”並探索Linq。

祝好運 !

毫無疑問,學習VB6和VB.NET的方法相同。 拿起一本書,然后開始閱讀。 沒有什么根本不同的要求任何深奧的學習方法。 只是好老式的蹲在巴恩斯和諾布爾幾個小時,然后才分手買書。 您也可以在http://msdn.microsoft.com/zh-cn/vcsharp/aa336809.aspx上瀏覽一下,然后閱讀一些內容。

如果您已經在使用VB.NET,則C#對您來說應該很自然。 語法會有所不同,但是對象,方法等將都是熟悉的。 也可以在MSDN上查看有關C#的教程: http : //msdn.microsoft.com/zh-cn/library/aa288436(VS.71).aspx

哦,歡迎來到StackOverflow!

如果您已經熟悉其他編程語言,那么O'Reilly的“簡而言之”書籍通常是一個不錯的起點。 “簡而言之C#”既是很好的介紹,也是很好的參考。

下載Charles Petzold的.NET零本書,並從頭到尾閱讀它,即使您認為您對某個特定領域有些了解,也不要跳過任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM