自学编程的人,都是怎么找到第一份软件开发工作的?

论坛 期权论坛 期权     
诗果   2018-9-24 00:14   2837631   7
非计算机专业,毕业两三年之后才开始自学编程的人,都是怎么找到第一份编程工作的?

招聘要求中有很多学历,专业和n年工作经验的要求,感觉会很难的样子。

从零基础自学到获得第一份编程工作又需要大概多久?

我现在在自学.net,想转行做程序员,目标很明确,也有兴趣,不过迫于生计问题只能边工作边业余时间学习,问这个问题并不是因为急于求成,而是希望能对未来状况,这个目标的可实施性以及我目前最担心的问题:能否顺利获得入行工作的机会有一个大概的了解。

希望能得到各位行业内前辈的帮助指点!先谢!!!
分享到 :
0 人收藏

7 个回复

正序浏览
7#
考古学家千里冰封  2级吧友 | 2018-9-24 00:15:04 发帖IP地址来自

投简历,和HR邮件沟通,和CEO面基喝咖啡,完成三道编程题,上班

6#
徐亚光  2级吧友 | 2018-9-24 00:15:03 发帖IP地址来自
2016.6.25更新
最近一个礼拜的加班,恰巧今天下班早,就花时间更新一下,没想到距上一次更新正好一个月哈哈,好巧。
分享一些我自己的心得,新手们可以仔细看看,大大们权当看故事吧。
首先前端的内容挺爆炸的,这个不可否认,各种框架库满地飞,我来谈谈我的看法吧。首先初学前端的人html,css和js这三个基本功先开始学那是肯定的,html+css估计快的人一个礼拜,慢的人一个月就可以模仿出大部分静态页面了,这个学习可以跟着codecademy学,或者按照另外一种方法,就是看w3c的教程,我的意思是第一遍先慢慢的有啥标签啥样式都跟着试一遍,第二遍就是快速的过一遍,主要记得有哪些功能即可,比如你只要记得我想要一个按钮,似乎有这么一个标签专门是写按钮的,我想要字变颜色,似乎有一个样式是变颜色的,这一个过程是让你明白,你能做什么,顺便帮你再梳理一遍,然后就可以模仿着做了,还记得我第一个模仿的是百度首页,足足话了我一天的功夫哈哈哈。不用过多的去关注html5和css3这些有点虚的东西,只是一个版本而已,作为新手只要看看html5有哪些规范,多了哪些标签,多了哪些新的样式能干什么就行了。
js的学习我因为之前学过四个月的java,所以对一些基本的内容都跳过了,这里面书推荐jsdom编程艺术,网站英文依然推荐codecademy,中文推荐ife吧。视频也可以看,不过推荐视频看项目实战,不要看他们的基础教程,因为基础教程永远是以官方文档和书作为第一资源。对于新的东西你要明白,他们诞生的目的不是去给我们这个职业增加难度让我们学着玩看谁学的厉害的,相反是帮助我们的,他的目的是解决我们当下的问题的。当你写js发现为了加一个事件而要去兼容各个版本,为了取一个dom要输入一长串的document,getElementbyId()在想有没有解决办法的时候,恭喜你,你是这个时代需要的人——懒人,并且已经有人去帮我们成功的偷懒了,那就是jQuery,而当你使用jQuery被jQuery神奇的魔力所折服的时候你的好奇心开始了,想研究一下究竟这jQuery是如何实现这神奇功能的,于是你开始看起了源码,这也许你是第一次读这么长的代码,但我要恭喜你,你离优秀更近了一步,要知道作为程序员,读代码的能力有时候甚至比写代码更重要。你会发现jQuery取dom原来是用正则的啊,嗯,这个方法不错学习了,下次我遇到类似要取东西的时候也用正则,你看,是不是又学习到了新的内容。当你发现写的css在各种屏幕下总是不能很好的表现,你在想有没有什么布局可以灵活的在电脑和平板手机灵活的变换的时候,恭喜你,你又get到了新技能,bootstrap的栅格化布局解决了你的问题,于是你用久了又产生了好奇,开始研究bootstrap的源码,发现了lsee和各种媒体查询等响应式布局策略,恭喜你,你离优秀又更近了一步。这一切的一切都是那么的水到渠成,不需要你去刻意学习。对于新的东西,先看看他是用来解决什么问题的,你有这样的问题吗,没有,那就了解一下,有,那么就学习一下,很简单。至于angularjs,react,vue等等,他们并没有那么高大上,那么遥不可及,只是他们所解决的问题对于现阶段的你来说都是个问题(此问题非彼问题),因为你现在的水平根本遇不到这些问题,你也不知道这些问题到底是个什么玩意,所以不要感到迷惑,等你遇到了这些问题,那么那些框架你就会自然而然的去学习去使用了。只要记住,跳出舒适区,拥抱新事物,做一个偷懒的人,不对,是做一个会偷懒的聪明人。好啦太晚了,我要睡了,各位晚安。

2016.5.25日更新
针对有人私信我学习方向的
其实我自己也会经常迷茫,也只是一个小白而已,而且非常白,因为没有受到过系统的专业教育。
我能给的初学者的唯一建议就是,目标驱动,或者说项目驱动,给自己一个你想做的东西,然后去把这个任务拆解,分成一个一个小任务,然后去一个个学习完成他。
你也可以反过来,找一个想学的技术,然后想想利用这个技术能做什么,然后就根据你要做的和你要学的去做吧。
---分割线
我是如何从一名文科生成为程序员的

准确来说,是从一名轨道交通运营管理专业的应届生(其实还差2个月毕业),成为了一名前端工程师。
这篇文章我每天晚上都想写,每晚做梦都想写,为了让自己不那么浮躁,我一直告诫自己,努力学好技术,什么都不要想,不要看钱,要看前。
本以为我会在今年年底实现我的大业,也想着在今年年底开始找工作,先在地铁工作一年再说,可是没想到,一切都是这么突然,在2016年的五月初,我提前终止了。

一点点回忆迷茫

