My Biggest Regret As A Programmer

本贴最后更新于 3179 天前,其中的信息可能已经时移世改

A little over 20 years ago I was at a crossroads. My second company was petering out when our 5 years of building Deltagraph for the publisher ended (they wanted to move into the nascent internet space). At that point I had 13 years experience as a programmer but also 9 years or so experience running a company (at the same time).

I no longer wanted to do both. My first company 85-87 not only built a new kind of spreadsheet program but also published it ourselves. I led the company, did all the press interviews, managed the investors, did all the usual business stuff and also was one of the three programmers and the UI designer. After we shipped the product in early 87 I also wound up in the hospital. Trying to be both leader and programmer was simply too much.

So at that point in 1994 I could have gone either into technical management or continued as a programmer. I chose programmer because it was easier. Today I now realize how wrong I was despite all the great stuff I’ve been able to work on and ship over the past 20 years. Going towards the CTO/CIO/VP Engineering route, which was fairly new back then, would have been a much better plan.

I was in the Bay area for a year around 1995 and worked at Apple for the last half. Apple looked to be falling apart and I left to return to Texas as I didn’t want to see my favorite company die around me. Big mistake.

Not only did Apple begin a huge turnaround a year later when Steve came back, but the whole Dotcom explosion happened. Being both an experienced programmer and leader who understood what it took to deliver (we did 9 major releases of the apps during my time, all of which I built the master floppies for, with no need for hot fixes which were hard to do then anyway) I can only imagine how in demand I could have been. Once you get to the level of one of those titles you can keep moving forward and up.

My sister started as a programmer 30 years ago but jumped into management within the first year and has been a VP at a big company for the past 15 or so years. The huge parent of the travel company I worked for a couple years ago had a CEO who started 15 years earlier as a programmer. Of course these types of jobs can be hard and unpleasant but for that the renumeration is way greater. My sister has 10X the assets I have.

Over the years I’ve seen how little ability you have as a programmer, no matter how good you are, at making a difference or changing things that are broken. I simply didn’t realize how little room you have to advance as just a programmer (or even architect or the like); the power to change exists at a level not available to you as a mere delivery device. Add to that the financial benefits, the higher likelihood of substantial IPO participation, and all the other things you gain access to, and being a programmer means you have to be happy with the opportunity to build cool things.

Over the years the worst places I’ve worked or helped as a consultant for those 5 or so years I did that were almost always due to inept, incompetent or downright idiotic technology management. There isn’t enough room in this blog to list them all.

Take the VP of engineering for a bank who remarked that he didn’t need to understand technology as he managed people, yet still made technology decisions. The CIO at the same place never believed anything his employees told him but believed everything vendors told him. Of course we knew he was taking kickbacks as we kept buying things we had no use for and he kept writing articles for them relating how wonderful their products were for us. Yet we used almost none of it. Some time after I left he was fired and perp-walked out of the company yet immediately got another similar CIO position.

The worst job I ever had started out as what I thought would be awesome. A post-startup had a successful niche in their industry; both they and their arch-rivals (different niche) both wanted to launch into a broader public market and the market was heating up. I was hired as a second programmer. The other programmer and manager had been hired to build a new broader online store as the existing one was too inflexible and slow for a big market. The company had zero technical leadership otherwise, the CEO and the other two founders had no technical experience or knowledge. The programmer constantly talked about how wonderful his backend code was and the manager supported him. I built a front end piece, put up demos, checked in my source every day. When I thought it a good time to integrate I discovered the other programmer after 10 months had checked in—nothing. When I pointed this out the manager said “he never checks in anything until it’s perfect”. Yet no one called this out as stupid other than me. I spent the next two months trying desperately to get the 3 founders to bring in people who could actually deliver (I knew several people) but they were afraid to make any changes and admit they had screwed up in hiring these two guys. Eventually I gave up and left.

A year later after still getting nothing from this guy they fired both of them. They tried to hire some consulting firm but got nothing from them either. By this time it was too late. The rivals? They became a billion dollar public company and I see their commercials on TV sometimes. I always want to throw a shoe at the TV when I see them. We had everything but a damn store and in reality actual technology leadership. If I had been such a person instead of a programmer I would have had the track record and clout to make it happen. But all I was was a programmer.

I could go on and on but the key is that you can’t make changes in how people do things in a technical sense unless you have the ability, the authority and the opportunity. Once you make that call and assuming you find the right places to grow, the sky is really the limit.

