My journey as a programmer

What early exposure to Cobol can do to you.

Originally published at https://medium.com/@codeflows/my-journey-as-a-programmer-65b707b04690, updated for 2024!

1980s — Drawing on the flip side of Cobol listings my dad printed out at work. Sadly did not learn the language.

1990s — A friend wrote a game in Pascal (I think). I opened the compiled binary in DOS and wondered how anyone could understand it.

1996 — First used Netscape. Started learning HTML.

1997 — Wrote an intranet system for our high school with ASP, learned how to store data in Access, bought my first Java book.

1998 — First summer job. Modified regexp-heavy Perl scripts without understanding them. Wrote a Java applet that did all the drawing in a busy loop on the UI thread. Started getting into Dynamic HTML — document.layers anyone?

1999 — Built a website for a bank. Minimum browser requirement was IE3.

2000 — Learned (too much) XML and XSLT. Implemented an intranet for a computer gathering using EJBs because why make things simple.

2003 — Wrote a school assignment in O’Caml because it got me extra points. Fell in love with pattern matching and functional programming.

2004 — Probably quite a lot of Spring Framework and Hibernate. Dark times.

2005 — Got seriously into TDD. Like way way seriously. Left a job because I wasn’t allowed to write tests. Discovered Ruby on Rails in the 0.1 era but apparently placed my bets in other technologies. Probably not the best move in hindsight.

2006 — Started working at Reaktor. Was allowed to write tests.

2007 — Read Domain-Driven Design, Refactoring and other classics. Heavily under the influence to this day.

2008 — Probably started to realise mocks and unit tests aren’t always the right answer. Started learning Wicket and Ajax.

2009 — Learned some Scala but it never really stuck with me.

2010 — Haskell. Oh my.

2011 — First wrote node.js. Still doing most of my work in it. Started a 2-year project writing a modern (at the time) SPA with Backbone.js and jQuery in the frontend.

2014 — Deployed my first app in AWS. Learned Bacon.js and FRP.

2015 — Started developing on iOS. Started with Swift, had the questionable pleasure of maintaining some Objective-C as well.

2016 — Wrote working Python, Go, Erlang and Rust code for the first time. Also wrote a metal album and became a dad. Still not sure how I did it.

2017 — react-native iOS/Android app, devops with Ansible.

2018 — Joined a startup. Built an awesome and much-loved service for doctors. Used Kafka and later questioned my choices.

2021 — Started another company. Shipped software in a highly regulated environment.

2023 — New product startup. At this point, I can’t think of a better day-to-day language than TypeScript.