首页 教育机构 十年编程经验(十年学会编程)

十年编程经验(十年学会编程)

教育机构 2024-09-19 16:34:38 40 教育网

《孤勇者》这首歌里有几句歌词,“我爱你不跪,我爱你在绝望中坚持不哭……战斗?”与最卑微的梦想战斗……谁说站在光明中的就是英雄。‘写得真好。各行各业的修炼者更像是歌词中的孤独战士,在黑暗中默默前行,即使沾满泥土也永不放弃。我们是宇宙的尘埃,但我们自己也是英雄,谁说,只有站在光明中的人才是英雄。学习完入门章节后,我们开始在黑暗中前行。希望这篇文章能为黑暗中前行的你我点亮一盏灯,指引我们前行。这篇文章延续了入门章节,在一些方向上前进了一步,这才叫进阶。附上作者当年的学习笔记供大家参考。如果您成功完成本章,您将能够达到高级工程师和初级建筑师的水平。来吧,坚持下去。文章的推荐资源会优先考虑前面的官方第一手资料和文档,后面按照基础、高级、高级、著名的顺序推荐。

编程语言进阶

十年编程经验(十年学会编程)

专业篇给大家推荐.NET、Java、C、Go四种语言的学习资料和路径。有人可能会问,为什么不推荐“宇宙第一”的C++呢?主要原因是C++的学习周期太长,学习成本太高。C++介于C和Java之间,由于知识复杂,在某些领域进展缓慢。它正在慢慢被其他语言取代,但当然它仍然很棒。毕竟,当今主流的浏览器、数据库、MicrosoftOffice、图形界面、游戏引擎都是用C++开发的。这取决于个人选择。由于精力有限,我不想在这里过多涉及,但是在技术集散中心会给大家推荐一些关于C++的资料和技术博客。

.NET

很多人会将C#理解为.NET。事实上,NET是一个庞大而全面的平台,目前最好的就是Unity。由于微软(Microsoft)拥抱开源有点晚,NET在中国的生态并不好。不过,随着跨平台、云化、收购Github、收购动视暴雪等一系列操作,我非常看好.NET的发展。C#写起来太酷了,太优雅了,就这么酷了。这里推荐一些.NET学习资料,从入门到放弃?(不,从初学者到精通),对编程范式和设计思想的深刻理解尤为重要。拆解语法糖背后的实现原理是成长为.NET高级工程师的必由之路。

微软|.NETSourceCode:NET源代码查看,学习源代码必备。微软|官方中文学习文档:官方中文学习文档。微软的文档写得非常好。如果想了解最新版本可以直接查看官方文档。预订|《C#图解教程第四版》:非常有用的入门书,上面的图解非常浅显易懂,强烈推荐。预订|EssentialC#:微软MVP写的书,解析C#Bilibili|C#详细介绍:这应该是第一个中文的C#入门视频。刘铁猛老师的工匠精神在其中得到了深刻的体现,也给了我很多启发和思考。B站|C#详解第二期:时隔多年,刘铁猛老师推出的第二期仍在更新中。作者会尽快转发视频。预订|《C#多线程编程实战第二版》:基础知识巩固后,你会慢慢开始接触实际工作中多线程的需求。我向大家推荐这本书,从最开始的线程基础知识到线程池、任务并行库、C#6.0异步、并发集合、PLINQ等都介绍得很好,还有一些锁的知识。预订|《C#高级编程》:当然,这本字典书也可以用来查微软的文档。它足够厚,可以用作枕头。预订|《深入浅出WPF》:这本书是为数不多的介绍WPF技术的书之一。也是刘铁猛老师写的。如果你想开发桌面应用程序,可以借鉴一下。目前MAUI跨平台技术还不够成熟,桌面仍是主流。Winform和WPF,在学习WPF的时候,应该多了解一下依赖树和MVVM的设计思想。推荐另外两本WPF书籍:书籍|书籍《WPF编程宝典》预订|《葵花宝典:WPF自学手册》。预订|《深入浅出ASP.NETCore》:介绍ASP.NETCore的开发,可以快速浏览。哔哩哔哩|.NET6开发:杨中科老师对.NET6的介绍,涉及最新特性、高级语法、ADO.NET、ASP.NETCore等。《ASP.NETCore框架揭秘》:主要讲解——请求处理管道,ASP.NETCore的核心部分。预订|《ASP.NETCore微服务实战》:微服务的入门书籍。开发微服务不仅仅是学习特定的框架或编程语言,而是开发能够适应弹性伸缩环境、独立于托管容器、可以随时启动和停止的应用程序。后面的成长章节会有单独的微服务开发专题。预订|《.NET内存管理宝典》:NET内存管理的内部工作原理、陷阱和技术,以及对GC工作原理的深入了解。语雀|作者的.NET6学习笔记

Java

国内的Java环境还是很好的。很多大公司的框架和架构都使用Java,并且有很多学习资料。这里有一些必读的书籍。这是一本指导成为高级Java工程师的道路。