还记得在15年中旬,那时候正是我一段迷茫的时期,对于销售和技术,这两个我都深爱的方向,一直都不知道该如何抉择,折磨了我很久。想学技术觉的技术踏实,可是看着我大专几年的工作经历,明显是一个销售的模子,心里也一直幻想着我西装革履侃侃而谈的样子,可是现实很无奈,销售对我来说是一个不可控因素太高的职业,我害怕自己很努力可是到头来却一无所获;但是技术对我来说除了稳之外无一点优势,因为我从没接触过。这期间蕾蕾给了我很大动力,也让我毅然决然选择了技术,并以计算机作为我的职业发展方向。

我认为,以技术为方向的职业方向是最容易获得成就的,因为他需要的就是你在一个领域里不停的钻研。

小白

刚开始编程对于我来说就是零,我傻的跟一张白纸一样。好在我记得有张图书卡,打算着等双休日去图书馆借本计算机的书来开始我的大业。

还记得我打算去图书馆的前几个晚上,每晚都很兴奋,激动的心情根本无法入睡,估计就是从那个时候开始,我的睡眠就开始不怎么好了- - 反正每天晚上我都要思考好久人生才能睡着。

我读的第一本关于计算机的书,具体名字忘记了,隐约记得是什么计算机导论,反正是一门大学课程配套教材。看之前我还特意去网上攻略了一下,听说入门书是挑薄的,越薄越好。拿回家后我真是爱不释手,洗洗手,正襟危坐,打开书认真的看起来,并认真做起了笔记,忘记是从第几天起,那本书就不知道跑哪去了,具体笔记本在哪,我也找不到了。

车祸——是福也是祸

很巧的是,在我终于找到那本书,把那本书还掉,从图书馆回家的路上,被车撞了。。。有点尴尬,是不是上帝在跟我说:“小伙子,你居然敢不看完就还书,看我打断你的腿”。还好当时我电瓶车没电我骑的很慢,索性没什么大碍,只是要拿绷带绑着,我记得那时候正好是我暑假的开始,妈的,看来整个暑假要在家待着了。

这两个月,我看了两个月的java视频,到现在还记得看的人是毕向东,真心推荐,毕老师的教课方式真的是简单暴力,反正那段时间看的我整个人都变的搞笑了哈哈。

后来找到了网易云课堂,上了翁凯老师的java课程,信誓旦旦的交了五十块钱费用,(这五十块钱就是如果你坚持通过了考试,就给你一个毕业证书,如果你没有,五十就是惩罚)。一开始跟着做感觉没什么问题,到后来越来越难,这也体现出我暑假里光看视频学习的短板,理论还行,实践是渣。不过我也是迎难而上,期间还得到了浙江大学给的一个奖品。其实这个奖品还是有水分的,当时是这样评分的,做一个游戏,大家把自己做的游戏放到一个讨论区里,参与该课程的学生可以给讨论区里的游戏点赞,谁的赞多谁就能得到一个奖品。看知乎让我明白了一个道理,就是每个人都喜欢听故事,我的作品如果只是冰冷的作品,那么肯定比不过他们,于是我在提交作品的时候叙述了我的自学经历,想引起更多的共鸣来让大家点赞,当然,结果也如我所料嘿嘿。但是最后的java考试,因为跟我的电工证有冲突,所以就没能参加,五十块钱都打了水漂。

入坑

反正不知道学了多久,java这种长半衰周期的编程语言让我再一次感到了迷茫,后来听人说非科班出身可以做前端,前端更加容易,于是我就这样入了前端的坑。

现在知道了,没有容易的,都是坑。从一月份开始,从html到css一点一点,好在我后来找到了好的学习方法(关于学习方法可以看我的博客——【我说学习】板块),参加了百度前端的课程,也巩固了我的css,进入了下一个环节JavaScript。

好吧,学了JavaScript跟其他编程语言并无两样,也是一个完整的编程语言啊,不过它的弱类型什么的一开始用起来还确实不习惯,但是它既可以函数式编程,又可以面向对象,看起来更具有灵活性一点。不过好在它写的东西可以直观的在网页里看到,给了我更多的反馈,也给了我更多的动力。

这期间我停止了博客,转向把我的总结写在印象笔记里,因为写给自己看,排版什么的就很随意,也节省了更多时间,至此我的印象笔记内容大约有一百五十多条吧。也把我的方向从单纯的学编程,分散到学习如何学习(很重要),以及英语上来。对于一个人的不可替代性,外语能力绝对算一条,因为它不是你一朝一夕能够学会的,不过目前对我来说够用就好,现在已经可以看原版的编程书了哈哈。

我的时间安排

其实没什么,我的时间安排就是充分利用我的一切时间,反正从15年中旬到现在,我基本没看过电视,空余时间不是学习,就是看看ted之类关于心理学或者如何更好的学习之类内容,偶尔跟朋友出去玩玩。

这看起来挺简单,一般人刚开始还真的挺难适应的。在一个没有人督促,没有人陪同,没有人引导的前提下,我的学习就像是在漆黑的山洞里探险,一开始我甚至连灯都没有,想看看自己都看不见,因为我根本不知道自己学习的怎么样,对不对,哪里需要改进,哪里需要巩固……

这对于自控力,自我管理,自学能力以及耐心都是一个考验,好在这个考验我暂时通过了。

第一份工作

就在16年的5.2号,也就是现在,我找到了一份前端工作。一切都起源于我在苏州前端群里面的一句发问:“请问xx你们招前端吗?有什么要求?”机缘巧合让我遇到了高先生,他是我的贵人,通过短短的聊天我知道,他不是一个看中当下的人,他看中的是一个人的潜力以及后期爆发力。而我很有幸的,成功转型,高先生以及贵公司给予我的信任,我一定不会辜负。以后当别人问我的职业的时候,我会自豪的告诉他
写代码的

但是我会紧接着告诉他第二句话

code change the world

