秋招后端指导思想


3. 后端工程师技术栈

一个应届的后端工程师所需要的具备的能力/经验分为四个级别:

  1. 必备级:数据结构算法、Java语言基础、网络协议
  2. 补充级:操作系统、Spring全家桶、数据存储转发相关
  3. 实战级:项目经验、实习经历
  4. 锦上添花级:高并发场景的处理经验、大数据处理

 

  • 必备级是你必须要会的,如果不会,那就可以告别秋招了。理论上必备级的技术栈准备的很熟练的情况下,找到一份白菜offer是没有问题的。但过程可能会很艰难。
  • 必备级+补充级的技术栈很熟练的情况下,你就可以收割大厂白菜offer了。如果基础很扎实,那么SP也是可以的。
  • 必备级+补充级+实战级的技术栈如果很熟练,运用自如。那么你就可以收割大厂SP offer了。如果准备的尤为扎实,那么SSP offer也不在话下。
  • 必备级+补充级+实战级+锦上添花级的技术栈如果你都运用自如,那么SSP offer在向你招手。

3.1 必备级技术栈:数据结构算法、Java语言基础、网络协议

(1) 数据结构算法

只要你寻找的是技术岗的工作,那么数据结构算法一定是你必备的技能。算法能力的日积月累是很重要的。

 

我本科是电子信息工程专业的,研究生才转入计算机专业。虽说西电只要是电子信息与计算科学相关的专业都会学习计算机方面的通识课,但当时对算法课并不是很重视,因此涉猎不深。

真正重视是研一选修了卜东波教授的《计算机算法设计与分析》一课,卜老师讲课深入浅出,替我重塑了算法方面的知识体系,受益匪浅。相信中科院选修了卜老师课程的同学都会有相同的观点。

 

提升算法能力,完善的知识体系日积月累的磨练是缺一不可的。如果仅仅想靠临时抱佛脚那是远远不够的。

  • 完善的知识体系:知识体系的构建除了课堂学习之外,我推荐左神的《程序员代码面试指南:IT名企算法与数据》一书,该书对于面试所需的算法知识整理的相对全面。(我起初下了PDF版本的书学习(实在是愧对左神),学到最后才觉得左神这本书是真的有很多干货在里面,非常值得学习。于是便立马从京东上下单一本正版书籍,也算是支持左神了。)
  • 日积月累的磨练:想要不断锻炼自己的算法熟练度,大家可以去LeetCode上坚持刷题。LeetCode上的题目后面都会有前人想出的最优解,大家在自己AC之后一定要与最优解进行对比。最优解的思路有时是很奇妙的,会加速自己算法水平的提升。

(2) Java语言基础

Java语言基础的复习我提供几个经验之谈:

  1. 大家在复习的过程中要注意结合Java源码阅读进行理解,这样往往能够加深自己的印象,也能够理解的更为深入。
  2. 在阅读源码过程中大家不要死磕,可以结合已有的博客基础进行阅读,先理解前人的经验总结,然后自己再回过头重新理解源码中的精髓。这样可以达到事半功倍的效果。

(3) 网络协议

网络协议的学习要理论基础实战经验相结合。任何知识经过实战的检验才会更加扎实,正所谓纸上得来终觉浅嘛~

  • 理论基础:理论知识的学***家除了书本以及大佬的blog总结之外,在这里我推荐极客时间上的一门课《趣谈网络协议》,这个专栏生动形象的讲解并梳理了网络协议的基础知识。
  • 实战经验:除了理论知识外,我们要锻炼自己的实战能力,加深对知识点的印象。善于运用工具(如wireshark、Nmap、Zmap、Zgrab、postman等工具)进行发包、抓包,数据分析等实战过程。

3.2 补充级技术栈:操作系统、Spring全家桶、数据存储转发相关

(1) 操作系统

Linux操作系统在我们实际的开发过程中是必备的,因此熟练掌握Linux系统的使用以及其底层原理尤为重要。

Linux的操作系统的使用在这里我就不再赘述了。对于操作系统的底层原理,大家可以从三个方面去复习:

  1. Linux内核资源调度模型
  2. Linux IO模型
  3. Linux 内存模型

