作为一个初学者程序员,很喜欢问的一个问题就是:零基础如何自学编程?在后台也有很多读者私信我,问我这个问题,其实这个问题比较大,不是一两句就可以说清楚的。
所以,今天结合我个人的经历,跟大家分享下,要学好.Net,跟着以下7个步骤学习就可以了。
【回复888,获.NetCore视频资料!】
1、要有明确的目标,明确的学习路线图
任何一门编程语言,涉及内容是比较多,比如:语法、数据库、开发工具、设计模式、数据结构、框架等等,所以初学者不知道从哪里学起,这个也是很正常。
我认为**学习任何一门编程语言,最重要是要对其进行归类,还有设定阶段性目标。**之前由于工作的需要,用C++做了几年的项目,当时那个项目主要涉及的内容:界面皮肤、网络、客户端与内嵌浏览器的交互。当时我只是着重学习了,这几方面的内容,其他方面的,比如C++基础知识:多线程、文件操作、数据库操作等知识没用到,我就没去学习,当然了,后面系统经常出现问题,还学习了C++问题排查与Dump等知识。
学习任何一门编程语言,我认为有明确的目标、有明确的问题去学习,这样比较好,可以阶段性的检验学习成果,而且比较有动力,每隔一段时间都可以看到进步,自然比较有热情,不会迷茫。学习.Net也是一样的,下面跟大家分享一个微软MVP整理的《.Net 学习路线图》,大家可以根据这个路线图学习。
关于这个路线图的介绍,大家可以看我之前分享的文章:《【最新】.Net程序员学习路线图以及就业现状》。
2、掌握微软官方文档,方便工作查询
作为初学者,在开发过程中,经常会碰到一个知识点,不知道怎么实现,比如:多维数组、foreach、多线程等方面,这个是很正常的,碰到不懂的知识点,大家可以到微软官方的教程查询,把这个当做工具使用,不懂去查询就行。
微软官方教程:https://learn.microsoft.com/zh-cn/dotnet/csharp/
3、保持阅读技术文章习惯,可以获取新知识、扩宽思路
当你已经掌握了,相关编程基础知识后,如果已经参加工作,就会参与了项目开发,在做项目过程中,就能从项目、团队成员学习到更多的知识、编程思想。
但是通过项目学习,还是比较有限的,**如果你在大公司,或者参与大项目涉及的内容会比较多,团队成员技术能力也比较厉害,你学习的内容会比较多,但往往很多人都是在小公司、小团队里面。**就像我当时参加工作第一家公司,当时做的项目都是企业网站、前端界面开发,都是一些没有技术含量的东西,自然学到的东西比较少。
所以我都会每天保持逛论坛、阅读其他人的技术文章,这个有几个好处:学习新知识、了解其他类型项目碰到的问题、学习其他人的编程思维、发现问题更多的解决方案等等,可以说是对于编程非常有好处。
比如说,我之前会逛博客园这个网站,这个网站.Net内容比较多。大家也可以看看我之前分享的《盘点13个值得程序员逛的论坛》。
4、掌握好开发工具
相信很多程序员,对于开发工具从来没有系统性的学习下,基本都是直接上手开发,建议可以去系统性的学习下。
掌握好开发工具的使用,也是非常重要的,它可以提升你的开发效率、减少一些繁琐的事情、提升调试效率等等,对开发还是非常有帮助的。
开发工具教程:
https://learn.microsoft.com/zh-cn/visualstudio/ide/
视频教程(涉及科学上网):
https://visualstudio.microsoft.com/zh-hans/vs/
5、修理内功,注重代码质量,学习编程规范、设计模式等
当你可以胜任简单的项目开发后,**特别要注重自己的内功,就是写好代码:**代码要简洁、代码结构清晰、代码要有规范、可读性高、性能要好、高内聚低耦合。
编程规范,大家可以看我之前分享的文章,看看大厂的编程规范:《阿里、腾讯、百度大厂的程序员编程指南规范》。
对于这方面的知识,建议还是可以买书,系统性学习下,我平常也是比较喜欢,买这方面的书,不会过时。
6、掌握几个框架,学习设计者的思想、思维
具备开发能力、也注重代码质量后,就要开始学习搭建框架,这是成为一个合格的高级程序员,必备的能力。
通过学习框架,可以学到非常多的知识,每个优秀的框架,都是设计者经过深思熟虑、结合业务需求权衡利弊设计出来的,所以学习框架,要深刻理解设计者的思想、意图。
之前也有梳理过 ,不同类型的框架,大家可以去看看:《初学者程序员要学好.Net,只要学习这几个框架就够了》。
架构方面书籍,也可以买书,系统性学习下,推荐一本Bob 大叔的经典之作《架构整洁之道》,让你对编程本质、编程语言的本质、软件设计、架构设计可以有进一步的认识。
7、学习特定解决方案
掌握了框架后,相当于你已经有能力,独立负责一个项目了。对于一些传统企业的管理系统,你所学的知识,基本已经足够了。
但是如果做一些互联网项目,还不够。因为互联网项目,往往具备以下特点:
使用用户量多;
系统流量大,并发高;
海量数据;
易受攻击;
功能繁琐;
迭代更新快。
所以可以学习下,针对互联网项目的一些解决方案,比如:秒杀系统、分表分库、分布式部署、分布式事务、分布式存储、分布式计算、全文搜索、大数据量搜索等解决方案。
好了,今天就跟大家分享到这边,希望以上的内容对您有帮助,欢迎点赞关注转发。
- End -
推荐阅读
一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
盘点5个C#实用的Word、PPT、Excel、Mail第三方库
一个基于EntityFrameworkCore+Lucene实现的全文搜索引擎库
推荐一个C#开发的、跨平台的解压缩的开源项,值得收藏
盘点10个.NetCore实用的开源框架项目