5#
匿名用户   | 2018-9-24 00:15:02 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
4#
天天向上  4级常客 | 2018-9-24 00:15:01 发帖IP地址来自
看了很多回答,根据题主的情况,微软亚洲研究院、腾讯的经历,还有名校博士出身的,动不动CS(我们只知道这是游戏),不太适合题主了,你们应该给题主出出主意,别光顾着显摆,这样除了能吓尿题主,对题主或者题主这样工作3年以后自学编程找工作的人来说,一点帮助都没有。

题主这样,即使学好了,软件公司的HR多半不会瞧上一眼,所以面试机会基本没有,所以必须寻找各种面试机会,才能使自己的才能展现出来,才能有机会进公司。

给题主出三策,不用说是上、中、下,所有对策的前提是必须学得扎实,努力独立完成一个比较像样的项目,其次认真写好简历,工资么要求低点,目标:小公司(别灰心,只是开始而已)。


上策,
在亲戚朋友同学同事中找熟悉软件公司的人,那怕是亲戚的亲戚,朋友的朋友,同学的同学,同事的同事(错了同事的同事还是同事),一般如果有这样的人,那怕出于面子,也会给个面试机会,这个时候,只要能力,就可以,工资要求低点,毕竟这一行,换工作方便,积累一年工作经验就可以换公司,工资就可以恢复到和你能力一致的水平了。

中策
安装好自己开发的软件,相关源码及开发工具带上,做好简历,换件精神点的服装,到人才市场去,主要是去计算机相关的专场招聘会,现在软件互联网企业到人才市场招聘不多,但还是会有企业去,一家一家去找招聘人员说明,不管大小,态度诚恳,只要有实力,把自己的情况说清楚,肯定会有企业对你的印象深刻,会有企业让你参加面试,一场不够两场,只要足够诚意,足够水平,大中企业不敢说,急用人的小企业肯定是可以的,人家到人才市场去招人也是因为急着用人。

下策
下策,就是包装简历,写一家小公司10个月的开发经验,然后去投简历,简历只投小企业,毕竟是假简历,小企业运作不规范,好人才也招不到,应该会有企业要求面试,只要能力过关,就OK了,这是现在不少培训机构教唆学员做的事。但事关人品和道德,可能会让你一辈子都会留下污点,所以称为下策,慎用。

在你学得不错的情况下,关键就是面试机会,要创造一切条件争取面试机会,有面试就成功了。

-------------------------------------------------------------

更新:
还有,你想学.net,这个选择不知道出于什么考虑,如果没有特别的考虑,还是建议学JAVA,或者前端,毕竟企业需求量差很多,JAVA和前端对于人才的需求比.net大多了,应用领域也更为广泛, 可以参考java的就业前景如何? 而且JAVA学习,网上的免费学费资料也更多,更容易学习,包括视频、源码等,懂JAVA的人比懂.net的人多得多,所以找个帮你的人也容易。

至于要学多久,这个因人而已,毕竟每个人的学习能力,每个人能得到的帮助,每个人的学习环境不一样,所以,可能半年,有可能一年,可能二年,可能...,可以参考java初学者,如何学习java?

-------------------------------------------------------------
3#
Sion   | 2018-9-24 00:14:59 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
2#
马力  6级职业 | 2018-9-24 00:14:58 发帖IP地址来自

特别想说一下我自己的经历,希望对你有帮助.

91年男,14年毕业于一间普通的本科二线学院,学的是计算机网络专业,如果是这几年毕业的同学应该都知道,那个时候英雄联盟刚刚在大学校园里兴起,游戏氛围浓厚,开黑的狼烟四起,哪里有战争哪里就有我,大学四年基本上都是这样荒废掉的.不过那个时候虽然玩的疯,上课的时候还是顺便学习了一下c#基础和网页设计这些课程,或许冥冥之中这也成了我之后选择当程序员的一个重要原因.

我的经历还是挺曲折的,铺垫很长,没有兴趣看这段的可以直接跳过!

实习的时候面试了一个百度搜索的公司,在里面当销售,每月1500底薪,提成另算,在工作一个月之后,从心底开始抗拒这种工作,每天的工作就是一直的打电话,不然就是开会打鸡血,而一个月过去还是一个单都没接到,无比沮丧,借着回学校答辩把工作辞了.

第二份工作是正式毕业后,在一家上市公司当运营专员,公司挺不错,但是工作一段时间后,发现工作比较枯燥,属于劳动型工作,不需要怎么动脑子,基本工资低,而且提薪难(老员工那了解到),这些问题固然重要,但让我离开的是我堂哥建议我出来跟我姐一起做淘宝,那个时候他刚好有一些资源,而且他觉得这么一个岗位混下去没什么意义,就是一廉价劳动力,所以一番衡量之后,我又辞去了这里的工作,投身到马云爸爸怀抱里!!

当然马云爸爸的怀抱不是你想抱就可以抱的,在淘宝店铺如过江之鲫的时期苦苦坚持了半年,终于撑不下去了,这其中运营是一个问题,资源也没有什么优势,资金投入也不够,自然成了无数炮灰中的一个.

古语有云:一鼓作气,再而衰,三而竭.在连续三次作业失败之后,我是挺沮丧的,适逢家里有块地,离着学校近,就在堂哥的建议下办起了少儿托管,当然这次我只是打个副手,建房子半年,招了十几个学生,算是一个不错的开始,但是这么下去不是办法,饭就那么多,人多了分的肯定少了,所以我又开始找起工作,寻思这几年人工智能快速发展,找份人工智能的工作,以后要是能发展起来,吃不了肉,跟着喝点汤也不错!然后就投了一个智能机器人的公司.顺利入职之后,工作并没有想象中的高大上,公司是做智能手臂的,俗称自动点胶机.在深入了解之后,其中这种机器在市场上早已泛滥,价格也卖的很低,我所处的公司也只是在本地的一个分部,专做国外市场和部分国内市场,而我是公司唯一一个国内市场的员工,在混吃两个月之后,公司见我动手能力挺强,建议我转做IT(负责解决电脑故障,网络问题等杂项)~燕雀安知鸿鹄之志也,在三个月转正之期到来之前,我跟老板分手了/(ㄒoㄒ)/~~

