纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习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. 查询某数据库的某字段存在于哪些表 mysql

    select column_name,column_comment,data_type ,table_name  from information_schema.columns where table ...

  2. Redis API存取

    RedisClient redisClient = new RedisClient("127.0.0.1", 6379); [HttpGet] public int RedisIn ...

  3. 访问提示'staticfiles' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz

    解决方法 前端模板中{% load staticfiles %}都修改为{% load static %} 因为在django3.x中这部分做了修改,前者无法识别,只能用后者

  4. 类和动态内存分配的课后习题(C++ prime plus)

    第一题 1. 对于下面的类声明: class Cow { char name[20]; char *hobby; double weight; public: Cow(); Cow(const cha ...

  5. hbuliter x 连接雷电模拟器

    adb  路径 E:\HBuilderX\plugins\launcher\tools\adbs 也可以配置环境变量 配置环境变量:将adb.exe所在路径,放在Path中计算机(右键)→属性→高级系 ...

  6. Redis Template部分接口学习记录

    Redis Template是操作redis的一个封装模板,让我们更加简便的去操作redis. 操作键类型的接口: GeoOperations Redis的地理空间操作,如GEOADD,GEORADI ...

  7. Oracle “ORA-12154: TNS: 无法解析指定的连接标识符”错误------网络摘录

    相信使用过Oracle数据库的人一定碰到过"ORA-12154: TNS: 无法解析指定的连接标识符"错误,我在此做一个小小的总结. 在程序中连接Oracle数据库的方式与其他常用 ...

  8. 调试以及Linq查询

    1.调试的步骤 调试快捷键: F10逐过程(不会进入函数内部,直接获取函数运行结果) F11逐语句(会进入函数) F5执行,如果调试中多个断点,按F5执行到下一个断点 出现黄色箭头表示执行到这一句,但 ...

  9. scrcpy

    捕获配置 缩小尺寸 有时,以较低的清晰度镜像 Android 设备以提高性能很有用. 将宽度和高度限制为某个值(例如 1024): scrcpy --max-size 1024 scrcpy -m 1 ...

  10. SqlServer 不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。

    SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题. 但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某 ...