作者 | keypressingmonkey

译者 | 孙薇,责编 | 夕颜

出品 | CSDN(ID:CSDNnews)

非天才生存指南

承认这一点很难,我的正式简历上也不会有:我是一名普通的程序员。我了解(大多)代码,但.Net核心并非我的梦想。因为Ruby代码写得不够,无论Ruby、Gem还是宝石都和我无缘。我还没能建立自己的框架,在编程语言中切换时,我只找成本最低的。

这不意味着我不喜欢代码。事实上,我非常热爱它,要不了几分钟我就想换工作。我情绪激昂地痛恨敏捷方法论,因为总有人觉得这是什么全新的概念,需要我们额外再针对训练。对于技术世界里我这个小角落出的错,我能抱怨好几个小时——更别说整个世界了。

但是,晚上上床的时候,我很高兴有这样一份热爱的工作,能让我保持足够理智却又疯狂地度过整天时间,而不用非得把热蜡滴在手上才能感觉到什么。这是相对美好的生活,本文我想给大家展示一下我是如何以及为什么学会享受它,并上手自己的工作的。

从不讨厌你的工作开始

想要喜欢甚至爱上你的工作,可不是一转念的事情,但不讨厌它还是可以做到的。我进入编程行业纯属偶然——我很擅长计算机,因此,尽管对于编程知之甚少,我还是发了些应用,然后不知怎么的就获得了学徒身份。跟我一起当学徒的还有许多人,他们是自己选择这份工作并努力修炼技能以期吸引雇主的。单编程来说,他们的技巧就远胜于我,且以后还将领先我数光年。

程序员的生活还有其他方面。之后我们会讨论到,不过现在我要总结一下工作中那些可爱、古怪和有趣的小细节。

即便在我的学徒生涯期间,我对数据库的访问权限也相当奢华。而且,由于经常独自探索,我开始研究统计数据。我们的客户里,有多少拥有这个、那个或者还是这个?大众客户会写多少封邮件?通常联系我们的原因是什么?

最后,我有点像数据库侦探了,可以随时在有人需要数据时快速进行研究,或者执行批量更新以节省客服支持人员大量的时间。这从来都不属于我的正式工作职责,但当你利用闲余时间帮助他人时,没人会抱怨。

与我平常的工作不同,我不讨厌这些事情。事实上,这些事很有趣,有时我还能在桌上发现表达谢意的巧克力棒。同时这也会让其他码农喜欢你——即便我不喜欢巧克力,只会把巧克力送给有需要的同事。

在你的工作上“更进一步”

我一直遵循的普适规则就是,在某个领域成为专家,还不如在多个方面下功夫——编程方面更是如此。

想要做好工作,方法很多,或通过努力工作,或只是凭借经验,比别人更快地修复bug。假如你设法坚持一会儿,就会看到看到地平线上的光,并开始理解系统运作的方式,从而发现那些让别人满头大汗,感觉要出错的问题,在你这里能找到小小的变通区域。

我的部分工作还包括诸如“生产数据库测试”的粗暴行径,关于这项工作,我针对实时数据库进行了一系列操作,包括绕过、欺骗、反转和编辑,以修复那些我无法测试出的严重错误,因为数据库每周只复制一次,还永远碰不上需要的时候。“祈祷并承诺”,我喜欢这么说。可能发生的最坏情况是什么?

这可能会使工作中的纯粹主义者陷入小型身份危机,特别是考虑到没有办法对此进行单元测试,而且,毕竟我是唯一在系统里操作的人,没有人来批准我的pull请求,因此我会直接进入管理员分支。绕过这些愚蠢的规则花了我好些时间,才被允许登入管理员分支,我为此骄傲。绝望的时候需要绝望的措施。

上面这些意味着在编程世界中,关于“好”有许多方面。即便那仅仅意味着在事情突然以惊人的方式出现时你在那里,成为那种愿意承担自己错误并处理后续的人。

我深陷于“混乱善良”的角落,但正如我找到自己的利基缝隙一样,在你的整个系统有序的情况下,任务都该死地井井有条,甚至连毫无编程技巧的人都能在需要时取代你的工作,所有工作都分配了合适的故事点,你可以反向思考,寻找你的利基缝隙。设计专业的用户故事(user story),在没有法则的世界中对法则进行优雅的展示——所有这些都会让你的领导在梦中看到你的面孔。

用你的技能做些有趣的事(并学习新技能)

编程是一项工作,在提出挑战的同时也会赋予你能量。如今,我们几乎可以用开源工具和语言来构建一切,教程涵盖了几乎所有你可能的爱好范畴。