离开公司之后,爸妈让我回少儿所帮忙,在里面呆了半年之后还是受不了跑出来,找了份物联网的工作..这份工作依然是销售,其实为什么我在销售方面受挫这么多,还是找回销售?一个原因是受我堂哥影响,他自己以前是做生意,从派传单出生,做到了今天的成就,所以希望我也能成为这样一个人,当然我也想成为这样一个人(有钱人),另外一个原因,我之前的工作都是跟销售有关,除了销售,真不知道做什么好,但是在这一家公司之后,让我深刻意识到,如果一开始是错的,继续走下去,只会越走越远,再也找不到出路!我挺感谢这次工作经历的,并不是我在这家公司获得了多大的成就,而且我败的彻彻底底,体无完肤!在入职两个月之后,因为没有成功出单,被经理约谈,他说的一句话我至今印象深刻!!对我人生造成了很大的影响:"xx,你适合做技术,继续留在这里没用,你去前台办理一下离职手续吧" 我说:"现在?" 经理:"马上!" 我还记得那天刚好是5.12(16年5月12),对我来说不亚于又一次汶川大地震.虽然很伤感,但是他说的没错,销售并不适合我.我该重新认识自己!!

当天离职,我并没有回家,而且去了市里的图书馆,坐在那里发呆了一下午.第二天还是在那发呆,第三天依然,第四天,第五天..日复一日

在几天的反省之后,我开始整理一下思路,重新想了一下还能做什么,这个时候我依然没有想要转型程序员,因为之前一直有关注VR,HTC的vive也是刚上市,得到了广泛的好评,这个时候VR体验店如雨后春笋一般不断涌现,开体验店,我是想过,家里刚计划给我买辆车(家里算小康,就算我不工作也不至于会饿死,但是我自己是比较要面子的人,不想依赖家里,而且家里也会对我很失望,所以从这家公司离职后,我一直隐瞒着我被辞退的真相,每天依然按时去"上班",直到一年后).那个时候我不想买车,我寻思可不可以把买车的钱给我,投资做生意,那个时候是想入手一批VR设备转售,家里人是坚决反对的,之后买了车,我就想将车抵押掉,用来开一间体验店,在混迹多家商场之后,发觉人流多的地方,铺租都不便宜,便宜的铺租却没有人流,对于我用车来抵押开店铺这事风险太大了,所以这想法只能胎死腹中流产掉.事后知道我当时的决定无比正确.半年之后体验店大量倒闭,当然还是有无数的人前赴后继的涌上去,即使是现在我还是看好VR,只是已经转变成一项长期的投入,不是短期可以获利的产业.

既然看好了VR行业,虽然没钱开体验店,但还是能做其他的,这个时候我看到了微信公众号的火热,然后结合VR和微信公众号,我做了一个发布VR热点的微信订阅号.每天发布VR热文,和一些VR视频资源,运营3个月后,积累了不到500的粉丝,VR的声音也越来越弱..此战也正式宣告失败!!

虽然VR公众号没有成功,但这段时间也不算完全白费功夫,在获取资讯的同时,也加入了很多体验店的群,跟各行各业的人都有交流,无意中被拉入了网易的一个VR游戏开发教学群,这个时候了解到,Unity是可以进行VR开发的,而且比较容易入门,最重要的是使用的脚本语言是C#(刚好我大学的时候学过),那个时候并没有觉得C#很难学,想想我是想在VR方面发展,但是VR这一产业真正发展起来起码要3~5年之后,没有大资金,开体验店,卖设备之类是行不通的,那只能曲线救国,学习VR开发,做长线投资,即使VR不行,那还可以开发游戏!!

16年10月我的学习生涯开始了,依然是每天准时起来"上班",到图书馆呆一天,初期没有手提电脑,只能在图书馆利用每天4小时的免费上网时间看教学视频,两个月后,从妹妹那里借来笔记本,一边看视频一边写代码,从C#基础到C#进阶,Unity基础,Unity进阶,半年后终于完成了<泰斗破坏神>的前端部分,打包马上写简历投职.

求职经历也是坎坷的,在这么一个二线城市,做游戏开发的不多,能搜索到的只有寥寥几家,有回应的更是少之又少,没办法,只能厚着脸皮上门问了,面试了一家资深的游戏公司,给出的条件是实习期1500每月,我说没问题!可能见我答应的太爽快,又说目前还没有岗位,要6月中旬才能提供,我心想:现在才3月,那不是屁话,根本就不想要我,只不过是不让尴场.我也只能点头答应,如果届时没有找到工作,可以再合作.另外一家面试之后看不上我的demo,直接拒绝了,但保留了QQ(在后来又找到了我,问我有没有兴趣入职他公司,但这个时候我已经在另一家公司混了几个月,并没有离开的打算,让我给他介绍几个人,我就给他介绍了一个在求职群上认识的弟兄,最后成功入职了,拿着一份比我现在还高的工资,后来那弟兄还对我感激不尽!想想还真是造化弄人啊),在5月准备结束,快到6月的时候,一家建筑公司找到了我(也就是现在的公司),说是看了我的简历,觉得可以面试看看,我看了公司是做建筑的,类似虚拟仿真,就没太重视,不过最后还是过去面试的,毕竟多几次面试经验,对以后求职也有好处.在一番了解之后,公司是去年刚成立的,目的是将建筑现场1:1的还原到电脑上,使用Unity最适合不过,但是公司刚起步,unity开发的人还没有,也就是说入职之后我是唯一一个做unity开发的,并且是在陌生的建筑领域,我自己是比较慌的,在对方了解了我一些情况之后,让我展示一下自己做的游戏demo,面试官出奇的对我满意(后来我了解到其实他对unity没什么了解,见我游戏做的有模有样就招了,好在我也没让他失望),约定了几天后给回复.当然我这个时候心思全在第一家6月中旬给我答复的游戏公司身上,这家建筑公司对我满意与否,其实不太上心,因为我还是比较想入游戏公司,有人带,学到的东西会更多,即使工资少点.

