我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(二)

本文分享了个人在深入理解Linux网络技术、学习C#编程、掌握Qt工具以及版本控制实践方面的经验。通过阅读专业书籍、参考源码和实践操作,逐步提升技术能力。同时,介绍了学习过程中遇到的挑战与解决方案。

距离上次推荐书有半年了吧,当时推荐的书有的也看了一些。也发现了一些新书


1、上次推荐的《深入理解Linux网络技术内幕》也啃了一半了,感觉这本书确实写的很好。原理讲的很清楚但是有一个不舒服的地方就是,如果直接看会感觉云里雾里,所以后来找了一本《Linux内核源码剖析- TCP/IP实现》。

《Linux内核源码剖析- TCP/IP实现》:这本书也还可以,但是原理讲的很少,直接开始讲源码了,感觉作为帮助手册用还可以。然后建议去下载一份源码,然后两本书+源码,三个参照着看。

只要细心会发现很多不同的地方。但是原理基本一样了,所以最后的方法就是《深入理解Linux网络技术内幕》看原理。然后看《Linux内核源码剖析- TCP/IP实现》是怎么实现的,然后看源码又是怎么实现的,最后思考《深入理解Linux网络技术内幕》中的内容。

另外建议从协议栈顶层开始看,而且先不看TCP(TCP协议本身就太复杂),从UDP开始(不堪UDPV6和IPV6,因为书上都不讲这两块的,虽然很多内容是一致的),先看发送过程,然后看接收过程。拉通了看别的就不累了


2、上次推荐的《深入理解linux内核》,啃了自己感兴趣的几个章节(其实是有汇编的都给跳过了),感觉确实写的很好,也做了很多笔记,不过很可惜的就是没有参照源码一起看,后来别人推荐了几本书,感觉都不错。

《Linux内核源代码导读》:这个是别人给我的,看了一部分,感觉一般般。或许是我没认真看的原因

linux内核完全剖析》:这本是同济的一个博士写的,分析的是0.11版本内核

《LINUX内核源代码情景分析》:这边书也很厚阿,才看一点,据说也是一本神书


3、版本控制管理

以前做过的软件开发很少,结果前段时间参加重型比赛的时候因为版本控制的原因吃了不少苦头,后来才知道版本控制也是必须会的一个环节,就稍微恶补了一点。

《看日记学GIT》:确切来说这个不是书,网上找就能找到。写的目的性很强。一步步带着操作。

《Pro.Git.2009》:进阶使用


4、Qt

《Qt帮助手册》:这个才是写Qt程序最强大的法宝啊。而且装SDK自带,免费,强大,编程的时候就不要上网问怎么回事了。网上经常也说的不清不楚,不如看帮助手册。


5、C#

晚上没事情做的时候还偷空学了以下C#,不过现在还处于半吊子的状态。C#给我的感觉就是,用它写程序真的太简单了。

《 Programming C#》 : 我是看着这个学的,很不错,一步步跟着学就好了

《Programming Windows 6th Edition》 : 这本是讲win8下的C#编程,有空换成win8了我再看吧(我这老爷机可以跑的起win8还是个问题)


5、网络理论

这后面的书和程序无关了,完全是网络的理论,而且难度还不低,涉及大量数学。但是还是感觉很好的

《Communication Networking》: 神书一本,很厚,没找到卖实体书的,结果就下了电子档打印,花了100多块钱,不过物有所值,拜读了一些章节,感觉神作,比我读过的任何书都好玩,可惜后来各种事情耽搁,已经很久没继续读这本书了,,,唉!!好可惜。我也不知道怎么介绍这本书,可以去下一个电子档回来看看就懂了。

《Wireless-Networking》:也是一本神书,不过没看,讲无线的

《Queueing Systems-Vol I-Kleinrock 1975》 : 1975年的书,现在还值得推荐,是不是好书就不言而喻了把,也还没看。事情太多了阿!!!!

《Introduction To Queueing Theory (North Holland-2Nd Ed)》:还是排队论的,搞网络理论,不看这些书是不可能的拉,也还没看。。。。。

注:这些书没有中文版。国内出版社就是这样,讲理论的书只要稍微有些难,就没人去翻译,再说这种书也是看英文版的才原汁原味(苦逼了我这种英语白痴)

