[转] 高级软件工程师和架构师的区别

高级软件工程师和架构师的区别

架构师

倾向于 通信 、 通信框架 、队列和 分布式框架运用以及阿里云和微软现有分布式组件的运用。

高级软件工程师

倾向于 C#基础、 多线程、锁和数据库索引 (队列和通信也会问只是会问的浅一些)

研发经理

包含高级软件工程师问的这些外,还会问管理方面的知识

我面试的三家公司分别面试了三个职位,将知识点进行了一个表格整理,分值越高就意味着问的越深,不能百度之百准确,只当参考。

image.png

知识点细讲

C#基础

主要面些 接口、装箱拆箱、值类型引用类型和线程

可以参考面试基础:http://www.codeisbug.com/Doc/4/63

例如:什么是装箱和拆箱,装箱和拆箱为什么会影响性能。这些属于深问细节,所以要做好防问准备。

通信

主要分为Http协议 TCP协基础知知识,通信框架例如开源的Supersocket RestSharp,微软的WCF和Signalr等等的运用和搭建,

更深入的会问到,例如 什么是粘包和osi七层模型等理论知识。

缓存和队列

例如redis框架使用,Redis有哪些数据类型,主从模式如何实现,常用的队列框架有哪些(RabbitMQ和MSMQ)

队列和缓存的区分是什么?非关系型数据库应用场景又是什么?

队列:适合处理高并发,可以看这篇文章理解队列作用:http://www.codeisbug.com/Ask/11/1070

非关系型数据库:适合简单业务数据亿级左右的数据处理,太多、太少或者业务复杂都不适合

缓存:缓存数据也可以当做高性能队列使用

数据库索引

数据库索引是每次面试必问之题,你要了解索引的分类,索引的存储结构,数据存储结构,如何用SQLServer分析SQL执行计划,聚集索引适用于什么场合,聚集索引和非聚集索引的区别

数据库锁事务

例如会问 数据库的隔离级别,数据库有哪些锁,可以参考:http://www.codeisbug.com/Ask/11/1079

前端

你会使用哪些前端框架,如何适应移动端布局等等,这类会问的比较少

多线程

一般会问什么情况会用多线程、LOCK底层实现,多线程性能优化等

数据结构

这个就去看数据结构与算法的书吧,例如什么是二叉树,不要不懂。

管理

一般会问如何管理好团队,去看一本项目管理的书装逼就够用了。

自我介绍

自已准备好,一般说名字 学历,工作经验,幸趣爱好等。不要太长,10句左右差不多背好去面试。

大数据方案

这个一定要了解阿里或者微软的云框架,除此之外还要知道队列如何处理大数据,分布式缓存等,例如hadoop这些名词要了解,你了解什么分布式中间组件。

常用框架

aufac底层原理,aufac有哪些使用模式,依赖注入和控制反转有什么区别,依赖注入的作用,用过哪些ORM他们各自的优点有哪些等。

项目介绍

一般会问你的项目细节,使用了哪些技术

逻辑题

这些都是用排除法的思路去做,或者结合程序算法

原文链接:http://www.codeisbug.com/Doc/4/1112
作者:孙凯旋
一个让你看了他任何一篇文章就会自动加粉的男人!

你可能感兴趣的:([转] 高级软件工程师和架构师的区别)