对20年前的程序员的我说:做这四件事

简介:   开发中的开发人员,我现在知道的四件事希望我能做得更多  二十年前,我以自由网络开发人员的身份登陆了我的第一家公司。 二十年后,我仍然在做。 事后看来,我希望自己早日养成4种习惯。  1.更多的自动化  你一直很擅长做一个单人商店,并且能够将很多细节和流程牢记在心。 该客户的部署有15个步骤,您每个月都要进行一次,因此要记住,每次运行最多需要5分钟。  您将与同事就此展开辩论。 有了所有需要构建的功能和所有要修复的错误,这个问题就会一遍又一遍地出现:  花费时间来自动执行仅花费您几分钟的时间并且每隔一段时间执行一次的操作,真的值得吗?  不要这样想。 相反,请这样考虑

  开发中的开发人员,我现在知道的四件事希望我能做得更多

  二十年前,我以自由网络开发人员的身份登陆了我的第一家公司。 二十年后,我仍然在做。 事后看来,我希望自己早日养成4种习惯。

  1.更多的自动化

  你一直很擅长做一个单人商店,并且能够将很多细节和流程牢记在心。 该客户的部署有15个步骤,您每个月都要进行一次,因此要记住,每次运行最多需要5分钟。

  您将与同事就此展开辩论。 有了所有需要构建的功能和所有要修复的错误,这个问题就会一遍又一遍地出现:

  花费时间来自动执行仅花费您几分钟的时间并且每隔一段时间执行一次的操作,真的值得吗?

  不要这样想。 相反,请这样考虑:

  每月一次只需要5分钟的时间即可手动执行该过程。 该过程的楼宇自动化将需要3个小时。 这样可以将运行该过程所需的时间从5分钟减少到3分钟。

  但是,这里有一个关键:

  随着流程的自动化,运行该流程的不再是您。

  您获得的收益每月不仅仅是2分钟。 您的5分钟可以变成0分钟,因为现在该过程已自动化,其他人可以花3分钟来运行该过程。 实际上,可以是其他任何人。 在关键时刻,团队中只有3分钟时间的任何人都可以运行此自动化流程。

  您不必做任何事情。 如果您实现更多自动化,那么其他人都可以做所有事情,这样您就可以集中精力。

  2.测试更多

  因为您擅长将所有内容掌握在自己的脑海中,所以您善于记住每当构建新功能时就需要微动的每个小开关,这只是为了确保您没有通过添加新代码破坏其他任何东西 。

  但是,您始终确定自己没有忘记什么吗? 而且,当Charles或Rosa添加代码时该怎么办? 他们是否具有需要切换的每个开关和切换的列表? 他们会错过一些东西。 因此,可能会发生的事情是……每当他们集成新代码时,您就必须为他们动摇。

  测试就是要让自己充满信心,即确信自己添加的新代码不会破坏任何旧代码; 有信心,您可以部署代码而无需在午夜醒来,因此想:"哦,如果用户在删除付款方式后(而不是之前)单击该按钮,他们将获得500。我需要滚动所有内容 现在回来。"

  是的,编写测试需要时间。 首先编写测试并不像首先编写实现代码那样令人满意。 但是,它可以帮助您保持头脑清醒。 通过测试编写,您可以首先关注代码应该做什么。 然后,您可以实现方法。

  测试就是要给自己一些空间,即大脑中的空间专注于重构和改进代码,因为您不再需要跟踪所有这些开关和切换,而无需费力地确保重构不会中断 任何东西。 您的测试将为您做到这一点。 现在,您有足够的空间来重构代码。

  哦,顺便说一句,如果您知道如何增加加分:

  自动化更多+测试更多=自动化测试更多

  使用自动化测试,任何人都可以贡献自己的代码,任何人都可以运行测试-您,您的队友,您的客户。 您将以更大的信心进行构建,以更大的信心进行调整,以更大的信心进行演示,并以更大的信心进行交付。

  3.让其他人更多

  当您回到大学时对项目进行分组时,我们都知道我们的代码很糟糕。 我们谁都不知道我们在做什么。 调试实际上只是在搅动代码行,以期使某些内容不受破坏。

  作为单人自由职业者,您的眼睛可以看到100%的代码。 而且,很可能只有您的眼睛可以看到100%的代码。 那让你感到害怕和不安全。

  这种恐惧和不安全感将使您很难向他人寻求帮助,组建团队并让他人参与进来。 那是因为你永远不会觉得自己编写的代码已经准备好(足够好)给其他程序员留下深刻的印象。 实际上,他们可能会批评。 他们将了解您是如何使用骇客进行该API调用的,或者您是如何故意忽略了这种极端情况。

  恐惧和不安全感将限制你。 严重。 您与他人合作和向他人学习的机会。 您有机会成为需要整个团队而不是一个人的商店的项目的一部分。 您成长的机会。

  因此,相反,养成让他人多进来的习惯。 请其他程序员看一下您的富贵论坛代码。 接受您的代码糟糕透顶,并希望那些审阅者会注意到您的代码糟糕透顶。 拥有它。 然后从中成长。 (顺便说一句,他们的代码可能也有糟糕的部分。)

  另外,当您开始执行此操作时,您会发现自己说:"好吧,特里,我想向您展示我已构建的该模块,但请给我……还有3天的时间,只是要先对其进行一点清理。" 不要那样做 您的代码总是可以改进的,并且永远不会准备好进行审查。 您将不断需要更多的时间来准备它。 只需拥有自己的代码-即今天的样子。 然后,请某人进来检查一下。

  通过更早或更频繁地执行此操作,您将发现代码开始有所改进。 这是因为在编写代码时,您将开始预料到您的习惯或缺点会导致审阅者畏缩或哭泣。 问责制不是很好吗?

  您的代码将永远是完美的。 不要等到当天,再请另一只眼睛重新审视并提供反馈。 否则,这一天将永远不会到来。

  4.教更多

  您将遇到许多非常具体的编码问题,并且将在网络上搜索解决方案。 您不会总是那样找到解决方案。 取而代之的是,您将在一些第三方文档中闲逛,使用不同的设置,创造性地考虑要解决的问题,然后再解决问题。

  从那里,您可以继续进行下一个问题。 但是,您正在抢夺世界-尤其是那些将要面对刚刚解决的相同问题的程序员–一些艰苦的知识。 在花时间和精力去解决这个小问题后,请不要浪费专业知识。 向他人传授所学知识。

  肯特·多德斯(Kent C. Dodds)称其为"增加价值的影响力"。 SWYX(Shawn Wang)称其为"公开学习"。

  无论是撰写教程文章还是博客文章,还是有关Stack Overflow的答案,您都需要捕获它。 会有其他人受益。 不要抢他们。

  您也会从中受益。 当您准备教书时,无论是实际的演示文稿,文章还是主题帖子,您都会比初次学习时更好地学习解决方案。 您将更加深入,并真正理解问题所在。 您将优化初始解决方案。 您将了解如何与初学者交流深入的低层次概念。

  您将发现并为各种难题制定出色的解决方案。 这就是您为客户做的。 但这也是您在特定代码段中所做的。 花些时间"增加您的价值的影响力"-以一种教别人遇到相同问题的方式分享您的发现。 您将使他们成为专家。 您将成为自己的一员。

  神速

  Godspeed在您即将踏上的旅程中。 到达这里将是曲折的。 但是,如果您想到达目的地-可能不会更快,但至少会更明智地-请注意一下自己:

  · 自动化更多。

  · 测试更多。

  · 让其他人参与进来。

  · 教更多。

  Alvin Lee是位于亚利桑那州凤凰城的全职开发人员和远程工作者。 他专门从事针对初创企业和小型企业的Web开发,技术咨询和原型构建。 他在Moonlight上可用,您可以在其中查看他的个人资料或请求雇用他提供服务。

