二本毕业的我,是如何 2 年进阿里的!

坐标:杭州 | 工作时间:3年 | 年薪:40W

毕业院校:普通二本(非计算机专业)

现任职位:BAT某公司资深开发工程师


我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找工作的时候就一直投IT行业的职位。刚踏入这个行业时,以为突击一下东拼西凑的面试材料,就能有个很好的收获。结果却是,别说大公司了,就是很多看不上的小公司的笔试题都过不去。


焦躁阶段


后来我去了本地的一个小公司去做服务端的开发。虽然叫服务端开发,但其实就是做系统指标监控功能,从DB中读取一些指标数据,通过图表的形式展现在浏览器中,所用的技术无非就是Spring MVC那一套。这种CRUD的工作内容做时间长了,就纯粹是体力劳动了,技术视野没办法打开。


即使写这么简单的功能代码,却还总是被leader批评,说我写的代码质量太差,配不上这几千块的工资。人总是要脸面的,为了改变这种状况,就开始想着如何在平凡的工作中把事情做到极致,开始关注代码质量,开始真正的啃起了《Java编程思想》、《effective java》、《设计模式》这些书。


同时强迫自己在代码开发前,多画一些架构图、数据流程图,写代码的时候也强迫自己代码分层,经过半年的磨炼,渐渐的也能写出一些松耦合高内聚的代码,也改变了满屏if-else乱飞的现象。leader也不再说我代码差了,还给我涨了几百块钱(知识就是金钱)!


640?wx_fmt=png


                

      

打开见识阶段


当时我以为这就是优秀程序员的核心能力,就鼓足勇气去投了一些大公司的职位,却没收到一个面试邀请函。后来投了几个小公司的面试,收到了面试却没收到offer,因为有的面试题我根本没有概念,比如:


相比关系型数据库,NoSQL的优势在哪里,你们在什么场景下会用到?

分析日志里存的都是账号登陆信息,一天100G左右,找某一时间段内登陆次数最多的一个账号

你们的并发量有多大,对于雪崩现象是如何规避的?


这些问题让我意识到:语法与设计模式只是程序员基本技能而已,要想进一步发展,必须在数据结构、高并发、分布式技术等方面提高。最开始学习的时候是很艰难的,基础弱,加上工作中又没有这些技术的使用场景,所以只能在论坛、博客等看零碎的文章,进步比较慢。


要想系统的学习,图书和网络课程是比较好的选择。我买了诸如《java并发编程实践》、《大型分布式网站架构设计与时间》、《Spring Cloud与微服务构建》等书,来来回回看了好几遍。然后在网上看了些视频,有免费的,也有收费的。我还花了近半年时间系统性地学习了一套课程,学完之后对Java相关的技能有了更为体系化的了解。同时,对于非科班出身或基础知识不够扎实的工程师来说,也可以有效起到查漏补缺的作用。


640?wx_fmt=png


之后我就试着在工作中利用这些技术,当时的状态就是“拿着锤子后,看到哪里都是钉子”,学到一个新技术后,就想强行用在任何项目上,leader有时候说我疯了,可我觉得也不必鄙视这种经历,凡事都有一个认知过程,这也是一种积累。

知识深化阶段


大概17年下半年,我就投了一些大的互联网公司职位,比上次好一点,有一些公司给我了面试邀请,但最后却都还是没收到offer。


后来复盘一下面试问题,发现我在整体技术面上回答得较好,但在细节技术点上,有点吃力,比如面试官问:


聊一聊你对JVM的原理,如何减少Full GC的情况?

消息队列如何保证顺序消费?如何保证at least once特性?

数据是通过push还是pull方式给到消费端,各自有什么弊端?如果消费失败,可能是哪些原因引起?如果是因为网络原因引起,该如何解决?


通俗的话来讲,就是虽然我见识了各种各样的轮子了,也知道各种轮子适合在什么样的路上跑,但不知道为什么适合。针对这种情况,结合已有的知识体系,选择了一个方面进行了深入,我当时选的是消息队列的深入研究,从网络协议、服务端消息存储、客户端消费、各种异常情况的处理等都摸了一遍。


这个过程我会针对每个环节进行假设反问,如果这一步失败了,会发生什么情况,该如何处理?这种思维培养了我对技术问题细节思考的能力,现在看来真的是受益匪浅。


18年上半年,我又去试了大公司的面试,虽然过程磕磕绊绊,但是面试官觉得我思考问题还是挺全面的,潜力比较大,因此最后收到了待遇丰厚的Offer!


逆袭路上的3点体会


为什么我会一直执念于要去BAT之类的大型互联网公司工作?除了因为薪水诱人,更是因为能有大规模分布式的技术可以挑战。


回首两年来的升级打怪之路,从16年毕业于普通的二本学校,到成为顶尖互联网公司的资深Java开发工程师,不免感慨良多。如果说让我给大家分享几点心得,那以下的3点应该是我近两年来最大的感触:


跳出舒适圈,找到目标是前进的起点。如果你在自己当下的工作中无法接触太多的新技术,可以尝试多去外面公司面试,这能在一定程度上帮助自己找到学习的目标;


跳槽要趁早,杜绝成为温水里的青蛙。对于想跳槽到大公司的同学来说,一定要趁早。因为同样的水平情况下,大公司更会看中「潜力」—— 年龄越大,潜力越小;


