找工作专用贴

本文分享了技术面试的经验和准备建议,包括自我介绍、项目讲解、数据结构、网络知识、Linux命令及IPC等内容,并附带实际面试经历和反思。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

研究算法的github: https://github.com/julycoding/The-Art-Of-Programming-By-July

https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/00.01.md

根据这里的指导。我现在打算看微软面试100题 http://blog.youkuaiyun.com/v_july_v/article/details/6057286

学习历程和心得写在这里。

=========================================

由于近期经历了几次电话面试。所以总结一下常问的问题:

1.自我介绍:

   主要擅长什么。

2.介绍你简历上的项目:

   简历上写的东西不能夸张,自己写上的,要自己即能解释的很细。

3.数据结构

   排序算法: http://blog.youkuaiyun.com/whuslei/article/details/6442755

   查找算法: http://blog.youkuaiyun.com/fstar007/article/details/7230659

4.网络基本知识

   要是面网络公司,肯定会问网络问题。TCP与UDP的区别。TCP建立连接的过程。等等。


由于我的简历里有写自己熟悉Linux,所以会问道Linux的问题。(所以自己的简历一定要自己能说的通透)

5.Linux 相关:

   随便说几个常用的命令: cd mv cp find grep    sed awk   sort    tr   cat less more top uniq ls systemctl

  其中find命令见《Linux程序设计第4版》,chpter2。个人觉得简介的很好。

   grep awk sed等都离不开正则表达式

   vim的基本操作

   Makefile的基础

   shell编程

   awk挺重要的

   python

6.Linux IPC:

   1) 管道 FIFO 消息队列 (消息传递)

   2) 同步(互斥量、条件变量、读写锁、文件和记录锁、信号量)

   3) 共享内存

   4) 远程过程调用

(网络IPC -->Socket)

   详细内容见Unixw网络编程 卷2.

    具体被问到的问题: 什么是自旋锁


7. 如果参加了笔试,那么要好好总结笔试题。面试官会和你谈到里面的问题。


...任重道远啊...


============================TC面试============================

md5 可用来验证两个文件是否相同(如网盘的闪传)

开放四维题目:设计一个协议,传送一个大文件。考虑断点续传等。

用3个词形容自己,并举例。


=========================实习2014-1-27=========================

今天,实习终于搞定了。

做的并不是自己擅长的,但是决定试一试,像师姐说的,毕竟BJ信息更加开放,机会也更多。

零散的找实习,陈功率并不是很高,可以在年初的3、4月份,应该有大规模的实习招聘。

或者找师兄师姐推荐,这样比较靠谱。

在总结一下hr面试,没有技术性的问题。

开始就是介绍自己。 自己研究领域,对应聘职位的优势,自己的性格等

对公司的印象。   一般都要夸夸吧,大企业,很好的平台什么的。

本科到研究生的长进有哪些? 


=================相似或有用的面经====================

http://blog.youkuaiyun.com/lonfee88/article/details/5894070

昨天向在百度的LY师兄请教了一下二面会问的问题,他说算法才是王道。也知道了一面那JJ是师兄的导师,二面将会是个经理。于是乎晚上突击算法。二面的问题比较综合(见后),还和一面有重复的问题:如何测试一个XXX……感觉这次要悲剧了,简历上说的熟悉SOCKET和SHELL编程竟然还是没复习到,不知道会不会怀疑我简历的水分……

  面试前坐立不安,不过接到电话后就冷静下来了,一点也没紧张。面试官没有想象的那么严肃,期间他接了个电话。整个面试持续了33'08''。

 

言归正传,说面试题目吧:

  1. 例行自我介绍(还好准备了一点,当我说到拿到保研资格时被他问了些问题)
  2. 不用临时变量交换变量AB(以前遇到过,想了一会也搞定了)
  3. 百度经典面试题:一个巨大词典文件,快速查询某个单词是否在里面(网上看到过,但没想到会重复出现,尴尬……)
  4. 数据库SQL(轻松搞定)
  5. 测试自动铅笔(一直不知道这类题该如何回答)
  6. socket(一直想复习还是没复习⊙﹏⊙b汗)
  7. SHELL编程:输出一个文本文件每一行的最后一个字符(简历上的强项被证明是鸡肋……)
  8. 最自豪的一件事(项目的关键字提示,面试官似乎不太满意)

  最后问我有没有什么问题,我一时还真想不起来问什么,就试探他对我表现如何,他说没什么挺好的……然后问了我情况是不是进百度会被培训,进百度前是不是要深入了解一下socket。他说最好了解一下,还说我shell也得好好学一下。我赶忙解释上课时挺熟的,之后没再用过……然后他没再提三面的事,我该试探性的问一下的……感觉栽在了socket和shell上面……实质上,还是载在了自己的性格上(文采不好,不知如何表达,举例子吧):看书总喜欢从扉页看到附录,即使有时自己想要了解的知识仅是其中某一章。这样既浪费了时间又没有突出重点。认识自己的弱点,远比改正弱点难得多……

  虽然表现不好啊!不过也如释重负,面试之前很压抑很紧张,坐立不安的,不过面试时还可以。现在有解放的感觉!哈!不管如何,人生第二次面试,第一次电话面试能进入第二面,又是百度,我已经很知足了!而且知道了百度的面试题其实也不过如此,对自己有自信了!也明白了接下来的目标。

 

