![](/img/trans.png)
[英]Stuck with learning C# - What is best way to start your first app with OOB and TDD? [on hold]
[英]What is the best way to start learning C#?
我對vb 6和vb.net的編程經驗不多。 請告訴我成為專家C#程序員的最佳方法,而且我知道這將花費很長時間。
考慮一下如何學習人類語言-閱讀,寫作,口語和聽力。
實踐。 實踐。 實踐。
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.