经验分享|校招和面试的一些经验总结
10747
2022.02.25
2022.02.27
发布于 山东

个人建议的话,

  • 这篇不太适合大佬来看,更适合像我这样啥都不懂的转行的来看。我不知道啥叫程序,但是我想当程序员的这种。
  • 经验很菜,只有一年,大家也知道我水平……
  • 单纯个人感受和工作总结

如果是408、985硕问,那肯定直接奔着大厂去了,直接去看面经不好吗?


校招

北方重工学校

比如说我们学校吧:其实我们学校是在华为的招聘名单里面的,但是校招的时候华为不来!!!就一个云面试!(网上的,就不来)

去校招的话,都是自己关注、自己学习、自己投递、自己面试。学校不管。


那时候没有主动性(我现在也没有那种主动性)。

在重工企业想要拿到好的offer,就不能去校园招聘,而是自己坐飞机坐高铁赶去面试场,而且还不报销。

所以,北方的那些211(比如石油、哈工)面试一次好的IT都很难。


比如说:我是一个机械专业的硕士,你在学校面试的话根本没有机会,只有走出去才能面试。

我遇见过的:

  • 大四直接出来,直接去北上广租个房子去面试。
  • 面试一次坐一次飞机

第二个问题就是:培养计划里面关于计算机的啥都没有,一脸懵逼

  • 我大四毕业不知道啥叫数据库
  • 我一年写2000行代码

我那时候的感受:面试IT之前至少得半年到一年的准备期,还要实习,没人告诉我啊!!!

大四学校就往企业推人了,面试指望学校教的根本用不上(或者不够)

需要大量的自学和时间的堆叠。

考研

大多数的人是这样的:

  • 我要考公,准备一个月
  • 我要考研,准备一个月
  • 我还要准备去电网,准备一个月
  • 我还要去搞IT,准备一个月
  • 面试面试,去碰碰运气

大多数的人其实时间不在学习上,在选择上:我迷惘啊,我到底要干啥?根本静不下心来。

别问,问就是我也这样。

而且:大多数人作为程序员的热情很低。考公考研的热情高涨。

语言的学习

gui和api

很久之前,一个大佬和我说:gui还用练?几十个赞。

人家工作了好几年了,代码都写几十万了,当然不用练了。大多数的人还需要练习,很多业务都是GUI的堆叠。
(就是普通的图像化界面,比如如何测试、断点、maven构建,api也很重要)

我自己学Python的时候已经刷了800题,入门java的时候(现在也没学好),大概用了1个月的时间熟悉各种数据结构的api。(之前写的各种数据结构的gui,应该是api来着)和idea的各种快捷键、调试断点。

说句最真实的:

  • 你进去企业以后没有人和你说GUI的,也不会教给你,这种东西基本都是自己百度。最多给你讲讲项目逻辑。

    gui都不熟,api都不会用,同事会给你讲?你敢问?

如果基本功都不练习,我觉得会吃很大的亏。


指针

指针这个东西有人说不用学,那么至少得学引用啊、学堆栈啊。指针都弄不懂学这些东西没法学。

我学指针的时候那是C++ 的,真的学的一头雾水。

  • 为啥数组要以0为开头?
  • 为啥要new一个空间?
  • Java的==是啥意思?堆栈是啥意思?
  • 为什么会有包装类?
  • 常量池是什么意思?
  • static为啥所有变量共用?
  • 深拷贝和浅拷贝是啥意思?

这些东西或多或少都有指针的影子。

看不懂也去看看,以后用的着。


底层的东西,这些东西学了是最赚的,可是实际业务又大概率用不上。只有靠自觉。


报班和看书

对外行而言,个人认为:报班不太合适,看书也不太合适。

有人说:看人。

都认是外行了,外行不知道啥是好书,建议还是看视频。

  1. 书这个东西是好东西,可是你说一个入门的去啃大头书,他啃不了。这种大头书都是有项目经验提高用的,不合适。

  2. 有些书的确垃圾书。(尤其是入门书)

    比如说:做个游戏用PythonGame去写贪吃蛇,你工作也去写贪吃蛇啊?

    我之前工作,然后看书,发现:和实际工作脱节的太严重了!

  3. 有的书天生就是当工具书去查的

