国内开设C#课程的学校或培训机构是越来越少,使用C#作为开发的语言企业也是越来越少。企业要招C#的开发人员越来越难,会C#的要开发人员要找工作也是越来越难,然后我还是选择C#作为本系列的主要语言,我给出的理由是...

定位与目标

我在《编程哲学之C#篇:01——创世纪》就说了:“本系列核心内容是介绍各种哲学观和思维方式,随便把某种编程语言学了。”而这里的某种语言,我选择了 C#,理由是从语言的角度来说,C# 非常优秀,从一开始是借鉴 Java 到现在被 Java 或其他语言借鉴。而且在我的认知中,每种语言都有自己的哲学观和思维,所以这种语言越完善,那么它所包含的思想也就越完善。因此从学习角度考虑,我推荐 C#。

同时我又把本系列的目标读者设为自学编程的初学者,基于这个原因,我选择了 C#。因为 C# 有一个优势,宇宙最强 IDE(Integrated Development Environment[集成开发环境])——VisualStudio,一个强大的 IDE 有各种智能提示,就如同你在写代码的时候,旁边有一个老师一直盯着你,告诉你接下来要怎么写,哪里写错了。想当年我自学编程的时候,教程中是推荐用 UltraEdit,教程作者给出的理由是你自己知道接下来应该知道写,还有哪里写错了,才是最牛逼的啊,就算到了现在,依然有人抱着用记事本写代码才是真的牛的观念。然而对于一个初学者,用一个不强大的 IDE,当代码出错的时候,你自己找不到原因,又没有人可以问,然后把你卡住了,这个时候就可能把你的编程兴趣扼杀在摇篮中,所以有强大的 IDE 很重要。

为什么选择 .Net 而不是 .Net Core

显然 .Net Core 才是未来,但因为本系列的所有例子都只使用控制台应用程序,两者差异不大,而 .Net 的官方文档更加齐全,网上例子也多。可以降低自学时的查询资料时间成本,所以选择 .Net,读者可以自行用 .Net Core 实现本系列出现的例子。

.Net 和 .Net Core 会在 2020 年合并成 .Net(本质是 .Net Core),很快就不用纠结了。

尚能饭否

C# 很优秀,但很尴尬的是,特别的在中国,越来越少企业在用,原因在于 Java 出得早,并且一早就实现跨平台,造就很多企业在技术选型时选了 Java。在很多编程语言书的前言中,都会把该语言描述的“此曲只应天上有,人间能得几回闻”的样子,但我觉得我不能坑人,我必须思考你要吃饭的问题,

因此:

  • 如果你打算短时间内学成,并且学后奔着国内一线互联网企业去的,即不想先学 C#,再学 Java,那么你就直接去学 Java 吧。
  • 如果你打算从事手游开发,那么 C# 就是非常不错的选择了,因为很多手游都是用 Unity(C#) 游戏开发引擎来开发的。

最后的安利

本系列的安利

我面试过一部分人,他们能很快地说出知识点是什么,但一问道为什么要这样,他们就卡住了。我也看过很多书,书中只告诉你什么是什么,但很少会告诉你为什么要这样。所以我一直在构思一本与众不同的书,更加偏重于思考,而不是各种语法。

C#的安利

C# 是一门很优秀的语言,各种编程概念都很现代和完整,所以学了C#,你的编程思想会走在其他语言前面。

结束语

本章介绍了我选择 C# 的原因。

下一章将介绍怎么安装宇宙最强大的 IDE——VisualStudio

问题:如果你有熟悉的编程语言,那么你知道该语言的核心思想和特性是什么吗?

编程哲学之 C# 篇:003——为什么选择 C#的更多相关文章

  1. 编程哲学之C#篇:02——学习思维

    <代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系 ...

  2. 编程哲学之C#篇:01——创世纪

    我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...

  3. 编程哲学之 C# 篇:007——如何创造万物

    上帝拥有创建万物的能力,本文介绍创造万物的道,让你也拥有上帝般创造万物的能力! 道 中国哲学家,道家学派创始人--老子,在<道德经>写到: 道生一,一生二,二生三,三生万物 那么,是什么 ...

  4. Python黑帽编程2.1 Python编程哲学

    Python黑帽编程2.1  Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...

  5. Linux shell脚本编程基础之练习篇

    shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...

  6. 浅谈.Net异步编程的前世今生----APM篇

    前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...

  7. Scala进阶之路-并发编程模型Akka入门篇

    Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...

  8. 浅谈.Net异步编程的前世今生----EAP篇

    前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...

  9. 从编程哲学到开发应用:Spring的初步应用

    一.前言 在学习Spring的过程中,我们学习了很多东西,可是实际应用中,我们究竟用到了那些?常用的又是那种方法呢? 二.书上与开发的差异 1.IOC 1) IOC,控制反转,是Spring框架的核心 ...

  10. 并发编程之第三篇(synchronized)

    并发编程之第三篇(synchronized) 3. 自旋优化 4. 偏向锁 撤销-其它线程使用对象 撤销-调用wait/notify 批量重偏向 批量撤销 5. 锁消除 4.7 wait/notify ...

随机推荐

  1. 支持JDK19虚拟线程的web框架,之五(终篇):兴风作浪的ThreadLocal

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos <支持JDK19虚拟线程的web框架>系列 ...

  2. perl中ENV的使用

    在打印环境变量的时候可以用到.实际上是%ENV,perl中的哈希变量,里面保存的是环境变量.键是环境变量名,值是环境变量值.例如,有一个环境变量是PATH,其值为C:\windows,那么,打印这个环 ...

  3. Go语言核心36讲22

    你好,我是郝林,今天我们继续来分享错误处理. 在上一篇文章中,我们主要讨论的是从使用者的角度看"怎样处理好错误值".那么,接下来我们需要关注的,就是站在建造者的角度,去关心&quo ...

  4. 【云原生 · Kubernetes】部署kube-apiserver集群

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 部署kube-apiserver集群 10.1 创建kube-apiserver 证书 10 ...

  5. C温故补缺(十一):文件读写

    文件读写 打开文件 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件 FILE *fopen( const char *filename, const char *mode ); fil ...

  6. 修改Listen 1源码的一点心得

    注:本文只作为技术交流 首先感谢听1的作者写出这么强大的音乐播放器!! 软件首页地址:点击打开链接 软件的github上上上地址:点击打开链接 软件唯一让我美中不足的就是不能下载,这可能是作者考虑到了 ...

  7. supervisor安装与监控nginx

    安装参考:https://www.cnblogs.com/zgcblog/p/10192077.html https://www.cnblogs.com/yangbo981205/p/14928897 ...

  8. 医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用

    背景 在 Apache Hudi支持完整的Schema演变的方案中(https://mp.weixin.qq.com/s/rSW864o2YEbHw6oQ4Lsq0Q), 读取方面,只完成了SQL o ...

  9. PostgreSQL:查询元数据(表 、字段)信息、库表导入导出命令

    一.查询表.模式及字段信息 1.查询指定模式下的所有表 select tablename,* from pg_tables where schemaname = 'ods'; 2.查询指定模式下的表名 ...

  10. 【每日一题】【DFS和回溯的区别】【BFS】104. 二叉树的最大深度-211227/220218

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], ...