当前位置: 首页 > 股票资讯 >干货实录 | 技术总监带你细数技术面试那些坑

干货实录 | 技术总监带你细数技术面试那些坑

2023-05-10 14:56:27

TIPS:点击上方【立知】查看往期精彩内容 


01


技术岗位的简历怎么写


1、简历里体现出清晰的技术特点,能够清楚的看出你的技术特长和工作岗位是否匹配?


比如你擅长的开发平台,(Windows ,Linux ,还是IOS),开发语言(C/C++,Java),以及其他计算机相关知识(如,计算机网络,算法,数据结构等)。


2、能够体现出技术特点的项目经验和重点技术细节要写出来。


比如在项目中重点使用了哪几种技术,都是怎么使用的,使用过程中遇到了哪些问题,进行了哪些优化。比如作为web前端工程师,优化之前网页打开的时间是2s,你优化到1s以内,因为采用了压缩了JS和CSS,图片采用了延时加载的方式等,这就是重点的技术细节。


3、有github(开源协作社区)项目链接会是加分项:Talk is cheap , show me the code。


1)目前github项目地址已经成了新的程序员名片,是最好的自我推销方式。


2)高质量的github项目极大了增加了面试的成功率,因为面试官可以从你的代码风格,质量各方面对你的个人能力进行最有效的评估,比如对开发语言的掌握程度,思路是否清晰,注释是否清楚,文档是否更新及时。更新不及时的文档比没有文档更可怕,没有文档还可以自己摸索,陈旧的文档会对人造成误导。


4、 没有项目经验怎么办?ACM竞赛会是加分项 ,简历里最好不要出现“精通”这个词。


项目经验其实仅仅是加分项,CVTE、BAT这样的企业考察重点其实是基础知识,因为内部完善的培训制度可以帮你迅速获得项目经验,但如果基础不好的话,则没人会再花时间去帮助你,在企业看来,这些理论基础在学校就应该是已经掌握了的知识。而ACM竞赛获奖经历是一个不错的加分项,引文至少说明了几点,1>算法是不错的;2>人是聪明的。


之前在腾讯面试里有一条较为模糊的指标,叫聪明度。具体对应什么呢,其实就是善于学习,是否能够举一反三,以及灵活运用各种有限的条件来达成工作目标。


因为在实际的工作中,很多项目可能都是第一次做,需要在最快的时间内了解做这个项目需要掌握的知识,以及快速学习并掌握这些知识。


5、尽量避免主观表述,用数据说话。


大家在介绍自己的项目经验的时候,尽量用数据说话,做出准确的回答。比如这个软件占用的带宽多少,(如100KB/S),以及上下行分别是多少。比如你说高并发,你就要说出它峰值每秒能够同时响应多少请求,在峰值的时候,CPU是多少,内存多少, 磁盘IO多少,这样给人的感觉是你真的有做这个项目,面试官在面试的时候经常会问一些具体的数据,用来考察面试者是否真的有做过这个项目,一般没有做过的数据会对不上。


6、简历里的项目经验介绍,重点介绍自己所负责的工作


作为一个应届生,单独去完成一个项目的几率是比较小的,所以介绍项目经验的时候,除了介绍项目的一些必要的背景之外,重点应该放在自己所负责的项目上。不要只说成绩,不说困难,作为面试官,更愿意了解你遇到过哪些困难,使用了哪些方法解决的,在这个过程中能够了解你的技术、学习能力、以及韧性和抗压能力。


02


校招技术面试官


考察哪些知识点?


基础知识:数据结构,算法、计算机网络


很多同学都知道腾讯的笔试题知识点是出了名的广(号称IT界的公务员考试题),大家会疑惑工作中真的会用到那么多基础知识吗,有那么多现成的工具和组件可以用,为什么还要了解那么多细节呢(比如C++ STL库,Javascript的JQuery库等)。


这是因为类似CVTE或者BAT想要的是知其然,并知其所以然的人才,不仅仅会使用工具或者库来开发。只会使用工具或者库的程序员在遇到工具或者库解决不了的问题的时候,由于长期依赖工具,导致攻坚能力不足,很容易成为经验型开发:即我遇到过的问题,我能解决,我没遇到过的问题,没办法。但是基础和理论知识扎实的同学,他会根据当下的情况去用理论分析,而非一味的google和百度,他的整个分析过程是有依据的。


具体来说,数据结构考得比较多的是:链表,数组,二叉树,哈希表和查找和排序算法等 ,计算机网络:TCP/IP协议,IP路由等 ,以及部分操作系统知识。