第二周的周一,正在图书馆敲代码的我,接到了一个电话,打来电话的正是面试我的那家建筑公司,说让我入职!虽说没放太多心思在这家公司上,但听到对方打来的入职电话,还是高兴的飞起,毕竟离上次离职,我已经失业了一年,每天在图书馆呆学习那种感受实在太难受了,孤独无助,与流浪为伍,没有人可以倾诉的对象(只有两三个朋友知道我失业,前任在我失业1个月之后分手了,当然是我自己提出,她并不知道我被辞退,后来家里人介绍了个女孩,在追求一段时间后也告吹了,原因是因为我穷,那个时候没有工作,没有收入,又不敢跟家里人说,所以也没什么钱追女孩,她没有明说,想来也是能感受到的,不过很感谢她,那段时候她是我学习的精神支柱!鼓励着我前行!她并不知道我失业)如今终于有公司愿意要我,简直滚动的五体投地!匆匆收拾了一下,吃了个饭就直奔公司去!

17年6月入职公司,虽然公司人比较少.只有十几人,但是大家都相处的很和谐,领导对员工也很关心,我一开始比较担心自己胜任不了工作,但是公司非常体贴,肯给机会,给时间我学习,所以,一段时间下来,很多工作也都上手了,虽然做的并不是很好,但至少功能还是实现出来了.3个月的试用期也压缩到了两个月,期满一个月之后还涨了薪,非常开心,证明公司对我的能力还是肯定的,这个时候也跟家里人坦白了,他们也觉得匪夷所思,虽然有几次在外面被我家人碰到,但都被我圆了过去,还好最后我是转型成功了!还好还好!!

我一直非常感谢公司,感谢给我招聘电话的铁,面试我的k,还有给我学习机会的老将军.我终于明白什么是苦尽甘来,上帝关上一扇门的同时也会给你打开一扇窗.我十分珍视这份工作,因为它来之不易,我努力完成我的工作之余,也努力学习!!同时心中也默默下定决心,一年内不主动要求加薪,公司需要我的时候随传随到,因为在我最无助的时候,是你向我伸出了援手!!


说了这么多,好像都没说到重点上(⊙﹏⊙)b

我给几个建议:

1.学习方面的话,我建议先看视频做项目,早上边看边做,晚上再自己做一遍,这样印象会比较深刻!后期再看书系统的学习的学习一下,捡回漏掉的知识.

2.报培训班不是必要!!但你可以说你报了网络教程的培训班!我的简历上写我报学了网络培训,其实我都是在图书馆自己看书看视频学的,主要是我没钱去报班,其次我是觉得自学也不会差哪里去!!有条件的可以试试!!

3.面试的时候,不要表现的太卑微,要诚恳一点,因为如果你说"不要工资我也可以!",在你看来傻瓜才不要这样的廉价劳动力,其实面试官此时的想法是"钱都不要,那一定好不到哪里去啦".公司不缺几千块,而是缺一个付出几千块能返回几倍利益的人.工资也不要要求太低,直接报一个行业新丁的平均值,不要觉得自己刚工作不好意思要多,就是要表现得理所当然!面试官才会觉得他没看错人.当然,如果你技术真的一般般,那就努力在试用期把之前挖的坑填上,这样对人对自己都负责不是?

1#
牛客网  4级常客 | 2018-9-24 00:14:57 发帖IP地址来自

分享一位牛友(WISING)的面经:【Java面经】非科班渣硕面经,大佬请忽略_笔经面经_牛客网


以下方便阅读,搬运大佬文章:


背景介绍

楼主某末流985渣硕一枚,磕盐不会,偶然接触了下编程,然后又稍微学了学Java,后面就走上了程序猿的道路,今年四月侥幸去菊厂实习了一波(虽然没学到东西)。

秋招拿了几个一般的offer(大佬们别见笑):去哪儿、海康威视、招银网络科技,最后签约招银(四川人,想每天下班吃火锅)。

去年的时候比较迷茫,不知道自学到底需要准备什么,在牛客上看了很多面经,非常受益,今天也分享一下供参考。本篇文章主要讲讲自学的历程即找工作需要注意的地方。


自学经历

楼主去年4、5月开始决定学习Java,最开始主要看《Head First Java》(该书配有大量插图及段子,入门佳选,入门切忌《Java编程思想》),然后看了大量的培训班视频学习了Java基础知识,数据库,Java常用框架(很多人看不起培训班,培训班的质量确实参差不齐,但是由于针对基础薄弱的童鞋,所以老师讲的特别清楚,以我校学子来看学着肯定非常轻松,我一般开1.6倍到1.8倍的速度听)。在8月份的时候开始接触算法和数据结构,刚开始一头雾水,这算法和数据结构到底学习谁先谁后啊,做题看不懂,看书不太好理解。这里推荐《算法第四版》,配有大量的图,让你详细理解数据结构设计的过程(入门切忌《算法导论》)。

搞完这些之后,有幸加入了一个工作室,(工作室由于刚成立事情不多后面也解散了,东西没有学到太多但是认识了几个朋友)在工作室期间,看了《程序员面试金典》、《剑指offer》,在牛客网上刷了剑指offer上的题(刚开始做题基本上做不了,先想然后看别人的解答仔细思考,再自己慢慢敲,做多了可能就有感觉了)。

后续又看了《高性能MySQL》(大部头,有时间必看,时间少选看)、《深入理解Java虚拟机》(必看,忘了就看,主要是垃圾回收算法、类加载那一块,其它章节可以选看)、《并发编程的艺术》(必看,主要了解一下锁的原理)、《图解HTTP》、《图解TCP/IP》(日本人写的书,结合大量插图,看着很浅显易懂)、《Java程序员面试宝典》(完全的面试知识点罗列的书,评分较低,但是对于梳理知识点是非常适合的)、《数据结构与算法分析 Java语言描述》(觉得算法第四版少了点什么的话可以看这个补充)。这些书再结合大量的博客可以基本覆盖校招的知识点。

