和之前的leader闲聊,加上自己做了段时间的管理,感觉确实验证了之前的一些想法

之前在上家公司,作为技术专家一个偏“虚线管理”的岗位,就一直有一个感觉:中层管理、高层(或者说公司老板)之间,他们本身的利益就是矛盾的。

中层管理更关注的是:如何把事情做长做久,如何把位置保住。对于上层需要的一些优化、突破、创新。那是能敷衍就敷衍,能拖延就拖延,因为不做不错,理由总是好找的嘛。

最早在恒生带我的Leader(Y老板)也劝我说:“看开点,哪家公司都这样,尤其是我当管理以后,见过太多这样的人了。做好事情有风险,基本都想着把事情干的越长久越好。”

也许对许多人来说,技术只是一个谋生手段。当使用技术过渡到不需要技术的阶段,立马就会放下技术。换另一个谋生手段了。

就我个人来说,有时候挺难受的:我见过的技术管理发展到后面往往完全放下了技术,吃着大厂的那套流程管理和人情世故经验的收益。

作为一个本身就对计算机感兴趣所以从事这个行业的人,在国内计算机行业,经常会偶尔有一种悲凉感。

还记得上家公司的Leader之前有一次找我谈,问我职业规划,我说“就希望技术和业务设计能力,整个技术能力可以不断提升”。

他:“就一直写代码么”

我:“一直写代码不好么,我感觉长时间不写代码,肯定会手生。所以虽然有团队设计的评审、后端SRE、CR这些事情,我还是希望怎么都有一部分时间和精力在Coding”

他:“我就不喜欢写代码,我写代码就是为了当管理,然后再也不写代码了”

 

哎~

805 日 , 2024 16:46
thumbnail
Ostep 38 Redundant Arrays of Inexpensive Disks
这章如名字,主要讲的是磁盘冗余阵列,也就是我们常说的RAID。一种扩展磁盘的容量、提升磁盘可靠性的技术。 RAID存在RAID0到RAID6等多种方案。评估一个RAID方案,主要从容量、可靠性、性能这三个方面。RAID的特点和前面的一些虚拟化一样,将多个磁盘虚拟化为一个磁盘,来对上游提供服务。 RAID 0 条带化分块 RAID0是最基础的思路,实…
thumbnail
Ostep 37 Hard Disk Drives
这章主要聚焦到了编写硬盘驱动上。 在开始编写之前,我们首先需要知道硬盘的实际构造以及查询逻辑。 磁盘构造 参考上图,上图表示了硬盘的一层,或者说一盘,实际硬盘是有多层堆叠起来的。我们介绍一下它 最上面的Rotates this way,表示了硬盘转动的方向 中间的点Spindle,表示了转轴,每片硬盘围绕着转轴旋转 图中从内到外我们可以看到分三圈,…
thumbnail
Ostep 36 Io Device
第三part持久化,开始讲设备I/O了。 体系结构 整个I/O的体系结构基本如图。 CPU通过一些专门的高速线路,直接连接显卡和内存 再通过DMI(Direct Media Interface),与专门的IO芯片相连 其他设备通过与IO芯片相连,以此连接到CPU(如网络的PCIE,USB的键鼠,eSATA硬盘) 硬件连接相关 硬件如何和OS交互? …
Ostep Second Part Summary
第二部分到此也就结束了。这边按照惯例做一下总结。 并发整块内容包括整章,主要还是描述了并发为什么会产生,以及操作系统如何结合CPU硬件去一步步构造一些使用的api来供开发者避免或者解决这些并发问题。 第二部分主要是通过一些思路来介绍的,更加详细的内容推荐美团技术团队的一篇文章,会有一些细节的补充 基本功 | 一文讲清多线程和多线程同步 其实博客总结…
关于房价和房贷一个突然的感慨

之前房价高企并且一直涨的时候,有好多人和同事都说后面工资会一直更高,每个月那点房贷相对收入来说就越来越少了。
按照国家统计局的数据来看,从2000年开始,国民人均收入到2010翻了4倍,2010年到2020年翻了近3倍,如果能保持这个增长,那么每个月那点房贷确实会越来越少。
但是走到时至今日这个节点再回头看,不禁有点讽刺了

719 日 , 2024 10:48
Ostep 33 Event Based Concurrency
这章详细描述了之前20年看netty源码时就了解过的一个概念:eventloop,Netty以及Eventloop eventloop实际上是一个并发模型,基于事件驱动,用于实现在单线程或者单进程上的并发执行(是的,单线程也可以并发执行,没想到吧。 redis,node.js,浏览器,都大量使用到了这个并发模型。它的代码可能如下: while (1…
thumbnail
Ostep 32 Common Concurrency Problems
这章主要介绍并发场景下常见的bug,并发场景下主要常见的bug分2类:非死锁bug和死锁bug。文中列出了之前 Lu研究的目前常见的主流数据库和web server中包含的一些并发bug,并对其做了分类。 非死锁bug Atomicity-Violation Bugs 原子性违反 bug描述 这类bug的特点就是多线程之间,忽略了对共享变量的原子性…
thumbnail
Ostep 31 Semaphores
这章主要介绍了信号量的使用,如何使用信号量来实现并发编程。 信号量的定义 sem_init(&s, 0, 1); 初始化语句,第二个参数0表示是线程间的(信号量也存在进程间的),1表示信号量的值value int sem_wait(sem_t *s) { // Decrement the value of semaphore s by on…
Ostep 30 Condition Variables
除了锁之外,并发程序中另一个最重要的模式就是条件变量,与锁不同,条件变量用于解决线程间的同步问题。 条件变量的基本api 主要由2个方法就可以实现, pthread_cond_wait(pthread_cond_tc, pthread_mutex_tm); pthread_cond_signal(pthread_cond_t*c); 一个wait,…