空降 CTO 是救世主?不,也可能是臭流氓

作者 | 王晔倞

来源 | 头哥侃码(ID:kidd_wyl)

从四月起,全国疫情防控已逐渐进入平稳期,不少企业也都陆续复工了。

但在疫情的影响下,不少企业都受到了不同程度的影响,为度过经济效益下降的暂时性困难期,很多企业迫于生存压力而选择减薪、降薪或人事调整来缓解运营压力。

有句话说得好,日子再难熬,也总得有人去熬。

只要公司没到倒闭那一天,即使减薪或裁员,也总要留下一些人来维持生计,何况不少老板都坚信 “只要熬过去,以后就都是好日子”。但问题是,大家都长着两只眼睛,一个鼻子,两个耳朵,所谓 ”留下一些人“ 的标准是什么呢?

有的公司,把那些忠诚度虽高,但拿的薪资待遇却很高,并且随着年龄的增加,性价比持续走低的中层管理者裁了,理由是 “减负增能”。

有的公司,把一些创意虽然多, 但却光动嘴不动手,每天就知道吐槽老板,埋怨运气的抱怨侠们给一网打尽了,理由是 “优胜劣汰”。

也有的公司,会趁竞争对手防备懈怠之时,顺势挖来他们的CTO。

不过,这种相对激进且草率的做法,只要稍不留神,就有可能带来适得其反的后果。

前几天,我接到一位刚刚遭遇创业失败朋友的电话。在电话里,性格内向的他显得非常暴躁,似乎急于向我吐槽他的那段悲惨遭遇。

“头哥,你还记得我去年年底从ABC公司挖来的那个CTO吗?”

我略带调侃的回答:“当然,就是那个价值观和你高度统一,甚至还表现出高度默契的那哥们吗?你不是还说,有了这样的技术执行者,你所有的设想才能真正落地,才能更有效的推动技术体系的建设吗?”

他苦笑着说:“好了好了,你就别取笑我了。”

他叹了口气说:“之前常听人说,空降CTO是救世主,怎么一轮到我头上,救世主就变成臭流氓了呢?”

我听得一脸懵逼,忙问:“臭流氓?啥意思?到底发生了什么事?”

他停顿了一下,忙问:“你听说过 ‘放牧式CTO’ 吗?”

新鲜词,头一回听说,我急忙追问。

按他的说法,所谓 “放牧式CTO”等同于草原饲养牛羊的形式,是使人工管护下的牛羊在草原上采食牧草并将其转化成畜产品的一种饲养方式。众所周知,如果在牧草生长季节放牧,可以获得营养全面而丰富的新鲜牧草,同时牛羊也可得到充分的日光和运动,从而有利于增进健康和提高其生产力。

听上去不错,但整个放牧的过程也会对草原却会产生破坏性影响,严重的会加剧草原沙化,流离失所:

  • 牛羊在草原上走动、奔跑,对草层和表土有破坏作用,长期过度践踏会使草原地面裸露,土壤通透性下降,造成水土流失。

  • 牛羊的粪尿是牧草的营养物质,因此放牧能使牧草和家畜相互提供营养物质,对草原生态系统的物质循环起促进作用,但如放牧的密度过大,过多的粪尿排泄会污染牧草,对草原的利用产生不良影响。

解释完,他在微信上发来一张空白页面,并问我:“你看到什么了?”

我一脸懵逼,质问他:“你烧糊涂了吧?一张大白页,哪有东西?”

他苦笑着说:“我发给你的是一幅名画叫《牛吃草》。草呢?被牛吃完了。那牛呢?草都吃完了,牛还在这里干嘛?当然走啦。”

我听完后,似乎明白了些什么,一时间说不出话来。

他说,牧场好比公司,草地好比资源,而放牧者是CTO,牛羊群则是团队成员。如果你遇到 “放牧式CTO”,结局也许是人财两空,资源耗尽了,人心丧尽了,系统最终也没得到啥改善。

想想我这朋友也不容易,三年前下海创业,通过自己的努力逐渐积累起了流量,然后又通过电商进行流量变现。搞市场营销出身的他,无论举办活动还是渠道拓展,基本都搞得风生水起。

可是,无论是线上营销,还是客户管理,却总因为系统建设上的一些问题而出现大大小小的状况。

这次好不容易借疫情的势头挖了个 “救世主” 过来,本想着一飞冲天,但没想到碰上个臭流氓,团队被搞崩盘,最终落得个被同行兼并的下场。

看到这,可能有人说:“你说了老半天,他到底遭遇了什么事情?”

下面我通过一张流程图,大体描述一下整件事件的来龙去脉:

怎么样?你有没有一种被收割的感觉?还是想到了 “悄悄的我来了,却不带走一片云彩” 这段话?

对一家在技术上强依赖的公司,一旦遇上这种不负责任、缺乏行业道德的臭流氓,那你就只能自认倒霉了。