在今年三月份时各大公司开始招聘实习生,楼主水平有限去了华为实习,方向也是Java软开。由于所在小组全栈式开发,在里面耗费了大量时间学习了前端知识(前端依然菜的抠脚),所以整体感觉上实习提升不大。实习了四个月之后,在八月底结束实习,由于部门原因通知没法转正。当时心里很气然并卵,觉得自己在里面提升不大又耽误了很多准备的时间,不如在图书馆看书(这也是个教训,实习不一定有优势,如果实习打杂转正几率小的话不如在学校夯实基础准备校招)。所幸楼主在华为实习的时候每晚回去继续看书,同时在实习时有幸认识北研所一位实习老哥,每天用内部聊天工具跟他交流Java基础,基础尚不算太差。(这里想说一点的是,8月初很多公司就开始了内推招聘,现在内推特别泛滥,基本都要求笔试,笔试难度高于校招,没有准备的话基本gg,但最好都投一下试试水,楼主当时由于在实习算法没练好就网易过了笔试。。。)

ps:这里说点个人感悟,当初在准备实习时,以为刷完剑指offer、程序员面试金典,实习的题应该没啥问题了。实际情况是:实习题型基本全是动态规划(尤其是背包问题)、图搜索,如果早做准备,那完全没问题。而等到正式校招时你才会动态规划基本题型,这时候的题的难度又上升了,所以算法题得早做准备。


校招经历

校招在九月初的时候各大公司就开始集中网申了,需要提前做好简历。楼主大概投了40多家公司(楼主觉得一定要多投多练,不一定只投自己想去的公司,在面试初期可以拿几家公司先练练手,如果运气好有幸拿了offer更佳。多投能让你有更多的选择,如果你只投了几家公司,然后都挂了,那么你后面基本只能投小公司了),整个九月上半月每天基本都在考试、投简历、做测评,印象最深的是有一天考了四个笔试,当晚投了一个公司简历,又做了俩小时新华三的测评,当时大概凌晨一点,整个人都恶心了。

在面试初期好几家面试都没过,加上被菊厂拒了,心里还是很不爽的,直到九月中旬去哪儿三面直接发了offer,当时有点柳暗花明的感觉。后面又面了招银、海康之内的好几家公司,在拿到这几家之后基本就没找了(期间经常每天四五个面试邀请冲突,拒绝的感觉还是挺爽的,觉得自己之前做这么多笔试还是有效果的)


下面讲讲几个公司的面试问题:


酷家乐

一家创业做家装的创业公司,面试体验非常好,但二面约的时间和一个现场面试冲突了没面

电面:

  • 说说你印象最深的项目(异步队列)
  • 在项目中遇到了什么问题(数据库的设计、异步队列如何将事件传入)
  • 说说对redis的理解(基于内存、I/O多路复用、单线程)
  • redis为什么要使用单线程(面试官补充主要是为了原子性操作)
  • redis有哪些常用的数据结构,项目中你使用了什么数据结构
  • 说一下spring的了解,有几种注入方式,你们项目一般使用什么进行注入
  • 项目的web.xml配置中dispatcherServlet和ContextListener是干什么的
  • mybatis使用情况,了解哪些,用了哪些标签
  • 项目中用到了什么设计模式
  • 项目使用了什么版本管理软件,在github学习什么开源项目没有
  • 一道算法,有序数组里面数字可重复,给定一个数,找出该数的范围(第一次就想到了遍历,后面想二分查找改进)
  • 汉诺塔问题

远景能源

新能源的土豪公司,招偏执狂,感觉面试官是有那么点特色的,抓着一个点死问

电面:

  • 类加载了解吗?类加载步骤,双亲委派模型。如果我写了一个java.lang.String类,怎么进行加载的,怎么跟原来的类进行区分的?
  • 垃圾回收机制了解吗?哪些时间我们需要对垃圾进行回收,如果我有一台双核4g的机器,我该如何分配新生代和老年代的大小?
  • 异常捕获了解吗?说说常用的,你在项目中用到了哪些类型的异常捕获?如果碰到了空指针那些异常你会怎么处理呢?
  • 多线程怎么样?说说你项目中用到的并发
  • 说说你最拿手的项目?说了redis异步队列,就问同步和异步的概念,异步需要怎么实现,需要回调函数吗
  • 既然redis用到了缓存,那如果叫你自己实现一个缓存,你该如何实现?怎么考虑缓存过期这些问题?


电信IT研发

电信的互联网公司,有编制,待遇也不错,前面二十分钟基础感觉答的基本倒背如流的,问到架构不太会了
  • 单点登录怎么做的,session共享,session和cookie的区别
  • Bootstrap啥类型的,jQuery了解情况
  • JVM垃圾回收,新生代和老年代的垃圾回收,可达性分析
  • HashMap和Hashtable区别,HashMap添加的对象为什么要重写equals和hashcode
  • 数据库了解多少,事务acid,事务操作,怎么加锁,分布式系统锁,选举
  • 微服务了解什么,微服务治理,微服务之间通信

58同城

面试最差的体验,酒店超级差,闷的要命,安排还恶心,过去等了三小时,一面面的还不错,二面没问多少就挂了,好像都是c++岗,面试官不用Java

一面:

  • 手写快排
  • 数据库引擎的区别,说说btree,手写联合查询sql
  • HashMap了解多少说多少
  • wait()和sleep()
  • 事务举例
  • 用过什么nosql,说说redis,topk用什么数据结构
  • 数据库分表
  • 情景题,高并发访问一个接口,如何检测传入字符串的相似度很高的?答了个布隆过滤器,说沾了边

二面:

  • 算法题给一个数组,如何把偶数放到左边,奇数放到右边?写完后说当两边顺序已经一致了,交换是否会出现问题,加个判断
  • 说说数据库,聚合函数了解吗?
  • 网络编程了解吗,http请求如何区分请求头和请求体?说了解一点nio的知识,nio指什么,同步和非阻塞的概念是什么?
  • 说下注册的时候的检测,多用户怎么判定是否被注册