第二个事情,就是培训的教程。

  1. 本人记性还是不错的,然后读题的时候遇见过两个背板的网课。

    啥叫做背板呢?就是教案一模一样,脱离实际生产的那种。

    这个技术NB,那个技术NB,这个吊那个厉害。

  2. 还是写各种飞机大战贪吃蛇各种小游戏。

    这些哄孩子呢?

  3. 培训机构云龙混杂,有的水平只会背书。

视频的话,我现在在看狂神说。这个人说的很基础,而且弹幕也很多。书的话没有推荐,因为还没有到给别人推荐书的级别。

我是实际工作了一年,知道:所有的技术起点就是增删改查。所以sql永远是最基础的。看数据库,看索引、看二叉树、看时间复杂度。然后是各种锁,数据库的各种性质。

至于其他的东西都是服务于数据库的。基本所有的知识点都在数据库有所映射。

刷题和框架

说一下:小微企业看中项目经验和工作年限,不问你题目问框架,刷题也没用……


刷题的话,个人认为中等是比较合适的。因为困难真的没用思路,简单题又指望不上。

我的水平是:不看题解,可以搞定1200道中等里面的600道中等。也就是一半。我认为300道中等是比较合理的一个面试区间。

困难我又不是去打竞赛的,也可以应付大多数的面试,面试用的着再说。


小微企业的话,是这么问的:

  • 用过oracle吗?
  • 用过redis吗?
  • 用过kafka吗?
  • 用过XX工具吗?

你回答:是或者不是。

是的话会问技术的一些细节,比如:oracle闪回用过吗?

你就告诉他用过(核实用过,不用太深)

个人的一些建议
  • 不要手写delete语句和update语句。尽量不要。因为这些操作是不可逆的。

    如果必须要写,那么用

    delete form t1 where id = 1;
    update t1 set name = '100' where id = 1

    学闪回和binlog回滚。刷计费业务的时候要备份。

  • 不要用rm -r或者rm -rf,要用rm(因为会确认)

  • 不要锁表

这些东西都懂了以后,就不会搞出啥恶性故障了。


不要太功利

之前工作的时候,遇见一个哥们, 是这么说话的:

  • 听说计算机能挣钱,咋学?
  • 学完这些能挣钱吗?

这个东西我只能说:不适合。

个人感受:在IT的投入刚开始的投入是没回报的。

这是我真实的感受,刚工作的时候那是真的一点回报都没有,前几个月往里面花费时间、精力没有任何回报。你甚至不知道学这些东西有啥用。

比如说吧:

  • 去学GUI,然后你换了一个语言gui变了,不学了没意思没意义;我等着领导给我安排工具以后现学。
  • 学了指针,面试又不考;
  • 锁表的时候执行一个kill就行了,锁表就知道个死锁(高频面试点)啥都不知道;
  • 面试前一个周开始刷题了,问刷题刷哪些
  • 每天工作的事情都处理不完,哪有时间去研究各种问题……
  • 手撕哈希表太难,项目又太难
  • 想要什么,只是想要一个大厂的工作或者大厂的实习,别人要80W一年,我要40W就行了。

我遇见这种同事,当场高冷装菜鸟。


Python

我花了5个月的时间去学python,4个月的时间学java。各刷了800(其余那100在牛X那边),业务也用过。

总的来说:

  • Python他节约人,浪费机器。
  • Python的确不太适合大型项目的架构,架构起来维护也有难度

比如说:

  • 你雇了十个开发写Java,然后你需要10台机器

  • 用了Python以后,需要5个开发,30台机器

  • 用了C或者C++,你需要30个开发,5台机器

就问老板怎么选

个人考虑:

  • python这个语言是解释性语言,需要进行预处理-编译成pyC(中间字节码)的过程、动态类型,(之前写的c)导致性能消耗的确比Java大。

    比如JIT、锁、多线程啥的,Python有解决方案,不过的确不太成熟。

  • 动态类型,所以如果开发的水平不过关的话(比如说没有做类型标注、返回类型指定),维护起来是比较困难的。


也是因为这些个原因,我之前那个公司在一些负载不高的情况下用的的确是Python,我也写过。(因为写的真的快)但是底层架构的话还是C++和Java。因为设备还是贵。