好了,故事讲完了。

最后,我基于自己的经历和经验沉淀来谈一谈,我从这件事情中得出的启示和感悟。

背调很重要,如果三观不匹配,那就不要将就

核心人员也好,普通员工也罢,背调真的很重要,如果三观不匹配,那就不要将就。

在这个物欲横流的社会,那些编故事的人往往更容易取得对方的信任。尤其在求贤若渴的阶段,绝大多数企业或老板都不能全面的了解求职者,而求职者也会出于对工作的渴望而刻意的包装自己,夸大信息,更甚者去说一些谎言来美化自己,这无疑给将来的悲剧埋下了极大的隐患。

另外,对一些中小型企业来说,由于自身在市场上缺乏竞争力,所以在遇到潜在 “救世主” 的时候会显得非常饥渴,即便这位 “救世主” 在价值观上出现过一些状况,企业或老板也会表现的毫不在乎,总相信自己的感染力能够降服住他。

但事实表明,绝大多数的老板并没有那种超强的感染力,所以最终只能反过来被臭流氓降服。

培养分享、交流和学习的氛围

很多公司没有分享、交流和学习的氛围,只有相互埋怨、相互指责的气氛。

这间接导致很多技术信息缺乏沉淀和总结,所以很多技术人员离职之后,团队的技术力量会迅速下降,甚至出现了有一些关键问题除了某某某,别人根本无法解决。

所以,对一些关键的设计和实现,必须事前评估,事后Review,并归档,或将CodeReview等活动加入绩效考核机制,以此降低接管成本。

总之,要减少这样的损失,在日常工作中,即便业务压力再大,工作再忙,也要做好归档和总结。

放下电话,我突然想起曹云金曾在《吐槽大会》中说过的一句话:“他最烦那种在不知道对方经历了什么的情况下,就不断盲目劝他大度的人。”

的确,我不知道我朋友与这位CTO之间究竟发生了什么,也没资格对其评头论足,但不管怎么说,这样的结果已经对企业造成了无可挽回的经济损失,而且这哥们的名誉也将受到重创,估计在技术圈是很难走得长久的。

但作为朋友,除了安慰,我似乎无能为力。

希望在我们的身边少一些收割者,多一些耕耘者,唯独这样,行业的发展才能更稳定,更长远。

声明:本文系作者独立观点,不代表程序人生立场。

他来了!他来了!【遇见OFFER】他又来了!

要玩就玩个大的,没错!这次我们要直播真人真面试!

5月14日20点,看技术大佬在线battle985实习生,想围观的快来这里找我

加微信:vipcsdn

备注:遇见OFFER,可进入本场直播群

更多精彩推荐
☞任正非谈“狼文化”:华为没有 996,更没有 007
☞程序员是如何一步一步被诈骗的?| 原力计划
☞瑞幸咖啡 CEO 和 COO 被暂停职务;快手起诉抖音索赔 500 万元;Wine 5.8 发布 | 极客头条
☞作词家下岗系列:教你用 AI 做一个写歌词的软件!
☞手把手教你配置VS Code 远程开发工具,工作效率提升N倍

