非一流校招,会经过校招系统筛选,大概率是收不到笔试通知的。
没关系,霸笔!!!霸面!!!!走起来!!!
参加霸笔、霸面,最重要的目的,是把自己的简历给到面试官,能让他们眼前一亮的机会。所以,最关键的是如何让他们眼前一亮!!!
敲黑板!!!在校招开始前,面试眼前一亮三步准备:参加竞赛、参加实习、增加项目经验
1、参加竞赛:
在大学期间,有很多的算法竞赛、ACM竞赛,尽量参加全国性的,有含金量的比赛,这才能眼前一亮。
2、参加实习
去大公司实习,相比校招进入大公司,那是简单很多,二本学校的学生,也能进得去实习。而且在大公司都有实习生转正的机会,我所呆过的公司,只要你去实习了,表现的不错,基本上100%转正。
即便进不去大公司实习,在校招时,有实习经历,也会是简历上很重要的一项。而且一般有实习经历,就会有项目经验,这真是一举两得。
3、增加项目经验
如果实在没时间实习,或者实习中没做什么项目的话,那怎么办呢?在简历中最重要的就是项目经验了,如何解决呢?
敲黑板!!!没有项目经验就造项目经验!!!!
现在网上那么多的实战教程、github上遍地的源码分享,都可以为你所用。
在面试时,这些项目经验都可以写上,最关键的是自己要弄通、弄会,尽量先仿一遍,自己再从头到尾自己再写一遍,把所有涉及到的知识点都弄通弄会。面试的时候,就实话实说,就说你自己仿的,没有关系,做为面试官,我们更看重的是你会啥并且你是不是真的会。
我精心整理了计算机各个方向的从入门、进阶、实战的视频课程和电子书,都是技术学习路上必备的经验,跟着视频学习是进步最快的,而且所有课程都有源码,直接跟着去学!!!
四、非一流社招同学怎么办
社招同学其实是有优势的,因为在已经有工作经验的情况下,学历并不是那么重要的,起码不像校招时,直接机筛就给筛掉了,社招同学可以有以下途径来进入大公司。
1、混圈子、混人脉、靠内推
你知道六人定律吗?就是说想认识世界上的任何一个人,最多通过六个人的桥接就可以认识!!
这就是圈子和人脉的重要性,你有同学、朋友、同事,他们任何一个人进了大公司,都可以内推你,而且在内推时,是可以直接跳过HR,直接把简历给他们主管的。
凡做过主管的都会有经验,不看僧面看佛面,也会给你个面试机会,会让你过来聊聊,不然,他没办法给内推你的人交待!
所以,跟同学、朋友、同事处好关系,用得着!
2、靠猎头
如果目前你还没有那些人脉,没关系,也有方案,去找猎头,猎头很好找,简历发到猎聘网,就会有猎头找你了。
虽然猎头会跟很多大公司有合作关系,也自然能把你的简历推到大公司里,但这里有两点关键条件:
需要走正规流程,先经对应公司HR筛选,再到部门主管,无跳级可能
猎头看不看得上你,主要看个人简历内容,即个人实力,所以这部分还得靠自己,如何靠自己,看第三点
3、靠自己
其实无论走什么捷径进入面试环节,在面试时除了自己,谁也帮不了你,所以,如何把自己能力提升是非常非常重要的部分。另外,需要注意的是,在自己学习时,要有方向,一方面要提升名气,使简历发光,一方面深入学习,要有真本事。
1、提升名气、使简历发光
这部分仍然是为了能顺利进入面试做的,提升自己在行业中的名气,计算机中有三个途径能提升自己的行业名气。
(1)、Github提交MergeRequest,自造轮子
在所有的技术面试环节,github所提交的开源项目,是一个非常能展示实力的存在,只要你在简历上写了gitHub地址,所有的技术面试官和简历筛选官,都会去看你的代码,直接看你的技术实力。
而且它的流行程度及star量,能提升你的行业影响力,在简历上是一个非常闪光的存在。
如果恰巧,他们的项目中有你的开源组件,那恭喜你,这次基本上过了。
如果你的开源组件非常流行,那恭喜你,等着大公司来私信你吧。你将会被争抢,此时,谁还会再关心你的学历?
(2)、写博客、写书
坚持写博客,当他们经常能搜到你的博客时,就会公认你的影响力和技术实力,在计算机领域,很多人都是靠博客起来的,比如鸿洋、郭霖等等,包括我。你以为,他们一上来就能让出版社约稿?
都是持续产出博客,博客关注者多了,出版社觉得你写得好,才会主动找你,邀请你写书的。
写博客、写书能使你在行业有一定的地位,当他们在简历上看到你的名字时候,就会油然产生一种大牛的感觉,还在在意你的学历?
我就是写博客、写书的受益者,在我面试VIVO时,表现的并不好,因为我创业一年,Android知识从来没复习过,很多知识都遗忘了,还没来得及复习,就让我去面试了。
他们原以为,我是一个特别厉害的人物,安排三个技术专家同时面,结果,一问三不知。不过,最后,还是给了我OFFER。因为他们公认我的能力是足够的,只是时间过了太久,有所遗忘,拾起来就好了。相反,如果没有这个行业影响力,那这次铁定是挂了。
(3)、最根本:深入学习,提升能力
前面讲了如何提升行业影响的方法,但根本的根本,还是要提升自己的实力,因为在面试时,是要面技术的,所有的外包装都会被揭穿,深入的技术复习只能靠大家自己了。
0x00 收割 offer 版
不管是找工作笔试面试白板试进大厂,还是研究生参加初试复试机试,数据结构和算法都是绕不过去的坎,刷题就成了很多人的需求,快来看看下面这些网站,变身刷题机器,收割 offer 吧!
1、leetcode
英文网址:https://leetcode.com/
中文网址:https://leetcode-cn.com/
估计 leetcode(力扣)大家都很熟悉了,都被推荐烂了,很多国内外的程序员在上面刷题,难度从 Easy、Medium 至 Hard 都有,据说很多面试官都会从中挑选各种题目,号称大厂的筛码工。
我很早就知道 leetcode,但是直到准备复试闲来无事的时候才在它上面刷了点儿题找感觉,发现上面的题型覆盖很广,像线段树、滑动数组、博弈论、扫描线等都应有具有,但是好像有的测试数据有点弱?有的题好像可以悄咪咪的水过去…
当然题目都是英文的,现在也有了中文社区,两个网址我都放出来了,还是建议大家首刷英文的,锻炼一下,一举两得,毕竟如果是搞 ACM 的话,题目都是英文的…
2、hihoCoder
网址:https://hihocoder.com
网站的技术团队来自于原北大 POJ 的开发团队,至于 POJ 会在后面的篇章中介绍,反正膜拜就完事了。一些知名的大厂比如微软、百度、腾讯、网易等会在上面举办在线编程比赛,风格倒是和 ACM 比赛类似。
如果仅止步于此还不至于让我推荐,当初与它的结缘是因为 hihoCoder 每周有周赛,每月有月赛。周赛是一道题,题目比较难但是极有意思,可以很好的拓宽自己的解题思路,月赛就更厉害了,题目均出自北大等一流高校玩 ACM 的菊苣出题,通过这个的检验可以迅速定位到自己真实的水平,同时了解自身在解决问题过程中的不足。
这将是展示自我真实水平的绝佳机会。
3、牛客网
网址:https://www.nowcoder.com/
牛客网作为国内内容超级丰富的 IT 题库,各种东西看的我眼花缭乱,题库+面试+学习+求职+讨论 360 度无死角服务,堪称"互联网求职神器"。它好就好在不只是一个刷题的平台,还是一个交流学习的平台,发个问题贴总有热心的大佬帮助,别问我怎么知道,我才不要说我也给人回答过问题…
说句题外话,我与牛客网的结缘还是因为…它上面有考研真题,我刷来着…
4、计蒜客
网址:https://www.jisuanke.com/
计蒜客这个网站可能很多人不知道,他也有可以刷题的题库,也会定期举办比赛,当年和计蒜客有的交集也就是参加计蒜客举办的"计蒜之道"的线上比赛,还赢得过 T 恤,现在好像还在我家放着…
这么多年还记得这个网站的原因,是因为当年在某乎上关注了他们的 CEO,然后竟然被反关,着实把当年的我惊着了…
0x01 ACM 竞赛版
PS:虽然这一部分的标题为 ACM 竞赛版,也只是因为这些在学校搞 ACM 的同学用的比较多,实际上所有的人都可以在下面这些网站上刷题,题目的质量和广度都是顶呱呱的,男女老少咸宜。
搞 ACM 的时候知道了很多 OJ(Online Judge),比如下图(当然实际的数量肯定远远多于图中所展示的这些):
5、HDU
网址:http://acm.hdu.edu.cn/
杭电(杭州电子科技大学)的 OJ 大概是国内最火的几个 OJ 之一了,大多数 ACMer 应该都知道(其实我想说所有来着),勿需多说,非常多比赛都在上面,比如每年暑假的多校联赛,朝鲜、外蒙等学校的队伍都会参加,想不知道都不可能。
现在上面大概有接近 6k 的题量,网上有很多的刷题顺序,刷题指南,感兴趣的玩玩儿…
6、POJ
网址:http://poj.org/
这个就是我在介绍 hihocoder 的时候提到过的 POJ(Peking University Online Judge),同样作为国内最火的几大 OJ 之一,它的建立时间更早,一些上古时期的题目也能在上面找到,同样 POJ 也很出名,也是我最早刷题的 OJ 之一。
现在上面有 3k+ 的题量,关于 POJ 的刷题指南网上更是很多,同样欢迎去玩儿…
7、SDUT
网址:https://acm.sdut.edu.cn/
这个是我打开次数最多,刷题次数最多的 OJ,是我刷题之路开始的地方 – 我本科母校 SDUT 的 OJ 平台。虽然我们学校不出名,但是我们集训队做东西是认真的,上面有接近 3k 的题量,并且在逐渐增多,简单题多一些,很适合刷题。
欢迎大家注册,多多刷题,我们集训队多年一直秉持开放的态度,欢迎多多交流…
8、其它 OJ
最后附带一些其它同样优秀的 OJ 平台:
国内:
ZJU(浙大): https://zoj.pintia.cn/home
USTC(中科大):http://acm.ustc.edu.cn/ustcoj/
FZU(福大):http://acm.fzu.edu.cn/
HIT(哈工大):http://acm.hit.edu.cn/
国外:
URAL:http://acm.timus.ru/
SPOJ:https://www.spoj.com/
0x02 提高版
这一部分推荐的网站,非常有意思,如果想提高自己,体验比赛的快感,非常建议尝试。
9、Codeforces
网址:https://codeforces.com/
Codeforces 又被戏称为 CF,是一家俄罗斯的网站,当然还是用英文食用。这里的很好的比赛,很好的题目,很好的选手,简称"三好"。
CF 最吸引人的地方在于它那超级牛批的比赛系统,CF 上每个用户都拥有 Rating,也就是比赛积分,新用户默认为 1500 分,每次比赛就会在你的积分上加加减减,上面的比赛一般分为四种:Div1、Div2、Div3、Educational Codeforces Round。Div 的比赛一般是根据积分来的,每个积分段只能参加对应的 Div 的比赛,Div1的比赛是里面最难的,大佬基本都在这里。Educational Codeforces Round 则是类似 ACM 的比赛,提交之后立马出结果。
但是如果仅限这些也算不上超级,还有一个更有意思的是,CF 的比赛还提供一个 hack 功能,通俗点说就是你去看别人提交的代码,然后通过提交你想出的特殊测试用例然后找出别人代码的 bug,hack 成功则加积分,比赛更多了很多乐趣,在 hack 和反 hack 中斗智斗勇。
不过对国内来说,和俄罗斯存在时差,一般想参加比赛的话大多数要在晚上 11 点以后,按照基础的 2 个小时比赛时间,再加上 hack 和测评反馈的过程,然后再刺激一下,差不多一宿就这么交待了,不过其中的乐趣不足为外人道。如果没有时间,上面的题目还是可以自己拿来做的,题目质量超级好,很能锻炼自己。
10、Topcoder
网址:https://www.topcoder.com/
Topcoder 据说是世界上规模最大的编程网站,如果这样的话那这个 Top 就可以理解了,Top 的 coder 丫,这个我基本上没用过,可能是因为我不 Top,只能仰望…
想起它来的原因还是因为现在每次有比赛的时候都会给我发邮箱,搞得我想忘了它都不成…
0x03 写在之后
虽然想写的尽量轻松些,不要让文章看起来太无聊,但在最后还是想认真的说一句:
刷题不要单纯的为了追求做题的数量
还是要以学会为目的
并且学以致用
原文链接:https://blog.csdn.net/u013486414/article/details/102961171
有一天,你辉煌了,一定要有个好身体,才能享受人生。有一天,当你落魄了,还是要有个好身体,才能东山再起……
【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
【问题2】为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。
【问题3】为什么不能用两次握手进行连接?
答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接