零算法基础 PhD, 点灯苦战3个月,拿到 Yelp Offer

发表于 讨论求助 2023-05-10 14:56:27

求职经历



上周正式签了 Offer,找工作算是可以告一段落了。从准备第一家面试到签了最终满意的Offer开始大概花了3个多月的时间,这段时间回想起来感慨万千,把自己踩过的坑和面试的经验总结一下分享给九章的同学们,希望自己的经历能提供给大家一些参考。


先说说个人背景和工作经验:本人中部水校 EE PHD,毕业后在东部一家非 IT 背景的小公司做 web development 做了接近3年。零经验起步,公司也没有人带,全程自己学,数据库,后端框架,前端框架全部都得自己学习自己搭,很痛苦,好在现在网络上可利用的资源实在充足,我基本上就是从官方文档开始+一些免费或者收费视频教程边看边实践。


个人的技术栈也是在项目一步步的升级中进步:从当年一个 Server 下的简单的后端 Python Flask,前端 jQuery 的组合开始,到后来后端重构成 django,Java Spring,Node Express,Beego 不同业务场景下的不同 restful API 服务器,前端尝试过了使用 Vue,Angular (>=2) 以及现在前端最热的 React,一步步在折腾的同时也一点点的提升自己的技术栈。


可能有人不解为啥要换着法儿重构,这点确实在大公司可能是不允许的,但我之前的公司由于很小,基本上用什么技术栈是由着我自己来的,就趁机夹带了点私货,抱着增加自己简历竞争力的目的折腾了很多次(只要不影响公司现有业务就行)。在不停的重构业务的同时也确实发现自己之前项目架构的很多问题。最终在写简历的时候也能够很有信心的 cover 住 web development 的很多方面。

课程帮助



虽然今年年初才开始真正的下决心换工作,并着手写简历+投递简历。但是整体上对 coding 准备的还是比较早的,我早在17年就开始报名九章的 Java 入门课程、九章算法基础班和九章算法强化班了。


在正式开始学习算法之前的时候对于面试的算法基本上是零基础+零信心。非常清楚的记得自己刚开始自己学习递归(二叉树的中序遍历)那道题目的时候,不夸张的说我足足想了一个周六的早上,到最后写出几行代码的时候自我感觉还是不是理解的明白递归,想不透彻,当时心情真是糟透了,看看 Lintcode 上多如牛毛的题目也是特别特别的沮丧。好在我算是有点牛脾气,一直坚持跟着 ladder 做题目,基础班的每道题认认真真的死磕(基础好的同学莫笑我,我当时真的是在对 lintcode 上各种 easy 的题目死磕。。。)。直到后来有一天看简单 DP 的问题的时候,突然发现自己真正理解了什么叫递归和为什么要递归。这种感觉大概就是量变到质变带来的吧(虽然那时候依旧很挫)。


在基础班上完以后,自我感觉有点基础了,就果断报了九章的算法班,不得不说令狐冲老师这门课算是真心能带我从爬到起飞了。这门课最大的优点,我认为也是九章最大的优点就是对大部分算法面试题目的归类总结,各个章节的设置非常棒!基本上 cover 住了北美 IT 公司面试所有的内容。面经看多了的同学可能已经发现,大部分面试题目基本上再怎么变都可以化成被ladder里归类过的题目,比如解题套路无外乎 two pointers, 二分,BFS/DPS, DP 等等,用到的数据结构也就是 hash set/map, stack/queue, heap 等等。只要能快速理解题意并努力找出题目合适的套路和数据结构,大部分的面试题目都起码是会有思路的,所谓的马甲题说的也正是这个意思。


上完令狐老师的课趁热打铁又上了陈近南老师的强化班。强化班最大特点依旧是对难题的良好归纳总结!其实难题难在哪儿?并不光是难在理解题意上,而是难在读懂了以后不知道用什么合适的套路和数据结构来做。这门课就是在通过对大批难题的归类,总结出类似的难题应该应用什么样的套路和数据结构来解。


在17年上完这三门九章算法课程之后,今年年初又报了周伯通老师的高频题班,在具备了算法班和强化班的训练之后,换一个思路来 Grouping 各大 IT 公司的题目准备起来就会感觉触类旁通,效率特别的高。比如我发现在总结一亩三分地里看的面经里的时候大部分的高频题目都会被周伯通老师的课上 cover 住,对自己接下来的 phone 和 onsite interview 就很有信心了。



准备建议



面试的过程就不细讲了,大的 IT 公司只面了 G 家(最终只拿到 T3), L 家(通过电面后 withdraw 了 onsite )和 Yelp。感觉自己的技术栈和新 team 比较 match,而且跟 manager 聊得非常开心,也很喜欢 Yelp 的地理位置,果断选择了 Yelp,后面还有的 twitter 和 airbnb 的电面就直接 withdraw 了。


总结起来,准备 IT 公司的 technical 面试无外乎 coding+业务 两方面。我相信大部分跳槽的同学其实业务都没什么问题的,工作中多多熟悉现有公司框架,主动点去学习市面上流行的技术就可以了。很多人在面试时候往往会卡在 coding 上。Coding 的准备确实很难,一是难在面对多如牛毛的面试题目不知道怎么准备,二是难在繁冗漫长的刷题过程中不容易坚持下来。我的建议就是先按照一个良好的面试题目归类来刷题,突破重重迷雾就会发现大部分的题目无外乎那么8,9种类别,分门别类各自刷上几十道,面试时候哪怕遇到新题也基本上都是有思路的。


另外,准备算法面试肯定是痛苦的,我这三个月基本上晚上没有2AM之前睡过觉,都是在夜深人静的时候自己刷题(九章QQ群里的几位助教不知道还记不记得有位大兄弟天天凌晨在群里骚扰老师)。


但是请你相信,每一分汗水都是在对自己自信心的提升!特别喜欢之前看到的一句话:默默找工作刷题的日日夜夜,等多年以后回想起来,永远是自己人生经历中最好的鸡汤。


送给所有准备面试的九章朋友们。




更多精彩内容 


  • 回复“简历”,查看简历撰写指南,获取“简历模板”

  • 回复“冷冻期”,查看北美各大IT企业冷冻期信息和注意事项

  • 回复“Career”, 查看Caireer Fair 攻略 check list

  • 回复“薪资”,查看北美各大IT企业New Grades Engineer 薪资水平;

  • 回复“项目”,查看7-14天可以搞定的小项目推

  • 回复“评分”,查看系统设计评分指南

  • 回复“behavior”,查看behavior interview指南

  • 回复“晋升”,查看Engineer晋升机制 


九章算法 | 帮助更多中国人找到好工作


《九章算法基础班(Python)》
美西 6月2日 周六 16:00-18:00 p.m
北京 6月3日 周日 07:00-09:00 a.m


《九章算法强化班》

美西 6月3日 周日 13:30-15:30 p.m
北京 6月4日 周一 04:30-06:30 a.m


正在报名中!

报名登陆官网 www.jiuzhang.com

或点击文末“阅读原文

发表
26906人 签到看排名