从最近面试聊聊我所感受的.net天花板

简介:   #0 前言  入职新公司没多久,闲来无事在博客园闲逛,看到园友分享的面试经历,正好自己这段时间面试找工作,也挺多感想的,干脆趁这个机会总结整理一下。  博主13年开始实习,14年毕业。到现在也工作五六年了。今年面试最大的感受就是触及了.net的天花板。坐标,杭州。  #1 背景

  #0 前言

  入职新公司没多久,闲来无事在博客园闲逛,看到园友分享的面试经历,正好自己这段时间面试找工作,也挺多感想的,干脆趁这个机会总结整理一下。

  博主13年开始实习,14年毕业。到现在也工作五六年了。今年面试最大的感受就是触及了.net的天花板。坐标,杭州。

  #1 背景

  今年九月份从一家创业公司离职,原因么自然是公司创业失败倒闭。

  当初以技术合伙人的身份进入,雄心勃勃,然后挨了一顿社会毒打,从此老实做人,面朝黄土背朝天,老老实实去搬砖。

  九月份出来,已经是中旬,开始刷新简历,准备稳坐钓鱼台,等着电话信息轰炸。然后,等了两天,等了一首凉凉。直到这个时候博主才意识到,形式不对。

  我的思维还停留在两三年前,工 作遍地,只要更新下简历就会有无数的二手手游出售平台面试邀请。同志门,情况变了呀,行业寒冬真不只是说说而已。

  没办法,只好花钱,刷新下简历,浏览岗位,主动出击。中间接到了好几个猎头电话, 但特么都是java。好想吐槽一下,简历上.net辣么大的字,你们真的不识字么,21世纪了啊喂。

  #2 某建筑类软件公司

  主营业务:建筑软件,公司已上市。

  技术框架:.net平台,具体的不是特别了解

  招聘岗位:.net高级开发工程师

  面试:一共四轮面试。

  第一轮:就是HR了,简单聊了下情况,为什么离职,之前薪资多少,期望薪资多少。

  第二轮:他们某业务线的部门经理和技术主管共同面试。

  基本面试情况就是我在说他们在听,我主要讲解了项目的设计方案,使用的技术,遇到的困难,最终的解决方案。

  技术面试官就问了两个问题,一是从.net升级到netcore中间碰到过哪些问题。

  第二个基于rabbitmq的分布式事务是怎么做的。

  然后他们部门经理问了些团队管理的问题。如何做团队成员的任务分配,有团队成员向你提出离职或者涨薪你怎么处理,团队的代码质量如果管控

  第三轮:他们的CTO,然后开始又是自我介绍。

  只好把之前的又重复一遍,巴拉巴拉。最后就问了一个分布式事务的解决方案有那些,平时是怎么使用的。

  最后聊了一下我的定位,就是进去是负责他们的平台架构,包括一些公用业务的架构封装,老架构的netcore升级

  第四轮:最后是他们的公司董事长,上来又是先自我介绍。然后问了下职业规划。

  接着就是拿着我的简历说这个工作跳动比较频繁,尤其是从上一家比较大的公司跳槽到一个创业公司是基于一个什么样的考虑呢,感觉个人稳定性和职业性规划都不够。

  博主当时内心的os是黑人问号脸??????我能是基于什么样的考虑,我为了世界和平好不好。

  然后被大佬教育了一顿,灌输了一些个人和公司共同体,什么共赢发展什么共同成长的理念。

  结果:通过,HR小姐姐来谈薪资。

  只能给到20K,然后还是18k基本工资+2K的级别补贴,说是我进去之后定的级别是T3,

  然后每年三四月份和九十月份可以申请调薪调级,强制要求995?????? 我特么跳槽不涨薪就算了你还给我降薪,还995,PASS。

  #3 某医美集团下辖子公司

  主营业务:医美行业的sass软件

  技术框架:GRPC

  面试:一轮,技术主管。

  招聘岗位:.net架构师

  主要问题:依赖注入的生命周期,在框架设计中的应用场景有那些。

  在技术选型时主要考虑的因素。

  在框架设计时会应用到那些设计模式,主要应用场景是什么。

  对于netcore中间件的理解。

  应对系统高并发的解决方案。

  聊一聊对微服务的理解,基于netcore的微服务架构是怎么设计的。

  面试结果:通过。但薪资只有20K,哎呦喂,你都对不起你招聘岗位的名字呀。

  #4 某物业管理软件公司

  主营业务:做小区物业管理软件,公司两百多人。

  技术框架:.net mvc 三层

  招聘岗位:.net副总监

  面试:一轮。总监面试,但是木有问任何技术问题,也木有问任何团队管理问题。逮者我之前的离职原因各种问。

  面试结果:未通过。一脸懵逼的出来,都不知道为啥没通过。老子也是信了你的邪。

  #5 某电商初创企业。

  主营业务:拍卖类的电商平台。公司是初创,技术团队都没组建完整。

  面试:两轮。

  第一轮是他们的一个技术负责人,只是看看了简历,然后问了一个让我哭笑不得问题,就是如果你进入公司,发现周围人技术都比较菜的时候,你是不是会看不起别人。 笑哭!!!

  第二轮是老板,老板就是主要负责画大饼,聊前景,聊机遇。

  结果:通过。工资待遇给到税前24K。

  但是我了解到老板之前做互金,然后平台清盘。具体情况不清楚,大佬,惹不起,躲了躲了。

  在这里一定奉劝各位园友,互金平台或者老板有互金背景的千万小心。

  我身边已经不少朋友,被坑到,即使现在没事,也说不定什么时候就会被警察找上门。

  就有朋友,刚入职公司没多久,而且公司业务也不是做互金的,结果没几天,警察上门,老板带走就因为老板之前做互金,还是出事儿了。

  #6 某社交类公司

  主营业务:付费社交app,主打东南亚市场

  技术框架:.net 三层

  招聘岗位:.net高级开发工程师

  面试:三轮。

  第一轮:部门的CTO面试,互相聊得挺愉快。

  主要问了之前的项目微服务怎么做的,服务拆分的粒度怎么规划,整个服务的架构怎么规划用到哪些技术。

  然后问了数据库方面的分库分表怎么做的,用的什么中间件,分库分表后主键id如何生成。

  应对高并发架构上是怎么处理的。如何保证redis的高并发高可用。面对缓存穿透、雪崩、击穿怎么解决的。

  消息队列的高可用、消息的幂等性,面对消息积压如何处理。

  接着就是聊团队管理,还是人员管理,任务分配,质量保证这些问题。

  接手一个新团队后如何摸清各成员能力,不同能力的人工作上应该怎么安排。

  还有一个,就是你作为团队主管你的工作时间是碎片化的,但同时你作为技术leader又要把控技术方案,而做技术是需要时间的连续性,你如何协调这两者之间的冲突。

  挺有意思,只有技术管理一肩挑的团队才会遇到这种问题了。

  最后介绍了一下团队目前的组织架构,技术方向。嗯,要做.net升级,要做微服务。嗯,最后要转java。诶,是不是有什么奇怪的东西,.netcore它不香么。

  第二轮:人事面试。嗯,就是问问离职原因,然后介绍了下公司业务发展,前景规划,入职后的主要工作职能,然后谈了下期望薪资。

  第三轮:boos面。老板,没问什么问题,就是聊了聊职业规划,然后么他介绍公司发展方向,前景规划,我作为一个负责任的捧哏, 当然舔着喽。

  面试结果:通过。薪资谈到税前24K。但五险一金都是最低标准缴纳。年终奖说是0到12个月,看绩效。

  #7 某汽车制造公司的外包岗

  面试:外包公司有个技术经理做了一个简单电话面试。然后就约着到甲方的公司进行面试。面试两轮,是甲方的两个平台架构师。问题都大同小异,不赘述了。

  面试结果:通过。但博主内心相当纠结,因为对于外包,网上实在是没有好的评价,但是和两个面试官聊得蛮愉快。

  当初去面试了,也纯粹是因为好奇,反正当时面试邀请也少,闲着也是闲着么。

  薪资谈到23k,对方说还是走了一个特别申请,甲方那边儿再高给不了。五险一金都是最低标准。

  但是HR说这个岗位是甲方为了储备人才招聘的,我当天面试过后,甲方就把这个岗位招聘关了,只招我一个,等到明年三四月份内部编制出来,我是妥妥转到甲方。

  而且进去之后的工作也是和面试我的那个架构师一起工作,负责他们平台架构规划。

  一开始去面试之前我都说了工资要求和最低标准,满口说没问题,结果面试完了就又不行了。你个糟老头子,坏的很,我信你个鬼。

  #8 写在最后

  中间也还有面试有其他几家公司,套路问题都差不多,就不在写出来了。找工作一共花费两周时间,面试了也有八九家,但真正能给到期望工资的就那么两三家。这之间自己在网上主动投递过,但基本都没有回信。两周过去,在回过头来看,却发现网上再找不到其他合适的岗位了,不是已经面试过,就是投递了没反应。到最后发现,我能选择的就只有那么几家公司。而且,最严重的一个感受就是,我翻遍了所有的招聘网站,我目前所要的工资,已经是.net行业的天花板,往上没有空间了。.net高级开发也好、.net架构师也好、技术经理也罢,能给到工资25K就已经是到顶了,而且岗位特别少。然后做cs方向的,价格开的比bs方向的还能高一些,顶薪能到三万。做服务的.net被java抢占了太多市场,即便有很多公司,初期是用.net做的,即便现在netcore已经跨平台,但公司做微服务还是要转java,我真的好想问一句netcore它不香么,vs它不香么,都咋想的。

  #9 尾篇

  最后的最后。整理一下博主在做netcore微服务所用到的相关技术,做个整体的总结。后续会一点一点具体介绍,希望能形成一个系列,希望最后能坚持写完。

  服务注册/发现:consul或zookeeper,各有优劣,个人倾向consul

  分布式通讯:restful api形式或rpc。

  分布式事件总线:推荐使用cap。cap同时支持 RabbitMQ,Kafka,Azure Service Bus 等进行底层之间的消息发送,同时内置了TCC实现。

  网关、熔断、降级、限流:ocelot网关,应该是当下netcore平台下最火热的网关开源项目了。同时集成了polly来满足熔断、降级、限流的功能要求。

  配置中心:携程的开源项目Apollo。博主之前是为了业务需求自己写的,不具通用性。

  微服务监控:分布式调用链跟踪zipkin和skywalking,同时还可监控服务性能。推荐使用skywalking,对代码无侵入。

  日志监控ELK,这个不需要多介绍了,文章太多了。

  持续集成自动部署:GitLab+Jenkins+k8s

  原文地址

  :cnblogs/dandan123/p/11904652.html

