本人是一名计算机专业大一学生,做了两年半业余前端,想学习 C#,学习路线应该是怎么的。 查了一些资料,有些人说直接学习.net core ,有些帖子又不推荐学习,没有比较准确的推荐。 求大佬给一些比较细化的推荐。 比如说 C#我了解的有三个方向, 可以做游戏、后端、桌面端 如果这三个都想了解学习,学习的方向应该是如何的,技术栈是如何一步步学习下去。
例如做前端就得先 html 、css 、js ,然后学习一些 ajax 、nodejs 、webpack 、npm 相关的知识了再去学习框架 vue 、react 这种,然后例如在 vue 框架中又得学习,router 、vuex 、pinia 这种
求大佬指点迷津。
1
mooyo 347 天前 3
先学 golang/c++/java
然后校招进微软现学 c#。。。 |
2
cnbatch 347 天前
在校学生?那就从简单的做起,做个桌面端软件,然后做个简单的网站(用 C# 做)。
这两项对于打好 C# 的基础很有帮助。 |
3
mooyo 347 天前
|
4
mooyo 347 天前
除了你想进微软,我真的挠破头都想不明白你想学 c#的目的在哪....
|
5
jancing 347 天前 via Android
有前端经验的话,可以从 Windows Forms 和 WPF 开始,有机会的话找找实习,我是觉得工作中学到的东西比较牢靠,自己在大学校园闷头学受到的正反馈比较少。
这两个框架你在学的过程中就慢慢知道后端是怎么写的了,毕竟桌面端本来就包含了广义上的前端和后端。 C#语言不管是入门还是进阶,微软文档都有合适的内容可以查阅学习。版本的话其实无所谓,自己学就看最新版本,工作了就用公司的版本。 没有游戏领域的工作经验,就不提供建议了。 参与.NET 社区的话,英语其实挺重要的,C# / .NET 技术栈国外用得多,资料也多。当然国内博客园也是个好去处。 |
6
ybz 347 天前 1
游戏、后端、桌面端虽然都是用 C#,但是他们之间的关系大概就跟,锤人和砌墙都用锤子一样。。。。
|
7
Aloento 347 天前
我非常赞同你学习 .NET 系列语言。在国内,除了工控行业( FW ),很少有使用 .NET 的,更别说 Core 了。
但是,通过 C# 优秀的语言设计思想,足以让你在未来的工作中脱颖而出,这也是楼上一些人没有看到的方面。 我使用大部分常用语言,它们都是我工作语言。如果我能够自由选择项目的编程语言,我一定会选择 C#。 学习 C# 你最好通过 MS Learn 开始 https://learn.microsoft.com/zh-cn/collections/yz26f8y64n7k07?WT.mc_id=dotnet-35129-website Unity3D 使用的是 Mono ,怎么就没啥关系了呢?(⚪,启动!) |
8
hez2010 347 天前 2
语言层面:初期跟着官方文档就行了,其他东西后面遇到了现场查文档。
游戏:Unity 、godot 引擎都在用 C#,教程一大堆。 后端:跟着 asp.net core 的官方文档就行了(注意是 asp.net core ,不是 asp.net ),还挺全的。学后端的话 asp.net core 文档中跟 razor 、blazor 有关的内容都跟你没有关系可以直接跳过。 桌面端:跨平台的话推荐看看 Avalonia ,而 Avalonia 是从 WPF 继承下来的,所以你先学 WPF 的话可以比较无痛地转到 Avalonia 上,因为 WPF 文档要比 Avalonia 全的多,顺带学了 WPF 的话后面上手 MAUI 之类的东西也是轻而易举。不跨平台的话那就 WinUI 3 之类的。 另外就是英语得好,毕竟 C# 的主要社区不在国内,文档上也是英文的更准确。 至于前面有个劝退让你学 golang/c++/java 的,只能说你学会了 C# 的话 Java 上手就会,golang 更是看一眼就能开始写代码,只不过这个时候你会因为胃口变叼了写 Java/golang 的时候会觉得很不舒服,要么太繁杂要么太原始。 至于 C++ 的话,无论你学什么其他语言都推荐单独学一下 C++ 的。 |
10
NorthA OP @mooyo 其实学 C#不一定是为了工作,目前写代码来对我个人来说还算得上是一种娱乐,我很享受学习编程的过程,前面做私单的时候刚好给我遇到过一家做 C#后端的公司,谢谢哥你的说明
|
11
loken2020 347 天前
推荐两本书《 C#入门经典》《 C#高级编程》
|
12
NorthA OP @jancing 谢谢指导,那还有个问题请问一下您,就是 winforms 和 wpf 这两个桌面端在实际开发过程中,哪个用的更多一些,或者是什么样子的情况需要用到 wpf 或者是 winforms #5
|
17
dartabe 347 天前
最近在学 .Net core 语法就不说了 和 Typescript 太像了
博客园的很多教程是最好的 比大部分英文视频博客都好很多 |
18
leegradyllljjjj 347 天前 via Android
@dartabe 因为这两个语言的架构师好像是同一个人
|
19
bthulu 347 天前
会了 typescript, 自然就会 C#, 会 C#自然就会 java, 这三个你都会了, golang 自然也是信手拈来
|
21
jgh004 347 天前
《 c#21 天入门到精通》🤪
|
22
xuanbg 347 天前
我记得自己当初学 C#大概是看了一份 20 多页的 PDF 文档就会了,可惜找不到了。
|
23
lyusantu 347 天前
学 C#就先下载一个 Visual Studio
学会 C#然后做做上位机也是好的 |
25
omgr 347 天前
才大一,专注一点整基础,搞底层,C# 什么时候学习都不晚。基于项目而非学习语言本身。
|
27
huangcjmail 347 天前
大一做了两年半前端?高中就开始学编程了?
|
28
deali 347 天前
推荐一下我的开源 .NetCore 项目,配套了一系列的开发笔记记录本项目开发过程,可作为 .Net Core 入门项目学习~
https://github.com/Deali-Axy/StarBlog |
29
ming159 347 天前 2
计算机语言本身就是一种逻辑的描述工具. 无非就是 变量,条件判断,循环,函数,类,对象,功能块. 这些知识.
但是不同的方向会依赖特定领域的知识. 1. 游戏: 我仅仅了解过概念,坐标系的处理,物理引擎,动画渲染等,还是比较杂的. 2. 后端: 基本上是围绕 Http 协议展开+缓存+数据库+服务治理,捎带一些运维的知识(也或许得负责运维...) 3. 桌面端:避免不了 GUI 的开发,这点与前端类似.甚至概念都类似. 但是会涉及到一些多线程,文件处理,通信处理,数据库. 以上三个领域都有其他语言可以实现,且领域知识就是一套. 所以更应该的是学习领域知识.而不是纠结语言上怎么学 |
30
mmdsun 347 天前 1
|
31
ming159 347 天前 7
@mooyo C# 在工业领域有着绝对的优势. 很多设备都是 winform 拖拽的一个桌面程序与设备通讯,单机运行. 完成数据采集,记录, 甚至控制. 早先很多工业软件和组件都是基于微软的 COM 技术,且 winform 的拖拽开发个界面极其简单.导致很多电气工程师身虽然不是软件出身,但是依据厂商给出的范例,照葫芦画瓢,拖拽个程序就能跑.
这就体现出 C# 的低门槛,且强大. 因为设备一般都是 7x24 小时运行,程序可能几个月不关. 而 c#能让"面向对象"都不懂的人,写出稳定运行几个月的程序. 另外我是因为工作需要才被迫使用 C#,一开始也是认为这是上古语言了.....直到使用一段时间后,嗯..真香!. C# 语言本身很多特性都是很优秀的,LINQ,委托,操作符重新,dynamic 类型,再就是各种语法糖. 很多其它语言津津乐道的小特性在 c#早有实现. |
32
afirefish 347 天前
享受编程,建议学习 C#.
途径微观官方文档,我就不列了。上面已经有大佬给出了。 为了工作,不建议学习 C#。 |
33
Kuotier 347 天前 1
https://book.douban.com/subject/26937762/ Visual C#从入门到精通(第 8 版)
https://book.douban.com/subject/25843328/ 深入理解 C#(第 3 版) https://book.douban.com/subject/26285940/ CLR via C# |
34
leoskey 347 天前
我个人的学习历史,C# Console -> SQL Server -> WinForm -> WebForm -> ASP.NET -> ASP.NET MVC 。
1. .NET Framework 与 .NET Core 基础功能差异并不是很大,两者想 .NET Framework 3.5 到 .NET Framework 4 的版本升级。如果想学习 asp.net core 那就得 .NET Core 2. 做游戏可以在学习了解 C#语法后,直接去学 Unity 或其它支持 C#与的游戏引擎。 3. 后端 与 桌面端,微软提供了 WinForm ,WPF ,WebForm ,ASP.NET 4. 当你有更高的需求后,你自然就会了解到多线程等高级概念 |
35
zggsong 347 天前
作为一个误打误撞上班才写 C#的人,我的感受就是从嗤之以鼻到真香。
|
36
txhwind 347 天前
.net core 已经是整个 .net 转型的方向了。可以先学习 C# 设计优秀的语法,然后用它完成一些课程作业。写过好代码就自然会对坏代码产生抵触,对培养编程素养很有帮助。
框架方面就见仁见智了,说实话 MS 提供的框架一般都很易用,但在行业中应用偏少。可以多了解,但不必深入。 职业发展方面,建议重点关注 [内功] 和 [领域知识] ,语言只是将你的素养产出成商品的一种媒介而已 |
37
kriko 347 天前
CLR via C#
这本书狠狠的读完,不论是做游戏客户端还是服务器都用到 虽然版本低了但是价值还在 |
39
pkoukk 347 天前
c#只是一门语言,具体做什么有不同的生态,分别有自己的框架
你可以先从学语言开始,然后根据需求接触不同的需求,再去了解 |
40
NorthA OP @huangcjmail 是啊,高中就接触了,靠着前端做做外包赚点外快
|
42
jtwor 347 天前
|
43
NorthA OP 统一谢谢各位大佬的回复,我都有看,很感谢各位大佬的推荐和指导
|
44
idragonet 347 天前
看工作需求 需要什么学什么!
|
45
OBNtHBZY3N3lxGVT 347 天前
我是自学的 c#,工作也不是程序员,回答的可能不专业
首先 winform 和 wpf ,虽然都能做桌面端软件,但是如果只是开发一些小工具给自己用或者给同事用,winform 更快一点,wpf 不是不行,但他还是相对麻烦了点,具体有啥大区别我不专业,只是体感如此罢了 你做游戏取决于你会去什么公司,目前行业里大部分是 unity ,用的是 c#语言开发,如果你想接触虚幻 4 、5 那就得 c++ 游戏服务器后端也取决于你去什么公司,公司用什么技术栈,目前上海这边 golang 、c++多一点 网站前后端不知道,但是看上去国内前端是比较少 c#的,大部分都是什么 vue 啊,react 这些吧? |
46
czyt 347 天前
|
47
RainyH2O 347 天前
直接找个想做的东西,建个项目直接开写,不知道怎么写就开 ChatGPT 问,它告诉你啥不懂的 API 就开官方文档看一下,做出一个玩意来就入门了。
|
48
shijingshijing 347 天前
@IMengXin 这个真不错,不过好像缺少了容器相关的。
|
49
myesn 347 天前
可明确告诉你,C# 能做的方向太多了,不同方向的岗位要求的完全不一样,比如有些要求做工业客户端只要会 WPF 的,有些是要网站可能要微服务还要熟悉云厂商的各种云产品,有些做游戏的要会 Unity ,当你选择了一个方向后,你的就业岗位就基本上只能在某一类型下找,基本不可能跨类型找,如果你说全都学完,可以,完全没问题
|
50
Brodess 347 天前
@NorthA #12 物流行业 wms tms winform 以及一些老医院的桌面端 his 系统,wpf 的话一般是作为前端调用 c++的算法(医疗行业)或者是工业,半导体,有部分基金公司需求开发桌面端,winform 比较老了,还有一部分国产信创使用 wpf+ava 框架开发跨平台客户端,在下半年上海 wpf 的岗位还是挺多的
|
51
Allvirus 347 天前
学 C# + 前端 在哪你都能混口饭吃
|
52
crazytudou 347 天前
作为一个现在还在用 C#工作的人和你说说:
如果你想就业,别学 C#,学第一个开发语言找好就业工资高的(向现实看齐),国内 C#工作真不好找,除非你愿意在小公司之间流连。 如果不为了工作,只是想学,那先学桌面开发(开发 winform 要懂的东西少,入门容易),然后再学数据库,等懂这两个,你就能做点东西了。然后再学点 html/css/js/vue ,学点 mvc ,可以用做做网站了。 后端、桌面端,等你入门了就知道是一个东西。 游戏是另外的东西,虽然有 C#语言开发。 |
53
huntagain2008 346 天前
我一个非计算机专业,小白用户,到了 35 岁的年龄,当时网友给我的回复是:
"猜测楼主是做 c#一类的吧。很接近于 wpf wcf 开发工作,这种开发工作这么低薪资,我倒不觉得惊讶,只是疑惑楼主为什么不早做准备,很多制造业的程序员薪资很难提上去,所以年龄大了去制造业养老这种想法,我觉得并不靠谱" "我也觉得,有点像我一个同学,毕业后一直在一个做软件外包的日企做一些机械化的事情有个 4 、5 年(二线城市 2012 年开始工资一直是 4 、5k ),新来的实习生都劝他这个没前途赶紧换工作。。。后来被我劝动了,现在好多了 除非家里有矿、收租,不然真的建议马上换个工作吧" (我对他们的回复的理解是:不是说 C#不好,要找更好的工作岗位,还需要其他的技术) |
54
beyondstars 346 天前
需要驱动力或者兴趣,想想你希望用 C# 解决什么问题,为什么是 C# 而不是其它语言,搞明白了这一点就容易学下去了,BTW 微软官网都有比较细的文档。
|
55
jianghu52 346 天前
从头看到尾,没有人说现在已经没有啥.net core 了么。从。net6 开始,全部兼容.net core 了。直接学.net 6 就好了。就我个人而言,学.net 不是不行,但是如果要是真从找工作的角度,从 java 入门会更好一点。
1.大部分讲设计概念,包括算法的,还是 java 版本居多。 2.java 跟 C#的类似度很高,如果 java 学会了,转.net 会很轻松。 |
56
stardew 346 天前
刘铁猛老师的 c#课程,非常好
|
57
BeanGo 346 天前
游戏从业者来说下,Unity 用的确实是 C#。但是其实一般 C#用的也不多,往上层说,业务层基本也是用 Lua 、TS 来做热更新,也有 C#的热更新方案,但用的项目比较少;往底层说,Unity 引擎本身也是 C++引擎,只是给 C#暴露了一些接口,另外就是一些上层的包是用 C#写的,如果想做引擎相关的内容,比如去入职 Unity 的话,C++感觉是更重要的。C#的语言特性感觉只是最基础的,如果想做游戏的话,还是更多的要熟悉游戏引擎相关的内容
|
58
StoneHuLu 346 天前
我是做.net core 后端这块 5 年了,我正好想抽空教人写代码,楼主要是不嫌弃的话可以加我 qq 569812422 所有.net core 主流 web 我基本都接触过,目前工作内容是.net core 基于 grpc 的微服务,devops 也懂点。
|
59
luckrnx09 346 天前
刚入行时干过 2 年多 .NET Core 开发,由于就业环境不理想,后来转前端了。
.NET (本回复中都特指 .NET Core ) 是一个平台,VB 、C#、F# 三种语言都运行在这个平台中,C# 是其中最受欢迎的一员,存在感最强,许多人会把 C# 和 .NET 划等号。 C# 是语言基础,用它只能写控制台应用程序。 学完 C# 之后,根据你想从事的方向,可以继续学习,然后做许多事情(桌面端、游戏、移动端、上位机、Web 等),我只做过 HTTP 服务端的开发,也就是俗称的 .NET Core ,也就是 ASP .NET Core 。(微软总是把这些名字搞得很复杂 😞) 但是,楼主以后想从事 C# 开发的话,两点建议: 1. 考虑你想做哪个方向的开发 2. 看看招聘网站上的岗位多不多(注意招聘网站上的 C#、.NET 、dotnet 是同义词) 如果只是希望学一门后端语言让成为全栈工程师的话,我觉得在 AI 时代,学 Python 、Go 都是不错的选择。 最后推荐两份资料: 1. ASP.NET Core Roadmap: https://roadmap.sh/aspnet-core (通过它了解你需要学哪些内容) 2. 我昨天刚发布的《 JavaScript 工程师的 Python 指南》电子书: https://github.com/luckrnx09/python-guide-for-javascript-engineers |
60
ggvoking 346 天前
单从语言层面来说 C#学起来很快就能上手,我是大三开始搞 Unity ,也没刻意学过 C#,有一些 C++/java 基础就是直接上手就可以写,语言方面就是熟能生巧。而做游戏、后端、桌面端是不同的方向都需要花时间掌握,急不得。
如果是想做 Unity 开发方向,基本上全 C#,而像 Lua 会越来越少,因为主流开始走 HyBridCLR 的 C#热更方案。还是吃 C#熟练度的,因为要考虑性能,特别是 GC 很影响游戏体验 游戏开发的方向也有挺多的。如果只是基础向的话,还是跟着教程学习吧多做案例,新手就了解些基础的组件操作,UI 界面。 |
61
bianhui 346 天前
c#==进厂。
如果还是大一的话,建议 golang ,python ,然后辅助学习 c++,java ,rust ,js 。别把语言限制的太死,语言都有共同性的。熟练掌握一门语言,对其他语言入门提升很大。到实习前,做好规划就行。现在变化太快了,提前入坑没用。但是虽说就那样,如果学校不错有考虑考研的话,人工智能是比较学习方向。 |
63
idragonet 346 天前
我是 10 多年的 C#开发,C#岗位首先基本都是传统行业了( C#在互联网行业是非主流语言),如果希望 2-3W 月薪请出门右转。 如果希望 1W+ 安安稳稳一份传统行业的工作可以的。
|
65
SWALLOWW 346 天前
其实我觉得你可以从一个方面入手,比如
目标 1 开发个桌面软件 目标 2 这个桌面软件用 cs 架构使数据能保存 目标 3 开发个 webapi 数据服务 目标 4 桌面软件接入服务 目标 5 改用 blazor 变成跨平台应用 |
67
mushRoomHunter2 345 天前
推荐油管上的 raw coder ,讲的非常深入浅出
|