各种经验

经验

C++的学习可以分为,C++基础、数据结构与算法、计算机网络和操作系统。另外,需要特别指出来的就是编程能力(如果要归类的话,应该是属于C++基础和数据结构和算法的综合)。个人认为最为重要的就是编程能力。可以通过刷题(剑指offer、LeetCode)来提高编程能力。下面就上面的4大块罗列一些书籍和资料,需要指出的是,这些书籍和资料有点多,有时间有能力全部吃透,当然最好,但是如果时间紧张的话,我还是建议大家有重点地看。另外建议大家尽早准备,可以在提前批抢占先机,在提前批最大的一个感受就是,难度并不难,最大的问题就是没得准备好,需要时间准备。

 

中途面试官提醒要按编码规范来,不然评分很低。
 

·  尽量现场面。楼主提前批结果惨淡,远程面试应该占了一部分原因。电话/视频交流毕竟没有面对面交流效率高,面对面交流才能最充分的体现出自己回答问题的思路。

·  做加法。充实自己的知识面。计网、操作系统、数据结构和常见算法、开发框架都要懂一些。然后挑其中一个深挖一下。

·  做减法。不要提到任何自己不熟的东西,包括简历上和自我介绍中。经不起深挖的项目、课程都要删掉。

·  做总结。对于简历上每一个项目经历、实习经验都要总结一下。要对自己的主要贡献和过程中的难点进行整理。

·  简历排版。对于绝大部分人来说,简历控制在一页内。一页放不下就调整行距、表格大小、页边距。写简历对于不怎么会word的人来说是一个连word使用的好机会。

 

细节决定成败,面试过程中,算法题,思路固然重要,但临界条件等也是非常重要的。细节方面一定要考虑全,个人觉得自己腾讯二面能过的原因,大概就是因为我细节方面做得不错吧。

 

 

笔试拿一个高分,会降低面试难度,会在最后通过HR的所有简历的排名中起到不可忽视的作用。

 



一面就是压力面了,面试节奏很快,问的问题,你大概3~5秒没有回答,就直接下一个问题。基础知识问的很少,却很抠细节。C++函数重载的实现,我解释了C++通过编译器重新命名,并回答如何重新命名后,因不知道C中编译器对函数重命名是什么样的过程,而被对方总结为,你对细节方面并没有重视 =。= 。之后,TCP,多线程编程都有提问。大概缘于企业文化,阿里很重视项目经验,面试围绕的只有一个核心你做过什么,并不关心你会什么基础。

 



二面是压力面,也面了一个小时,被血虐。面试官全程一副酷酷的样子,冷着脸。前二十分钟,揪出我的不足,问了几个项目中的不足之处,把自己打击都得抬不起了头,当时就觉得自己跪了,整个人都不能再好起来了。之后,手写两个算法题,一个简单,一个难一点。说难是因为在压力下,不一定能第一题时间想出最优解,而如果想太久了,有机率让面试官觉得你编程能力太弱,而压力面中,面试官不会带动你,如果你写的代码达不到他心中的要求,他也不会多说什么(论最优解的重要性啊!)。自己先是手写了一个一开始想到的最渣的方法。写完拿给面试官看中,突然想到了改进方法 ,立马告诉面试官有好的方法,自己重写一份(不过,中间有一个代码段莫名写错了。=。=哭),之后又改了一次才改对。最后,问了一下职业规划,自己平常怎么学习的等(面试官听完,表示看书太慢,开源代码的社区也看太少了,又打击了下),面试官就站起来,表示面试结束了,我可以走了,也没给我提问的机会。可怜还处于眩晕状态的我,也没敢多问, 就这么呆呆的收拾好东西,道了声谢,走出了房间。出来后,就不时的在查状态,不过,状态一直没变,就本着no news is good news 的原则安慰自己。到了晚上6点钟,还是一直都是处于复试中,就感觉自己应该是挂了,因为之前两次状态(笔试跟一面)都是在下午5点到6点变的。没想到,7点半时,给了我惊喜,状态那进Hr了。凌晨收到短信。

 

 

·  框架源码,这个是现在所有大厂都很看重的一点,比较深入地阅读源码表示你对于框架的了解程度已经不仅仅是使用,阅读源码可以很好地提升自己的代码规范性,并且在进行其他框架开发的时候很有借鉴意义。

·  算法,有些面试中会提出一些常用的算法问题,所以对于一些基本的算法的思路要有一定的了解。

·  后台,现在前端已经偏全栈方向了,可以看到下面的面经中很多的问题都涉及到了后台的相关知识,如果会一种或者多种后台语言的话对于面试和工作都很有帮助。

·  基础,前端需要了解的计算机基础主要在网络方面,所以认真看下HTTP和TCP/IP也是很重要的。

 



1. 直接让你敲c++也反映出他们的工程需求比较大,内部的需求也是项目落地,而不是模型的建模。虽然对于优秀的人这个也是基本功,但是可以安慰自己 或许这个岗位也不是很适合我现在的水平,即使面试侥幸摸鱼,也不会很match

 

所以HR如果挂的话可能是前边技术面排名并不是很高导致的,可以综合考虑下自己技术面有什么不足。

 