目录
相关文章
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
65 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
开发框架 算法 搜索推荐
C# .NET面试系列九:常见的算法
#### 1. 求质数 ```c# // 判断一个数是否为质数的方法 public static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } class Progr
58 1
|
1月前
|
并行计算 安全 Java
C# .NET面试系列四:多线程
<h2>多线程 #### 1. 根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i > 10 时是否会引起死锁? 并简要说明理由。 ```c# public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } } ``` 在给定的代码中,不会发生死锁。死锁通常是由于两个或多个线程互相等待对方释放锁而无法继续执行的情况。在这个代码中,只有一个线程持有锁,且没有其他线程参与,因此不
105 3
|
1月前
|
SQL 存储 关系型数据库
C# .NET面试系列十:数据库概念知识
#### 1. 为什么要一定要设置主键? 设置主键是数据库设计中的一个重要概念,有几个主要原因: 1、唯一性 ```c# 主键必须保证表中的每一行都有唯一的标识。这样可以避免数据冗余和不一致性。如果没有主键或者主键不唯一,就可能出现数据混乱或错误。 ``` 2、查询性能 ```c# 数据库系统通常会使用主键来加速数据检索。主键通常会被索引,这样可以更快速地找到特定行的数据,提高查询效率。 ``` 3、关联性 ```c# 主键常常用于建立表与表之间的关系。在关系数据库中,一个表的主键通常与其他表中的外键建立关联,这种关系对于数据的一致性和完整性非常重要。 ``` 4、数据完
131 1
C# .NET面试系列十:数据库概念知识
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
174 2
|
1月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
63 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
99 5
|
1月前
|
XML 数据可视化 C#
C# .NET面试系列五:WPF
<h2>WPF #### 1. WPF 由哪两部分组成? Windows Presentation Foundation (WPF) 由两个主要部分组成: 1、XAML (eXtensible Application Markup Language) ```c# 这是一种基于 XML 的标记语言,用于定义用户界面的结构和外观。XAML允许开发人员使用声明性语法来描述应用程序的用户界面元素,而不是使用传统的编程方式。XAML 被广泛用于定义 WPF 窗体、控件、布局和动画。 ``` 2、Code-behind 文件 ```c# 这是包含与用户界面相关逻辑的代码文件。通常,开发人员可
74 4
|
1月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
158 2
|
1月前
|
存储 开发框架 安全
C# .NET面试系列二:面向对象
<h2>面向对象 #### 1. 什么是构造函数? 构造函数(Constructor)是一种特殊类型的方法,它在创建类的实例(对象)时被调用,用于初始化对象的状态。构造函数的名称必须与包含它的类的名称相同,并且没有返回类型。 主要特点和用途包括: 初始化对象: ```c# 构造函数主要用于初始化类的实例。当使用 new 关键字创建类的对象时,构造函数会被调用,确保对象在使用之前处于一个合适的状态。 ``` 与类同名: ``` 构造函数的名称必须与包含它的类的名称完全相同。 ``` 没有返回类型: ```c# 构造函数没有返回类型,甚至不能声明 void。它的目的是初始化对象
48 0