In their 4 Articles in 4 Weeks - Writeathon, Hashnode asked the question: "What made you want to be a developer?"
This kind of post is not my usual writing style (I usually hide in the technology). Because of this, I thought I would get involved and out of my comfort zone 😟. I should warn you this is not just a story about what made me want to be a developer; it would be a pretty short story. It is also a peek into my 30+ years (and counting) developer career, where I share some valuable lessons learned. ⚠️ If you are less than 40, you will read about some programming languages that now only exist on Wikipedia 😊
TL;DR It was the mighty Texas Instruments TI-99/4A
Planting the Seed
Picture the scene... It was January 1982, and an excited 13-year-old boy from Brecon in South Wales 🏴 opened his birthday present to find a brand new Texas Instruments TI-99/4A. It was not a surprise present. I scoured the computer magazines (there was no internet) and selected the TI-99/4A as the best home computer of the day. Technically I may have been right (it was the first 16-bit home computer), but it was by no means the most popular. Anyway, I loved this computer and proceeded to play Parsec for months on end. If you remember Parsec, I have a 🎁 for you at the end of this post. I eventually got bored of playing games and decided to try and write my own game in TI Extended Basic. A month later, I gave up. I had not gotten far past "Hello World". I was overwhelmed by the world of
goto, but the experience had planted a seed 🌰.
Three years later, after failing my high school exams miserably, I needed to figure out what to do with my life. With limited options and a keen interest in computers, I enrolled in a two-year technical college to study 'Computer Studies', which changed my life. The practical nature of the course meant I spent more time writing Pascal and COBOL code and less time reading books. Within a month, I knew that I wanted to be a developer.
I wanted to be a developer because:
- Coding challenged my creative side but gave me empirical feedback as to whether I was right or not (the program worked or it did not)
- Although collaboration was undoubtedly beneficial, coding was something I could succeed at on my own
- Programming could be frustrating, but I got a great sense of satisfaction when I got it right
- I could start with a baseline of knowledge, but there was almost no limit to how much I could learn
- Each program had multiple reasonable solutions, and I got to decide which one was right for me
- The challenges were endless. Every day there was another problem to solve
- I could always rely on code being consistent (even if I wasn't). If you believe code can behave randomly, then programming is probably not the right thing for you. I mean, it does happen sometimes, but...😊
After two years, I left the technical college (having finally passed some exams) and enrolled in a Polytechnic. This three-year course with a middle year of work experience made me realize I could make programming a career. During the middle 'work experience' year, I worked for a UK Dairy company and spent my days solving problems with Lotus123. By the end of the year, there was nothing I couldn't do with Lotus123. I felt like I had mastered something and that I was valuable.
- There is nothing like industry work experience. It tells you where you stand and gives you confidence
- Learn from practice and supplement with books (not the other way around)
- Break complex problems down into small pieces before you tackle them
- Take a look at a problem, live with it for a few hours, then take a break. 99% of the time, it won't look as bad when you come back to it later
- In all likelihood, someone has already solved the problem. If you get stuck, reach out to someone, most people are happy to help
- Be one of those people that are happy to help. It usually pays off in the end
Tech Stack: Dbase desktop database and Pascal running on a generic IBM compatible PC running MS/DOS.
After leaving college, I re-joined the Dairy Company full time and graduated to coding in 4GL on the Ingres database. 4GL was my first experience with a relational database and building graphical interfaces. I loved it. After another two years, I saw a truck go by with "Come Work for Oracle" emblazoned on the side. Six weeks later, I worked on-site at my first client for Oracle Consulting. It was one of the scariest moves of my career. I didn't have a clue what I was doing, but it was thrilling. Every six months to a year, I would finish a project and move on to another project. I gained years of experience on every project and saw the world while I was at it. I worked for Oracle consulting for 19 years implementing and extending Oracle ERP (EBS and ERP Cloud).
- Don't be afraid to move jobs to get the experience you need to become great at what you do
- Consulting is the best way to broaden your experience quickly. It is also a great way to see the world
- Consulting allows you to work with different developers on every project. Working with different people exposes you to different ways of doing things as nothing else can. It also allows you to measure yourself against others and track your progress
- As you get better at coding, you will be tempted (and even pressured) into moving into management. This happened to me at Oracle Consulting. If you love coding, don't listen. The further away I got from the technology, the un-happier I became
- Try and learn as much about the business you are developing solutions for as you can. This helps you build better solutions and makes you more valuable
- Aim to master one programming language and build out from there. Flitting about from one technology to another inhibits mastery
Tech Stack: Sun O/S, Linux, Unix, Oracle database, Oracle PL/SQL, Oracle Forms & Reports, Oracle Workflow, Oracle BI/Publisher, and Oracle APEX.
Six years ago, I left Oracle and started my own consulting company. This was the scariest move of my career. I vowed to focus on technology and only work on things that interested me. I re-focused on Oracle database technology and developing in Oracle APEX and Oracle REST Data Services (ORDS). I am leveraging my years of Oracle ERP technical experience with this technology and have found my niche.
- Work on technologies you love to work on. I have an 80/20 rule that covers this. If I spend 80% of the time doing something I love (coding, writing, and learning), I am OK with spending 20% of my time doing things I don't love (testing, sales, billing, etc.)
- Work somewhere you feel useful and are appreciated
- If you have skills outside programming, try to leverage them along with your programming. It helps you to stand apart from the crowd
- Getting involved in the developer community for your chosen tech stack pays dividends
- Blogging about something helps you understand it much more clearly. It also gives you a lot of satisfaction and, if done well, can be used as a critical piece of your resume
- Many programming languages come and go (I can attest to that). It is not always possible to predict which ones will last, but I would say it doesn't really matter. If you are doing what you love and you achieve mastery, then you are well placed to jump ship if you need to
Wherever you are in your career as a developer, good luck!
If you made it this far, here is your treat. Parsec running on the TI-99/4A!
Image attribution for the picture of the TI-99/4A:
- Rama & Musée Bolo, CC BY-SA 2.0 FR, via Wikimedia Commons