赞
踩
一个应届的后端工程师所需要的具备的能力/经验分为四个级别:
只要你寻找的是技术岗的工作,那么数据结构算法一定是你必备的技能。算法能力的日积月累是很重要的。
我本科是电子信息工程专业的,研究生才转入计算机专业。虽说西电只要是电子信息与计算科学相关的专业都会学习计算机方面的通识课,但当时对算法课并不是很重视,因此涉猎不深。
真正重视是研一选修了卜东波教授的《计算机算法设计与分析》一课,卜老师讲课深入浅出,替我重塑了算法方面的知识体系,受益匪浅。相信中科院选修了卜老师课程的同学都会有相同的观点。
提升算法能力,完善的知识体系和日积月累的磨练是缺一不可的。如果仅仅想靠临时抱佛脚那是远远不够的。
Java语言基础的复习我提供几个经验之谈:
网络协议的学习要理论基础和实战经验相结合。任何知识经过实战的检验才会更加扎实,正所谓纸上得来终觉浅嘛~
Linux操作系统在我们实际的开发过程中是必备的,因此熟练掌握Linux系统的使用以及其底层原理尤为重要。
Linux的操作系统的使用在这里我就不再赘述了。对于操作系统的底层原理,大家可以从三个方面去复习:
如果把这三个能够摸透,就已经很不错了。
从事Java后端开发的同学都知道,Spring已经成为了业内公认的后端开发框架。Spring大家族从最初的Spring Framework到Spring Boot再到Spring Cloud,生态已经越来越完善。
因此后端工程师一定要具备Spring相关的技术栈。
对于Spring Boot的学习,大家不能仅仅局限于调用Spring Boot中的API,而需要了解其底层的原理。例如:
在学习的过程中,可以自己从头写一个简化版的Spring Boot框架,例如自己自定义Controller、RequestMapping、RequestParam等注解、以及通过反射中的类加载器加载这些注解;自己实现Bean的创建,注入等,实现IOC功能;自己实现AOP功能,更深入地了解AOP的机理。
关于Spring Cloud的学习,其实我涉猎并不深入,了解其熔断机制等浅粗原理。作为一个RPC框架,仅仅了解其中的皮毛。还需要往后不断深入学习。
数据存储转发相关的工具主要有:数据库,缓存、消息中间件等。如MySQL、Redis、Kafka,ES等。
针对MySQL,大家可以从下面几个方面来进行梳理:
针对Redis,大家可以从下面几个方面来进行梳理:
针对Kafka和ES,我对其底层原理了解的并不是很透彻,掌握程度仅限于使用层面。因此如果想要继续深入了解其内部原理的同学可以仿照上面的方式,自己进行梳理和总结。
既然是找的后端工程师的工作岗位,那么后端相关的实际项目或者实习经历肯定是需要的。很多研究生可能导师任务重,并不会放出去实习,因而担心没有实习经历会不会找不到好工作。
在这里可以给大家吃一个定心丸:实习经历与好工作之间没有必然的联系
我们实验室采取的是996的工作时间,因此我并没有出去实习,在秋招过程中也收获了这么多offer。
那么什么才是重要的呢?项目经历或者实习经历给你带来的是项目经验的积累,因此无论是实验室的项目还是实习项目,你所需要做的是不断地积累总结,提高自己的coding能力。
如果说你实习的过程中,仅仅满足于日复一日的业务代码的编写(做一个简单的CRUD boy),不重视自己对项目整体的把握学习,不注意积累思考。那么实习并没有起到它真正的作用。
应届生其实接触高并发的商业项目的机会很少,除非你去大厂实习,才能真正接触到一线高业务量下的高并发场景。
我本人并不具备高并发场景的处理经验,因此能给出的建议较少。如果你有机会去实习,能够接触到这样的场景,一定要珍惜机会!
大数据处理技巧这个其实是面试中经常会询问的一类问题,例如:
其主要采取的一些技术方法有:布隆过滤器,一致性HASH算法,外排思想,MapReduce等等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。