始终保持你的学习欲。对于工程师来说,学习永无止境。但埋头苦学是不够的,你要注意自己的学习一定要有系统性,除了手头的项目和身边“大牛”的指导外,看书和网络课程是最有效的方法,用少量的金钱换取宝贵的时间,是非常值得的。


如果你依然觉得有些茫然,以下的福利就很适合你!


福利1


《Java进阶免费直播课

适听人群:Java初、中级开发工程师


5.20-5.26  连续7天每晚8点准时直播


1. 5月20日 20:00

Redis进阶之路-高性能客户端原理分析(可回看)

2. 5月21日 20:00

带你领略分布式锁的前世今生

3. 5月22日 20:00

网易严选后端性能优化实录

4. 5月23日 20:00

大规模分布式系统架构下 - 生产环境故障分析怎么玩?

5. 5月24日 20:00

高性能底层组件探秘 - 深度剖析连接池技术内幕

6. 5月25日 20:00

Spring原理不可怕,一堂课搞定Spring+MVC

7. 5月26日 20:00

SpringCloud微服务架构之让每一个请求无所遁形


福利2


免费Java开发资料包


640?wx_fmt=png

扫描下方二维码

添加网易云课堂Java助教小姐姐

即可预约一周免费Java直播进阶课程

全方位扩充你的知识体系

640?wx_fmt=jpeg

微信号:weizhuangye50


免费课程,名额有限,先到先得~~2_06.png


### 二本电子信息工程毕业毕业后的就业方向 电子信息工程专业的毕业生在毕业后一内,通常已经完成了从学生到职场新人的过渡,并逐渐适应了行业需求。根据实际工作经验积累的情况,这一阶段的人才往往会在以下几个主要方向展开职业发展。 #### 技术研发类岗位 许多二本电子信息工程专业毕业生会入技术研发岗位,从事电子产品设计、通信设备开发或嵌入式系统调试等工作。例如,在通信行业中,射频工程师、硬件测试工程师等职位对具备一定经验的技术人员有持续的需求。这类工作需要扎实的专业基础和一定的动手能力,并且能够参与到产品的优化与升级过程中[^1]。 #### 嵌入式开发方向 由于嵌入式技术广泛应用于智能家居、工业控制、汽车电子等多个领域,因此掌握C语言、ARM架构、RTOS/Linux操作系统等技能的毕业生,在这一中可能会转向嵌入式软件开发方向。企业对于具有项目经验、熟悉STM32、ESP32等芯片平台的初级嵌入式开发工程师有较高的接受度。 #### 硬件技术支持与测试岗位 部分毕业生会选择入硬件相关公司,担任技术支持工程师或产品测试工程师。这些岗位要求对电路分析、PCB设计、信号处理有一定了解,并能协助客户解决使用过程中的技术问题。虽然薪资水平可能略低于软件岗位,但有助于积累行业经验并为未来的职业转型打下基础[^2]。 #### 软件开发及IT相关岗位 尽管电子信息工程并非计算机专业,但因其课程设置中包含大量编程内容(如C/C++、Python、MATLAB等),不少毕业生会转向软件开发、算法实现或数据分析方向。特别是在互联网、物联网、人工智能等领域,具备软硬结合背景的人才具有一定优势。例如,参与图像识别、语音信号处理等项目的后端开发工作。 #### 行业应用方向 随着智能制造、智慧城市等概念的发展,越来越多的电子信息工程人才入新能源、医疗电子、智能穿戴等行业。例如,从事医疗器械中的信号采集与处理、智能传感器的设计与集成等工作。这些岗位通常对跨学科知识有一定的要求,同时也提供较为稳定的成长路径[^3]。 #### 升学或继续深造 一部分毕业生选择继续攻读硕士研究生,以提升自身的理论深度和技术竞争力。考研方向包括但不限于信息与通信工程、电子科学与技术、人工智能等相关专业。此外,也有少部分人通过自考、出国等方式拓展学历层次,以便入更高层次的研发机构或跨国企业[^2]。 #### 典型行业分布 - **通信与网络**:华为、中兴、三大运营商及其外包公司。 - **消费电子**:小米、OPPO、Vivo等智能手机厂商及供应链企业。 - **工业自动化**:西门子、施耐德、汇川技术等。 - **医疗设备**:迈瑞医疗、联影医疗等。 - **汽车电子**:比亚迪、蔚来、特斯拉等车企及相关供应商。 ```python # 示例代码 - 使用Python行简单的数据可视化(模拟工资分布) import matplotlib.pyplot as plt import numpy as np # 模拟不同岗位的平均月薪(单位:千元) positions = ['硬件工程师', '嵌入式开发', '软件开发', '技术支持', '通信工程师'] salaries = [8.5, 9.2, 10.5, 7.8, 9.0] plt.figure(figsize=(10, 6)) plt.bar(positions, salaries, color='skyblue') plt.title('Average Monthly Salary of Electronic Information Engineering Graduates (One Year After Graduation)') plt.xlabel('Job Positions') plt.ylabel('Salary (RMB Thousand)') plt.ylim(7, 11) plt.grid(axis='y') for i in range(len(salaries)): plt.text(i, salaries[i] + 0.1, f"{salaries[i]:.1f}K", ha='center', va='bottom') plt.show() ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值