c#程序员必学清单
必读书目:
1. "Effective C#: 50 Specific Ways to Improve Your C#" by Bill Wagner
2. "CLR via C#" by Jeffrey Richter
3. "Code Complete: A Practical Handbook of Software Construction, Second Edition" by Steve McConnell
4. "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin
5. "Head First Design Patterns" by Eric Freeman and Elisabeth Robson
必学开源框架:
1. ASP.NET Core
2. Entity Framework Core
3. NUnit or XUnit for unit testing
4. AutoMapper for object mapping
5. Serilog for logging
6. Moq for mocking dependencies
7. MediatR for mediator pattern and CQRS
8. FluentValidation for input validation
必读书目:
1.《Effective C#: 50 Specific Ways to Improve Your C#》by Bill Wagner
2.《CLR via C#》by Jeffrey Richter
3.《Code Complete: A Practical Handbook of Software Construction, Second Edition》by Steve McConnell
4.《Clean Code: A Handbook of Agile Software Craftsmanship》by Robert C. Martin
5.《Head First Design Patterns》by Eric Freeman and Elisabeth Robson
必学开源框架:
1. ASP.NET Core
2. Entity Framework Core
3. NUnit或XUnit用于单元测试
4. AutoMapper用于对象映射
5. Serilog用于日志记录
6. Moq用于模拟依赖项
7. MediatR用于中介者模式和CQRS
8. FluentValidation用于输入验证
作为C#高级程序员,还有一些经典的进阶书目和项目需要掌握,包括但不限于:
1. "Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming" by Stephen Cleary
2. "Pro .NET Memory Management: For Better Code, Performance, and Scalability" by Konrad Kokosa
3. "Dependency Injection Principles, Practices, and Patterns" by Mark Seemann
4. "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans
5. "Implementing Domain-Driven Design" by Vaughn Vernon
6. "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" by Martin Kleppmann
此外,以下开源项目也值得高级程序员关注:
1. Dapper:一个轻量级的ORM框架,可用于快速访问数据库。
2. Polly:一个易于使用的库,可用于处理故障和超时情况。
3. MassTransit:一个分布式应用程序框架,用于消息传递和服务总线。
4. SignalR:一个实时Web应用程序框架,可用于构建WebSocket应用程序。
5. BenchmarkDotNet:一个基准测试框架,可用于测试代码的性能。
除了之前推荐的书籍和开源框架外,还有一些经典的书籍和开源项目值得学习:
书籍推荐:
1. 《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs),作者:Harold Abelson, Gerald Jay Sussman 和 Julie Sussman
2. 《代码整洁之道》(Clean Code: A Handbook of Agile Software Craftsmanship),作者:Robert C. Martin
3. 《编程珠玑》(Programming Pearls),作者:Jon Bentley
4. 《你不知道的JavaScript》(You Don't Know JS)系列,作者:Kyle Simpson
5. 《人月神话》(The Mythical Man-Month: Essays on Software Engineering),作者:Frederick P. Brooks Jr.
6. 《软件工程实践》(Software Engineering at Google),作者:Titus Winters、Tom Manshreck 和 Hyrum Wright
7. 《计算机科学导论》(Introduction to the Theory of Computation),作者:Michael Sipser
8. 《算法导论》(Introduction to Algorithms),作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein
9. 《黑客与画家》(Hackers & Painters: Big Ideas from the Computer Age),作者:Paul Graham
开源项目推荐:
1. TensorFlow:谷歌开源的机器学习框架
2. Kubernetes:自动化容器部署、扩展和管理的平台
3. Docker:开源的应用容器引擎
4. Redis:开源、速度快的键值对数据库
5. Elasticsearch:分布式、RESTful搜索和分析引擎
6. React:用于构建用户界面的JavaScript库
7. Vue.js:渐进式的JavaScript框架
8. Angular:用于构建动态Web应用的平台
9. Apache Kafka:分布式流处理平台
10. Apache Cassandra:高可扩展、高性能的分布式NoSQL数据库
通过学习这些书籍和研究开源项目,可以帮助您更好地了解软件开发的原理和实践,并提升自己在编程和架构方面的技能。
当然可以,这里再为您补充一些经典书籍和开源框架:
书籍推荐:
1. 《编程语言实现模式》(Language Implementation Patterns),作者:Terence Parr
2. 《设计模式的艺术-软件开发人员内功修炼之道》(The Art of Design Patterns),作者:程杰
3. 《深入浅出设计模式》(Head First Design Patterns),作者:Eric Freeman、Elisabeth Robson、Kathy Sierra 和 Bert Bates
4. 《代码大全》(Code Complete: A Practical Handbook of Software Construction),作者:Steve McConnell
5. 《软件架构师应知应会》(97 Things Every Software Architect Should Know),编辑:Richard Monson-Haefel
6. 《编写可读代码的艺术》(The Art of Readable Code),作者:Dustin Boswell 和 Trevor Foucher
7. 《程序员修炼之道:从小工到专家》(The Pragmatic Programmer: Your Journey to Mastery),作者:Andrew Hunt 和 David Thomas
8. 《系统性能: 企业级应用性能与可调优》(Systems Performance: Enterprise and the Cloud),作者:Brendan Gregg
开源框架/库推荐:
1. Quartz.NET:.NET 平台上的企业级作业调度框架
2. Dapper:轻量级的对象关系映射(ORM)库
3. IdentityServer:支持OpenID Connect和OAuth 2.0协议的认证和授权框架
4. NLog:灵活的.NET日志记录库
5. FluentValidation:.NET 平台上的强大的验证库
6. Orleans:用于构建分布式系统的框架
7. Akka.NET:构建高并发、分布式、容错系统的工具包
8. Hangfire:用于执行后台任务的库
9. MassTransit:.NET 平台上的消息总线框架
10. NServiceBus:企业级服务总线(ESB)框架
这些书籍涵盖了软件开发的各个方面,包括设计模式、可读性、性能等。同时,这些开源框架和库为您在实际项目中解决各种问题提供了参考和借鉴。希望这些补充对您有所帮助!
c#程序员必学清单的更多相关文章
- Java程序员必学知识点
JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了) 详细介绍了JVM有关于线 ...
- C++ 虚函数简介!程序员必学知识,掌握编程从对象开始!
本文将简单探究一下 c++ 中的虚函数实现机制.主要基于 vs2013 生成的 32 位代码进行研究,相信其它编译器(比如, gcc )的实现大同小异. 先从对象大小开始 假设我们有如下代码,假设 i ...
- 新一代Java程序员必学的Docker容器化技术基础篇
Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...
- PHP高级程序员必学
业务增长,给你的网站带来用户和流量,那随之机器负载就上去了,要不要做监控?要不要做负载均衡?用户复杂了,要不要做多终端兼容?要不要做CDN?数据量大了,要不要做分布?垂直分还是横向分?系统瓶颈在哪里? ...
- 2019 年软件开发人员必学的编程语言 Top 3
AI 前线导读:这篇文章将探讨编程语言世界的现在和未来,这些语言让新一代软件开发者成为这个数字世界的关键参与者,他们让这个世界变得更健壮.连接更加紧密和更有意义.开发者要想在 2019 年脱颖而出,这 ...
- c++程序员必知的几个库
c++程序员必知的几个库 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5 ...
- Android程序员必知必会的网络通信传输层协议——UDP和TCP
1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...
- 迈向高阶:优秀Android程序员必知必会的网络基础
1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...
- [置顶] 程序员必知(三):一分钟知道URI编码(encodeURI)
因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符 ;/?:@&=+$,# 所以 ...
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...
随机推荐
- 摆脱鼠标系列 - vscode 花括号 开始结束 间的跳转 Ctrl + Shift + \
为什么 摆脱鼠标系列 - vscode 花括号 开始结束 间的跳转 Ctrl + Shift + \ 快速移动到下一个 注意有时候输入法会有问题 因为 Ctrl + Shift 是切换输入法,所以回头 ...
- 动态挂载指定vue组件 Vue.extend $mount('#aaa111')
模板中要有定位 <template> <div id="aaa111"></div> </template> 指定某个函数执行 im ...
- FreeRTOS教程4 消息队列
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...
- Oss流程分析
最新式上传方案是:前端上传获取token,然后token中带有bucket.账号.回调地址等相关信息,前端直接上传到阿里云,阿里云上传成功后回调之前设定好的地址,完成上传.(下图是技术负责人的图,盗来 ...
- 记一次由于linux buff cache引发的问题
简介 在前一段时间,在帮一个朋友处理一个问题是时,遇到这么一个问题.功能做的是一个vue分片式上传,在测试定位问题时,我就发现,分片上传14次,其中有那么一两次是上传失败,导致文件上传不完整.报了以下 ...
- 使用Servlet实现文件下载
一位朋友最近在学习JavaWeb开发,开始学习文件下载操作,他自己尝试着去网上看一些教程,总的来说也不是太了解,就让我和他说说,如何实现文件下载功能.我和他说了一下大致的思路,主要分为前端和后端两部分 ...
- 实时云渲染 VS 本地渲染,全面横向对比
不少用户不能理解,为什么要选用实时云渲染,而不用本地的电脑进行渲染显示?本文将通过各个方面来对比两种模式的优劣支持,帮助您更全面了解实时云渲染和本地渲染. 一.便携性对比 由于GPU对机箱空间有要求, ...
- JS(数组)
一 数组的概念 问:之前学习的数据类型,只能存储一个值.如果我们想存储班级中所有学生的姓名,那么该如何存储呢?答:可以使用数组(Array).数组可以把一组相关的数据一起存放,并提供方便的访问(获取) ...
- 单目测距那些事儿(上) | 从MobileEye谈起
单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC). A ...
- 记录--短视频滑动播放在 H5 下的实现
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 短视频已经无数不在了,但是主体还是使用 app 来承载的.本文讲述 H5 如何实现 app 的视频滑动体验. 无声胜有声,一图顶百辩,且看 ...