基于http的web文件服务器,用到了多线程,线程池,内存池,socket通信,IO复用等,都是用来应付面试官的,东西 比较水,其他的两个是论文相关。我觉得如果时间够得话找些牛逼一点的项目还是会有很大的收获的,另外就是要多总结下,你在项目中用到的面试官的考点都记录下来理清思路,在跟面试官讲项目的时候就游刃有余了

 


一般面试官对于太过理论化的东西不感冒,所以就得好好包装一下了。一般公司可能听你讲科研项目的时候一点都不感兴趣,BAT这种大厂不一样,他们会一直刨根问底的跟你讨论,曾经有三四个面试官就我的论文跟我讨论了半小时以上。。。

 



面试的话要主动引导面试官到自己的强项上面,比如你对c++比较熟悉,你可以直接在自我介绍的时候跟面试官说自己对c++有一定的研究,对其内存的构造 模型有较深入的了解,面试官可能就会从这方面来对你发问。另外或者在介绍自己项目的时候重点提下自己实现的模块,用到了什么技术,从而表达自己的强项在这里,然后可以跟面试官深入探讨。

 



我指的Linux加分也是针对岗位而言,一般的研发岗会一些基本的linux命令就可以的;系统方向的岗位最好了解下Linux内核;如果讲积分项,比如说是正则表达式,cpp开发的话gdb的使用,还有编辑器vim等等的使用。学习Linux的主要途径就是使用,你可以彻底不用windows而改用Linux,多折腾下就上手很快的。书的话可以看下鸟哥的私房菜,不错的,讲的比较全面

 

 

做后台开发的话我觉得让自己习惯于linux的生产环境还是比较有帮助的,个人现在使用shell+vim+gdb+g++来处理c程序,感觉效率比windows下要快得多

 

 

·  最好在找实习之前,先把C++ primer刷几遍,不懂的可以做个笔记,下次再看。当你看《对象模型》的时候,你会发现Primer中看不懂的知识都能在《对象模型》中迎刃而解。(关于Primer的学习方法我是参照https://www.zhihu.com/question/32087709中的第一个回答来做的)

·  《STL源码解析》最好也看看。面试官很喜欢问vector,map等的底层实现或者动态增长,如果不看书,关靠看博客和面经的话可能理解起来比较困难。

·  剑指offer是大部分公司一面的算法题,我觉得最好把每个题目都看懂吧。leetcode的话前100题确实很经典,二分查找,hash,动态规划,二叉树等的知识也可以通过刷题来巩固。

·  网络的话肯定是TCP/IP详解  卷1,有时间的话可以再看看Unix网络编程。时间更充裕的话最好刷一刷陈硕的《linux多线程服务器编程》,对多线程的知识会有一个了解。

 

加分项

C++并发编程实战》[] Anthony Williams 这个写在简历真的是加分项,几乎所有面试都被问到了,不过深入理解确实很难

 

准备资料

算法导论

我建议可以看一下贪心算法、动态规划和红黑树特别是红黑树

 

深入理解计算机系统

这本书强推,有能力的同学可以全看,但是如果时间紧张的话,可以有重点的看。看起来可能有些吃力,大家要有个心理准备。

 

 

 

多看源码,你简历写的《MySq深入浅出》 《剑指offer》《第一行代码》我也都看过

问你的很多问题都是书上的,你还需要认真学习,建议看书学习而不是视频,虽然看书比较慢但是你会对原理有深刻理解。如果以后想进阿里还需要在这些方面多下功夫,还有尤其阿里特别喜欢多并发和分布式的技术,像双十一那些后台是如何做到的。

 

今年的招聘策略上项目经验是加分项,头条非常重视基础

如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 这个工具箱组织如下: EWT ?| ?| -1D:1D EWT功能 ?| -2D:2D EWT功能 ?| | - 小波:经验曲线变换 ?| | -Littlewood-Paley:经验的Littlewood-Paley小波变换 ?| | -Ridgelet:经验Ridgelet变换 ?| | - 张量:经验张量小波变换 ? - 边界:用于执行傅里叶支持的函数 ?| | - LocalMaxima:根据当地最大值,中途或当地最小值执行检测的功能 ?| | -MorphoMath:执行形态学操作符对谱进行预处理的功能 ?| | -PowerLaw:通过去除其幂律近似来预处理谱 ?| | -ScaleSpace:基于尺度空间方法执行检测的函数 ?| - 文档:工具箱文档 ?| -Tests ?| | -1D:对几个1D信号执行基本测试的功能 ?| | -2D:用于在不同图像上执行几个2D变换的基本测试的功能 ?| -utilities ?| | -1D:在1D情况下绘制结果的有用函数(时频平面,分量,边界) ?| | -2D:用于在2D情况下绘制结果的有用函数(不同类型的组件,2D边界,...) 如果要运行所有功能,则需要在计算机上正确安装以下Matlab工具箱: - Flandrin的EMD工具箱(在一维变换中需要执行希尔伯特变换并且可视化时频平面) 可从http://perso.ens-lyon.fr/patrick.flandrin/emd.html获得 - Elad的伪极谱FFT工具箱(2D变换除了基于张量变换之外) 可从http://www.cs.technion.ac.il/~elad/software/获得 已经包含了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值