编程的成就感到底在哪里?

news2024/11/24 0:10:56

一个好的开发人员如何成为一个伟大的开发人员?

暂时忘记伟大:一个体面的开发人员如何成为一个好的开发人员?

从步骤 1 到步骤 n 没有明确的路径。 哎呀,甚至不清楚步骤n是什么。 作为具有逻辑思维的开发人员类型,缺乏明确的路线可能会导致从新手到大师的艰巨旅程。

在过去的几年里,我花了相当多的时间来应对这个难题。 下一步是什么? 我如何从一个优秀的开发人员变成一个真正优秀的开发人员?

成功是什么样子的?

当我有一个目标,有明确、可衡量的成功标准时,我会尽力而为。 例如,我想跑 5 分钟一英里。 好。这很容易衡量,成功是明确的。 我可以弄清楚我现在能跑多快一英里,网上到处都是关于跑得更快的建议和培训计划。 我可以选择一个培训计划,努力工作,我可以确信我最终会到达我想去的地方。 它是如此奇妙的可衡量,以至于每周我都会知道我离我的最终目标有多近。

但是,您如何衡量自己是否达到了“真正优秀的开发人员”的排名? 简而言之,你不能。 如前所述,这个目标太主观,太模糊,根本无法衡量。 那么我们如何找到可测量的东西呢?

就像想要跑 5 分钟英里的目标一样,我们可以从查看我们作为程序员的位置与我们想去的位置开始。 一个 5 分钟英里的跑步者接触到了 10 分钟英里跑步者所缺乏的哪些经验? 程序员大师从中获得了哪些经验,而新手程序员却缺少这些经验? 重要的是体验

我们都有过特定的经验,这些经验明显提高了我们作为开发人员的技能。 我们学会了一种新的语言,使我们接触到一种新的思维方式。 或者我们精心设计了完美的设计,只是看着它在生产环境的严酷现实中揭示了它的严重缺陷。 正因为如此,我们成为了更好的程序员。 一些经验为您提供了新技术。 其他人让你接触到反模式...并让您了解为什么它们是反模式的。 正是这些经验教会了你,影响了你的思维过程,影响了你解决问题的方法,改进了你的设计。 方便的是,衡量您是否获得了特定经验很简单。 (将它们视为成就可能会很有趣。

所以花了一段时间,但我越来越适应我悬而未决的目标的不可估量性:获得“真正优秀的开发人员”的称号。 如果这样的开发人员因为他的经验而获得这种荣誉,那么也许我们仍然可以有一条明确的路径,朝着“真正优秀的开发人员”的大方向前进。 我怀疑该路径看起来像这样:

  1. 确定将个人提升为开发人员的体验。
  2. 选择要追求的特定体验。
  3. 追求这种体验直到完成。(成就已解锁!
  4. 反思一下那段经历。真的浸泡在里面。[一]
  5. 返回到步骤 2,这次选择新体验。

还有什么比众包更好的方法开始第 1 步呢? 这是编程成就列表的第一个切口,松散地组织成组。 最后,我会提供多种方式让你表达你的想法。

成就

编程成就徽章(作者:Michael Parenteau)

学习各种编程范例:

  • 用汇编语言编写程序
  • 使用函数式语言编写应用程序
  • 使用面向对象的语言编写应用程序
  • 使用基于原型的语言编写应用程序
  • 使用逻辑编程语言编写应用程序
  • 使用Actor模型编写应用程序
  • 在 Forth 中编写应用程序 [B]

体验不同平台编程的来龙去脉:

  • 编写重要的 Web 应用
  • 编写重要的桌面应用
  • 编写一个重要的移动应用
  • 编写嵌入式应用
  • 编写实时系统

增强您对我们作为开发人员使用的构建块的理解:

  • 编写网络客户端(例如,HTTP,FTP)
  • 编写设备驱动程序
  • 编写 B 树数据库
  • 包装现有库以提供更好的(更愉快)用户体验
  • 编写提供插件模型的应用程序或框架
  • 编写测试框架
  • 编写编程语言

用koan,katas和年龄的智慧来启发自己:

  • 完成五个代码卡塔
  • 完成您想要学习的语言的编程 koans
  • 参加代码务虚会
  • 阅读 SICP 并完成所有练习

开放程序:

  • 为开源项目做出贡献
  • 接受修补程序
  • 获得重要开源项目的提交权
  • 发布开源项目
  • 执行开源项目的重新定义

通过教别人来学习 [C]:

  • 呈现闪电演讲
  • 在本地用户组中演示
  • 出席会议
  • 提供培训课程
  • 发布教程
  • 发布开源项目的建设性代码审查
  • 写一本编程书

关于成就

现在,让我们暂时进入元。请注意,这些成就中的每一个都是可衡量的。 每一个都是布尔值:你要么完成,要么没有完成。 例如,很难衡量你是否学习过函数式语言,但很容易知道你是否用函数式语言编写了应用程序。 后者是可以观察到的。可测量的。布尔。 这种可衡量性非常有意地适用于所有这些成就。

诚然,可测量性并不完美。 考虑一下在会议上演讲的成就:你当然可以做一个半途而废的工作,只是为了说你已经赢得了这个成就。 但如果你正在阅读这篇文章,我想你想变得优秀。 你知道,仅仅为了从列表中划掉一个项目而打电话是蹩脚的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/914025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机视觉 -- 图像分割

文章目录 1. 图像分割2. FCN2.1 语义分割– FCN (Fully Convolutional Networks)2.2 FCN--deconv2.3 Unpool2.4 拓展–DeconvNet 3. 实例分割3.1 实例分割--Mask R-CNN3.2 Mask R-CNN3.3 Faster R-CNN与 Mask R-CNN3.4 Mask R-CNN:Resnet1013…

Gateway简述

前言 ​ 在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端调用多个微服务接口的地址。另外微服务架构的请求中,90%的都携带认证信息/用户登录信息,都需要做相关的限制管理,API网关由此应允而生。 这样的架构会存…

解决github上http克隆代码问题(SSH方式)centos

常见报错如下: fatal: unable to access https://github.com/cnych/demo_service/: Failed connect to 127.0.0.1:1080; Connection refused 代理问题报错 fatal: unable to access https://github.com/cnych/emo_service/: TCP connection reset by peer https…

BLE4.2 ch582 TMOS使用

需要注意的是,TMOS(任务管理系统)的时基是625us。每个Take任务最多能有15个事件; 创建一个TMOS任务,需要分五步: 1.创建任务TakeID static uint8_t LEDTaskId INVALID_TASK_ID;2.定义一个事件标志 #define LEDTas…

【附安装包】SolidWorks2023安装教程

软件下载 软件:Solidowrks版本:2023语言:简体中文大小:15.76G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU3.0GHz 内存8G(或更高)下载通道①百度网盘丨64位下载链接:https://pan.ba…

测试驱动开发(TDD)

测试驱动开发(TDD) 本篇文章简单叙述一下什么是测试驱动开发,以及怎么进行测试驱动开发! TDD (Test Driven Development):(源于极限编程(XP))在不…

树莓派时间更新为中国区时间

一、测试环境为:树莓派3B piraspberrypi:~/workfile/lorawan/lorawan-gw $ uname -a Linux raspberrypi 6.1.21-v7 #1642 SMP Mon Apr 3 17:20:52 BST 2023 armv7l GNU/Linux 测试过程中,请确保树莓派连接网络 ; 二、安装ntp相关命令&…

【linux】2 Linux编译器-gcc/g++和Linux调试器-gdb

文章目录 一、Linux编译器-gcc/g使用1.1 背景知识1.2 gcc如何完成1.3 函数库1.4 gcc选项 二、linux调试器-gdb使用2.1 背景2.2 开始使用 总结 ヾ(๑╹◡╹)ノ" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ" 一、Linux编译器-gcc/g使用 1.1 背景…

Java面试题—2023年8月22日—HRCT

2023-08-22 14:13:52北京hu ruǎn chāo tōng 答案仅供参考,博主仅记录发表,没有实际查询,不保证正确性。 一、选择题(单选) 1、Java 语盲中,方法的重写(Overriding)和(Overloading)是多态性的不同表现下…

AI夏令营笔记——任务2

文章目录 任务说明实现思路优化方向 任务说明 任务要求与任务1一样: 从论文标题、摘要作者等信息,判断该论文是否属于医学领域的文献。 可以将任务看作是一个文本二分类任务。机器需要根据对论文摘要等信息的理解,将论文划分为医学领域的文…

Python中的时间序列分析模型ARIMA

大家好,时间序列分析广泛用于预测和预报时间序列中的未来数据点,ARIMA模型被广泛用于时间序列预测,并被认为是最流行的方法之一。本文将介绍如何在Python中搭建和评估用于时间序列预测的ARIMA模型。 什么是ARIMA模型 ARIMA模型是一种用于分…

Rocky部署Cobbler

1、安装软件 cobbler版本3.3.3 rockyliux9.2 [rootwenzi ~]#dnf -y install cobbler dhcp-server [rootwenzi ~]#systemctl enable --now cobblerd tftp.service httpd dhcpd 2、配置cobbler cobbler配置检查 [rootwenzi ~]#cobbler check The following are potential c…

html动态爱心代码【四】(附源码)

目录 前言 特效 完整代码 总结 前言 情人节马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景,可直接使用。…

logistic自相关检测

logistic自相关检测 clc clearvars;T10000 xzeros(1,T); x(1)0.98; for n1:(T-1)x(n1)4*x(n)*(1-x(n)); end p(x>0.5); n-(x<0.5); H1pn; % sum(pn,all) % sum(x,all)t-T1:T-1; N2*T-1; Rh1zeros(1,N); %自相关函数 Rh2zeros(1,N); fo…

React+Typescript 父子组件事件传值

好 之前我们将 state 状态管理简单过了一下 那么 本文 我们来研究一下事假处理 点击事件上文中我们已经用过了 这里 我们就不去讲了 主要来说说 父子之间的事件 我们直接来编写一个小dom 我们父组件 编写代码如下 import Hello from "./components/hello";functio…

Zabbix监控系统最新版安装

setenforce 0 设置SELinux 成为permissive模式 临时关闭selinux的 [rootwww yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo % Total % Received % Xferd Average Speed Time Time Time Current …

远程控制:用了向日葵控控A2后,我买了BliKVM v4

远程控制电脑的场景很多&#xff0c;比如把办公室电脑的文件发到家里电脑上&#xff0c;但是办公室电脑旁边没人。比如当生产力用的电脑一般都比较重&#xff0c;不可能随时带在身边&#xff0c;偶尔远程操作一下也是很有必要的。比如你的设备在工况恶劣的环境中&#xff0c;你…

线性代数强化第三章

目录 一&#xff0c;关于A伴随&#xff0c;A逆与初等矩阵 二&#xff0c;分块矩阵 三&#xff0c;矩阵方程 ​ 一&#xff0c;关于A伴随&#xff0c;A逆与初等矩阵 如何证明行列式的值不能是0&#xff1b; 此秩为1. 法一&#xff1a; 法二&#xff1a; 不用看是列变换还是行变…

CSPJ2020A真题大全 优秀的拆分,直播获奖,表达式,方格取数

CSPJ2020A. 优秀的拆分 (Excellent Split) 题目描述 一般来说&#xff0c;一个正整数可以拆分成若干个正整数的和。 例如&#xff0c;111111&#xff0c;101234101234101234 等。对于正整数 nnn 的一种特定拆分&#xff0c;我们称它为“优秀的”&#xff0c;当且仅当在这种拆分…

linux中互斥锁,自旋锁,条件变量,信号量,与freeRTOS中的消息队列,信号量,互斥量,事件的区别

RTOS 对于目前主流的RTOS的任务&#xff0c;大部分都属于并发的线程。 因为MCU上的资源每个任务都是共享的&#xff0c;可以认为是单进程多线程模型。 【freertos】003-任务基础知识 在没有操作系统的时候两个应用程序进行消息传递一般使用全局变量的方式&#xff0c;但是如…