去哪儿网

面试最好的体验,第一天上午机试,下午就接到通知明天去面试。在一个去哪儿合作的小清新酒店面试的,所有面试官都特别好,遇到答不上来的会给你解答,三面完直接现场发offer,只要在十月三十一号之前把三方寄给他们就行,简直不要太良心。当时一面完的时候我说我计算机网络和操作系统方面不是特别好,一面面试官笑着说:没事,路还长呢,你去等二面吧。待遇呢给的确实偏低,不过还是由衷粉一波去哪儿

一面:(30来分钟)

  • 说一个自己比较深的项目 ,redis多消费者一起取的时候如果队列为空你怎么处理(答了CAS进行尝试,超过失败次数之后就进入睡眠,面试官说可以不用这么复杂~~为空时直接进行睡眠就行)
  • 纸上手写Springmvc DispatcherServlet的大致实现(大概10分钟的样子)
  • 数据库了解吗?聚集索引和非聚集索引的区别,存储引擎的区别?主键使用不重复的字符串会出现什么问题(插入的时候由于字符串不能像自增长的id一样连续,所以在磁盘上的位置不同)?
  • 说说HashMap吧,然后讲了HashMap、ConcurrentHashMap 1.7、1.8的实现(讲的很详细,面试官觉得数据结构还不错)
  • 然后问计算机网络咋样,我说很一般操作系统咋样,我说很一般
  • 线程有哪些状态,怎么进行切换的。


二面:(40来分钟)

  • 说一个比较深的项目,还是说的异步队列,问你这为啥要用redis做异步队列啊,我用线程池直接自己开一个队列跟这有啥区别。扯了一堆,扯了redis I/O多路复用模型,最后不太满意~~
  • 然后又手撸了一遍Springmvc
  • 然后问HashMap
  • 最后说你用了这么多redis,叫你设计一个缓存,你该怎么设计,get和set的时间复杂度怎么算的(答了用LinkedHashMap实现,分析了一下LinkedHashMap但是也没怎么说清)


三面:(20来分钟)

  • 谈下人生,当场发了offer


顺丰科技

最懵逼的一次面试,在品学楼一个教室面的,感觉极不正规。一个估计三十来岁但是看着可能四十多岁的大叔面的,完全get不到他的点

一面:

  • 进去跟hr面一样,谈人生(你最喜欢看哪本书,你觉得在华为学到了什么),全程基本没问技术,吹牛20分钟说可以走了


招银网络科技

招商银行下面的子公司,以前叫融博,负面新闻较多,今年在成都刚成立分部,由于是银行,笔试和面试都比较强调sql,面试偏重于数据库和项目。现场面在软件园那边的招商银行面的,当天直接三面,基本每个人都有三面。面试的感觉只有一个:不愧是银行,太壕了。在七楼面试,层高居然有5、6米高

一面(电面15分钟)

  • 说说对JVM的理解
  • Java程序初始化顺序
  • 线程的创建
  • mysql主键和唯一索引的区别
  • 说说最近的项目
  • 如何实现session共享,用redis如何实现
  • 说说微服务,微服务之间如何管理

二面(现场面30多分钟)

  • 看项目中有前端的,先问了下前端的css的选择优先级
  • 手写了一个查询sql
  • 手写了一个双重检查单例,问spring是怎么实现单例的
  • springmvc的大致实现过程
  • 项目里重要的地方
  • 说说微服务
  • 如果你不用redis来做队列,自己写你需要注意哪些方法
  • 数据库存储引擎的区别
  • 数据库优化会吗,说说常用的优化

三面(现场面30多分钟)

  • 面试官看了简历觉得项目时间都不长,没有太多兴趣,全程带笑,叫讲项目的兴趣点。讲redis异步队列,吹吹原理。说这没啥用,你这单机redis还不如自己实现一个队列速度还快些呢,你用Java写一个类似的redis才厉害(当时有点懵逼,感觉这面试官可能不太懂技术)。然后笑着听我吹完了springmvc一套,最后问我微服务治理知道不,我就扯了点服务注册和发现的知识。

四面(现场面40多分钟)

  • 女hr全程含沙射影带笑的问,别人好像都只面了20来分钟。。。由于是转行,问了我转行原因,学习、生活、教研室那些情况。


OPPO

广告部的工程师面的,面试官自我介绍时有个非常骚气的花名,整体问的比较开放,二面聊着聊着就挂,笔试题比较简单

一面(现场面20来分钟):

  • 面试官首先自我介绍,然后我自我介绍。叫先看成绩单,问我最喜欢哪一门课,这门课有什么特点(我嗅到了hr面的气息)
  • 然后说先看下笔试题吧,你觉得笔试难不(我回答说不难就看到面试官在纸上写了个简单,感觉想教育我了),就问了http和https的区别,https加密的过程
  • Spring是什么啊,为什么用Spring啊?Hibernate是什么啊?Mybatis是什么啊?假如我现在要分库分表,我选哪个框架?(这没接触过啊。。)你为啥用Redis啊,Redis有哪些方法,Redis事务,Redis哪些方法有原子性,Redis和Kafka用什么区别啊?
  • Java虚拟机垃圾回收方面的知识,生存区为什么要有两个,空间担保机制是啥
  • 一个32核,64g的linux服务器,硬盘是5TB,怎么统计一个1TB的文件中一个限定中文名和英文名出现的次数(我简单说了下使用流水线),问大概需要多久时间,估计一下,一分钟两分钟还是十分钟。(总而言之面试的问题全部都相当的开放,让你自己说)


二面(现场面20分钟):

  • 简单问了下项目,各个知识点都问了一点点。


海康威视

今年扩招特别多,面试相对偏水,面试官感觉技术很不错,问的问题完全不按套路来

