纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语言,恕不知有多少公司业务是用Python开发的,Python更多是粘合剂,作为胶水语言来使用。

我用C# 工作了 20多年,我也一直把它当作第一编程语言,几乎尝试了任何东西:桌面、物联网、移动、Web、云原生- 以及 C# 和 .NET 完美契合的所有地方,特别是当下Chatgpt 还有AI的辅助编程时代,你应该考虑从它开始你的开发人员之路。

C#是一种编程语言,.NET是建立在它之上的软件框架。为了简单起见,当我说C#时,我假设了它与.NET结合使用,反之亦然。

1. .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。

4. .NET 6 简化了快速入门。

从.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/

总结

总之,在选择第一语言时,您应该问自己两个问题:

  1. 如果你想找工作,它是一种好的编程语言吗?
  2. 这是一门开始学习编程的好语言吗?

对于 C#,我的答案肯定是肯定的。 对 C#/.NET 开发人员的需求很高,它是一种类似 C 的语言,具有强大的面向对象方法,并且每个版本的学习曲线都变得越来越容易接受。

为什么 C# 可能是最好的第一编程语言的更多相关文章

  1. 2019年2月编程语言最新排行:java稳居第一(java优势在哪里)

      近日TIOBE公布了2月编程语言排名,在意料之中java稳居第一,C和C++分别位居第二第三名. 下图是2 月编程语言排行榜 TOP20 榜单以及前 10 名编程语言长期走势图:         ...

  2. 第一周python入门

    第一编程语言的分类: 1.机器语言  二进制编程 直接操作硬件 优点:执行速度快 缺点:开发效率低   面向机器编程 2.汇编语言 英文标签代替一串特定的二进制,直接操作硬件 缺点开发效率低   面向 ...

  3. 机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

    流水的编程语言,铁打的 Java.C/C++. 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考.毕竟,在学习一门编程语言时,需要花费大量的 ...

  4. TIOBE 编程语言排行榜是什么,它是如何计算编程语言排行的?

    做为一名程序员,都比较关注其使用编程语言的热度,一方面编程语言的热度决定了它拥有多大的市场,另一方面也关系到行业内程序员选择机会有多大. 我们总听说某个编程语言排名第一,那么这些数据到底准不准确呢? ...

  5. 再过两年C语言就50岁了,这么老的编程语言怎么还没有过时?

    再过两年,C语言将迎来它的 50 岁生日,同样进行周年庆的还有 PL/M和Prolog.不过,C语言至今仍然非常受欢迎,它在几乎所有编程语言中的受欢迎程度,始终排在前十名.   大多数操作系统的内核( ...

  6. [JavaScript]JS由来

    JavaScript最早由Netscape公司开发 JavaScript的发展历程 我们知道Windows桌面程序是可以交互的,用户可以点击菜单.按钮.下拉列表等控件,并通过消息机制来响应用户操作. ...

  7. php底层

    http://www.phpchina.com/member.php?mod=logging&action=login 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的: ...

  8. 2014中国软件开发者调查(一):Java最受欢迎 第二语言JS使用比例最高

    2014 年 3 月 20 日到 4 月 25 日期间,CSDN 通过在线问卷渠道进行了中国软件开发者调查,本次调查问卷得到了近万名开发者踊跃支持.日前这份调查报告已经出炉,CSDN 将就调查结果连续 ...

  9. Python语言初学总结

    课程名称:程序设计方法学 实验1:程序设计语言工具 时间:2015年10月21日星期三,第3.4节 地点:理工楼1#208 一.实验目的 1.深入理解程序设计语言及其几种常见的编程范型: 2.激发学生 ...

  10. Android开发系列之学习路线图

    通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明 ...

随机推荐

  1. 大数据分析——matplotlib

    参考链接:https://blog.csdn.net/xavier_muse/article/details/83859272 fig,ax = plt.subplots()等价于: fig = pl ...

  2. 如何使用Antd的图片上传组件

    html结构如下 <a-upload v-model:file-list="fileList" //已经上传的文件列表(受控) name="avatar" ...

  3. Kubernetes--创建Ingress资源

    创建Ingress资源 Ingress资源是基于HTTP虚拟主机或URL的转发规则,它在资源配置清单的spec字段中嵌套了rules.backend和tls等字段进行定义.下面的示例中定义了一个Ing ...

  4. Java基础学习:2、Java数据类型及逻辑运算符

    1.数据类型: 数据类型范围: byte:-2^7 ~ 2^7-1,即-128 ~ 127.1字节.Byte.末尾加B short:-2^15 ~ 2^15-1,即-32768 ~ 32767.2字节 ...

  5. 训练题——DS18B20部分

    Author:Cherry_Ywj 0. 前言 本文档以 DS18B20 为例,主要介绍如何针对一种传感器编写相应的驱动库,驱动是单片机开发中难度较大的一环.从看别人代码并对照 datasheet 开 ...

  6. Java中finalize()方法的使用

    参考:https://blog.csdn.net/m0_64624615/article/details/126326921 垃圾回收器

  7. 前端JS常用设计模式

    话不多说,这里记录一些常见的设计模式,常看常新,也能提升JavaScript编程水平 一.设计原则 二.单例模式 单例模式的定义是,保证一个类仅有一个实例,并且要提供访问他的全局api 单例模式在前端 ...

  8. 面向对象2(Java)

    封装 基本介绍 该露的露,该藏的藏,我们的程序设计要追求"高内聚,低耦合": 高内聚:类的内部数据操作细节自己完成,不允许外部干涉 低耦合:仅暴露少量的方法给外部使用 封装(数据的 ...

  9. Spring系列之面向切面编程-15

    目录 AOP 概念 AOP 代理 @AspectJ 支持 启用@AspectJ 支持 使用 Java 配置启用 @AspectJ 支持 通过 XML 配置启用 @AspectJ 支持 声明一个方面 声 ...

  10. git cherry-pick适用场景详解

    前提条件:有2个分支,分别是master,hotfix,其中master是用于生产环境的发布分支. 场景1:生产环境hotfix. T1时刻,使用master分支发布生产.当时的HEAD的commit ...