C#具體的學習或發展方向有那些?
在學C#,但是現在有點迷茫,感覺C#的範圍好廣,什麼資料庫操作,系統操作,網路編程,WEB開發,多媒體圖形窗體,http://ASP.NET等等其他的。
我想問的是C#到最後的具體方向到底有那些,或者說現在發展前景較好的有那些。MVC? WCF?這些算嗎?我想找個具體的方向去學深一點,而不是一樣學一點,但是不知道具體有那些方面,也要考慮下就業方面的需求,希望知乎的大大們能指點下迷津,不甚感激。
很抱歉,你對發展方向的理解是有誤的。不管是資料庫操作,系統操作,網路編程,WEB開發之類的,都是只是.net framework中的一小部分內容,無非是一些類和函數以及編程模型的應用,查查教程,看看MSDN中的一些例子,自己試下代碼,就可以學會,稱不上發展方向。基本上這些內容,做上個三五個項目之後,就很容易學會了。
職位職能: 高級軟體工程師 職位描述:
Overview (職位概要):
帶領團隊進行CRM 項目分析,設計,開發與維護,並協助主管訂定年度計劃與人員訓練。
Key Role and Responsiblities (工作內容):
l 負責CRM項目技術諮詢、解決方案制定編寫、客制化開發與數據導入規劃處理
l 公司CRM雲產品功能模塊開發、技術支持和維護
l 總結使用CRM雲產品的經驗,提出產品改進建議和新產品開發提議
l 負責解決項目中的關鍵問題和技術難題,並指導開發工程師按照詳細設計進行編碼工作
l 負責新技術及應用研究
l 建立完整的設計技術文檔,提出技術專利申請建議,提供相應技術文件
l 協助主管制定部門發展規劃和年度工作規劃
l 完成主管交付的其他任務
Qualifications (需求條件)
l 本科及以上學歷,計算機或相關專業5年以上互聯網技術開發工作經驗,至少參與過2個團隊開發軟體系統的工作經驗
l 精熟B/S架構,精熟面向對象設計、精通jQuery、HTML5、AJAX、C#、http://Asp.net
l 精通資料庫操作、性能優化、T-SQL的儲存過程編寫
l 具有很強的團隊合作能力、權衡能力、統籌思維的能力、技術分析的能力
l 了解大數據、數字營銷、SNS者,與有使用UML開發設計從優
重點說下需求條件部分,這些實際上給出了個人的一些重點學習方向,完全是給出了一系列的學習目標。
第一條是工作經驗,這個忽略掉,這是靠時間積累的。第二條l 精熟B/S架構,精熟面向對象設計、精通jQuery、HTML5、AJAX、C#、http://Asp.net
1.精熟B/S架構
要求懂架構知識,但是只要B/S就行。 編程這個工作,不管從那條路走,最終都會遇到架構問題,所以先了解一些架構知識是很有必要的。2.精熟面向對象設計這幾個字,你可以理解為會OOP,也可以理解為懂設計模式。但是重點是設計,Design。所以不是在代碼中會用類這麼簡單的。3.精通jQuery、HTML5、AJAX、C#、http://Asp.net『
這個說明CRM是網頁技術開發的,基本上前三項是網頁開發必須要掌握知識了,特別是前端技術,後面兩個是後端技術。l 精通資料庫操作、性能優化、T-SQL的儲存過程編寫
基本上是搭配出現的,做網頁開發,不懂資料庫,很難想像。
綜合上面的,發現沒,一個要求懂C#的工作崗位,招聘信息里才提到了兩個和C#有關的關鍵字,C#和http://ASP.net如果你是一個初學者,那麼這兩個關鍵字就很明確的指出了CRM開發這個崗位一開始必須要學習的內容,就是C#語言和http://ASP.net框架,如果你有志於做這個工作的話。就醬,寫到這裡先。如果規劃職業方向,知乎上有個美女比我更加清楚如何做 @luckystar作為一名C#六年的從業人員,我也曾經認真研究過這個問題。從應用角度來就別,以C#的應用方向來說大致以BS與CS來區分:
1 桌面開發,剛開的CS,主要用於系統集成領域。按客戶端來分主要分為WinForm與WPF兩個方向。WinForm開發比較簡單容易上手,也沒有固定的開發模式,所以大型程序的話代碼可讀性不佳,但大部分人都用的這個,因為它易學,出活快。WPF主要使用MVVM模式,概念很多,而且有很多流派,學習周期長,出活慢。然而精通之後會發現其實WPF在代碼維持方面很有優勢,而且模式熟練的話,開發效率可以大大提升。現在來說服務端。主要採用TCP,Webservice,WCF這三種,根據業務需要常常需要混合使用。但一般來說,WinForm與TCP結合,WPF與WCF結合使用,這是因為它們的思路比較接近。WPF目前用的其實並不多,雖然說它可以做出很炫的效果,但畢竟過於複雜,很少有企業認同。2 BS開發。主要的技術流派為: http://Asp.Net,WebForm,以及MVC開發。值得一提的是Silverlight(銀光技術)是類似於Flash的一種網頁組件,但不同的是Sliverlight開發出來的是整個頁面,而不是Flash一樣的嵌入插件。它的學習路線是WPF的子集,由於它過於消耗流量,已經被絕大部分企業棄用。現在的主流方向是MVC。
3 題主提到資料庫,無論你開發什麼都必須要使用資料庫,.Net系統經常與Sqlserver一起使用。4 .Net 還可以用來開發安卓的後台,主要使用Webservice。還可以做Windows服務,比如我在公司的OA伺服器上偷偷安裝了個自啟動服務,功能是每分鐘檢查一次伺服器時間,把8:30到8:35的時間定格到8:29的隨機某秒,把17:55到18:00的時間定格到18:01的隨機某秒,其他時間正常,這樣就可以遲到5分鐘上班,提前5分鐘下班。再來說說我的經歷。
六年前我開始使用WinForm,確實出活很快,但後來領導嫌我界面太丑,於是我一開始使用了WinForm的一個皮膚插件,發現它的可定製化程度太低,然後發現WPF竟然可以做也如此炫麗的東西,於是就開始廢寢忘食地研究。當然在資料庫方面,隨著數據量的增長,要維護的資料庫實例的增多,為了提高性能我甚至研究過資料庫文件的組織格式,當然沒什麼卵用,優化主要來自於設計,像索引,表分層,多庫多機,無所不用。後來微信火了,領導說要跟上時代,所以我又跑去搞微信,做了個IIS託管的C#後台,順便把以前的客戶端搞成了MVC網頁版,這樣我們也算開始進軍BS架構,與時代接軌了。總結如下: 這三樣技術是開發主流: WPF,MVC,資料庫,值得你花費大部分精力。同時要熟練掌握TCP通信,WCF,Webservice,這三樣比較簡單,等你做幾個項目自然就會了。
最後一條: 你要學什麼技術不是你說了算,而是CTO說了算。我還臨時做過Java, php, delphi的項目,第一天CTO一動員,第二天就開始幹活,學習?學個毛毛,先交活再說。C#下一步的方向主要是使用Razor的http://ASP.Net MVC,以及以Web API架設的RESTful服務
WPF對於寫桌面程序很有用,但是我感覺現在這東西正在讓位於Javascript和網頁
另外就是C#寫任何和Windows操作系統有關的東西都很方便,視情況(無論你做什麼)你可能都需要知道這方面的知識。
總之.Net相關的有兩個大方向- 桌面/伺服器軟體開發方向的話你就要需要深入了解CLR,或多或少知道一些WPF和WCF,然後還有大量的操作系統,Windows底層以及多線程方面的知識。這個方向比較傳統,而且一般是比較有實力的大企業才會幹這種事情。
- 界面:WPF,WCF,MVVM
- 後端:COM,CLR,操作系統,SQL
- 新興的則是http://ASP.Net和WebAPI構架的網頁。這個方向的話在前中後三個端你至少要先吃透其中之一,然後再慢慢往其他方向過渡。這個方向對於CLR和操作系統的要求並不高,但相應的要求你對所有的東西都有一定的了解。這個方向是小公司居多,而且很大一部分都是以網路結合線下服務的方式運營的
- 前端:HTML5,http://ASP.Net Razor,Javascript / JQuery,至少一種常見的Javascript架構(比如AngularJS,NodeJS,ReactJS等等)
- 中端:http://ASP.Net MVC,HTML 5,Web API以及HTTP 1.1協議
- 後端:C#,CLR,操作系統,SQL,NoSQL(這個不一定必要)
U3D現在工資高得發瘋,而且還有機會獲得一下子拿一年的工資作為獎金,我會亂說?
到最後每樣都得學,所有方向熟悉一兩個方向精通
點陝西麵館一會更新如果以就業為目的來看,方向主要有兩個,一個是Web開發http://Asp.Net,另一個是遊戲開發Unity3D。
推薦閱讀:
※自學發現.net mvc網上能找到的項目案例很少?
※Asp.net 怎樣從入門到精通?
※怎麼知道一個網站是由 ASP 、PHP 或者 .NET 開發的?
※Asp.Net Web Form開發模型是否正在走向末路?
※做網站,是要更注重用戶體驗,還是要設法迎合SEO優化呢?為什麼?