后端的话,如果出现高并发、高负载啥的,Python的确有点指望不上……


我以后的选择还是用的人多、更新频繁、后面的金主爸爸有钱的技术。这些技术活得久。

Java

我为啥学java呢?单纯为了钱嘛。

Java的底层是C++,也就是在C++加了一些东西(JVM啊,GC啊),减去了一些东西(指针)。

可是Java是没有指针的,有引用。

这个就很操蛋了:引用用的是指针实现,你又不让用指针,新手会懵逼的。


我是这么过来的:

  • 去看Spring,看不懂注解和反射。他们说:要看的懂Spring,就要看得懂反射。

  • 去看反射,XX的也看不懂。他们说:要看得懂JVM,才能看的懂反射

  • 去看JVM,就要谈堆栈,要看的懂堆栈,就要看的懂引用。

  • 可是引用是指针实现的。


倒过来一理,通了。

指针引用  --》 JVM的堆栈 + 类 --》反射 --> Spring或者mybatis

大多数的人直接上手就是框架,直接傻了。然后大喊一声:好难啊,当场退役去看go和python了。

很多人都是调包侠,直接百度一下包直接用的那种,像这种学完A才能理解B的东西(而且嵌套那么多层)的确有点……劝退人。

第二个是:底层都是很抽象的东西,类啊、指针啊、gc啊、堆栈啊,很多人不学。


Java的确很啰嗦。代码量的确很高。真的写起来不如Python快而且爽。

这个没有办法。

但是我考虑的话:Python的岗位的确不多,学了还得再学一门别的语言。

IT真的不是急功近利的人能学的,来钱快的还是搞销售比较好。


工作的选择

小微企业

工作的话,尽量大厂。至于如何去百度阿里,我不知道……因为我也没进去……

之前工作的公司,一个几十人,一个5000左右一个2000,一个被辞退,一个干了1年多,一个3天。

个人评价:十几人的有十几人的不正规法,几千人的有几千人的不正规法。


先说最重要的一点:大多都的小微企业要求的是不培训就能干活的人。

入职的时候说自己有工作建议项目经验,包装的漂漂亮亮的。

领导信了。给你一台电脑、一份源代码、一份需求书就开始写代码。

  • 遇见不懂的,自己去问同事自己百度,你拿着工资呢。(点名批评易诚互动)

  • 要文档?如果交接的不及时那么不会有文档。

  • 要培训?我们都是直接上手干,遇见不会的直接csdn百度谷歌。

  • 要大佬?我们项目组就这么几个人,去问啊。

  • 要测试?你自己写的自己测不行吗?

  • 要维护?你自己的系统自己不能维护吗?


这些企业通常的要求是:3-5年工作经验。也就是:我不会给你培训的意思。你自己做过项目,摸着石头来呗。

很多人去了小微企业以后,懵逼的很:我工作压力很大!!!我什么都不会!!!赶紧微信问大佬:咋办?

谁也没办法啊……

有这么几点:

  • 小企业能不能发工资、压不压工资都是两说的事情,等着到了几千人,工资基本上不扣(至少有比较正规的考核和工资卡)
  • 一些小微项目、人少的项目真的是啥都不给啥都得干。维护不给维护文档,开发不给开发文档,用户没有要求的功能基本不测试。代码写的一团乱,维护和开发不愿意闻。
  • 小微企业的薪资水平的确和大厂不能比,拿着雇佣实习生的工资要技术大牛比比皆是。
  • 三线城市的确没啥太好的公司。(昨天有个招聘的刚刚说,海尔海信在IT是大牛……有技术有发展,我真的是无语的很)
  • 小微企基本不要1年工作经验的。
  • 跳槽也很困难!

我的建议的话:

  • 能去大厂去大厂,蹭一下带薪培训啥的

  • 老老实实去实习,多问核心技术和源代码、业务逻辑,别直接装3年工作经验……

  • 如果学历还可以带薪刷刷题(我就是这样的……老摸鱼了),等到有工作经验再去。

  • 尽量不要去这种公司,去了尽量早跳。


计费项目