因此,使用你的技巧并开始吧,构建一些类似随机报价生成器之类的傻玩意儿,或者类似网站这样为大家解决问题的实用方案(还能让你从订阅费用中获取收益),或者任何只是些看似有趣的项目。我曾经花费了大量时间用PHP构建了一个性爱故事生成器,因为我喜欢自虐,在极其讨厌PHP为时很久之后,我想要了解它。现在回想一下,这个项目可能还得就其自身写篇辩白,可真是太诡异了。

这里的要点在于:大多情况下,你只需要花费时间,而不必花费金钱,并且有很多教程可以帮助你成长。

意识到编程不仅是写代码

我花了一阵子才意识到,同时人们也花了些时间才相信——我是有责任感的,但一点点地,我将整个工作变成了与最初完全不同的内容。如今我写代码的时候相对较少,事实上我写的那点东西也只够让自己记得我是个程序员。

相反,最终我成为了公司里一个相当复杂而重要系统的唯一维护者。我组织自己的工作,与团队和普通同事沟通,参与会议并提供专业知识和意见,并尽我所能来解决问题。

尽管压力很大,但我非常喜欢这种工作方式。没有一天是相同的,而且,由于我处在所有烦人事务的接收端——从小bug引发的大问题,到各种会议,我都不想错过——我总是很高兴待在办公室里让自己保持忙碌。

我还喜欢和其他工作狂一起在办公室里熬到深夜,那些令人放松却又专注的奇妙时刻,各个部门的人聚在一个房间里,肩并肩地工作着,因为就要到deadline了。我喜欢参与这样的并肩合作——被接纳,受到欢迎。花费两个小时在一个连续SQL query中寻找一个丢失的空格很糟,但如果你旁边的人也必须对抗自己的噩梦,这件事倒也没那么难以忍受了。

理解你公司的架构和生态系统

前几周,我们遇到了严重的系统宕机——不是我维护的系统,但原本的维护者和他的临时接替者,还有另一个可能了解情况的人要么生病,要么出国。

我对这个程序的工作原理有个大致了解,于是由我介入,再加上两个跟我一样几乎一无所知的人。但最终,我们设法将错误缩小到单个服务器故障,并与出售给我们系统的第三方公司协作,最终在周六清晨让一切恢复正常了。

当然,对于公司一半的人来说,那天是浪费了。但原本是要浪费的是两到三天。这很容易带来涨薪,因为为了查明错误,我们对于系统的协作运行机制有了大体概念,并深入浏览了日志文件。

老实说,这是最近记忆中最为疯狂的时刻之一,同时也是最有趣的之一。我甚至还收到了部门领导的邮件,写着“干得好”,而他也在偶遇时短暂认识了我。幸运的是,不会一直如此,之后我还可以回归无名氏的角色,谢天谢地!

沟通

在公司的有段时间里,我离被炒仅有几步之遥,读到这里的你很容易理解原因——同样,也是因为我最近受到表扬的那些工作。说来话长,我总结一下,就是沟通使得我的工作被大家知晓,从而产生的区别。

处理所有无用的琐事,比如在别人发现错误并通知你时写感谢信,在bug修复时回应,而且无论别人是否在乎,都要写个简短的一分钟说明,第一时间解释错误发生的原因以及修复的方式。当我这样做的时候,我不仅发现大家(人数令人惊讶)喜欢我这样做,还发现这个循环运行起来,最终结果又反馈到了我身上。应答、回应、预期、准备,每天花一个小时单纯跟人们聊天。

在这件事的过程中,我拾起了如今的座右铭:向傻瓜解释一切,看着他们成为人类。

结论

希望你们喜欢这篇文章,甚至会觉得有用。它确实保住了我的职位,还让我能在树林里买了间小屋,远离技术的喧嚣。感谢阅读!

原文链接:

https://medium.com/better-programming/how-to-thrive-as-an-average-programmer-1dd202540ac

本文为CSDN翻译文章,转载请注明出处。

【END】

更多精彩推荐

☞同期两篇Nature:运行温度高于1K的量子计算平台问世!

GitHub 标星 10,000+,Apache 顶级项目 ShardingSphere 的开源之路

港科大郑光廷院士问诊未来,揭露 AI 最新应用与实践

☞20万个法人、百万条银行账户信息,正在暗网兜售

☞以太坊2.0中的Custody Game及MPC实现

很用心的为你写了 9 道 MySQL 面试题,建议收藏!

你点的每个“在看”,我都认真当成了喜欢