如果把这三个能够摸透,就已经很不错了。

(2) Spring全家桶

从事Java后端开发的同学都知道,Spring已经成为了业内公认的后端开发框架。Spring大家族从最初的Spring Framework到Spring Boot再到Spring Cloud,生态已经越来越完善。

因此后端工程师一定要具备Spring相关的技术栈。

对于Spring Boot的学习,大家不能仅仅局限于调用Spring Boot中的API,而需要了解其底层的原理。例如:

  1. Spring Boot中的Bean是如何注入的,又是如何调用的?
  2. Spring Boot在初始化时完成了哪些操作?等等

在学习的过程中,可以自己从头写一个简化版的Spring Boot框架,例如自己自定义Controller、RequestMapping、RequestParam等注解、以及通过反射中的类加载器加载这些注解;自己实现Bean的创建,注入等,实现IOC功能;自己实现AOP功能,更深入地了解AOP的机理。

关于Spring Cloud的学习,其实我涉猎并不深入,了解其熔断机制等浅粗原理。作为一个RPC框架,仅仅了解其中的皮毛。还需要往后不断深入学习。

(3) 数据存储转发相关

数据存储转发相关的工具主要有:数据库,缓存、消息中间件等。如MySQL、Redis、Kafka,ES等。

针对MySQL,大家可以从下面几个方面来进行梳理:

  1. MySQL事务:事务隔离级别与脏读、幻读、不可重复读等之间的关系,如何通过MySQL锁实现事务不同的隔离级别
  2. MySQL索引:MySQL索引的原理,采用的数据结构,以及不同数据结构的优劣等。MySQL不同索引的区别以及如何优化。
  3. MySQL日志:MySQL的两种日志机制的区别,以及日志的原理,作用等。如何保证数据不丢失?
  4. MySQL主从备份:主从备份架构如何与读写分离应用结合起来?
  5. 等等

针对Redis,大家可以从下面几个方面来进行梳理:

  1. Redis的内部数据结构:不同数据结构的底层实现方式,不同数据结构的应用场景等
  2. Redis的特性:单线程下如何实现高性能
  3. Redis的持久化:RDB持久化和AOF持久化
  4. Redis哨兵架构:如何解决主从复制情况下的节点更替
  5. 等等

针对Kafka和ES,我对其底层原理了解的并不是很透彻,掌握程度仅限于使用层面。因此如果想要继续深入了解其内部原理的同学可以仿照上面的方式,自己进行梳理和总结。

3.3 实战级技术栈:项目经验、实习经历

既然是找的后端工程师的工作岗位,那么后端相关的实际项目或者实习经历肯定是需要的。很多研究生可能导师任务重,并不会放出去实习,因而担心没有实习经历会不会找不到好工作。

在这里可以给大家吃一个定心丸:实习经历与好工作之间没有必然的联系

我们实验室采取的是996的工作时间,因此我并没有出去实习,在秋招过程中也收获了这么多offer。

那么什么才是重要的呢?项目经历或者实习经历给你带来的是项目经验的积累,因此无论是实验室的项目还是实习项目,你所需要做的是不断地积累总结,提高自己的coding能力。

如果说你实习的过程中,仅仅满足于日复一日的业务代码的编写(做一个简单的CRUD boy),不重视自己对项目整体的把握学习,不注意积累思考。那么实习并没有起到它真正的作用。

3.4 锦上添花级技术栈:高并发场景的处理经验、大数据处理技巧

应届生其实接触高并发的商业项目的机会很少,除非你去大厂实习,才能真正接触到一线高业务量下的高并发场景。

我本人并不具备高并发场景的处理经验,因此能给出的建议较少。如果你有机会去实习,能够接触到这样的场景,一定要珍惜机会!

 

大数据处理技巧这个其实是面试中经常会询问的一类问题,例如:

  1. 海量数据下,TOP K出现次数的数据的筛选
  2. 海量数据下的数据去重
  3. 如何对短时间内的大量请求访问进行限流
  4. 海量数据排序
  5. 等等

其主要采取的一些技术方法有:布隆过滤器,一致性HASH算法,外排思想,MapReduce等等。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值