国内开设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. 通过Jenkins,执行远程服务器的自动化脚本

    通过Jenkins,可自动执行写好的应用部署.自动化测试等的脚本工具,实现测试环境的应用自动定时更新.自动执行测试等. 1. 安装SSH插件 进入[系统管理]-[插件管理]-[可用插件],搜索Publ ...

  2. day15-Servlet04

    Servlet04 12.ServletConfig 12.1ServletConfig基本介绍 ServletConfig类是为Servlet程序配置信息的类 Servlet对象和ServletCo ...

  3. 数据库可视化工具分享 (DBeaver)

    前提:最近公司下发通知,所有开发人员 必须 卸载 Navicat 数据库可视化工具,不知道兄弟们有没有在使用的,可能现在的反应跟我一样,一脸懵逼,Navicat为什么不能使用呢? 有事没事找度娘,于是 ...

  4. selenium被某些网页检测不允许正常访问、登录等,解决办法

    网站通过什么方式检测 function b() { return "$cdc_asdjflasutopfhvcZLmcfl_"in u || d.webdriver } 通过上方的 ...

  5. Java开发环境安装与配置(干货详细教程)

    Java开发环境安装与配置(干货详细教程)  对于文章中出现的任何错误请大家批评指出,会及时做出修改!  安装JDK JDK是 Java 语言的软件开发工具包要学习 链接Java中国官网https:/ ...

  6. CPU TLB原理 [转载好文]

    首先,我们知道MMU的作用是把虚拟地址转换成物理地址.虚拟地址和物理地址的映射关系存储在页表中,而现在页表又是分级的.64位系统常见的配置是4级页表,就以4级页表为例说明.分别是PGD.PUD.PMD ...

  7. Java网络编程:Socket 通信

    client----发送数据(输出流)------------(输入)-[管道流处理数据]-(输出)------接收数据(输入流)------server URL:协议+IP+端口+资源位置 客户端: ...

  8. 关于python转义字符在正则匹配中的问题研究

    问题 首先看一个问题: import re text = r"\学" print(text) zz = r"\学" result = re.findall(zz ...

  9. Oracle 插入时间戳id函数func_getnewid()

    在Oracle数据库中出入以时间戳为id的最简单方法运用func_getnewid()函数: select func_getnewid(30) from dual; id长度可调

  10. WEB入门——爆破21-28

    WEB21 首先尝试网站后台常见登陆的弱口令,发现错误   则使用burp suite抓包试试看 通过分析,在未填入账号密码时,响应头如下所示: 填入弱口令账号密码,发现响应头如下: 则对应可知账号密 ...