纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语言,恕不知有多少公司业务是用Python开发的,Python更多是粘合剂,作为胶水语言来使用。
我用C# 工作了 20多年,我也一直把它当作第一编程语言,几乎尝试了任何东西:桌面、物联网、移动、Web、云原生- 以及 C# 和 .NET 完美契合的所有地方,特别是当下Chatgpt 还有AI的辅助编程时代,你应该考虑从它开始你的开发人员之路。
C#是一种编程语言,.NET是建立在它之上的软件框架。为了简单起见,当我说C#时,我假设了它与.NET结合使用,反之亦然。
使用单一语言和单一框架,您可以构建任何类型的应用程序:桌面和移动设备以及云服务,您可以创建游戏并探索 AI。.NET是跨平台的:你可以为Windows,Linux,Android,iOS甚至物联网设备构建应用程序。
想象一下,你可以采用一种语言,尝试每一个方向,并在这个过程中提高你的技能。不过,您仍然需要研究方向细节。特别是如果想从互联网转向物联网,有了有扎实的技术基础,花个1年时间学习行业知识,专业的.NET技术都是可以无缝衔接过去了。您可以朝着自己最喜欢的方向进行改进,或者如果您愿意,甚至可以开始使用更特定于选定领域的语言和工具。例如,对于移动开发,我看到人们从Xamarin转向iOS或Android上的本机开发。
2、 C#是第五种流行的语言
根据TIOBE指数(基于搜索引擎结果的编程语言流行指数),C#作为最受欢迎的语言占据了第五位。在过去的10年里,它一直位居前10名。 最近几年,随着2014年.NET开源跨平台,它的受欢迎程度一直增长。
3、C#/.NET 拥有最好的学习材料之一
Microsoft 和 .NET Community 提供了大量任何形式的材料:文章、视频、课程、教程和书籍,使您能够成为一名成功的 .NET 开发人员。您可以在微软学习门户上查看所有可用的材料
社区提供了令人惊叹的全包含路线图,以掌握取得成功所需的技能和知识,例如面向后端开发人员的 ASP.NET 核心路线图。您可以轻松地在github 上找到其他方向的路线图。
而微软本身也试图做不同的有趣活动来吸引更多的开发者。例如每年一度的.NET Conf。
从.NET6开始,.NET 在简化入门体验方面迈出了一大步。最小 API 功能为我们提供了一种在单个文件中使用干净代码创建具有最少依赖项的 HTTP API 的方法。
只需通过单个命令创建 4 行代码即可使用 .NET 6 启动 Web 应用。
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
5. 大家开始重新审视微软技术
今年所刮起的Chatgpt风潮,让之前所有带着有色眼镜看微软技术的人们重新开始审视微软技术,为什么是微软在这波AI浪潮中独占鳌头,答案自然是非常清楚的,是CEO 纳德拉的在2014年为微软按下的刷新按钮,经历了接近10年时间的积累,开始引领技术潮流。同样的.NET 也是在2014年开始了刷新历程,经历了接近十年的迭代,已经脱胎换骨完成了蜕变。 每一年的.NET 版本的发布都是至今为止性能最好的版本,今年即将发布的.NET8 依然会是如此,这里是不是和OpenAI CEO Sam Altman 称,GPT-4 是“我们迄今为止最强大、对齐最好的模型”。
6、Azure OpenAI 服务
自从去年年底 ChatGPT 推出以来,我们看到全球各行各业利用 ChatGPT 落地实际应用场景,例如:内容摘要、总结、电子邮件内容推荐和生成,甚至解决软件代码问题。现在,随着企业级 ChatGPT(国际预览版)在 Azure OpenAI 服务中推出,各行业客户及开发者可以将 ChatGPT 所带来的革命性体验直接集成到实际业务系统或App。例如通过 ChatGPT 驱动的自动化客服、总结客户服务对话来更快解决客户支持问题、个性化产品优惠推荐、创建新的广告文案、自动化理赔处理等场景。Azure OpenAI 服务推出的最早的SDK就是.NET的 ,这是一个大利好,这是促进在企业级采用.NET技术的助推器。
https://www.nuget.org/packages/Azure.AI.OpenAI 以及 社区也推出了一个提示库 https://xakpc.github.io/DotnetPrompt/
总之,在选择第一语言时,您应该问自己两个问题:
对于 C#,我的答案肯定是肯定的。 对 C#/.NET 开发人员的需求很高,它是一种类似 C 的语言,具有强大的面向对象方法,并且每个版本的学习曲线都变得越来越容易接受。
Ascend C是华为昇腾面向算子开发场景的编程语言,想省时省力快速入门可以看这篇文章,为你系统化梳理AscendC编程最重要的知识点,3天快速上手不迷路。
C#.Net的BCL提供了丰富的类型,最基础的是值类型、引用类型,而他们的共同(隐私)祖先是 System.Object(万物之源),所以任何类型都可以转换为Object。