When I was on TV (Computer Chronicles) in early 1987 showing our product Trapeze the other presenter was Mike Slade who was product manager of Excel. At the time young me thought him some random marketing weenie (young people can be pretty stupid). Yet he started all these companies later including ESPN, worked for Apple in various leadership roles, was a good friend of Steve Jobs and started his own VC firm.

And today I am still just a programmer. Who’s the weenie now? I doubt I will ever be able to really retire. Thankfully I am still good at delivery (I was recruited into my present job by a former manager who needed what he knew I can do) but still all I will be until I croak is what I am now.

Being a programmer for nearly 35 years and still being able to get things done and ship is still fun and I’ve been able to work on amazing things over the years. But I can still feel the regret of not seeking the challenge of just leadership. In some ways programming was the easy choice. Given how close I got to the whole Dotcom timeframe, or even the return of Steve to Apple, and still had recent leadership experience, I could have been almost anything.

So yes I regret not taking that choice and seeing where it would have led me, yet I would have missed all the fun of writing code and the soul-draining jobs that often come with it where you can’t really fix anything.

I came to a fork in the road and took the one less traveled. Perhaps now I realize why.

source: http://thecodist.com/article/my-biggest-regret-as-a-programmer

  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    574 引用 • 3533 回帖
  • 遗憾
    2 引用 • 8 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 可以翻译下么?

  • ss

    @Vanessa 一个愤世嫉俗的老程序员瞎掰掰。关于做程序员还是做管理纠结来纠结去。做了很久程序员就羡慕管理的,做了管理的觉得管理的人很傻就觉得还是程序员好。纠结来纠结去截止文章发稿,作者觉得还是程序员好一点,还是啥好?不知道现在改了没有。
    看看这个纠结劲:

    But I can still feel the regret of not seeking the challenge of just leadership. In some ways programming was the easy choice. Given how close I got to the whole Dotcom timeframe, or even the return of Steve to Apple, and still had recent leadership experience, I could have been almost anything.

    So yes I regret not taking that choice and seeing where it would have led me, yet I would have missed all the fun of writing code and the soul-draining jobs that often come with it where you can’t really fix anything.

    啊,真替他纠结啊,到老还惦记着 return of Steve to Apple 那件事。直接最适合做一个湿人了。

  • ss

    原作者很的样子。

    When I started programming for money in 1981, there weren't a whole lot of choices to argue about. I started with Fortran but was also exposed to various assembly languages, Jovial (the precursor to Ada), Pascal and someone once handed me some sample code written in PL/1 which gave me a headache. I had used Basic and a little APL but that was pretty much it. I knew of Cobol, at least enough to run away. Most people just knew one and maybe a little assembly.

    ...

    When I started coding in C in 1985 I didn't change languages (other than a dab of 68000 assembly) for 10 years. Eventually C++ become an on-again-off-again lover. Objective-C came and went and came again bigtime. Java dominated for a while while Javascript waxed and wained and waxed so many times like some kind of Karate Kid metaphor. In the past decade I've dabbled in Ruby briefly, dissed PHP in this blog and then learned to appreciate it (this blog is still written in it) and then had people scream at me to run away.

    Of course I've longed to go deep functional with Haskell or Erlang or Scala or even Clojure but the brain isn't functional enough to add another language at this time. Someone pointed out Rust as a great language but I really wanted to learn Metal. Somehow I spent a swift time learning Swift but it kept mutating while I coded. Any more language puns and I will be Brainfucked.

    ...

    用过这么多编程语言语言:

    Fortran->PL/1->Basic/ APL->C->C++ ->java->javasrcipt->php-> Haskell or Erlang or Scala or even Clojure -> Metal ->Swift

    结论:

    You could give up programming languages entirely except for APL. I guarantee once you master APL your brain will explode and the problem will be solved without exception.

  • 转管理后,静静的写下代码就是一种享受

  • @Vanessa http://blog.jobbole.com/99428/ 这里有翻译,不允许转载,直接贴链接了。。。

推荐标签 标签

  • 996
    13 引用 • 200 回帖 • 11 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8447 引用 • 38477 回帖 • 154 关注
  • danl
    146 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    5 引用 • 15 回帖 • 102 关注
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 105 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖 • 1 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    409 引用 • 1246 回帖 • 587 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    126 引用 • 169 回帖
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    728 引用 • 1273 回帖 • 1 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 1 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    7 引用 • 40 回帖
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 1 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    178 引用 • 997 回帖
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 789 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 163 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1520 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 14 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 637 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 86 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 76 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