☞区块链必读“上链”哲学:“胖链下”与“瘦链上”
你点的每个“在看”,我都认真当成了喜欢
【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档是一份关于“光伏并网逆变器扫频与稳定性分析”的Simulink仿真实现资源,重点复现博士论文中的阻抗建模与扫频法验证过程,涵盖锁相环和电流环等关键控制环节。通过构建详细的逆变器模型,采用小信号扰动方法进行频域扫描,获取系统输出阻抗特性,并结合奈奎斯特稳定判据分析并网系统的稳定性,帮助深入理解光伏发电系统在弱电网条件下的动态行为与失稳机理。; 适合人群:具备电力电子、自动控制理论基础,熟悉Simulink仿真环境,从事新能源发电、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握光伏并网逆变器的阻抗建模方法;②学习基于扫频法的系统稳定性分析流程;③复现高水平学术论文中的关键技术环节,支撑科研项目或学位论文工作;④为实际工程中并网逆变器的稳定性问题提供仿真分析手段。; 阅读建议:建议读者结合相关理论教材与原始论文,逐步运行并调试提供的Simulink模型,重点关注锁相环与电流控制器参数对系统阻抗特性的影响,通过改变电网强度等条件观察系统稳定性变化,深化对阻抗分析法的理解与应用能力。
<think>我们正在讨论链接器脚本和内存区域相关的概念。用户之前询问了关于.zbss段的问题,具体是“.zbss uninitialized data, abs 18 addressing”的含义。 首先,我们需要解析这个描述: - `.zbss`:这是一个段名,通常表示零初始化的BSS段(Block Started by Symbol)。在嵌入式系统中,BSS段用于存放未初始化的全局变量和静态变量,或者显式初始化为0的变量。在程序启动时,这部分内存会被初始化为0。 - `uninitialized data`:未初始化数据,这印证了.zbss段的作用。 - `abs 18 addressing`:这里的关键是“abs 18”,它表示地址是绝对的(abs),并且可能是18位地址。在微控制器(如8位或16位单片机)中,内存地址空间可能采用分段或分页的方式,而18位地址意味着地址总线宽度为18位,可寻址空间为$2^{18}=256$KB。 在链接器脚本中,我们可能会看到类似这样的定义: ``` .zbss (NOLOAD) : { *(.zbss .zbss.*) } > memory_region ``` 而“abs 18 addressing”可能是指这个段被放置在绝对地址空间,且使用18位地址。 具体来说: - **绝对地址(abs)**:表示该段的地址在链接时确定,是固定的物理地址。与位置无关代码(PIC)相对,绝对地址意味着需要重定位。 - **18位地址**:表明地址范围是0x00000到0x3FFFF(因为$2^{18}=262144$个地址,即256KB)。这种寻址方式常见于某些特定的微控制器架构,比如一些16位单片机(如MSP430X扩展寻址)或者某些8位单片机的扩展地址模式。 例如,在一些使用扩展地址的架构中,内存空间可能被分成多个块,18位地址可以覆盖更大的内存空间。传统的8位或16位处理器通常有16位地址总线(64KB),通过使用分页寄存器扩展为更大的地址空间(如18位),从而可以访问256KB的内存。 在链接器脚本中,我们可能会这样指定内存区域: ``` MEMORY { ZBSS_RAM (w) : ORIGIN = 0x20000, LENGTH = 0x8000 /* 假设起始地址为0x20000(18位地址) */ } ``` 那么,`.zbss`段就会被放置在这个区域中。 总结: - `.zbss`:未初始化(或零初始化)的数据段。 - `abs 18 addressing`:该段链接到18位绝对地址空间,即地址范围0x00000到0x3FFFF(256KB)内的一个固定地址。 相关问题: §§相关问题§§ 1. 在嵌入式系统中,.bss段和.zbss段有何区别? 2. 为什么需要零初始化数据段(.zbss)? 3. 18位地址空间在微控制器中是如何实现的? 4. 链接器脚本中如何为同段指定绝对地址? </think>### .zbss段详解:未初始化数据与绝对18位寻址 #### 1. **.zbss段核心含义** `.zbss`是嵌入式系统中的特殊内存段,具有以下特性: - **未初始化数据存储区**:存放程序启动时**需要显式初始化**的全局/静态变量(如`int global_var;`) - **零初始化保证**:在程序加载时由**启动代码自动清零**(区别于普通.bss段) - **内存优化设计**:占用可执行文件体积(仅在运行时分配RAM) #### 2. **abs 18 addressing解析** - **绝对寻址 (abs)**:变量地址在**链接时固定**,可重定位 示例:`0x2000_0000`(STM32的RAM起始地址) - **18位地址空间**:支持最大$2^{18} = 256 \text{KB}$ 寻址范围 $$ \text{地址范围} = 0x00000 \sim 0x3FFFF $$ 常见于16位/32位MCU(如TI MSP430X、某些ARM Cortex-M) #### 3. 技术实现图解 ```plaintext +---------------------------+ | Executable (.bin/.hex) | +-----------+-------+-------+ | | 占存储空间 ↓ ↓ 占存储空间 +-------+-------+ | .zbss | .bss | ← 运行时空降的零初始化区域 +-------+-------+ RAM地址: 0x20000000 ↑ ↑ 0x20000300 | | 绝对18位地址 ─┘ └─ 编译器自动分配 ``` #### 4. 链接器脚本示例 ```ld MEMORY { RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 256K /* 18位地址空间 */ } SECTIONS { .zbss (NOLOAD) : { _szbss = .; /* 段起始地址 */ *(.zbss*) /* 收集所有.zbss段 */ _ezbss = .; /* 段结束地址 */ } > RAM /* 定位到绝对地址RAM */ } ``` ▶ 启动代码需实现`.zbss`清零(通常用`__zero_memory`函数)[^1] #### 5. 与普通.bss段的区别 | 特性 | .zbss段 | .bss段 | |--------------|--------------------------|--------------------------| | 初始化方式 | 强制零初始化 | 可能含非零初始值 | | 文件体积 | 占存储空间 | 占存储空间 | | 应用场景 | 中断向量表/硬件寄存器 | 普通全局变量 | | 访问速度 | 通常需cache一致性操作 | 直接访问 | | 典型编译器 | IAR/Keil专用 | GCC通用 | ### 典型应用场景 ```c /* 在.zbss段声明变量 */ __attribute__((section(".zbss"))) volatile uint32_t system_tick_count; // 必须零初始化的系统计数器 void SystemInit() { // 启动代码自动清零system_tick_count while(1) { system_tick_count++; // 直接访问绝对地址 } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值