预订|《Java核心技术卷一》:一本介绍性参考书。书中有很多地方比较了Java和C++。你也可以通过本书开始C++的学习之路。预订|Spring实用第四版:从事Java工作的人应该都知道Spring,但这本书讲的是传统的Spring。预订|SpringBoot实际应用:Spring用于新的微服务。预订|《EffectiveJava:一本经验书》。我觉得Effective系列还是不错的。值得一读来培养自己如何高效地编码。与本书配合的实践项目是Github|GoogleGuava,它不仅是JDK的升级版本,也是本书的最佳实践之一。预订|Java并发编程:介绍基础类库提供的并发构建块,用于避免并发危险、构造线程安全类和验证线程安全规则,以及将小型线程安全类组合成更大的线程安全类。使用线程提高并发应用程序的吞吐量,识别可以并行执行的任务,提高单线程子系统的响应能力,保证并发程序执行预期的任务,提高并发代码的性能和可扩展性。预订|《Java性能权威指南》:最大化性能测试的效果,包括:使用JDK自带的工具收集Java应用程序的性能数据,了解JIT编译器的优缺点,调优JVM垃圾收集器以减少对Java应用程序的影响该程序。学习如何管理堆内存和JVM本机内存,学习如何最大化Java线程和同步等的性能。《Java编程思想》:从宏观角度理解Java,中高级Java工程师必读。预订|《精通Spring4.x》:一本关于自卫的巨著,把分析原理解释得很透彻。预订|设计模式:设计模式经典书籍|HeadFirst设计模式:进入设计模式的世界,不要迷失其中,并牢记SOLID的五个原则。

C

底层不可替代的语言,嵌入式领域No.1。推荐三本书。

预订|《C程序设计语言》:C语言之父DennisM.Ritchie和著名科学家BrianW.Kernighan共同编写的圣经级教材。预订|现代C语言编程方法:完全覆盖C99标准,习题质量和水平都比较高。更好的是,它探索了现代编译器实现以及与C++的兼容性,并揭穿了各种旧的C语言神话和教条。预订|《C陷阱与缺陷》:C中的一系列巨大坑。

Go

C太原始,C++太复杂,Go是显而易见的选择。如果要写一些PaaS层应用,Go语言会比C、C++更好,目前与Java不相上下。而且Go语言在国内外一些知名公司都有一定的应用和实践。结合官方文档和李文舟的博客,入门还是比较容易的。如果觉得无聊,可以去B站搜个视频跟着走(但我觉得这样效率很低)。

去|官方文档前往|标准库文档博客|为什么要学习GoGo|李文洲的博客:写得比较全面,B站也有配套视频,是很好的中文资料。哔哩哔哩|Go语言入门:韩顺平老师的入门视频很基础。建议直接跳到需要的地方,以1.5/2倍速播放。GitHub|转经典文章Github|转到优秀博客Github|GoTalks

编程工具

工欲善其事,必先利其器。一个合格的程序员首先要利用好自己的工具。很多优秀的工具,可以去GZH【DotNet技术官】——人间万青专栏《来自程序员的工具》一文中查看。VisualStudioCode和Git入门在入门章节中推荐了相关的学习资源。

git|gitGitProB站|VisualStudio2022教程B站|IDEA2022教程工具|超全Chrome浏览器客户端调试工具|MySQLNDB

数据结构与算法

学习算法是一个痛苦的过程,因为它是智力上的挑战,但是,当你慢慢解题时,你会发现你的意志力变得异常强大(感谢LeetCode的拷问,哈哈哈)。

预订|《大话数据结构》:文笔非常精彩,插图很棒,特别适合自学。工具|数据结构动画图:动画展示数据结构的变化过程。与《大话数据结构》一书一起使用,相当容易上手,印象深刻,不易忘记。预订|《数据结构与算法分析》:国外大学教材,广受好评。预订|《算法图解》:本书实例丰富,图文并茂,深入浅出地讲解了算法。二分查找、大O表示法、两种基本数据结构、递归等。《算法》:法律领域的经典参考书。不仅全面介绍了算法和数据结构的必要知识,还给出了程序员应该知道和知道的每50种算法,并提供了实际代码。预订|《算法导论》:一本非常经典的书,侧重于理论。预订|《编程珠玑》:一本非常经典的算法书,里面包含了一些非常实际的问题,并用其独特的洞察力和创造力引导读者理解和学习如何解决这些问题。这也是一本可以改善你思维方式的书。维基|算法词典算法列表:算法有很多。你可以把这个网站当作算法词典来查看。LeetCode:不用多说,要把题目搞清楚。如果你想拿到大公司的offer,不把问题搞清楚,基本上就没有机会,除非你是巨头。可惜我们都是普通人,你也就完了。坚持很重要,您还可以与朋友一起参加比赛以获得小额现金奖励。笔者认为回答问题的过程也是锻炼自己编程能力最快的方式。

网络模型

预订|

计算机原理

