C# 学习路径指南
花了几天时间整理了一份C#学习路线图,可以说是纯野的C#程序员成长路线图,分享在这里,希望对想从事C#开发的同学有所帮助。经验不足,有些知识点可能分享的不太正确,希望网友们可以在评论区补充,我会同步修正更新。
题词
最近在思考一个初学者一开始应该学什么,学到什么程度找工作不成问题,学到什么程度才能游刃有余地处理项目,而不会被bug所困。
是不是每个初学者在刚开始学习任何编程语言的时候都会有这样的疑惑,感觉完全不知道从哪里开始。反正我当时也确实有过这样的困惑。刚开始编程的时候很幸运有前辈和实验室老师的建议,减少了试错的成本,让我把更多的时间花在正确的事情上,这样学习效率就会高。
我根据自己当时的学习情况,以及现在的市场情况,列出了一份新手学习C#编程语言的指南,希望对大家有所帮助。
C# 学习路径指南
如果你是本科生,在校期间应该学习计算机基础、C语言、计算机组成原理、操作系统等计算机相关课程。希望你好好学习,特别是C语言,它是一门特别容易上手、理解编程思想的语言,它是面向过程的开发,首先你要学会用它的语法做一些简单的逻辑运算,其次你可以根据某些需要实现一些特殊算法的练习(这些对你以后学习面向对象的开发语言有很大的帮助)。
如果没有提供这些课程,你就需要花时间在网上寻找相关视频来学习。
推荐书籍:
推荐视频:
C# 基础知识 基本语法
如果你之前学过C语言,那么学习C#的基础会非常轻松,容易理解。这个阶段需要认真学基础,要学会用基础写一些简单的算法,不会出现语法错误,要熟练掌握语法,运用得当,能实现一些有逻辑的代码。
(基本语法、数据类型、变量、循环、方法、数组、集合、判断、类等)
面向对象开发
C语言是面向过程的开发语言,而C#是面向对象的开发语言,使用C语言编写逻辑代码时,可以按照一定的流畅逻辑去实现,而C#则不同,在学习语法、实现业务逻辑时,要考虑程序的可扩展性和健壮性。
你需要有抽象思维,可以模拟现实中没有生命的物体,把它更加抽象地提炼,概括成一个特殊的类,让这个类代表这一类的对象,让其具有这一类对象的所有属性和行为,这就是面向对象开发。
(继承、封装、多态、接口、抽象类等)
这部分学习比较抽象,学会抽象思维可以让你更好的理解这些知识点。
基础知识进阶
在这里你会学到一些高端的编程技术,这些技术可能你短期内无法掌握,但在你职业生涯的后期会更加明显。当你真正使用框架或者阅读源代码时,你会遇到这些知识点,可能会卡在里面。
(Linq、泛型、委托、事件、多线程、Socket 开发)
推荐书籍:
推荐视频
推荐一些在线学习网站
前端技术
在写后端代码的过程中,我们或多或少需要对页面进行处理,所以对前端语言的理解和使用至关重要。对于前端技术,你只要掌握到会用到的程度就行了,能看懂、会用、会写就行了。
刚开始学习的时候,你会需要网页的三剑客:HTML+CSS+JavaScript。这里我建议看新手教程,看网上的视频来学习。这样上手很容易,做出来之后会很有成就感。
第二个就是Jquery+AJAX技术,这个技术已经是很古老的技术了,目前市面上比较流行的框架比如Vue、Angular、React等都是对底层Jquery+AJAX进行高度封装的实现,所以我们很有必要掌握和了解Jquery和AJAX技术。
由于前端技术这几年发展非常快,各种新技术如雨后春笋般涌现,所以我们在学习的过程中要把握主次,不要什么都学。这里我推荐大家学习一下Vue.js(3.0),现在很多公司都在用,学好了对以后找工作有很大的帮助。至于其他前端技术,没必要全部学,等到公司或者将来的项目需要用到的时候再学也不迟。相信我,那些东西都很好用,原理都是通用的,就看你能否灵活运用了。
后续可能还需要学习Node.js、NPM等发布、构建的技术,实际使用的时候才能学到。
推荐书籍
推荐教程
数据库
学习数据库,需要从最基础的SQL语句开始,通过看新手教程就可以学习和熟悉。学习SQL语句的过程中,必须安装数据库环境才能实际操作,不能只是死记公式,而是要学会综合运用,在真实的数据库中体验。
目前,数据库分为关系数据库和非关系数据库。
关系数据库:Sql Server、MySQL、Oracle、SQLite、DB2 等。
非关系数据库:MongoDb、Redis、NoSql 等。
对于我们这些以后要从事编码开发的人来说,我觉得还是先学会使用Sql Server、MySql数据库吧,以后开发的时候再学习其他数据库也不迟。
就拿SQL Server来说,你学会之后马上就可以使用C#进阶知识中的ASP.NET MVC或者Web Api技术来操作应用数据库,可以先写一些简单的CRUD,实现一些基础功能,这对你以后的成长很重要。
推荐书籍
推荐教程
C# 高级知识
对于进阶知识部分,可以尝试做一些实际的项目,不管是ADO.NET,ASP.NET MVC还是ASP.NET Web API,都可以先跟着书籍或者视频教程自己会用,然后模仿别人写的方法,自己实现。
你可以在 Github 或者 Gitee 上找到一些开源项目,比如图书馆管理系统,博客系统,论坛等需要用到高级知识来实现的项目,需要先看代码,看看别人是怎么实现的,然后模仿别人的实现过程,按照自己的想法写出自己的系统。(通过这样的实践项目,你可以快速上手,学习并尝试做一个全栈开发,从前端到后端再到发布上线,体验整个软件项目的完整生命周期)。
ADO.NET:是最原始的数据库访问技术,现在基本不用了,市面上的公司都是用封装好的ORM,但是你得学,得搞明白它是怎么跟数据库通讯的,自己试着做一下这几步,看看能不能成功连接数据库,并进行一系列的CRUD操作。
ASP.NET MVC:是微软对模型-视图-控制器编程理念的程序化实现,学习后可以快速实现一个网站,通过该技术可以实现自己的想法,比如做一个图书馆管理系统等,结合之前学过的ADO.NET技术可以把前端和数据库连接起来。
ORM:ORM 是 Object Relational Mapping 的缩写,是面向对象编程语言中用于实现不同类型系统间数据转换的一种编程技术。目前 C# 语言中比较流行的有 Entity Framework、NHibernate、SqlSugar(国内)。只需要学习 EF,其余的编程思路都是一样的,只需要学会其中一种的使用方法,其余的只要简单学习一下技巧就可以快速上手。
ASP.NET Web API:是一种实现前后端分离的后端技术(SPA),也是目前市场上比较常用的技术,可以很方便的实现SPA,后端开发人员只需要编写后端业务代码,通过API暴露出访问接口给前端人员使用即可。
推荐书籍:
推荐教程系列
推荐视频
.Net 核心
最后一个就是.Net Core了,这段时间我也一直在看Core,受益匪浅。微软这几年一直试图通过Core来颠覆.NET语言的形象和未来,用它在市场上和Java竞争(还是有差距的),也刚刚发布了.NET 6预览版,统一了之前的开发路线,以后的命令就很容易区分了。
对于这个模块我建议先看微软的官方文档,因为版本比较多,而且跟之前版本的区别挺大的。这里我建议直接学习和使用.NET 5.0,这也是微软推荐在生产环境使用的版本。
其次可以按照ASP.NET Core中文文档目录进行学习,这个目录是一些程序员翻译的微软官网的文章合集,其中有些内容可能已经失效或者不再更新,但至少可以让你对Core有全新的认识。
其实关于Core要学的知识点还有很多,这里就不一一列举了,大家可以看看下面图片的内容,然后进行相应的学习。
图像
推荐书籍
推荐系列
由此可见,想要在编程的道路上走得更远、更长远,就需要不断学习,不断丰富自己,做一个坚定的长线主义者。
原创不易,希望大家关注,谢谢支持。
信息
生命短暂。我不想追求我看不到的东西。我只想抓住我能看到的东西。
我是阿辉,感谢你的阅读,如果对你有帮助的话,麻烦点个关注和点赞,谢谢。