《寻求优秀程序员之实战指南》读书笔记--了解优秀的程序员

    很多HR,招聘主管以及创业者都感叹要吸引优秀的程序员实在太难了。对于寻求这个问题的答案,可以用知乎的方式来表述,即:如何吸引优秀的程序员为你工作?
这里不对优秀程序员的标准作深入的探讨,而是假设已经找到了具有专业素养,符合企业和创业者定义的优秀程序员的人选,然后对如何吸引并留住优秀的程序员作探讨。
    首先HR,招聘主管以及很多创业者具有的性格特质,往往和优秀程序员的性格特质差异很大,思维方式上的差异也很大,这种差异在社会丛林中就如物种间的差异一般。
HR往往情商高,套路深(请允许我用这个词,但并没有任何贬义,中性含义),职业化;而管理者呢?往往善于平衡利益,成熟,稳重等等。那程序员呢?
对,要吸引优秀的程序员为你工作,第一步就是要了解程序员。那么程序员的需求到底是什么呢? 相信这也是很多人感叹的--不知道优秀的程序员想要的什么?
    最近读到《码农》上的一篇文章《寻求优秀程序员之实战指南》,作者是一位软件工程师和作家,同时是Stack Overflow的创建人之一。书中,描述了几个细节,我觉得很好地描述了优秀程序是怎样的一个物种,他们的需求又是什么。
1. 没有理由不给程序配备顶级电脑,至少两块大液晶屏,不给他们设置上限,让他们可以自由地在Amazon.com上订购任何他们想要的技术书籍。这是招募优秀程序员的杀手锏之一,特别是在这样一个大多数公司都将程序员视作随时可以替换的齿轮或者打字机的世界。
2. 如果其他条件相同,程序员就会选择去一个对待他们像对待明星一样的公司。如果你不尊重程序员,你就不会得到优秀的程序员。
3. 招聘程序员指导理念,只需要两点:聪明,并且能够完成工作。
4. 基本上,你要雇用聪明人,你必须让他们在工作中发挥技能。管理层提出建议是必须极端小心,不能让他们的“建议”被视为命令,因为不管是什么技术问题,经理们知道的很可能不如在壕沟里干活的工人们,尤其是当你雇用的都是聪明人的话。程序员希望自己之所以给雇用,是因为自己的技能,希望被别人当成专家那样对待,有权利在自己的专业领域中做出决定。
5. 许许多多的人选择编程,首要的原因就是他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。晋升的原因不是成果,而是人际关系--没有什么比这更让人抓狂的了。
6. 程序员被迫去做技术上落后的东西,仅仅因为上级或者得到了上级支持的人坚持这样--没有什么比这更让人发火的了。一定程序上,让程序员干有趣的活是吸引优秀程序员的最好办法之一。
7. 如果你能找到办法让程序员有接触新的语言,框架和技术的经历,那么他们会感到更开心一些。
8. 大多数程序员工作不是仅仅为了谋生,他们要的不是一份“朝九晚五”的工作,他们要的是工作能带给他们的意义。
9. 如果你开始听到有程序员开始抱怨薪水,而以前从来没有出现这种情况,这经常就是一种信号,表明他们并不真地喜欢他们的工作。如果你想雇用的新人提出高的离奇的薪水要求,并且不愿意降低,那么你可能遇到的是这样一种情况,那些人心里想:“好吧,如果不得不接受这份糟糕透顶的工作,那么我至少应有一份优厚的报酬”。
10. 我们说程序员不在乎钱,并不意味着你可以向他们支付低工资,因为程序员对公平是很在乎的,如果他们发现自己公司每个人的薪水都比街对面的同样的公司低20%,那么他们会被激怒的,然后,突然之间,钱就将成为一个大问题。你必须支付有竞争力的报酬。
    看完以上几个细节,相信HR,招聘主管都会直摇头。对了,这就是优秀程序员的需求。当然,这并不是我总结和描述的,也不代表我的观点。存在即合理。当然,事实上这句被到处误用的话,其原文英译是:What is rational is actual and what is actual is rational. 至于那个号称黑格尔说的下半句“凡是现存的都是应当走向灭亡 ”,其实是恩格斯说的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值