A step into the unknown: Day 1
19th May 2022
Today is the first day of my journey into building a technology business in the golf industry.
Yesterday was my final day working for Accenture as a management consultant having been in the industry for 8.5 years with KPMG, BCS Consulting and briefly Accenture.
In that time I have worked with excellent people from start to finish, and learnt alot about myself and the financial services space. Whilst the challenges of the job were engaging, the subject matter itself never aligned with my personal interests.
In that very 'millennial of ways' I have decided to reset the career clock, and shoot for something more aligned with the things I choose to read about, and spend my free time doing.
My interests have always been fairly straight forward. I love all sports - football, tennis, squash, rugby, skiing etc. but the one that really gripped me was golf.
I started playing regularly when I was 17 and have been hooked ever since. So when considering what kind of industry I wanted to build a career in, I decided to start with golf.
Playing golf professionally starting at 32 would be impossible even for Tiger Woods. So I knew I would have to look on the edges of the game for a career path. After considering a few different options I decided that trying to build a business in the golf industry would give me the mental stimulation I need, whilst allowing me to focus on a topic that fascinates me.
As a golfer who loves to play new courses, I feel like I have identified some issues with the way golf information is presented on the internet. As a result I decided it might be a good idea to provide a website that would provide better information to golfers. One slight problem with that plan is that I literally have zero coding experience or computer science background.
Doing a bit of research into the 'indie hacker' space and reading and listening to a dutch guy called Pieter Levels (founder of NomadList) was enough to convice me that it is possible to learn to code; albeit probably very difficult and challenging. However, having the product I want to build in mind, gives me a very tangible challenge in which to learn the technical side of web development.
So why not just hire a developer to do it for me? Well I have no indication other than my own instinct, that the market wants my product and I'm not going to spend all my savings finding out...
When my risk averse instincts kick in, I remind myself that knowledge of computer science and coding is now almost a pre-requisite to land most jobs in the lucrative big-tech industry. So even if my own plan turns out to be a disaster, a year of learning to code is likely to add more to my CV than another year working in the risk function of a big bank. That's what I tell myself anyway; when I feel that 'no income anxiety'...
During my farewell conversations with colleagues and clients alike it struck me that so many people had considered leaving their career to follow a passion, or even to learn to code. So I thought it might be worthwhile writing this blog regularly as I go through the process, just in case my experience becomes useful for someone else at the same crossroads I found myself in at some time down the line.
That's enough for blog one, I have not even worked out how to get people to subscribe to this blog via email on a no code website builder, so please pray for me!
All the best,
Michael
The first 250 days of learning to code: Day 251
January 25th 2022
Well I've done a terrible job of writing this blog regularly so let's catch you up on the last 250 days.
Quitting my job - May 2022:
My final day at BCS Consulting/Accenture coincided with the BCS Ball, a black-tie event marking the end of BCS as a separate entity following its acquisition by Accenture.
It was an unusual way to say goodbye. Usually, a farewell gathering in a city pub or bar with close colleagues is in order. But in this case, I had almost the entire company in one room.
The BCS Ball showcased the best of the company - a community-minded firm where you could make real friends and where work events were even fun. It emphasised what I had to lose.
After a short break playing golf in Nottinghamshire, I attended one of my best friend's weddings in a French chateau. This marked the start of my sabbatical, possible third-life crisis, and journey into software entrepreneurship.
Deciding how to start - June 2022:
As I mentioned in my first blog, my principal ambition is to launch a golf related software as a service (SaaS) business.
By this point, I had already built a fairly detailed database (…well Excel spreadsheet) of golf course information. So all I would need to do is learn how to code enough to put a really simple version of that live on the internet. In my head the only key features it needed were:
- Table of data;
- Pagination (because it's a big table of data);
- The ability for users to add data (aka CRUD); and
- Ideally some permission controls to avoid spammers.
How hard could that be?!
I knew I could do most of that in a Google Sheet within few days. In fact, NomadList, which is a website containing information useful to 'digital nomads', started life as a simple Google Sheet. NomadList was created by a legendary Indie Hacker (read independent programmer, entrepreneur guy) called Pieter Levels. I had read enough about entrepreneurship to know the general consensus is to get a basic product (MVP) live as quickly as possible in order to see if anyone actually wants to use it! In fact many Indie Hackers are even skipping this step and checking market demand with a simple sign-up or Stripe payment link.
I did a bit of research into the path of least resistance for this type of site, with an MVP in mind. This led me across nocode options like sheet2site.com and a very cool API for creating CRUD tables called DataTables and an extension of that CloudTables.
I decided in the end that sheets2site didn't meet my minimum feature requirements, because of the permissions element; but CloudTables was a really good option to go on with. At this point, I could have decided to put up a nocode website solution (e.g. WebFlow, Wordpress etc.) and work out how to embed my CloudTables within that but I felt that:
- It wouldn’t actually be that quick because I would have to learn Webflow and CloudTables;
- If I did get any traction, I knew it wouldn't scale in the way I envisaged - so I would have to start again; and
- I wanted to learn to code myself, because I see it as a skillset that gives a person massive general life freedom etc.
So I decided to park the nocode MVP (queue successful SaaS entrepreneurs throwing their hard drives at me) and actually learn to code. This was almost entirely inspired by Pieter Levels convincing me it was doable.
First Contact with Coding - June 2022:
Having done some online research about how to learn to code, I got started on freeCodeCamp's (FCC) responsive web design course , which is basically learning how to code what the front end (bit you can see) of a website looks like in HTML and CSS.
Me and FCC hit it off straight away. I could not believe such an incredible learning resource was available for free, for anyone on the internet. I ploughed through the course over about a month. Alongside this I was continuing to grow my golf TikTok page and also play golf whenever a good opportunity arose. By the end of that month I knew a few things:
- I liked coding (phew)!;
- I didn't feel I was terrible at it, it generally made logical sense; and
- I felt like I was on the right path.
I then quickly moved onto the JavaScript coding course with FCC.
Now this was a different experience entirely. The first course, was what I would call project based. You would get a preview of what you were going to make appear on screen, and then you would be guided through the code needed to get there. It was simple, and gave regular accomplishment related dopamine hits as you went through.
The JavaScript course was very different it started with a module with 120ish sub-tasks which were very much like reading a textbook, but on screen. It felt slow, unrewarding and I wasn't sure I was learning anything! Spirits were down. In fact I was so demoralised that you could say I had a minor PANIC!
Was I doing right thing? Why had I given up a well-paid job? I'm going to fail! All the good stuff, basically. This one JavaScript course debacle had really knocked me off course.
Accidental Sabbatical: July - October 2022:
As my coding progress ground to a halt, my social calendar really picked up the slack (not the chat app), including:
- Starting a golf related podcast
- A bucket list trip to watch the Open at St Andrews and playing some of the best courses in Scotland, Carnoustie, Kingsbarns and Trump Aberdeen to name a few
- My British Open golf TikTok videos being featured on Golf Digest and Zire Golf's Instagram channels
- My LIV golf TikTok videos going viral
- My beginner golf series of videos going semi-viral
- My stag do and several other really good mates' stag dos and weddings
- My own wedding and honeymoon in October
Amongst all this fun, there definitely was a sense of guilt and anxiety over me not progressing on my ambitions. At first it really bothered me. Then I decided to accept that I had worked my tail off for 8.5 years in the corporate world, and taking it a bit easy for a few months during the summer was not the end of the world. I needed to think and manage my progress with a medium term mindset.
In hindsight, I am so glad I had that bit of separation. I feel it allowed me to do a mental reset and when I came back to coding full time in late October after my honeymoon I felt like a new man.
Starting the bootcamp: November 2022 - January 2023:
After falling out of love with FCC, I felt I needed a new method of learning.
Initially I just tried to go back to building my website, and Googling everything I needed to know conceptually, as and when I needed to know it. This is what Pieter Levels (PL) recommends. However, I did start to worry that PL may actually just be a genius / workaholic and his advice may be terrible for mere mortals...let's hope not.
This worked to a point, and certainly worked for the front end, especially when I discovered Tailwind UI and the ability to cheaply (less than £50) buy ready-made front end code, which I could adapt to my own needs. However, I found whenever I needed to do anything beyond basic front end coding I just did not understand the fundamentals of actual programming, which would grind me to a halt. An example, I literally didn't know what a variable was, I was that basic. After tutorial / Google purgatory, and getting semi-abused on the prickly forum that is Stack Overflow I decided I should learn a 'real' programming language, either JavaScript or Python.
As luck would have it, a golf friend of mine had recently applied to a coding course provided by Hyperion Dev, and funded in full (£7k) by the UK government. With this in mind, one night I was coming back home on the London Underground and spotted an advertisement for that very course.
I decided to apply that evening. It required some coding tasks and a bit of CV type information. A week later I had my application accepted, and more by luck than by judgement I had landed on this course for free. Apparently 12k people had applied for the few hundred spots, which gave me a confidence boost to keep going.
My course was on full stack Web Development on the MERN (Mongo, Express, React, Node) stack. In theory if I learnt all this I would be able to develop complex websites; exactly what I needed to learn to launch golflists.com
Of course, what was the first item on the syllabus? The dreaded JavaScript!
This time, I found the course materials and task based approach much more consumable and learnable and began to fly-through the course, trying to keep in the top 20 on the leaderboard as I went along. The competitive element of the bootcamp was definitely an added motivator.
Where am I now? January 2023
As I write this I have just completed a task to build a fairly basic React front end website for a clothing store.
I can actually use JavaScript to make stuff happen on my websites. Next I am learning more about backend development and databases with Node and Mongo as I finish the course. As a bit of a time capsule comment Chat GPT has just been released which is likely a game changer for the world, but certainly for learning to code. It's a bit like having a personal tutor on your desktop.
By the time I finish the course in the next month or so, I should have enough knowledge to go full steam ahead with getting golfclublist live. And in that sense I am happy that my ambition from day 1 remains the same and I just wish I had started coding 10 years ago!
My key takeaways over the last 250 days are:
- Start with learning HTML and CSS to get some early momentum but know that this is the easy bit
- Quickly move onto learning JavaScript because it is a full stack language (i.e. you can do everything with it to some extent)
- If you're going to do a bootcamp - I recommend doing some free online coding first to get familiar with the basics of writing code
- I recommend writing some code in a desktop IDE (live Visual Studio Code), rather than just on the IDE's provided by resources like FCC.
- Sometime coding stuff just doesn't work and you can't out why because there is so much you don't understand! I have found re-writing the code sometimes fixes invisible bugs.
- I am surprised by how much I have loved the actual craft of coding. I thought it was more of a tool, or means to an end, to get golfclublist live - but it's reassuring knowing I enjoy coding, just in case golfclublist itself flops.
I really do wonder where I will be in another 250 days?! Hopefully my next blog won't take that long to be produced!
All the best, Michael