不要去死记书上的概念,背各种算法时间复杂度和空间复杂度,一般出题人都会把概念融入到题目当中去,都会有一些计算量。比如说,告诉你一颗完全二叉树有N个节点,让几求出叶子节点个数,一般很少有套概念的题目,都需要运用概念再加一些计算量在里面;又比如对哈夫曼树的考察,一般会给一段文本,然后让你给出哈夫曼编码等。


不同岗位的考察知识点


1、前端(Web和Android、IOS)


1)Web前端的一般会考javascript语言,(如闭包,各种类型转换,null,空字符串,0,”0”)和Html的DOM结构,外加Http协议如状态码(304 , 404,500)等。Html有可能会考察各个浏览器的兼容性,比如:创建Ajax对象,在IE和Webkit内核的浏览器下的区别。


2)前端的框架非常多(Seajs,Agularjs)等等,最近几年我选简历一般看到精通jquery的候选人,我是比较谨慎的。在学习的初期过多的使用框架,无助于了解知识的细节,在我们了解了足够多细节具备一定的经验后再使用框架,才能真正的提高我们的开发效率和质量。


3)CSS的兼容性也是绕不过去的话题,比如CSS3虽然炫,但IE的大多数版本都不支持。


4)如果是Android前端开发,则需要对Linux系统和Java语言有比较深的了解,设计模式也是常考的点。


2、后端工程师岗位、linux系统,网络协议,架构


1)后端工程师岗位更注重linux系统,网络协议这些,比如TCP/IP协议簇,不要去死记硬背TCP三次握手,现在很少会直接考这个了。


我们要去理解原理,如TCP协议三次握手是为了什么,没有三次握手又会怎么样,TCP从建立连接到关闭链接各个阶段的状态转换是怎么样的,TIME_WAIT状态的真正作用,对应Linux API里哪些函数(connect,accept)?以及ping,traceroute工具是怎么实现的等。


2)因为后端工程师很多都是开发服务器,所以需要具备一定的服务器架构能力,如分布式系统,怎么防止高并发引起的雪崩现象,怎么做到负载均衡,如何做到高可靠性,了解什么是异步和同步。


3)掌握Linux系统的一些API,如共享内存、MMAP,信号以及Poll,epoll等。


3、运营开发,数据库,工具类


目前BAT里为了应对大量的数据和报表,以及内部的一些管理系统的需求,衍生出运营开发这个岗位,运营开发相对来说,会要求对数据库比较熟悉,对大数据处理工具的要求会多点,还会要求一些前端开发能力,因为需要做Web报表。


4. 运维,Linux系统,网络管理等


运维岗位对linux系统和网络知识要非常熟悉,但主要偏向于应用而非原理,要熟练使用各种运维工具(比如网络分析工具tcpdump )以及一些脚本语言(python,shell等),对开源组件的安装和部署也要非常熟悉(apache,nginx,tomcat,mongo,mysql),要熟悉他们的性能瓶颈一些常规的优化方法。


03


还有哪些注意事项



1. 技术终面并不是只聊理想和人生


1)技术终面真的不只是聊人生,跟具体面试官喜好有关,一般会有一些比较开放的问题,主要是考察思考方法和聪明度,以及沟通能力,比如智力题。


2)要重视,往往这些人有一票否决权。


2、不要在简历里体现出消极情绪,要激情但不要鸡血


1)不要在简历里体现出消极情绪和愤世嫉俗(如抱怨教育制度,抱怨为富不仁),面试官也是人,一天面试了几十个人,又累又饿,大家都有压力,不会再想听其他人抱怨。


2)需要有激情但不需要打鸡血,适可而止。


3、证书其实比较鸡肋


如:“JAVA系列认证、微软的MCP/MCTS认证、LINUX和UNIX认证、ORACLE系列认证、CISCO系列认证等”。


证书不是越多越好,要选择有含金量的。如果服务器后端工程师拿了个微软的证书,大部分情况不会引来什么好感。因为服务器后端基本都是Linux和Unix的天下了。


4、技术极客是加分项


极客是加分项,比如用课余时间做了一个很有趣的小产品、比如自己的程序跑在了树莓派上驱动机器人。


5、你可以接受加班吗?


1)只要你还在IT行业,这恐怕是一个无法回避的话题。


2)对于这个话题安全的回答是:我不介意加班,我认为在项目紧的情况下,加班是可以理解的,也是为了整个项目好,但我不能接受的是为加班而加班,效率比较重要。


3) 如果你很牛,你就可以不加班。


长按下图识别二维码,关注立知


友情链接

Copyright © 2023 All Rights Reserved 版权所有 上海股票分析平台