《图解TCP/IP》:计算机网络入门书籍博客|《TCPIP详解卷一》:计算机网络入门书籍TCP/IP指南|《TCP/IP网络编程》:关于TCPIP的最佳书籍。预订|《计算机网络:自顶向下方法》:介绍网络编程基础、操作系统等知识。预订|《Wireshark数据包分析实战》:从应用层开始,沿着协议栈解释计算机网络的基本原理,强调应用层示例和应用程序编程接口。内容深入浅出,注重教学方法,理论联系实际。预订|《现代操作系统》:实用工具,使用Wireshark抓包分析。博客|让我们编写一个TCP/IP堆栈。有关TCPIP的一系列博客。

操作系统

B站|计算机组成原理:讲解比较容易理解,还在更新中。预订|计算机程序的构建与解释:美国麻省理工学院(MIT)多年使用的教科书。本书主要证明了程序的构造有多少,程序的本质是什么。全书主要使用Scheme/Lisp语言,从数据抽象、过程抽象、迭代、高阶函数等编程和控制系统复杂性的思想,到数据结构和算法,到编译器/解释器、编程语言设计。

编译原理

预订|

数据库系统

《深入理解计算机系统》:本书重点介绍操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,还包括有关计算机安全和多媒体操作系统的信息。掌上电脑操作系统、微内核、多核处理器上的虚拟机以及操作系统设计。预订|《UNIX环境高级编程》:程序员需要了解的一些计算机知识。非常好的一本书,必读。本书从程序员的角度详细解释了计算机系统的基本概念,并展示了这些概念如何实际影响应用程序的正确性、性能和有用性。

预订|《UNIX网络编程卷1》:UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间的内容通讯、网络IPC、伪终端等。《UNIX网络编程卷2:进程间通信》预订|《编译原理》:本书首先讨论了PosixIPC和SystemVIPC的内部结构,全面深入地介绍了IPC的4种形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件和记录锁、信号量)、共享内存(匿名共享内存、命名共享内存)和远程过程调用(Solarisgateway、SunRPC)。

设计模式

预订|

实战项目

《MySQL必知必会》:传说中的《龙书》颇具催眠作用,需要反复阅读才能理解。本书深入探讨了编译器设计中的重要主题,包括词法分析、语法分析、语法定向定义和语法定向翻译、运行时环境、目标代码生成、代码优化技术、并行性检测和过程间分析。分析技术。并在相关章节中给出了大量的例子。

项目需求1-聊天服务器

主流数据库,关系型数据库和非关系型数据库,专业章节推荐。MySQL关系型数据库和非关系型数据库Redis/MongoDB

mysql|MySql官方文档图书|《数据库系统概念》:数据库基础入门书籍,可以满足大部分业务需求(小业务量)。预订|《高性能MySQL》:数据库系统经典教材之一,国外多所大学教材。预订|《MySQL技术内幕》:本书是MySQL领域的经典之作,影响广泛。不仅适合数据库管理员(DBA)阅读,也适合开发人员学习。无论您是数据库新手还是专家,您都可以从本书中有所收获。预订|《数据库索引设计与优化》:从源码角度深入剖析InnoDB的架构、实现原理、工作机制,并提供大量最佳实践,可以帮助您系统、深入地掌握InnoDB。更重要的是,它可以为您设计和管理高性能和高可用性数据库系统提供极好的指导。预订|《左手MongoDB,右手Redis》:通过系统讲解和大量案例,清晰讲解了关系数据库的访问路径选择原理,以及表和索引的扫描方法,详细讲解了如何快速估算CPU时间和执行情况SQL运行时间的分析,帮助读者从原理上理解SQL、表和索引结构、访问方式等对关系数据库的影响,并能够用定量的方法进行判断和优化,指导关系数据库的索引设计。博客|MySQL优秀工具和资源博客|艰难地学习Redis图书|《大话设计模式》:介绍非关系数据库的基础知识和一些实际案例。

项目需求2-生产者/消费者消息队列服务

这里的设计模式只推荐给初学者,后面的成长章节会详细介绍。

预订|010-30000

项目需求3-搭建个人网站

010-1010每个客户端都可以使用telnetip:端口连接到服务器。新连接需要使用用户名和密码登录,如果没有,则需要注册。然后您可以选择一个聊天室来加入聊天。管理员有创建、删除聊天室的权限,普通人只有加入、退出、查询聊天室的权限。聊天室需要对聊天室的人数进行限制,并且其他人必须能够看到每个人发送的内容。010-1010消息队列使用环形缓冲区数据结构。可以有多个主题供生产者编写消息和消费者检索消息。需要支持多个生产者并发写入。需要支持多个消费者消费消息(只要一个消费者成功处理消息,就可以删除该消息)。消息队列不能丢失数据(消息必须持久化)。可以实现高性能。010-1010模仿StackOverFlow/Github。

教育网 Copyright @ 2005-2024 All Rights Reserved. 版权所有 备案号:渝ICP备2023012207号-4

免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)