JQuery之父: 每天都来点代码吧!

本文讲述了jQuery创始人John Resig如何通过每日坚持编程的习惯改变,有效克服业余项目的进展难题,从而实现持续进步。

from :http://article.yeeyan.org/view/340567/431980


再厉害的人也会遇到瓶颈,只有不断地提高自己和持之以恒才能突破。 jQuery的创始人和技术领袖,John Resig,在业余编程项目的瓶颈时期究竟采取了什么策略?来应对自己的危机? 无论你是否是程序猿,你都可以从中受益。

去年秋天我的业余编程项目(coding side projects)到了一个紧要关头:没有充足的进度,也不能够找到一种方法在既不牺牲我可汗学院(Khan Academy)高效的工作的前提下完成更多的事情。

如何处理我的业余编程项目是有一些严重问题的。我最主要是在周末或者某些工作日的晚上编写代码。如同结果一样,这种策略并不适合我。周末我拖着巨大的压力尝试完成尽可能多的高质量代码(如果我没能完成我会认为自己很失败)。这样想有一个问题,因为没有什么能够保证我每个周末都有空,并且想整个周末都写程序而不是抓紧机会放松或娱乐。

每周写代码之间空挡太长也是个问题。你很容易忘记在做什么、什么还没做完(即使做记录也于事无补)。更不用说如果你错过一个周末,你就会面对长达两周的间隔。大量两周或者更多周的思维转换可是致命的(我的很多业余项目都由于精力不足而终止)。

我被Jennifer Dewalt去年完成的工作震惊了,她在180天内构建了180个网站以学习编程。受到她的启发,我强迫自己尝试一个相似的策略:每一天都要进行我的业余项目。

我决定给自己制定一些规则:

  1. 我必须每天都写代码。我可以写文档,博客或其他的东西。但必须依附于我所写的代码。
  2. 代码必须是有用的。不能代码微调,不能代码重排,且尽量不要重构。(这些事情都是允许的,但不作为当天特有的工作。)
  3. 所有代码必须在午夜前写。
  4. 代码必须开源且放在Github上。

其中的一些规则有点武断。虽然从技术上来讲代码没必要非得在午夜前写,但我想要避免熬夜太久写糟糕的代码。而且代码没必要开源放在Github上。这只是强迫我写代码时多上点心(想想重用以及决定开发过程早点写模块)。

到目前为止我进行得很顺利,我已进行了20周的连续工作。我想要写下这些是因为这方法完全改变了我的编码方式并且对我的生活以及心智都有实质性的影响。

有这些规则后,习惯的改变导致了很多有趣的事情发生:

最少可行代码(Minimum viable code).每天我被强迫写至少30分钟的代码。(少量时间内很难写出有意义的代码,尤其是在记起前一天写到哪里后)有一些工作日我写得多点,但通常少于1小时。而周末,我有时候能一整天当程序猿。

编码即为习惯(Code as habit).其实重要的一点是我并不特别在意Github上的(负面)聊天内容是如何被他人理解的。我认为这是从这个实验中我学到的最重要的东西:这是关于在你一生中为了你自己而进行的改变而非为了让你的工作能讨好他人而进行的改变。这也适用于任何形式的节食或锻炼:如果你不在意提高自己,你是永远也不会成功的。

抵抗焦虑(Battling anxiety).在开始这个实验之前我经常担心不能够完成足够多的工作量或者取得足够的进展(这两点很难度量,因为我的业余项目没有明确的截止日期)。我发现想要取得进展与实际取得进展是同样的重要。这让我豁然开朗。一旦我开始每天取得持续的进展,焦虑就开始消失了。我对我不断完成的工作量感到欣慰,并且我不再过度疯狂地期望完成更多的工作。

周末(Weekends).在周末完成的任务曾今对于推进进度是绝对重要的。的确有地表性地,这是我完成业余项目显著代码量的唯一时间。但现在并非如此,不过非常好。在周末完成我一整周所期望的有价值的内容只能以让我以失望告终。我极少能够完成我想要完成的所有工作,而这强迫我放弃其他周末我喜欢的活动(例如,吃中式点心,参观博物馆,去公园以及和我的小伙伴在一起玩等)以完成更多的工作。虽然我非常相信业余项目真的很重要,但总之,他们不应该阻碍你的平时生活。

发呆(Background processing).每天都写业余项目的一个有趣的副作用就是当前业余项目的任务会频繁地在你大脑中浮现。这导致当我走路,洗澡或则进行其他不耗费脑力的活动时,我总是在想接下来我要写些什么代码并且寻找好的方法来解决问题(译者注:别人看来就是发呆)。这在我每周或隔一周写一次代码的时候从未出现过。相反这些时间花费在了思考其他的一些任务上,通常是懊恼自己上周没能完成业余项目的工作量。

