后端学习攻略,助你打怪升级

大家好,我是辣条,好久不见,甚是想念,今天给大家带来一份后端的学习攻略,希望能帮助到你。
 

目录

一、 数据结构与算法

为什么数据结构很重要?

数据结构与算法相关数据推荐

视频推荐

二、计算机网络

为什么计算机网络很重要?

计算机网络相关书推荐

计算机网络视频推荐

三、数据库

为什么数据库很重要?

数据库相关书籍推荐

视频推荐

四、操作系统

为什么要学习操作系统?

操作系统书籍推荐

4.3 操作系统视频推荐

五、计算机组成原理

为什么需要学习计算机组成原理

计算机组成原理书推荐

视频推荐

六、缓存

为什么需要学习缓存

缓存相关书籍推荐

 视频推荐

七、后端主流开发语言

Java

C++

Python

Go

八、消息队列

九、Java Web

十、设计模式

十一、并发

十二、代码优化

十三、分布式

分布式一致性算法

分布式事务

微服务

十四、开发规范

十五、版本管里工具

十六、安全相关

十七、搜索引擎

十八、linux

十九、leetcode


一、 数据结构与算法

为什么数据结构很重要?

数据结构对于程序员来说,非常基础非常重要。程序界有这么一句话,程序=数据结构+算法。可见数据结构的重要性。

日常业务开发中,几乎不会有从0到1实现个数据结构的需求。最多就是用递归算法解析一下文件,用排序算法排下数据。 但是呢,不仅仅于此。如果回到编程语言这块的话,就拿Java来说的话,底层框架经常见数据结构。其他编程语言其实也类似,所以学好数据结构真的很重要。

数据结构与算法相关数据推荐

如何学习数据结构与算法呢?就是可以多看书!推荐这几本吧:

《数据结构与算法分析-C语言描述》

 

《数据结构与算法分析-Java语言描述》

 

如果精力旺盛的伙伴们,可以啃下这本神书:《算法导论》

 

电子书已经给你们准备好啦,只有关注我的粉丝才有。

视频推荐

B站上,浙江大学的一个数据结构的课还挺不错。很经典也比较全,非常适合小白入门。

 

视频链接:点击跳转

二、计算机网络

为什么计算机网络很重要?

计算机网路,是计算机专业的必修课。

计算机网络为什么重要呢?举两个简单例子

  • 一个http请求返回了403状态码,有些小伙子不知道是权限的原因。
  • 再比如,你调一个第三方接口,返回超时,你就需要ping一下或者telnet一下,确认网络是不是通的,等等。

计算机网络相关书推荐

《计算机网络: 自顶向下方法》

《图解HTTP》

 

《网络是怎样连接的》

 

计算机网络视频推荐

B站的计算机网络微课堂,觉得挺不错的,给大家推荐一下

 

视频地址:点击跳转

三、数据库

为什么数据库很重要?

后端就是操作和存储数据,所以作为后端开发,数据库是最主要的学习模块。数据库,也是计算机专业的必修课。我们学校的话,是大三会学这门课,课本教材是这个《数据库系统概论》。

数据库相关书籍推荐

《sql必知必会》

 

《高性能Mysql》

 

《MySQL技术内幕:innodb存储引擎》

视频推荐

推荐一个适合初级以及中级工程师看的SQl视频,讲师一个老外,内容很不错的。

 

视频地址:点击跳转

四、操作系统

为什么要学习操作系统?

引用一个知乎的回答:

比如你要开发一个网络代理软件,不过是从socket上收一个包,然后转发给另一个socket,看起来,跟操作系统没半毛线关系。

实现过程中,如果你只用一个线程处理网络IO,只要CPU顶得住,延迟一般会在几个毫秒内。但是如果你用了多线程分别处理收/发,网络压力稍大,引入的延迟就会增加,额外延迟就可能突破几十个毫秒。

想搞明白这是为什么,就需要对操作系统调度原理、时间片等概念没有足够深刻的理解。

应用层开发的确只需要接触冰山在海面上的可见部分;但这只够你开发一些蹩脚的软件;冰山藏在海面下的9/10,和冰山的可见部分毕竟是一体的:浮于表面的软件同样会影响冰山的不可见部分、并被冰山的不可见部分影响。如果没有基本了解,当冰山的不可见部分透过可见部分坑到你时,你绝没能力为这些蹩脚软件debug。

操作系统书籍推荐

《现代操作系统》

 

《程序是怎么跑起来的》

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
以下是一个简单的主角打怪升级的代码示例,使用Python语言实现: ```python import random player_level = 1 player_exp = 0 player_max_exp = 10 player_hp = 100 player_max_hp = 100 player_attack = 10 monster_level = 1 monster_hp = 50 monster_max_hp = 50 monster_attack = 5 print("你遇到了一个等级为", monster_level, "的怪物,准备战斗!") while player_hp > 0 and monster_hp > 0: # 玩家击怪物 damage = random.randint(player_attack - 2, player_attack + 2) monster_hp -= damage print("你攻击了怪物,造成了", damage, "点伤害。怪物剩余血量:", monster_hp) # 怪物攻击玩家 damage = random.randint(monster_attack - 2, monster_attack + 2) player_hp -= damage print("怪物攻击了你,造成了", damage, "点伤害。你剩余血量:", player_hp) # 判断战斗结果 if player_hp <= 0: print("你被怪物击败了,游戏结束。") break if monster_hp <= 0: print("你击败了怪物,获得了", monster_level * 10, "点经验值。") player_exp += monster_level * 10 if player_exp >= player_max_exp: player_level += 1 player_max_exp *= 2 player_hp = player_max_hp player_attack += 5 print("恭喜你升级了!当前等级为", player_level, ",最大生命值增加到", player_max_hp, ",攻击力增加到", player_attack, "。") # 生成新的怪物 monster_level += 1 monster_max_hp *= 2 monster_hp = monster_max_hp monster_attack += 5 print("你遇到了一个等级为", monster_level, "的怪物,准备战斗!") ``` 在这个代码中,玩家和怪物都有等级、生命值、攻击力等属性。玩家和怪物每次攻击都会随机产生一定的伤害值,直到一方的生命值降为0为止。如果玩家胜利,就会获得一定的经验值,并有可能升级升级后,玩家的属性会得到提升,同时会生成一个等级更高的新怪物。如果玩家失败,则游戏结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员辣条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值