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大排序(三)-------冒 ...
随机推荐
- C++串口通讯解决方案
这篇文章只是笔记性质,没有实际的原创内容,主要是做一下方案的备份. 串口通讯使用开源的 CSerialPort 类,我使用的是Windows版本分支: CSerialPort 跨平台 CSerialP ...
- c语言中float和double类型的区别
1.变量bai类型不同 float属于单du精度zhi型浮点数据. double属于双精度型浮点数据. 2.指数范围不同 float的指数范围为-127~128. double而double的指数范围 ...
- day04-应用线程03
JavaGUI-坦克大战04 7.线程的应用03 7.3坦克大战4.0版 7.3.4功能3:敌方坦克自由移动 功能3:让敌人的坦克也可以自由随机地上下左右移动 思路: 因为要求敌人的坦克自由移动,因此 ...
- JSF+EJB+JPA之整体思想
序言: JSF+EJB+JPA 其实没有想象中的难,不过要做好应用以及在合适的地方建立应用,才是真正的难点. 好的技术在不合适的地方做了应用,那也只能是垃圾. 所以这个东西并不适合于太小规模的企业应用 ...
- 推荐一款idea神级免费插件【Bito-ChatGPT】
今天推荐一款IDEA 插件神器:Bito-ChatGPT,在 IDEA 中安装直接可以使用 GPT,不需要使用魔法! 还有很重要的一点这个插件完全免费,且不限次数(目前是免费不限制次数). 环境要求: ...
- 博客调整为MarkDown和图床外链、配置Gitee作为图床
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 京东Linux 运维工程师面试真题
京东Linux 运维工程师面试真题 首先我们来看下京东 Linux 运维工程师招聘岗位要求: [岗位定义]运维工程师 [岗位薪资]10K-20K [基本要求]北京 / 经验 3-5 年 / 本科及以上 ...
- Lambda Web Browser使用教程
Lambda web browser是一个功能强大的UE内置浏览器插件, 允许用户在编辑器模式和运行时启动一个浏览器窗口, 对于一些采用传统BS架构的项目而言, 控制页面都放在前段, 若想要将控制页面 ...
- [深度学习] 计算机视觉低代码工具Supervision库使用指北
Supervision库是一款出色的Python计算机视觉低代码工具,其设计初衷在于为用户提供一个便捷且高效的接口,用以处理数据集以及直观地展示检测结果.Supervision库的官方开源仓库地址为: ...
- C#断字符串是否为数字,用正则表达式