作为一个非天才型选手,普通程序员如何升级打怪?相关推荐

  1. 一个没有混进大厂的普通程序员,10年真实收入变化

    有人说,程序员的高收入和工作年限成正比,认为自己的薪资应该如此计算: private static boolean 计算工资() { //years工作时长(年)int years = 5;while ...

  2. 国企程序员有多香?这是一个普通程序员在国企的每日工作清单!

    都说在国企工作很舒服,没有互联网大厂的996,工作节奏慢,工作压力小,是个适合养老的地方,真的是这样吗? 一位普通程序员分享了自己在国企的一天工作情况,来看看国企的日子是不是真如传说中那么香. 在清单 ...

  3. 十年风雨,一个普通程序员的成长之路(五) 成长:得到与教训

    目录 十年风雨,一个普通程序员的成长之路(五) 一.前言:生活的演变 二.成长:得到与教训 十年风雨,一个普通程序员的成长之路(五) author 妖生 date 2019.06.09 一.前言:生活 ...

  4. 一个普通程序员的生存之道

    我这里的"普通程序员"指的是非技术大拿.非211院校毕业.非高富帅.非官二代.非富二代,而是曾经不爱学习.爱打游戏.玩乐而荒废学业,到目前为止还在为加班.钱途.爱情.家庭苦苦挣扎的 ...

  5. 十年风雨,一个普通程序员的成长之路(七)膨胀、骄傲,程序员转项目经理的原罪...

    目录 一.前言:谦卑与狂妄 二.尊重:远与近 三.原罪:膨胀与骄傲 作者简介:妖生. 坐标合肥,一个普通程序员.十年职业生涯,8年编程.经历了许多事,也有点想法,现在将它们变成文字,书于纸上.如果能帮 ...

  6. 十年风雨,一个普通程序员的成长之路(一)怀念:西安的小黑屋

    受大飞的文字及李莹大哥的影响,也写了篇自己毕业以来,十年生涯的回顾.还在沉默王二的文章激励下一鼓作气把公众号开通了,发了这篇公众号的首篇文章. 终于开通了自己第一个公众号,发表了第一篇文章.看着空白的 ...

  7. 十年风雨,一个普通程序员的成长之路(四)深圳:积累与转折

    飞啊.深圳 2013的春节过后,曹工问我以后的打算.想不想接手[电子税务局]? 我不想在一个地方待太久,我表示我想进[核心征管]. 后来才知道,这个问题其实曹工也问过另一个同事.就算我表示想接手,也不 ...

  8. 回顾2022,展望2023,一个普通程序员的自述和分享

    一.前言 第一次记录自己的年度总结,一直想写,不知从何写起:其实也是自己这两年来了解到的东西,分享给大家,虽然是个井底之蛙,但是也要勇于说出自己的看法,欢迎大佬指导哈.可能自己语言功底太差,这也是小编 ...

  9. 十年风雨,一个普通程序员的成长之路(八)不想做技术总监的项目经理,不是好程序员...

    目录 十年风雨,一个普通程序员的成长之路(八)不想做技术总监的项目经理,不是好程序员 01 技术总监写不写代码? 02 面试的坎坷与杯具 03 新的开始 & 旧的结束 十年风雨,一个普通程序员 ...

最新文章

  1. 让wordpress首页不显示指定分类文章
  2. JS里的居民们7-对象和数组转换
  3. hdu2158 最短区间版大家来找碴
  4. TCP/UDP,SOCKET,HTTP,FTP协议简析
  5. java与android https,java – Https连接Android
  6. Qt文档阅读笔记-写一个简单的单元测试
  7. 干货:用Python玩转数据可视化,炫酷图表是这样做出来的
  8. 多用途app软件业务介绍官网模板
  9. wps电脑版_用好WPS这5个远程协同功能,“宅”家办公啥都不耽误,工作全搞定...
  10. 范例ppt_经营计划与执行管理PPT,全内容商业计划书,完整课件快速套用
  11. VR火灾隐患排查,模拟多种火灾场景
  12. 移远M26实现短信接收
  13. web项目运行时无法重命名MySQL表问题排查
  14. sqlserver战德臣_SQLSERVER补位示例
  15. python项目 from models import * 报错
  16. 用python绘制叠加等边三角形_python 叠加等边三角形的绘制
  17. java 修改Excel表 在指定位置插入行列
  18. 【嵌入式】网络编程_pthread_fork
  19. Java实现 LeetCode 403 青蛙过河
  20. H5页面与原生页面的区别

热门文章

  1. C++ 不定参数(转)
  2. IE7下JSON不能有多余的逗号,IE8下创建IMG节点的BUG
  3. java实现webservice
  4. .NET下 Access与SQL Server的效率简易比较
  5. 快捷方便的对js文件进行语法检查。
  6. XX银行 机器学习平台使用情况访谈总结
  7. 用SQL产生连续的自然数
  8. [FFmpeg] 绘制矩形框
  9. linux系统切换清华源(自带的源下载速度太拉跨)
  10. 魔力转圈圈(快速幂)