目录
相关文章
|
5月前
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
162 10
|
5月前
|
存储 前端开发 JavaScript
|
5月前
|
JSON 监控 Java
日志与追踪的完美融合:OpenTelemetry MDC 实践指南
日志与追踪的完美融合:OpenTelemetry MDC 实践指南
314 24
|
5月前
|
XML 安全 前端开发
一行代码搞定禁用 web 开发者工具
在如今的互联网时代,网页源码的保护显得尤为重要,特别是前端代码,几乎就是明文展示,很容易造成源码泄露,黑客和恶意用户往往会利用浏览器的开发者工具来窃取网站的敏感信息。为了有效防止用户打开浏览器的 Web 开发者工具面板,今天推荐一个不错的 npm 库,可以帮助开发者更好地保护自己的网站源码,本文将介绍该库的功能和使用方法。 功能介绍 npm 库名称:disable-devtool,github 路径:/theajack/disable-devtool。从 f12 按钮,右键单击和浏览器菜单都可以禁用 Web 开发工具。 🚀 一行代码搞定禁用 web 开发者工具 该库有以下特性: • 支持可配
261 22
|
5月前
|
JavaScript 前端开发 编译器
Vue与TypeScript:如何实现更强大的前端开发
Vue.js 以其简洁的语法和灵活的架构在前端开发中广受欢迎,而 TypeScript 作为一种静态类型语言,为 JavaScript 提供了强大的类型系统和编译时检查。将 Vue.js 与 TypeScript 结合使用,不仅可以提升代码的可维护性和可扩展性,还能减少运行时错误,提高开发效率。本文将介绍如何在 Vue.js 项目中使用 TypeScript,并通过一些代码示例展示其强大功能。
217 22
|
5月前
|
Kubernetes 调度 异构计算
一文搞懂 GPU 共享方案: NVIDIA Time Slicing
本文主要分享 GPU 共享方案,包括如何安装、配置以及使用,最后通过分析源码了 TImeSlicing 的具体实现。通过配置 TImeSlicing 可以实现 Pod 共享一块物理 GPU,以提升资源利用率。
189 11
|
5月前
|
JSON 机器人 API
gewe微信机器人搭建教程
GeWe开放平台是基于 微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息、自动化应答、自动群邀请、群管理等,封装了 RPA技术流程,简化开发者二次开发难度,提供了开发者与微信对接的能力,使用简单,操作快捷,支持多种语言接入。
205 17
|
5月前
|
前端开发 API UED
封装 uniapp 请求库的最佳实践
背景 在前端开发中,HTTP 请求是与服务器进行数据交互的核心手段。无论是获取数据还是提交数据,前端应用几乎都离不开 HTTP 请求。在 uniapp 中,uni.request 是官方提供的用于发起 HTTP 请求的基础 API。然而,直接使用 uni.request 存在一些问题和不足,比如: 1. 代码冗余:每次发起请求时都需要编写类似的配置代码,导致代码重复。 2. 缺乏统一管理:没有统一的地方管理请求参数、头信息、错误处理等,使得代码不易维护
151 7
|
5月前
|
数据采集 安全 BI
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
126 11
|
5月前
|
关系型数据库 MySQL Linux
CentOS系统安装phpStudy的详细步骤和注意事项
一、安装流程 执行官方安装脚本 通过以下命令直接安装官方集成环境(支持CentOS 7及以上版本): ``` yum install -y wget && wget -O install.sh https://www.hsbang.com/ install.sh && sh install.sh ``` 安装过程包含自动下载组件和配置环境,需等待2-5分钟。
257 4