一面(现场面20分钟)

  • 面试官特别扯,进来就问后面还有几个,我们稍微快一点吧。然后看了我的简历,就问前端的类选择器。
  • 然后问Spring Boot啥概念,有啥优势。接着问Spring Data JPA是啥,咋用(面试这么久第一次问我这个)。我解释了一些JPA是个规范,面试官问你这JPA用的啥版本啊(懵逼,俩月没用了。。记不住了),然后又问JPA是哪个组织规定的啊(懵逼的说了sun、spring、apache。。实际是EJB3.0小组)
  • 看你用了Redis,你这Redis咋用的,用过lua脚本没有(这个真没用过)
  • 面试官继续问:你这Java虚拟机什么掌握的咋样啊(感觉可以开始表演了),结果我回答还不错的之后,面试官问:说说一个class文件的具体组成结构啊,要细(懵逼,这部分没怎么看,就说里面有魔数)。继续问:虚拟机是起解释作用吗,有编译作用吗(一堆不是常规套路的问题问的很懵)。
  • 然后我说我模拟实现过Spring MVC,请让我表演一哈。面试官看完简历之后说,那你就说说用了哪些设计模式(???这怎么表演),回答了下之后又问我一个http的请求的组成结构,然后叫我说http的状态码,有多少说多少。(感觉这个面试官就在观察表情,看着你很会的那种就马上换话题,完全不按套路出牌。最后殴打完我之后说了句你基础还可以)


二面(现场面5分钟)

  • hr小姐姐直接问想去哪,想要啥待遇


京东

投的成都岗结果北京的面试官面的,一面面试官觉得我还不错,结果二面面试官在某天晚上深夜11点打电话来说面试一下,说自己还在公司里面。我和他都很意外我投的成都岗,但却是他们部门面试,估计特别缺人,问我能实习不,我说要做毕设不能实习就凉了。有点可惜,留成都京东还是很不错的

一面(50多分钟)

  • Struts2和SpringMVC区别,SpringMVC有啥好处。SpringMVC的执行流程。一个网页从输入网址到显示经历什么过程?Cookie和Session的概念。Mybatis和Hibernate的区别。异常处理知道不?详细介绍了一下异常的分类并举例
  • Redis有哪些数据结构。支持事务吗?Redis分布式锁知道不?Redis能持久化吗,持久化有哪些方式,有什么特点?断电会丢失数据吗?谁更严重?
  • 数据库熟悉不,数据库引擎有哪些,InnoDB和MyIsam有啥区别,索引知道什么,哈希索引和b+树索引有啥特点,说说b树和b+树,画画b+树的结构,b+树最下面存的是数据吗?下面的数据有序吗?
  • 设计模式知道什么?项目中用了什么?回答用了策略模式,简单说了说。写个单例吧?写了个双重检查的单例。
  • 数据结构学的咋样?说说HashMap吧,对比说了HashMap和Hashtable,详细说了HashMap,最后引到解决线程安全用ConcurrentHashMap.详细说了ConcurrentHashMap1.7、1.8的put和size方法的区别和实现。其中问了synchronized底层实现知道不,就回答了个monitor,其它不太清楚。然后CAS是啥,解释一下。
  • 有并发经验没有?回答说没有,但是知道基本知识,看过并发编程的艺术。说说开启线程的几种方式吧?说说volatile?说说Happens-before原则?CountDownLatch知道不,解释下,什么情况下使用?
  • 写个二分查找吧,递归的
  • 做个智力题:8个球7个一样重的,有一个偏重,一个天平,如何两次找出偏重的小球
  • 给了一张纸,写写项目中如何保证代码的鲁棒性和可扩展性?
  • 你有哪些offer?然后介绍了下自己的部门.


二面(10来分钟)

  • 简单问了下简历上的项目,问能不能现在过来实习


总的来说。面到后面才发现了很多套路,但是好的公司已经基本结束了。所以建议提早准备,即使不能实习,也去投几个公司练一练,每次把面试问题总结一下,发现里面的套路,然后自己准备一套吹点。


总结


关于转行,以前评论宣称学了几个月Java随便找好工作,在现在的面试难度来看,基本不太可能,软件也不是想象中那么好找工作,一个岗位要的人多但是竞争的人也特别的多。

如果觉得本专业不太适合自己或者自己以后不太想去工厂那些地方上班,转行请趁早,也不一定非的学计算机,可以选自己方向相近的方向来自学。如果想转学计算机,也请早点明确自己的方向,然后在这个方向上深耕一下。

很多概念性、全局性的知识,在短期内可能自己是无法理解的,需要一段时间、一个过程来理解(个人感觉这是科班和非科班主要的差距),很多基础性的知识可能会在你以后运用某个知识点时才察觉到原来是这样。在自学了一段时间后,可以开始接触数据结构和算法及计算机的一些基础知识,刷题要趁早,平时多看一些技术博客(CSDN、简书、博客园),有机会的话尽量找个工作室或者实习,如果实习不太靠谱,建议在校招前夯实自己的基础。

关于校招,找工作运气和实力是46开的,面试挂了不一定是自己不行,也很有可能是和面试官不太聊的来。并不太过沮丧,面完一个反思总结面好下一个。简历上的东西力争全都会,摸索一套属于自己的吹点。面试官大部分情况下不会问框架的基本使用,都喜欢问点底层的东西(面试造火箭,工作拧螺丝),所以会点基本的CRUD是没有太多作用的,建议深挖底层,比如楼主比较擅长吹Spring MVC、HashMap和ConcurrentHashMap1.7和1.8的源码,面试的时候引导面试官,在一张纸上给他详细画自己的思路。比如项目中经常用的Redis,那最好知道Redis的底层的单线程模型和持久化的方式,再深入一点自己模拟实现一个简单的Redis可以吗(LRU算法,再自己想想时间复杂度)。使用Mybatis,可以自己运用JDBC模拟一下Mybatis的实现。这些好多都是楼主校招后期才慢慢体会到的(然鹅工作都找完了)。


终于写完了,排版乱见谅了,祝各位找到心仪的工作,希望自己顺利毕业(求善良的导师放过)。


相与作者探讨,可以戳【Java面经】非科班渣硕面经,大佬请忽略_笔经面经_牛客网

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP