你是一名黑客还是开发者

本文翻译自:http://www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html

二十年前,最好的编程者是可以将整个APP编程64KB大小的人。这些能够从有限的intel80386处理器上运行到最大性能的人是编程界的牛人。

 这是因为在二十年前,计算机是昂贵的编程者却要便宜得多。那是一个“黑客思维”主导的时代,但时过境迁,现在已经不一样了。这个思维现在已经不再有价值,因为市场已经完全反转过来了。

如今,计算机变得便宜,开发者的价值增加。当代码的可读性比性能显得更重要时,就已经是“开发者思维”的时代了。

价格VS薪资


看下这个图,它是在过去的20年(1994-2014)的两个趋势对比图。两个下降的曲线显示了计算机的内存和存储硬盘已经变得很便宜了。

 另一个趋势是同一时期开发者的薪资水平,精确地说,是三倍的增长。关于这个,我没有找到官方的报导,但确定的是,作为开发者的每个人心里都有数的吧---对于一个初级的开发者来说年薪$200,000已经不再是梦,而二十年前$60K已经是最好的报酬了。关于这个问题这里有一篇有意思的文章

基本上,这意味着在1994年为了建立一个PHP网站,相对于2014年,需要1000倍的硬件开销和少于3倍的开发者开销。这只是一个比方,linux方面的Apache HTTP服务器开发也如此。

 

不同之处在于,如果APP有性能上的问题,1994年会位每1G的RAM花费$35,000,而2014年是$10。

 

1994年雇佣更多的开发者去优化甚至是重写代码比买一个新的硬件要更合适,现在却正好相反。现在一个两倍大的服务器(如果服务器是虚拟的云端的话更甚)也比位优化代码的开发者付薪水要更便宜。

 

1994最好的工程师是“黑客思维”的,现在“开发者思维”更加适合。

 

黑客思维

黑客思维的的人会把下面用java写的斐波那契算法的代码成为“优雅的代码”(你呢?):

public int f(int n) { return n>2?f(n-1)+f(n-2):1; }

 

下面是我总结的黑客的特点:

使用编程语言所有著名或不著名的特性:

歧视其他的黑客或新手

厌倦规则和标准

不写单元性测试

喜欢解决问题– 展现他们的天分

更喜欢讨论而不是写文档

不喜欢代码被别人修改

喜欢一个时间段只沉迷于一个项目

 

黑客是一个有才华的人。他想在自己所写的代码中表现其过人之处,因此他大多时候是从中获取乐趣。我想说,他其实已经是和代码结婚并且无法想象自己离婚后还怎么快乐的生活了!

因此,代码的所有权是仅属于黑客的。

当我问我的一个黑客朋友——“别人怎么理解这些代码的意图呢?”,回答总是——“问我”(说这句话时他们总是带着真诚的微笑,并且非常自信)。

 

开发者思维

开发者思维表现在会将上述代码更具有可读性。所以下面的代码才会被认为是“优雅的代码”(你呢?):

public int fibo(final int pos) {
  final int num;
  if (pos > 2) {
    num = fibo(pos - 1) + fibo(pos - 2);
  } else {
    num = 1;
  }
  return num;
}

一个好的开发者的特点是:

趋向于使用传统的变成技巧

会假设每一个人都是初学者并依此来编程

喜欢制定规则并遵循

喜欢文档而不是讨论,通过文档来实现自动化(如果有问题,看文档就行了,不需要来问我)。

大多数时间用来进行单元测试

讨厌问题并且依据时间来工作

乐于自己的代码被修改或重构

同一时间参与几个项目

 

开发者更适合团队工作。他在编码的同时,可以为团队提供进度,标准,规则,培训和准则。并且会在离开后让自己的工作和思想继续发挥作用。

开发者最乐意看到的就是自己的代码“独立生存”——被修改,提升,重构甚至退出使用。他将自己看做代码的父母——一旦长大,就要自己独立生存。

 

未来

如果你认为自己是一名黑客,那是时候改变了,因为黑客确实已经是过去式了。

在不久的将来,我们甚至不在考虑硬件的存在,将我们的APP运行在具有无限内存,CPU和存储容量的动态变化的计算平台上了。我们会为使用的硬件资源付费,并且如果需要性能提升也仅仅是额外的在月支出上增加几美元而已,而不需要再去优化硬件了。

同时,好的软件开发者会越来越有价值,检测一个软件并给出方案的小时费用就可以达到$500,就像现在的律师和牙医那样。

这就是为什么现在更注重软件的可维护性。投资者会认为,他们的钱用在一个具有可读性,可维护性和自动化的软件上,会有更好的回报。

而不是最快的。
内容概要:本文围绕基于模型预测控制(MPC)与滚动时域估计(MHE)集成的目标点镇定方法展开深入研究,重点探讨其在六自由度机械臂系统中的应用,并提供了完整的Matlab代码实现。研究充分结合MPC的多步预测、滚动优化与反馈校正能力,以及MHE对系统内部状态的高精度在线估计优势,构建了协同工作的闭环控制架构,实现了复杂非线性系统下对目标点的高精度、强鲁棒性镇定控制。文中系统阐述了MPC预测模型的建立、代价函数的设计、状态与输入约束的处理机制,以及MHE基于优化准则进行状态估计的实现流程,详细展示了算法的整体设计思路、数值实现步骤与仿真验证过程。通过仿真实验验证了该集成策略在抑制外部干扰、补偿模型不确定性方面的优越性能。此外,资源还整合了多种先进控制技术与优化算法的仿真案例,涵盖机器人、电力电子、智能交通等多个领域,为科研人员提供丰富的算法复现与工程参考资源。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事自动化、机器人、电力电子、智能系统等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并掌握MPC与MHE联合控制策略的设计原理与代码实现方法;② 应用于机械臂、无人机、智能车辆等复杂系统的高精度运动控制与状态估计任务;③ 为科研论文复现、工程项目开发及先进控制算法的优化改进提供可运行、可调试的代码基础。; 阅读建议:建议结合文中的算法理论描述与Matlab代码进行同步研读,重点关注MPC中预测模型构建、权重矩阵整定、约束处理以及MHE状态估计的优化求解实现细节,鼓励在仿真环境中动手调试参数,有条件的情况下可进一步在实际物理系统或高保真模型中进行验证与性能评估。
内容概要:本文研究了基于自适应状态相关黎卡提方程(SDRE)的非线性无传感器速度控制方法在永磁同步电机(PMSM)驱动系统中的应用,并通过Simulink进行仿真验证。该方法摒弃传统机械传感器,构建高精度非线性状态观测器,结合自适应SDRE控制器实现对电机转速与位置的实时估计与闭环控制,有效克服系统参数摄动、外部负载扰动及建模不确定性带来的影响。研究重点在于设计具备在线调节能力的状态反馈增益机制,通过求解时变的代数黎卡提方程实现动态最优控制律,从而在宽速域范围内,尤其是在低速与零速工况下,显著提升速度跟踪精度、系统鲁棒性与动态响应性能。仿真结果充分验证了该控制策略在抑制转速波动、加快响应速度、增强抗干扰能力以及保障系统稳定性方面的优越性,为高性能PMSM无传感器驱动提供了先进的技术解决方案。; 适合人群:电气工程、自动化、电机与控制相关专业的研究生、科研人员及从事PMSM驱动系统开发的工程技术人员。; 使用场景及目标:①应用于对可靠性与维护成本敏感的高精度工业驱动系统,如精密机床、电动汽车、航空航天设备中,替代传统依赖速度传感器的控制方案,降低系统成本与故障率;②为先进无传感器控制算法的研究与教学提供坚实的理论依据与可复现的仿真范例;③支持研究人员深入探索非线性控制理论、自适应观测器设计、最优控制策略在电机驱动领域的深度融合与实践验证。; 阅读建议:建议读者结合提供的Simulink模型进行同步仿真运行,深入剖析SDRE控制器的状态空间建模过程、雅可比矩阵线性化处理方法以及Riccati方程求解器的实现细节,重点关注系统稳定性证明与收敛性分析,同时可将其与滑模观测器(SMO)、扩展卡尔曼滤波(EKF)等主流无传感器技术进行对比研究,以全面评估其性能优势与适用边界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值