思维转换(Context switch). 继续业余项目时总是会有思维转换代价的。不幸的是,当一整周都在干其他任务的工作时,这转变是及其困难的。就每天都写代码而言是非常有利的,因为工作间歇时间更短。这使得回忆起正在做什么更容易。

工作权衡(Work balance). 这个改变最重要的一方面是直接学会了如何更好地权衡工作/生活/业余项目。由于明确了我每天都会工作在业余项目上,我必须更好地平衡我的时间。如果我计划晚上外出并且会很晚才回来,那么我会在一天中早些时候,既在开始我的可汗学院的主要工作前,完成我的业余项目的工作量。而且如果我没有完成我的任务,并且在外待得很晚,我会赶回家完成他而不遗漏一天。我应该注意到了我拥有更少地时间可花费在爱好上(例如版画),但这是我需要面对的合理的折衷。

他人看法(Outward perception). 把这个新的习惯告诉别人让我更受益。我的小伙伴理解我需要每天完成这个工作,因此有的时候活动安排也很迁就我的工作。能够说“没问题,我们可以出去玩/看电影/等,但我等会儿要当会儿程序猿”并且能够被理解和考虑在内是相当欣慰的。

能写多少代码?我简直不敢相信我上个月写了多少代码。我制作了一堆新的网站,重写一些框架,并且创建了大量新的节点模块(node modules)。我写了如此的多,以至于我有时候都忘记了我到底干了些什么,前一周的工作都好像是很遥远的记忆样。我对我所完成的工作量是及其满意的。

我认为这个习惯改变是一个很大的成功并且希望能尽可能地继续下去。与此同时,我将倾尽所有将这个策略推荐给其他希望让其业余项目有实质进展的人。无论这个技术对于你是有用或者没用,请告诉我。我会非常乐意听更多的趣事的!


【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档围绕“博士论文复现”主题,重点介绍了光伏并网逆变器的阻抗建模与扫频法稳定性分析,涵盖锁相环和电流环的Simulink仿真实现。文档旨在通过完整的仿真资源和代码帮助科研人员复现相关技术细节,提升对新能源并网系统动态特性和稳定机制的理解。此外,文档还提供了大量其他科研方向的复现资源,包括微电网优化、机器学习、路径规划、信号处理、电力系统分析等,配套MATLAB/Simulink代码与模型,服务于多领域科研需求。; 适合人群:具备一定电力电子、自动控制或新能源背景的研究生、博士生及科研人员,熟悉MATLAB/Simulink环境,有志于复现高水平论文成果并开展创新研究。; 使用场景及目标:①复现光伏并网逆变器的阻抗建模与扫频分析过程,掌握其稳定性判据与仿真方法;②借鉴提供的丰富案例资源,支撑博士论文或期刊论文的仿真实验部分;③结合团队提供的算法与模型,快速搭建实验平台,提升科研效率。; 阅读建议:建议按文档目录顺序浏览,优先下载并运行配套仿真文件,结合理论学习与代码调试加深理解;重点关注锁相环与电流环的建模细节,同时可拓展学习其他复现案例以拓宽研究视野。
内容概要:本文系统解析了嵌入式通信协议栈系列项目的实践路径,围绕通信原理与工程实现,阐述在资源受限的嵌入式环境中构建稳定、可扩展通信能力的方法。文章从通信基础模型出发,强调分层设计思想,涵盖物理层到应用层的职责划分,并依次讲解通信驱动、数据收发机制、帧格式解析、状态机控制、错误处理等核心技术环节。项目实践注重底层可靠性建设,如中断响应、缓冲区管理与数据校验,同时关注上层应用对接,确保协议栈支持设备配置、状态上报等实际业务。文中还突出性能优化与资源管理的重要性,指导开发者在内存与处理效率间取得平衡,并通过系统化测试手段(如异常模拟、压力测试)验证协议栈的健壮性。; 适合人群:具备嵌入式系统基础知识,有一定C语言和硬件接口开发经验,从事或希望深入物联网、工业控制等领域1-3年工作经验的工程师。; 使用场景及目标:①掌握嵌入式环境下通信协议栈的分层架构设计与实现方法;②理解状态机、数据封装、异常处理等关键技术在真实项目中的应用;③提升在资源受限条件下优化通信性能与稳定性的工程能力; 阅读建议:建议结合实际嵌入式平台动手实践,边学边调,重点关注各层接口定义与模块解耦设计,配合调试工具深入分析通信流程与异常行为,以全面提升系统级开发素养。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值