一个好的程序员需要相当程度的逻辑思维能力,要成为一个优秀的程序员,逻辑思维能力是关键,写程序也是对该能力的一种锻炼。
最近在职场论坛上看到这样一个帖子:程序员面试华为,面试官出了这样一个面试题,网友:题目太难了。这是怎么回事呢?这是一道怎样的面试题呢?
该员工说自己上次去华为面试,其中有个面试官给自己出了一道算术题,题目是这样的:第一行是1+4=5;第二行是2+5=12;第三行是3+6=21;最后要求算出第4行8+11等于多少?
这位员工说自己算了很久还是算错了,也因此被淘汰了,于是把这道算术题拿出来,希望看看大家怎么算的?
有网友说答案是40,但是立马被其他人否定了,连规律都没有搞清楚,你这个候选人肯定是不合格的。还有网友说这有很多种算法,只要你能够重新定义运算法则就行了,比如说答案是40或者是96。因为根据前面3个条件,最后那个应该是跳了4个,应该平滑过渡才行,所以答案是96。
还有网友说这个面试官水平也不行,难道他不知道世界上除了加减乘除,还有很多其它的符号可以用吗?只要能够自圆其说就可以了,没必要按照面试官的思路去做题。最后有网友说是97,前面是1到8,后面是4到11,对应相加的话,得出的规律就是每个数加上基数,以此类推,等到8+11的时候就是97了。
总结:
近年来,大家会发现职场面试的考题的难度可以说是越来越难,也越来越刁钻。对于这些刁钻的考题,笔者的建议就是我们职场人也不能墨守成规,只是去看一些过去的理论体系是不行的,是不能适应当前的面试的。要与时俱进,跟随新知识的潮流,这样才能从众多面试者中脱颖而出,取得较好的面试成绩。
大厂的面试特别喜欢面试技术原理,特别是
- 多线程
- NIO
- 异步消息框架
- 分布式相关的缓存算法等
- JVM的加载过程和原理
- 回收算法
- 以及具体使用过的框架,会问部分参数检验你是否熟用
第一面能通过,后续被录用的可能性就比较高了,第一轮非常重要,建议系统性的学习面试题目!
最后历年来阿里面试题目相关知识点分享:
分布式
- 一、大型网站系统的特点
- 二、大型网站架构演化发展历程
- 三、拆分 VS 集群
- 四、微服务 VS SOA
- 五、前后端完全分离与Rest规范
- 六、CAP三进二和Base定理
中间件
- 一、缓存
- 二、消息队列
- 三、搜索引擎
大数据与高并发
- 一、秒杀架构设计
- 二、数据库架构发展历程
- 三、MySQL的扩展性瓶颈
- 四、为什么要使用NOSQL NOT ONLY SQL
- 五、传统RDBMS VS NOS QL
- 六、NOSQL数据库的类型
- 七、阿里巴巴中文站商品信息如何存放
- 八、数据的水平拆分和垂直拆分
- 九、分布式事务
- 十、BitMap
- 十一、Bloom Filter
- 十二、常见的限流算法
- 十三、负载均衡
- 十四、一致性Hash算法
数据库
- 一、数据库范式
- 二、数据库开发规范
- 三、数据库索引
- 四、MyISAM vs InnoDB
- 五、并发事务带来的问题
- 六、事务隔离级别及锁的实现机制
- 七、MVCC(多版本并发控制)
- 八、间隙锁与幻读
设计模式与实践
- 一、OOP五大原则SOLID
- 二、设计模式
- 三、代理模式
- 四、面向切面编程(AOP)
- 五、工厂模式
- 六、控制反转IOC
- 七、观察者模式
- 八、Zookeeper
数据结构与算法
- 一、树
- 二、BST树
- 三、BST树
- 四、AVL树
- 五、红黑树
- 六、B-树
- 七、B+树
- 八、字典树
- 九、跳表
- 十、HashMap
- 十一、ConcurrentHashM ap
- 十二、ConcurrentLinked Queue
- 十三、Topk问题十四、资源池思想
- 十五、JVM内存管理算法
- 十六、容器虚拟化技术,Doocker思想
- 十七、持续集成、持续发布,jenkins
面试题举例
- 一、设计一个分布式环境下全局唯一的发号器
- 二、设计一个带有过期时间的LRU缓存
- 三、设计一个分布式锁
- 四、设计一个分布式环境下的统一配置中心
- 五、如何准备HR面试
拿这份资料应付大多数企业面试肯定是绰绰有余的,有兴趣可以点击下方名片免费领取完整版,如果决定有用的话可以点赞评论转发三连一下,谢谢大家~
