java开发找工作入门》我为什么要在Android找工作越

在线提问 问题标题: 问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
本文是面试经验总结,功利成分过大,不适合用于技术学习本文适合像我一样方向不明确,没有牛逼经历的普通学生本文的大部分观点是我个人的总结,不具有普适性,仅供参考
看了一周249的新剧,觉得我应该给这几个月的划上一个句号。是对自己的总结,也希望能给其他人带来一点点经验吧。
先说一说自己的经历吧。从三月份开始,大厂实习面试全部失败,去了本地某国际知名厂商的云计算销售部门,去干了一个月,觉得离研发有点远,就辞了(后来证明,该公司的名号,还是在校招筛简历的过程中,帮了不少)。此时已经到了六月底了,痛定思痛,自知在机器学习算法方向只懂一点皮毛而已,积累不够。开始给自己定了后台开发的方向。
七月和八月从csapp后半部分开始,自己写了写简单的httpserver,读了muduo源码和书籍,以及若干linux后台的书籍(后面我会列一下)。然后进入九月,正式校招。战果:
b厂内推三次挂,校招同一个部门三次挂
a厂集齐5个已回绝
t内推去深圳挂,校招不过笔试。
360内推到hr面后挂,校招不给机会。
小米内推一面挂,校招不过笔试
华为提前批offer。
新美大offer
还有若干不过笔试,没有面试机会的以及实习的面试过程,就不列出来了。一开始我就说本文适合普通学生,根本就不是什么成功的经验,其实是我自己失败的总结。如果你才刚上大学或者研究生,请抓紧搞各种比赛和项目。如果你还有几个月就面试了,不妨看一看,兴许有一些有用的地方。
我准备从自我定位、知识储备、面试流程这几个方面谈一谈
实习的时候,我尝试面试了机器学习相关的算法岗位,很快我意识到,自己并不擅长算法,只懂一点CNN的皮毛,sigmoid是怎么推出来的,完全不知道。这个时候离校招只有不到三个月时间,我要么从基础开始,过一遍机器学习的理论,要么朝后台方向,自己撸项目,补基础。显然,我觉得自己搞工程项目更容易一点,也更感兴趣一点,于是选择了工程项目(然后后来我简历上的唯一亮点却是关于机器学习的,这给后来的面试带来了不少困扰)。
面试了这么多,我感觉面试官选人的流程一般是:
过去有没有牛逼的经历(acm等牛逼竞赛,牛逼论文,牛逼实习等等)
方向是不是对口(过去的项目经历,跟目前的岗位匹配度和深度)
基础知识(操作系统,网络,算法,相关业务知识)
这三点重要性我认为是按照先后顺序排列,举个极端点的例子:你拿过acm金牌然后去面试后台开发岗位,不清楚TIME_WAIT状态的含义,面试官应该不会刷掉你。但是如果你没有那个奖,然后也没答出来,我想你多半就很危险了。
然而对于大部分人而言,比如我,第一条根本就没有。这个时候,给自己一个定位就很重要了,大部分面试官都会考察到你的基础,但是不排除有部分面试官当你第二条不满足的时候,直接就岗位不符合了,尤其是到了终面,第三条大家都满足了,前面两条就显得非常重要了。
第一条是硬伤,第二条勉强还可以补一补,前端开发、后台开发、算法、机器学习、安卓、ios等等,你一定要选一个方向,针对性地学习,各个公司岗位可能名字不一样,但大的方向就那么几个。可以结合自己的兴趣、理想和以往的经验,综合考虑一下,如果不清楚岗位具体做的事情,可以问问认识的师兄师姐。
除开机器学习算法类,研发类的基础知识基本都是差不多的,这里主要以后台为例讲一下,基础知识该怎么去准备。
1.算法和代码基本功
没刷过题的同学,不建议直接去刷leetcode,leetcode现在已经有将近400道题了吧,我们的时间有限,直接刷,有点盲目。我建议从剑指offer开始,至少一遍(可以配套lintcode的阶梯训练),越熟练越好。然后是链表和二叉树,到leetcode选择链表和二叉树的tag,全部刷完。链表和二叉树的题目,面试的概率实在太大,如果这类题目没有答出来,会比较惨。
刷题的时候,不建议一道一道没目的地刷。可以利用好leetcode的tag,分类别来练,比如这周练DFS,有点感觉后,再选下一个主题DP,就跟高考的复习差不多。这里再推荐一下左神的代码课,牛客网上有他每一周的直播视频,讲得很细,也推荐大家买一下他99的课(优惠码AlAMdgS),内容针对性很强,但是感觉讲解没有直播好,我买的时候大部分内容我已经刷过了,算是给左神补个钱了,不亏。
总得来说,面试不会涉及很复杂的数据结构和算法,除非是你自己跟面试官提。如果你上面的基础内容都差不多了,可以去hihocoder,它里面有一个hiho一下,分专题,难度要大一些,像线段树,各种平衡树等。hihocoder就是正规的ACM形式,不给数据,新手刷起来很费时间,感觉用户较少,讨论区也经常找不到有用的信息。
最后说一点就是,平时无所谓,去面试之前,一定要花点时间去练一下白板写代码,毕竟还是会遇上手撕爬虫、手撕TCP分包黏包这类的面试官。简单的一定要写出来,复杂的至少写个大概思路。
2.后台知识
这部分内容,我就列一下我从图书馆借过的书单吧.
csapp(时间紧的话,重点后半部分)
TCP/IP详解. 卷1(TCP状态图要能画出来)
UNIX网络编程. 卷1,卷2 (选重点内容)(以上三本基础,必读)
Linux多线程服务端编程 陈硕
(muduo源码,很适合学习)
Linux高性能服务器编程 (了解,可作参考)
Linux内核设计与实现 (书很薄,可用于快速了解linux)
深入Linux内核架构(选择对应的章节,细读。比如文件系统,内存管理)
深入理解Nginx : 模块开发与架构解析 (翻了下目录,看了部分小节)
高性能MySQL
(看前面一两章,面试到mysql可保命)
SGI STL源码剖析
(重点前三章)
effective C++ && more effective C++
c++ primer 最新版
深度探索C++对象模型
(以上四本,c++方向越熟越好)
两个月时间,不可能全部看完。我的方法是选一个项目(muduo),学到什么,再去看什么。其次就是去翻面经,针对性地补。
再补充一点,平心而论,C++方向的岗位真心很少,如果时间还早,建议入java。不过,校招不太重要,我后来拿到的offer全部是java岗。java方向的我觉得上面书单里面,除了后面四本,都是适用的。
单独把笔试说一下,因为现在的笔试都变成了在线笔试,简历不出彩的情况下,笔试还是很重要。不过笔试,真是有一种深深的无力感,时间短,范围广,各个公司套路都不太一样,毫无章法可循。不过感谢牛客网提供了一个地方,至少有个地方可以刷一刷。我做了那么多笔试,很惭愧,感觉都是凭概率过的。
我的建议就是,先去牛客网上刷几套公司的题,然后感觉自己哪个方面弱一点,先看看书,然后选择某一个类别的题目针对性训练。尤其是智力题,我觉得是可以刷一刷的,后来我发现有大概率碰上原题。
然后是编程题,这个只能练,多刷leetcode。把我前面说的基础部分搞定过后,可能还不够,很多情况下,笔试的编程题会比面试还难。不过后来我听说大家都是组队的。。我就不多说了(其实是我连组队的人都找不到。。。)
最后说一点,就是校招过程中,会有大量的冲突。你有可能一天遇上三次笔试,这个时候要做出选择。不仅是放弃冲突,如果有连续三场的笔试,我也建议放弃一场,因为人的精力是有限的。根据自身的情况,如果我去连续搞好几场笔试面试,太累了,可能哪一场都搞不好。我现在回想有好几次笔试没过,就是因为精力不够。
面试这个东西,真的是天时,地利、人和一个都不能少。运气很重要,实力也很重要。首先,面试是什么?面试是销售你自己的过程。所以你应该主导整个面试流程,而不是等着面试官来问你。为什么会有自我介绍?自我介绍其实就是去讲你会什么,擅长什么,最好顺带讲一下简历里面的重点内容,而不是简单的讲一下名字和学校就完了。如果自我介绍信息量不大,面试官就会从简历里面自己挖一些东西问,由于你简历用词不当等原因,很有可能问到你的死穴。
整个面试下来,像百度、美团等这些大厂面试流程更正规、扎实。美团中规中矩,百度最难(写个多线程计数器让我利用CPU多核下面的 cache Orz...)。腾讯基础考得并不难,项目经历被鄙视。华为面试最水,华为感觉不怎么看面试,看你是不是有一等奖学金,论文这些。大疆不知道什么鬼,有可能是缺人,面了两次,时间都很短。我后面会把我遇到的面试题列一下,供大家参考。
我面试到后面,基本上都能够进入二面或者说是终面。然而在终面或者总监面的过程中,总是因为过去的经历太过薄弱然后挂掉了,也有可能是我不会吹牛,我是觉得真心无解,硬伤。百度内推到终面的时候,问我研究生的研究方向以及成果,我blabla说了一推,明显感觉到面试官不太满意。然后到校招的时候,也是终面,面试官挑我机器学习项目的亮点,讲完了过后,他就问我到底是想做机器学习还是工程研发,觉得我研发项目经验偏弱。Orz...所以我一开始就讲定位,基础都过关了的时候,方向真的太重要了。
再说一点就是,当你觉得面试官觉得对你失去兴趣的时候,这个时候你可以拿着你提前准备好的筹码(前提是你的这个筹码一定要精通),跟他讲你某一个点很熟。比如你熟悉linux内存管理,你熟悉C++多态等等。现在想想,腾讯终面的时候,面试官说我的经历太弱,没有实际的,大型的项目经历,我应该再争取一下,讲一下我的基础,说不定会有转机。
前面说了那么多,都是我自己经验,有一些通用的地方,也有很多我自身的特点。更详细的面试历程,各位可以去网上搜面经,自己多总结。找工作的这几个月,很考验你信心和毅力还有体力。没事多给自己灌灌鸡汤,offer总会有的。
部分面试题目
这里只是一部分面试的内容,有很多我当时没有记下来(比如美团,大疆的我就搞忘记了),不过面试多了,你会发现,题目会有很多重复。
百度运维部(内推):你的代码行数最好的一段代码实现经历linux 子系统模块
最熟悉的数据结构和算法客户端突然挂掉,然后服务器这边会有什么反应线程加锁有哪些需要注意的地方
地铁问题:统计地铁
某一秒的 人数数据:时间都到秒级别进站时间
然后怎么设计一种结构,可以提供查询
某一秒的 人数, 查第 3
第5秒的人数方法:1、用一个数据a[606024]来表示每一秒的变化人数,比如第10秒,进入100人,a[10]+=100,出站20人,a[10]-=20那么最终a[10] = 80。2、再用另外一个同大小数组b[0] = a[0]
b[i] = b[i-1] + a[i]
就是第I秒前的总人数重点: 考虑每秒变化的人数!
数据库查询慢 会做什么,数据库引擎 inonodblinux 文件系统 ext2 ext3 inode节点进程通信的方式怎么避免死锁shell 查看CPU 哪些进程的使用/proc里面的内容和原理,多长时间刷新一次?实际上不是刷新。sed,awk使用全局变量初始化 和成员变量的初始化
40亿个 unsigned int
查找是否存在
布隆过滤器SVM的含义和,优缺点怎么对用户建模,推荐广告TCP 启动阶段,做了哪些事情拥赛控制具体算法HTTP 协议的字段 cache-control
last-modify 这些字段的意义
百度运维部校招:写一个多线程计数器,比原子操作更快的方式,利用多核CPU的 cache, 定义局部变量, 然后手动合并一下(不会写)写memcpy 函数, char 字节拷贝效率比较低,然后效率最高的拷贝, 寄存器最多能一次拷几个字节,有没有不经过CPU的拷贝?两个进程访问同一个页面,怎么弄?二面:手写爬虫题:找到所有百度IP,抓百度所有网页,判断所有网页是否相同,再抓取所有百度logoIP题,题目记不得了,当时用得线段树,没手写出来,讲了思路推荐系统怎么弄?运维系统里面,怎么找异常的情况
小米内推:GET POST区别C/C++的区别java与C++的区别HTTP状态码ajax原理。poll与epoll的区别vfork fork pthread_create 下面都是clone, 它们的区别,
进程结构 task_structlinux内存管理,分页,页大小,怎么分配连续的内存,kmalloc线程间同步进程间通信方式,区别优缺点linux处理器调度,进程调度,实时进程,非实时进程,实时进程的调度算法信号量,kill 。发送的信号是 什么?
终止信号能不能忽略, 进程kill之后,资源回收问题数据库ACID红黑树MVC怎么理解?php与.net平台的区别数据库建立索引需要注意的地方jquery 选择器(就一次面试,面了这么多东西,最后还挂了。。。)
360内推:一面:函数对象和普通函数的区别poll epoll的区别二叉树遍历、快排、链表遍历,选一个写线程加锁 需要注意的地方二面:树和hash表的区别(速度、修改频率、内存)进程挂了,怎么办?守护进程链表有环,不用快慢指针的方法select 大小限制,是多大?ping,traceroute,udp 各种协议的原理
华为提前批:什么是无锁,无锁队列设计模式相关为什么要用线程
好未来:一面:C++多态原理菱形继承虚函数表,是调用哪个虚函数用C语言去实现多态,结构体包含实现继承,函数指针实现虚函数实现sizeof double
思路: 内存数组,然后相减二面:TCP分包粘包,写代码堆排序,写代码
2 收藏&&|&&17
你可能感兴趣的文章
2 收藏,1k
4 收藏,395
1 收藏,322
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。一般人零基础自学个编程类的技能,多久能入门,多久能达到找工作的水平呢(福利)
本JR普通一本毕业,自认无一技之长,学了一门马马虎虎的外语,也只是能听不能说的水平。之前家里找的两份工作都是国企,混吃等死居多,不幸于国庆节前沦为一名下岗职工,目前求职没有方向。现打算找份普通工作干着然后自学点别的,现在是互联网时代,觉得学个IT类的技能比较靠谱,请JR们指点
这些回帖亮了
哦,没有,我是大概两年前开始搞的,当时还在上班,平时自学,,今年辞职后一直在自学。。都差不多半年了。。现在稍微学深一点,感觉要看的东西好多好多,蛮辛苦的。。如果没有长期从事这个行业的打算,建议不要搞这个。。因为一段时间不学习就感觉要被淘汰了。。主要我没女朋友没结婚都感觉时间不够用,,要是还有其他时间开销,真的比较恼火
最近准备找工作了
额。。。。估计比较困难。。。我都弄快两年了,只感觉水越来越深,到处都新鲜,到处都不懂
几岁了???
引用1楼 @ 发表的:
几岁了???
27
看你有多想改变了
同求同求同求
发自手机虎扑 m.hupu.com
1~2年吧
厉害一些的一年内
引用3楼 @ 发表的:
看你有多想改变了
有啥推荐的书么?上北大青鸟那种估计没时间
真的感兴趣,智商不拖后腿,往死里学几个月可以试一下去投简历去实习打杂,然后继续学习
额。。。。估计比较困难。。。我都弄快两年了,只感觉水越来越深,到处都新鲜,到处都不懂
引用5楼 @ 发表的:
1~2年吧
厉害一些的一年内
我是除了OFFICE啥也不会那种
引用8楼 @ 发表的:
额。。。。估计比较困难。。。我都弄快两年了,只感觉水越来越深,到处都新鲜,到处都不懂
学两年能找个简单的IT工作了么
哦,没有,我是大概两年前开始搞的,当时还在上班,平时自学,,今年辞职后一直在自学。。都差不多半年了。。现在稍微学深一点,感觉要看的东西好多好多,蛮辛苦的。。如果没有长期从事这个行业的打算,建议不要搞这个。。因为一段时间不学习就感觉要被淘汰了。。主要我没女朋友没结婚都感觉时间不够用,,要是还有其他时间开销,真的比较恼火
最近准备找工作了
引用11楼 @ 发表的:
哦,没有,我是大概两年前开始搞的,当时还在上班,平时自学,,今年辞职后一直在自学。。都差不多半年了。。现在稍微学深一点,感觉要看的东西好多好多,蛮辛苦的。。如果没有长期从事这个行业的打算,建议不要搞这个。。因为一段时间不学习就感觉要被淘汰了。。主要我没女朋友没结婚都感觉时间不够用,,要是还有其他时间开销,真的比较恼火
最近准备找工作了
水很深啊,还是得试试
引用9楼 @ 发表的:
我是除了OFFICE啥也不会那种
说实话IT行业稍微学深一点,数学要求挺高的,,你只会用office,如果又不是理工科毕业的话,估计很困难。。IT行业一点也不是会几门编程语言语法就能搞定的东西
引用13楼 @ 发表的:
说实话IT行业稍微学深一点,数学要求挺高的,,你只会用office,如果又不是理工科毕业的话,估计很困难。。IT行业一点也不是会几门编程语言语法就能搞定的东西
我是有学数学的脑子,可大学没上过高数的课
看你的天赋,努力程度了。不是太蠢的话半年内能找个工作,工资不会高就是了。
引用9楼 @ 发表的:
我是除了OFFICE啥也不会那种
花钱报班,然后找个工作边干边学
引用13楼 @ 发表的:
说实话IT行业稍微学深一点,数学要求挺高的,,你只会用office,如果又不是理工科毕业的话,估计很困难。。IT行业一点也不是会几门编程语言语法就能搞定的东西
要个毛的数学要求,大部分码农数学水平也就那样
引用16楼 @ 发表的:
花钱报班,然后找个工作边干边学
从事方向不一样,,当我没说
引用17楼 @ 发表的:
要个毛的数学要求,大部分码农数学水平也就那样
可能他说的是高端码农
有专业老师带,数学基础好的话,三个月够了,当然你自己得努力
发自手机虎扑 m.hupu.com
您需要登录后才可以回复,请或者
227人参加团购298.00元&569.00元
354人参加团购288.00元&819.00元
128人参加团购398.00元&999.00元
430人参加团购348.00元&999.00元
373人参加团购948.00元&1399.00元
885人参加团购268.00元&799.00元
144人参加团购249.00元&399.00元
125人参加团购114.00元&229.00元
1494人参加团购248.00元&699.00元
110人参加团购458.00元&890.00元
2115人参加团购698.00元&1399.00元
904人参加团购539.00元&1199.00元Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-21,063被浏览130,015分享邀请回答42741 条评论分享收藏感谢收起6312 条评论分享收藏感谢收起

我要回帖

更多关于 android好找工作吗 的文章

 

随机推荐