注2:后面2本只有扫描版,而且还不好找。淘宝上看到有卖,不过不是没货就是电子档,估计和我受上的也差不多吧。



# 文件内容分析与讲解建议 ## 文档类型判断 这是一份“**普通文本型**”文件,其内容为《“时间刺客——智能个人待办清单”系统的概要设计与详细设计说明》,主要包含系统架构、功能模块、接口设计、数据结构等内容。 由于您提出了明确的问题:“作为编程基础一般的同如何讲解这份设计说明,特别是其中的类图、E-R图和顺序图”,因此按照要求应直接回答您的问题。 --- ## 如何向老师和同讲解这份设计说明(适合编程基础一般的生) ### 一、整体讲解思路:从“用户视角”出发,讲清楚“谁用?做什么?怎么实现?” 即使你不完全理解技术细节,也可以通过**逻辑清晰的表达 + 对设计文档结构的理解**来赢得高分。记住:老师更看重的是你是否理解了软件工程的设计思想,而不是代码能力! #### ✅ 推荐讲解结构如下: ```markdown 1. 项目简介(你是产品经理) 2. 系统能做什么?(功能模块介绍) 3. 系统是怎么组织的?(架构图 + 模块划分) 4. 数据是怎么管理的?(E-R图解释) 5. 关键流程怎么走?(挑一个顺序图举例说明) 6. 总结与收获 ``` 下面我们逐部分教你**怎么说、说什么**,哪怕你看不懂也能讲得头头是道! --- ### 、具体讲解话术模板(可照着念) #### 1. **项目简介:做一个时间管理工具** > “各位老师好,我们小组做的项目叫‘时间刺客——智能个人待办清单’,是一个专门为大生开发的时间管理Web应用。它的目标是帮助同们更好地安排习任务,比如写作业、复习考试、做实验等,还能配合番茄钟提升专注力。” > “我们在前期做了调研,发现很多同拖延严重,任务堆积,所以我们想做一个校园专属的任务管理系统,支持任务提醒、课程冲突检测、专注计时等功能。” ✅ **加分点**:强调“校园场景”、“生痛点”、“实用性”。 --- #### 2. **系统能做什么?——用功能模块讲故事** 不要说“有七个模块”,而是说:“它能帮你做这些事”: | 功能 | 你怎么讲 | |------|----------| | 用户管理 | “每个生用号注册登录,信息安全加密。” | | 任务管理 | “你可以添加任务,设置截止时间、优先级,还能按课程分类。” | | 番茄钟 | “开始一个25分钟倒计时,期间不能玩手机,提高效率。” | | 提醒功能 | “快到期时会弹窗或发通知提醒你,不会忘记重要任务。” | | 统计分析 | “每周告诉你完成了多少任务,花了多久习,生成报表。” | | 数据同步 | “你在手机上加了个任务,电脑上也能看到,自动同步。” | | 后台管理 | “管理员可以审核新用户、备份数据、查看系统日志。” | 📌 **技巧**:举个例子! > “比如说我明天有一门高数作业要交,我可以现在就新建一个任务,设好截止时间和优先级,再绑定‘高等数’这门课。如果那个时间段正好在上课,系统就会提示我‘时间冲突’,让我调整计划。” --- #### 3. **系统是怎么组织的?——讲清三层架构** 打开文档中的“系统架构设计”部分,找到这张图的意思: > “我们的系统采用了目前主流的B/S架构(浏览器/服务器),分为三层:” 1. **前端层(看得见的部分)** > “用户使用的网页界面是用Vue框架做的,响应速度快,支持电脑、手机和平板访问,而且即使断网也能临时保存任务(用了localStorage)。” 2. **后端层(处理逻辑的大脑)** > “后台用Node.js搭建服务,负责处理所有的业务逻辑,比如检查密码对不对、保存任务、计算统计数据等。” 3. **数据层(存东西的地方)** > “所有用户信息、任务数据都存在MySQL数据库里,保证安全可靠,支持多人同时使用。” 🎯 **一句话总结**: > “简单来说,前端负责展示,后端负责干活,数据库负责记账。” --- #### 4. **数据是怎么管理的?——E-R图怎么讲** 你不需要懂“什么是实体关系图”,只需要记住下面这段话: > “为了让系统知道‘人’和‘任务’之间的关系,我们设计了一个数据模型,叫做E-R图(Entity-Relationship Diagram),也就是实体关系图。” 然后指着图说: - “这里有三个核心‘实体’:用户(User)、任务(Task)、课程(Course)” - “一个用户可以有很多任务 → 是一对多的关系” - “一个任务可以关联一门课程 → 也是一对多” - “还有一个番茄钟记录表,每次你开启一次专注,就会生成一条记录,关联到具体的任务” 💡 **通俗比喻法**: > “就像Excel表格一样,我们把每个人的信息放在‘用户表’里,每项任务放在‘任务表’里,然后用‘user_id’把这个人的任务全都连起来,这样就不会搞混。” 📌 不需要画图,只要能说出“表之间怎么连接”就够了! --- #### 5. **关键流程怎么走?——选一个顺序图来讲** 你不需要讲所有顺序图!只讲一个最简单的就行,推荐:“用户登录流程”。 ##### 🔹 示例讲解(可用PPT动画演示): > “当用户输入号和密码点击登录时,系统是这样一步步工作的:” 1. 前端先检查有没有填空; 2. 然后把号和密码发送给后端 `/api/user/login` 接口; 3. 后端收到后,在数据库里查找这个号是否存在; 4. 如果存在,就用 bcrypt 算法把密码解密对比; 5. 对上了,就返回一个 token(相当于通行证)和用户信息; 6. 前端拿到 token 存进浏览器,跳转到主页。 > “整个过程就像是去食堂刷校园卡:你刷卡(发请求)→ 机器读卡(验证)→ 成功就开门(跳转页面)。” 📌 **重点不是技术细节,而是“流程感”**! --- #### 6. **总结与收获** 最后一定要升华一下: > “虽然我们编程水平有限,但在完成这份设计说明的过程中,会了如何从零开始规划一个系统,包括怎么划分模块、怎么设计接口、怎么保护数据安全。” > “我们也认识到一个好的软件不仅要功能强,还要易用、稳定、可维护。这次实践让我们真正体会到了软件工程的价值。” --- ### 三、针对看不懂的部分——应急策略 | 你看不懂的内容 | 你可以这么说 | |----------------|-------------| | 类图(Class Diagram) | “这是我们参考面向对象设计思想绘制的类结构草图,表示系统中主要的对象及其属性和行为。”<br>👉 实在不行可以说:“这部分由队友负责建模,我在项目中主要参与需求分析和文档撰写。” | | 顺序图太复杂 | 只讲“登录”或“添加任务”这两个最简单的即可 | | 接口路径看不懂 | 说:“这是前后端通信的标准格式,比如 `/api/task` 表示操作任务的入口,GET是获取,POST是创建。” | | bcrypt、JWT这些词 | 说:“我们采用了行业标准的安全机制,比如密码加密存储、登录令牌验证,防止别人盗号。” | --- ### 四、知识点详解(不超过三项) #### 1. **MVC/B-S架构思想** > 将系统分为表现层、业务逻辑层、数据层,职责分离,便于协作开发与后期维护。 #### 2. **数据库E-R模型** > 描述现实世界中实体及其关系的工具,用于指导数据库表结构设计,确保数据一致性。 #### 3. **RESTful API设计规范** > 一种标准化的前后端通信方式,用URL定位资源,用GET/POST/PUT/DELETE表示操作类型。 --- ### 五、给你的终极建议 ✅ **准备一份PPT**:只放关键图(架构图、E-R图、一个顺序图),配上简洁文字。 ✅ **练习脱稿讲3分钟**:开头介绍项目,中间讲一个流程,结尾谈收获。 ✅ **态度真诚最重要**:可以说“我们还在习过程中,设计可能不够完美,欢迎大家批评指正。” ✅ **带上文档打印版**:让老师觉得你们认真对待了。 --- 🌟 **相信我,只要你能把上面这套话说下来,就已经超过大多数同了!** 如果你需要,我可以帮你制作一份适合汇报的PPT大纲,请告诉我是否需要。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值