总结一下两次的面试:

  1. 面试题目很多都是网上面经上的。不过得看对职位。不要是百度的面经就看,没啥参考价值。
  2. 相同的题目会出现多次,比如测试一个XXX,查找单词那道。
  3. 简历上写的东西一定面试前一定要好好复习
  4. 项目最好能找出一两个有代表性的例子

  不管结果如何,坦然面对,只是心里总有些期盼,心存侥幸,默默等待,希望不会被默拒那么悲剧,起码给我个通知呀……还是安心复习数据库准备保研复试吧。



http://www.chsi.com.cn/jyzd/qzjq/200810/20081029/9533982.html

经过在线笔试、两轮电话面试,今天上午收到了百度的拒信,我的百度求职算是告一段落了……

  从百度校园招聘开始,我就投了一份简历。在别人都有在线笔试机会的时候,我却没有任何消息。

  听说师兄可以给推荐,我就又通过内部推荐的方式投递了一次,这次很快就有消息了——拒信。

  那时基本上就放弃了百度。可是大概20多天以后,我投递的第一份简历有消息了——通知我在线笔试。经过精心准备,笔试题答得还凑合。过了几天给我来了封邮件告知我笔试通过,会找时间安排电话面试。又过了好几天,我正在剃头的时候接到百度电话,约了第二天下午三点电话面试。心情异常兴奋,回到寝室拼命复习数据结构并收集百度面试题型……临阵磨枪 呵呵。

  百度的面试氛围很是轻松,让你很快就觉得是在聊天而不是面试。第一轮主要是在针对我的在线笔试的题目进行提问和分析,主要讲的是做题的思路和改进的方法。面试时间大概有半个小时,觉得应该有下一轮。

  果然上个星期五晚上接到了百度技术经理的电话,自称姓刘。在前一天我同学也是这个时候接到百度第二面电话,看来是同一个人,后来的面试内容证实了是同一个人。面试过程大概如下:

  1、介绍一下项目。

  2、提了一个问题:上千万条记录,统计出重复记录最多的前N条。

  3、一个概率题:54张扑克牌,除去两张大小王剩下52张扑克牌。问红桃A和黑桃A同时被一个人拿到的概率是多少?

  4、多个线程访问共享内存时因该怎么办?

  5、在写程序遇到问题的时候,通常采用什么调试方法?

  6、一个client/server的协议问题

  7、剩下就是随便聊聊,比如有缺点、期望工作的性质、职业规划等

  总结一下教训:

  1、介绍项目的时候不能一味的按照事前想好的模板说,应该根据所申请的工作的性质,多说一些和自己申请的工作内内容相近的东西说。我在介绍我的项目的时候,说了很多硬件的东西,而相关的Linux下的C编程却没有提到多少,一大失败之处。

  2、对于他提的第二个问题,当时因为紧张没有想出来,挂了电话以后才有了思路。

  3、这个概率题以前碰到过,而且和同学们讨论过,答案很早就知道了。但是遇到面试的时候,不能马上就说出答案,因为这样摆明了高诉人家你以前就见过这道题,这样就失去了作为考题的意义。所以,如果事前知道答案也不要马上说出来,装作考虑中,然后慢慢说出答案。我就是很快就说出了答案,失败!

  4、在问项目的时候,他问我代码行大概有多少?我说大概有5.6K行左右。在回答第四个问题的时候,我几乎是将书上所讲过的东西背了一遍给他,虽然答案是正确的,但是我估计他一听就听出来是在背书了,所以这也会减分不少。,而且百度强调创新,其实就算你不知道答案也可以按照自己的思路说一下的,只要逻辑清晰、合理都会比我背书强……

  5、我的回答是有时候用gdb,有时候用输出日志的形式。以我之前给他讲的项目经验是不大可能会涉及这么多的知识的,所以估计他又听出我是在背书了……继续减分

  6、后来我发现这个问题其实他不是在考我问题的答案,是考我解决问题的能力和考虑问题的思路。这点是我比较差的地方,没办法……减分

  我前面表现那么失败,基本上已经没有什么希望了,后面的谈话已经没有意义了,只不过是礼貌性的结束这次面试了。

  上面的总结是我收到拒信以后才总结出来的,还以为能被录取呢……

  面试官太和蔼了,而且气氛及其融洽,根本没有任何不好的征兆,面试官好厉害!

  至此,我的百度求职过程到此告一段落……生活还在继续,工作还得继续努力去找,加油!

  百度电话面试题目:

  1.谈谈你对数据库中索引的理解

  2.现在普通关系数据库用得数据结构是什么类型的数据结构

  3.索引的优点和缺点

  4.session和cache的区别是什么

  5.如果有几千个session,怎么提高效率

  6.session是存储在什么地方,以什么形式存储的。


http://www.mianwww.com/html/2013/10/18999.html
http://blog.youkuaiyun.com/wangchengsi/article/details/5695032



======================2013-10分方向最新总结=====================
http://blog.youkuaiyun.com/huomanqingying/article/details/12876759


==============15/3/17-mapbar-C++=========

1、进程与线程

2、进程间通信

3、字节序

4、排序算法

5、查找算法(二分查找)

==============15/3/18-NMC-C++==========

1、谈谈你对迭代开发的理解

2、面向对象的三大特性

3、UML画图

4、设计模式

5、makefile

6、重写、重载、隐藏

7、异常处理

8、typedef int(*func(int,int))(int)

9、多线程

10、C++程序内存布局


基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值