编程哲学之 C# 篇:003——为什么选择 C#
国内开设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#的更多相关文章
- 编程哲学之C#篇:02——学习思维
<代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系 ...
- 编程哲学之C#篇:01——创世纪
我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...
- 编程哲学之 C# 篇:007——如何创造万物
上帝拥有创建万物的能力,本文介绍创造万物的道,让你也拥有上帝般创造万物的能力! 道 中国哲学家,道家学派创始人--老子,在<道德经>写到: 道生一,一生二,二生三,三生万物 那么,是什么 ...
- Python黑帽编程2.1 Python编程哲学
Python黑帽编程2.1 Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...
- Linux shell脚本编程基础之练习篇
shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...
- 浅谈.Net异步编程的前世今生----APM篇
前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...
- Scala进阶之路-并发编程模型Akka入门篇
Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...
- 浅谈.Net异步编程的前世今生----EAP篇
前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...
- 从编程哲学到开发应用:Spring的初步应用
一.前言 在学习Spring的过程中,我们学习了很多东西,可是实际应用中,我们究竟用到了那些?常用的又是那种方法呢? 二.书上与开发的差异 1.IOC 1) IOC,控制反转,是Spring框架的核心 ...
- 并发编程之第三篇(synchronized)
并发编程之第三篇(synchronized) 3. 自旋优化 4. 偏向锁 撤销-其它线程使用对象 撤销-调用wait/notify 批量重偏向 批量撤销 5. 锁消除 4.7 wait/notify ...
随机推荐
- C#多线程之高级篇(上)
前言 抛开死锁不谈,只聊性能问题,尽管锁总能粗暴的满足同步需求,但一旦存在竞争关系,意味着一定会有线程被阻塞,竞争越激烈,被阻塞的线程越多,上下文切换次数越多,调度成本越大,显然在高并发的场景下会损害 ...
- JAVA系列之类加载机制详解
类的加载机制 ? 双亲委派机制 ? 什么是类加载器 ? 自定义类加载器有哪些应用场景 ? 通常,在关于Java的类加载部分会遇到以上疑问,本文将对类加载重要部分做详细介绍,包括重要的基础概念和应用场景 ...
- Linux内存泄露案例分析和内存管理分享
作者:李遵举 一.问题 近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长.接到内存报警的消 ...
- 网络编程:多进程实现TCP服务端并发、互斥锁代码实操、线程理论、创建线程的两种方式、线程的诸多特性、GIL全局解释器锁、验证GIL的存在
目录 多进程实现TCP服务端并发 互斥锁代码实操 线程理论 创建线程的两种方式 线程的诸多特性 GIL全局解释器锁 验证GIL的存在 GIL与普通互斥锁 python多线程是否有用 死锁现象 多进程实 ...
- Crony 一个基于Go语言实现的分布式定时任务管理平台
crony - 分布式定时任务管理平台 1. 基本介绍 1.1 项目背景 项目中存在许多定时任务,很多代码写法都是采取见缝插针式的写法或者直接丢到task服务里面写,存在以下问题 服务多实例时执行定时 ...
- 火山引擎 DataLeap 的 Data Catalog 系统公有云实践
Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景.本篇内容源自于火山引擎大数据研发治理套件 DataLeap 中的 Data Ca ...
- 使用Java刷评论为平台引流的经历
场景:需要在一网站中批量评论留言. 分析接口: 列表接口获取idList,返回的是json数据直接用FastJson转就可以,如果返回的是HTML片段,则需要使用Jsoup进行提取,值得一学,常用于爬 ...
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 思路 最初看到O(1)复杂度的时候,就想 ...
- 自定义RBAC(5)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 把实体类及Service类都准备好了之后,就可以开始继续写业务代码了.Spring Security的强大之一就在于它的拦截器.那么这里也可以参 ...
- 常用内置模块之collections模块、时间模块、随机数random模块
今日内容回顾 目录 今日内容回顾 包的具体使用 编程思想的转变 软件开发目录规范 常用内置模块之collections模块 常用内置模块之时间模块 常用内置模块之随机数random模块 报的具体使用 ...