单独把计费项目列出来,是因为我工作的时候深受其害。

  • 甲方天天挑刺,乙方天天挑刺

    因为涉及钱财的东西,甲方乙方都很重视。

    由于系统重要,所以故障率居高不下,各种投诉层出不穷。

  • 明明是正规流程,用户舔着长脸来投诉,说扣多了扣少了不合理。或者用户撒谎。等着业务逻辑复杂起来,用户态度一般比较恶劣。

  • 一般工作有限时,就是越快越好。故障不排除天天加班熬夜。

  • 有的企业不让去外网

  • 出现bug加班熬夜必须立刻修好

  • 这些计费项目一般不挣钱。


实习的选择

大多数的维护和测试基本上就是在写sql,基本碰不到代码。底层的开发和一些老架构的系统基本也在写sql。

雇一个实习生,就是来打杂的,基本上写不了代码。比如说:做个报表啊、汇个总、执行个sql、打印个文件啊、做个PPT,给你个postman让你去查一下报文啊、处理下邮件这种。动手不动脑。

就这么说:

  • 让你动开发库或者让你写生产业务源代码?让你写你真的写的了吗?你能写人家敢用吗?

  • 搞个springBoot熔断,大多数人也就过一遍理解下意思就行了,人家没有开发让你去写啊?

真的没有太高的技术要求。

普通的中厂去的话不用刷题,练一下sql就行(你说去IT独角兽企业或者等过了实习直接转正的除外)


第二个要求的话:长期。

一个211的本科过来干1个月,一个二本的要实习6个月。那肯定要第二个。

为啥呢?因为留不住。

  • 实习的薪资给的非常非常低,可能只有正式的1/2或者1/3
  • 天天处理这种螺丝钉、没有意思的事情,人才不愿意浪费时间的,留不住。

实习的坏处

  • 实习的薪资给的非常非常低,可能只有正式的1/2或者1/3
  • 天天处理这种螺丝钉、没有意思的事情,人才不愿意浪费时间的,留不住。
  • 不让登服务器,也接触不到核心业务,写代码也是很简单的,基本上天天写sql。对于提升是比较有限的。

所以大多数情况下就是实习1-3个月。

所以实习的时候,就这么说:我准备实习6个月。(至于能不能,入职以后再说,懂?)

简历这么写:

啥学历,是二本还是一本,是否科班
熟练使用mysql、oracle。
会使用Java
能实习多久(6个月)

其余的你想写啥就写啥,只要不减分就行。


简历的减分项

简历

很久之前,我网上看了几个简历,直接无语了:

有人说了:你说啥呢,现在不是微服务嘛、分布式嘛。

哪有,每天往数据库插入1000W条数据,用啥分布式服务?我们之前工作的公司到现在还用的单机数据库呢。

我又不是面试官,我就实话实说:刚毕业的,80%以上连个代码都写不出来。面试之前刷完top100都不错了

简历里面全是

  • 云盘
  • 博客(我150多篇没营养的博客都不在简历里面写,扔CSDN里面了)
  • 商城
  • 图书馆管理系统

按照网上的说法,我觉得那就是面试官脑子有问题。

  • 你一天IO多少啊,搞负载均衡?我们这边一天IO几十亿用的单体数据库。(Oracle单体搞得定几十亿的IO的,就是贵)
  • 你能搞得懂hash源代码,写个left join你都写不出,这不行的啊。
  • 就做个商城,用XX今年最新的、最NB的技术栈,是哪个独角兽出来的还好,说自己是几百个人的小公司?
  • 今天来了20个面试的,其中15个简历模板都是一样的,你告诉我不是培训出来或者啥都不会?
维护

维护和测试的歧视是真实存在的,因为维护和测试碰不到源代码。

有的工作是这样的:天天忙、天天忙,工作好几年一行代码写不出,增删改查都搞不定或者只会增删改查。

你说出自己有过维护经验,那基本上就定性了:你不会写代码!!!!

我之前维护,到现在面试死活不承认自己维护过。

你可以说

  • 自己是外包,接触不到核心业务代码,只能去做简单的开发功能;
  • 企业不规范,开发测试一起做,互相测试代码

这都可以。

千万不要说自己单测试或者单维护!

在维护里面挑人才,那是沙里淘金,而在开发里面挑开发,那是金子里面洗沙子。

评论 (28)