一种典型的开发要求--后端开发需要的技能

 来源于:https://mp.weixin.qq.com/s/0c16oG4I-16IfoPoFOeuBQ

I、后端开发将复杂问题拆解成小模块,再抽象成对应的数据结构,最后进行存储和数据动态流转

完成基本功能之后就需要面临更高用户量、更端响应时间、更稳定运行这些高阶目标,也就是常说的高并发&高可用。

日常开发过程中是如何运用上面这些点的:

  • 编程语言:我们使用Go来写代码,使用某种数据结构来完成行为抽象
  • 存储系统:我们把数据持久化存储到MySQL,同时使用Redis作为缓存来加速响应
  • 网络技术:我们的编写的程序要依赖别的服务,通过微服务框架来实现相互通信
  • 操作系统:我们把完成的程序通过自动化部署到运行Linux系统的服务器上
  • 网络通信:外部用户使用手机通过移动互联网HTTP请求与我们的服务交互数据,同时为了提高响应我们会部署CDN
  • 日志系统:我们的程序上线后会打印日志,需要日志收集&检索系统来帮助我们定位问题
  • 监控体系:有时候会有问题,需要一套时序数据库完成记录异常触发报警系统
  • 分布式和容灾:随着用户的增多,我们开始多机房部署进行扩容和容灾处理

硬技能

    • 编程语言的掌握:Java、C++、Golang、Python等一个或多个
    • 操作系统原理的掌握:Linux/Unix、计算机原理
    • 常用数据结构和算法:数据结构(数组/链表/树等)、算法(动态规划/贪心/回溯等)
    • 存储系统:MySQL、Redis、MongoDB等关系型&非关系型数据库
    • 组件:消息队列(kafka、rocketmq等)、检索系统(ES、ClickHouse等)
    • 网络编程:TCP/IP协议的理解、网络库的使用
    • 服务端编程:多进程、多线程、协程、服务端框架等

软技能

    • 学习能力要求:自驱能力(主动学习&自我驱动)、刨根问底、结果导向
    • 沟通协作能力:能把事情讲清楚,让伙伴明白,看着简单实则很难

 

II、具体的知识点:

一、编程语言

  1、C语言

    举例:static关键字 静态变量(修饰局部变量,作用域是局部作用域的,可见域在函数内;修饰全局变量,作用域在本文件内,可见域在文件内;修饰函数,作用域在本文件内)

     内存中存储数据区的解释:https://blog.csdn.net/jirryzhang/article/details/79518408

二、操作系统(Linux/Unix、计算机原理)

 

三、数据结构和算法

  1、数据结构和算法汇总:https://www.cnblogs.com/flashsun/p/10695000.html

  2、二叉树:https://www.cnblogs.com/sujing/p/11110292.html

 

四、存储系统(MySQL、Redis、MongoDB等关系型&非关系型数据库)

  数据库中的二叉树应用:https://xuliugen.blog.csdn.net/article/details/79450295?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_paycolumn_v3&utm_relevant_index=9 

 

五、网络编程(TCP/IP协议的理解、网络库的使用)

  1、图解网络:https://www.cnblogs.com/flashsun/p/14266148.html

  2、图解TCP:https://www.cnblogs.com/flashsun/p/14322660.html

  

六、多线程编程

  1、图解线程池:https://www.cnblogs.com/flashsun/p/14368520.html

  2、线程安全:https://www.cnblogs.com/lixinjie/p/a-answer-about-thread-safety-in-a-interview.html

 

七、组件(消息队列(kafka、rocketmq等)、检索系统(ES、ClickHouse等))

 

posted @   日常向的生活  阅读(788)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示