🌞 Earlywork #64: 5 Secrets to Teach Yourself How to Code
How Blake Ward went from high-school student to full-time software engineer
Ello ello Earlyworkers!
Coming to you on a screen, not a magazine, is Earlywork #64, a weekly cheeky newsletter sent every Tuesday that provides free resources + interviews on the careers of tomorrow, for 4K+ young Aussies & Kiwis in the tech, startup & social impact landscape.
If you’re not already part of the Earlyverse 🌞🌐, subscribe now to keep a pulse on our latest stories and conversations:
💡Weekly Cheeky Tip
It’s not every day you meet an Aussie high schooler who leaves school and goes straight into a software engineering role full-time.
When I came across the story of Blake Ward, who hadn’t done any formal courses or bootcamps, I was super curious to understand how he built up his skillset and landed an engineering role at just 18 years old at an awesome Aussie startup like Flux Finance.
Even while still completing high school, he’d been contracting as a developer!
When I cast my mind back to Year 10, I first encountered programming on Codecademy through Python, an interesting but intimidating new world as a kid who otherwise tended towards more qualitative areas like English, history, geography, and French.
I ended up studying a degree in Computer Science because I knew programming & tech were going to be a core part of the future but didn’t feel confident building the skill on my own.
Had I met someone like Blake when I was in school, my path may have been quite different.
In this week’s newsletter, Blake shares his principles on solo programming education from teaching himself how to code as a teenager:
Let’s just get this out of the way: programming can be pretty intimidating for many people, and rightfully so.
The incentives for learning how to program seem pretty small at first glance, and it’s understandable why people just shrug it off and say they’re not cut out for it.
Software plays a massive role in almost everybody’s life. From listening to music, playing your favourite games, even just tapping your contactless card to pay for your morning coffee.
It comes as no surprise that recently, there has been an increase in demand for software engineers and programmers in Australia, and all around the world.
I can relate to those out there who are feeling lost, unsure, or doubtful surrounding learning software engineering because we’re hardly exposed to this, and it’s confusing AF.
At the same time, I think it’s very possible for anybody to learn how to make basic programs and understand core concepts of software engineering.
To me, programming is not just my career. It’s part of my lifestyle – it has opened up my mind to approach all kinds of problems in life with a problem-solver mindset. I think everybody can benefit from programming beyond the computer.
Not only do you gain a better understanding (and appreciation) of how software works, which is helpful for plenty of reasons like troubleshooting, it promotes logical & analytical thinking, creativity, and curiosity.
My first project was a Discord bot made for a few mates when I was in high school.
At 18, I joined a startup called Flux to help improve financial literacy among Aussies.
No degree, no formal qualifications; just a few years I spent working up my knowledge, bit by bit, day by day.
There are plenty of companies who are willing to hire folks without any formal qualifications on their resume, as long as you’re able to prove you’re capable of the work.
So how do you do that?
Here are 5 principles I’ve established in teaching myself to program, all the way from a high school student tinkering around to a full-time software engineer.
1) Choose Your ‘Why’ & Set Tangible Goals 🎯
If the only goal you have is to “learn how to program” for the sake of learning how to program, it’ll constantly feel like a chore and you’ll be much more likely to give up.
There are plenty of resources out there to learn anything related to programming but think about something tangible you really want in deciding to go down this path.
Maybe you want to be able to make a game within the next 3 months to share with friends or build your own personal website from scratch by the end of the year, so you can promote your content.
For me, coding something for a school science fair project was a tangible target I was shooting for in my early days of learning to code.
Whatever it may be, a dangling carrot at the end of the line is a super powerful trick to get you past the initial struggle of programming.
In the process of choosing a less fluffy goal, the SMART framework personally helped me make a lot of progress in self-teaching programming quickly by giving me measurable checkpoints.
As a reminder, SMART goals aim for the following: Specific, Measurable, Achievable, Relevant, Time-bound).
At the end of the day, the most important person who can help you become a better programmer is yourself, but if you’re having trouble holding yourself accountable to your goals, try something like the #100DaysOfCode challenge to publicly share your progress!
2) Get Your Hands Dirty & Dig Deep ⛏
The best way to teach yourself how to program well is to expose yourself to raw source code as much as possible.
Look at code as often as you can; different types of code, different languages, and different functionality.
Initially, a lot of the code or information you find will feel very foreign or arbitrary, and that’s okay.
The more exposure you get to code, the more you’ll familiarise yourself with core programming concepts like loops and conditional branching.
You’ll slowly build up a mental model of the logic required to achieve functional software.
Making your own software is one of the best ways to get familiar with the exact syntax and logical rules used in programming.
Start out simple, but also actively endeavour to reach outside your comfort zone each time. Search for inspiration if you’re not sure what to make when starting out, but even something like a calculator is a great challenge.
GitHub is a central place for code repositories. If you’re looking for inspiration, or want a better understanding of what code looks like, I’d encourage you to go to the GitHub Explore page.
You can see what the structure of existing projects is, and adapt your findings in your software. Think of it like popping the hood on a car to get a better look at the internals.
On top of reading/writing code, you can make small but noticeable changes to your digital lifestyle to expose yourself to the programming ecosystem as much as possible.
Use the command line on your computer more often. Sign up for developer communities/forums. Read the documentation on things that interest you.
If you don’t understand why or how something works, motivate yourself to read more into it. Having an in-depth understanding of a broad range of programming concepts will make you a better developer.
When learning something new, always try to go that extra mile to understand it properly. More than just being able to use the concept, be able to rephrase the concept to somebody else.
It’s a great way to build on top of your existing foundation of knowledge.
3) Plan & Break Down Problems 🤔
Programming isn’t all about knowing “how to code”.
It’s important to have a problem-solver mindset and identify when to break big problems down into smaller ones, so you can work on more manageable chunks of the problem at a time.
Vagueness is your biggest enemy in a project. If you don’t know what you need to do, you’ll feel stuck and frustrated.
If you want to make a game, it’s not much help to attempt to find a solution to “making a game”.
What type of game do you want to make? What platforms should it be available on?
Assume you’re describing the issue to somebody with no prior knowledge. Get as detailed as you can with what you want to achieve, and then you can start to see how to create solutions based on your requirements.
As humans, we’re excellent at making assumptions and extrapolating information (maybe too good). Programming almost requires you to think hyper-literally.
If you’re making a game, and one of the requirements includes the ability for the character to move up on the screen when the up arrow key gets pressed, you could consider it to be three distinct problems to be solved:
Knowing when the up arrow key gets pressed down
Updating the position of the player
Re-drawing the player on the screen in the new position
4) Search, Prioritise & Filter for the Right Information 🔎
Programming is a vast sea of information made up of many areas, a lot of which aren’t relevant to you and your end goals.
However, there’s a lot of information you can find through search engines and online communities which will help you, provided you structure your search query in a concise, simple way, relating to the problem you want to solve.
Look up keywords based on what you would like to achieve, and type in questions based on what you wish to know (typically this will be “how to do
“What’s the best beginner programming language?”
“Make a basic program in Python”
Education in programming has quickly expanded into all sorts of media, and you can likely teach yourself more efficiently and effectively by identifying how you best consume content; how you best learn in general.
Whether you prefer learning through watching videos, reading, or listening, you can build up a conglomerate of information from different sources, all with varying perspectives.
This allows you to better understand the implications of certain solutions, and see how the community approaches the issue you’re attempting to solve.
Errors are common when programming, and you can also use your search engine of choice to look up solutions to common errors.
5) Test Yourself & Set Out to Teach Others 📝
Learning to program is a never-ending cycle of doing research and applying yourself.
One of the best ways to solidify your knowledge is testing what you know, and always applying that slight bit of pressure to keep yourself up to speed! Make sure to revisit concepts to ensure you understand them properly.
There are many methods to test your knowledge, but I’ve had a lot of success taking on coding challenges.
You’re given a set of requirements, like creating a function that converts minutes to seconds, and you need to create logic from scratch to match the requirements.
Another way to test your knowledge is by explaining a programming concept in basic terms to someone who isn’t familiar.
I’ve started a blog + newsletter for this reason: to share valuable insights that I learn, and re-word them differently.
This helps me understand concepts better, as well as the relationships between certain concepts. It allows me to solidify the concept in my head and have it documented for future reference. It’s also a great resource for others!
🌏 Earlywork Community
🐝 The Buzz
What’s been happening in the community?
💼 We're HIRING! Applications are currently open for our first employee: a Community & Marketing Associate. Make sure you check out the JD and apply if you'd love to work with the Earlywork crew.
🤝 Earlymentor Launch
A lot of you have been asking for ways to connect with mentors/mentees in the community - here's your chance! We're kicking off our first Earlymentor program focusing on startup career development. We're now looking for people who are interested in participating in the alpha cohort of Earlymentor.
🦉#after-5 launch: We now have a dedicated channel for virtual co-working sessions after hours on Monday & Tuesday evenings to help founders & side hustlers stay accountable on Mon. Message @brocknroll, @wilson or Elaha Gurgani to be added!
Tuesday April 19th, 6PM - 7PM (GMT+10)
Join us as we host a fireside chat with Utsav Somani (Partner at AngelList India) and @Mayuresh (ChronicleHQ) (Co-Founder at Chronicle).
Tuesday April 12th, 6PM - 7PM (GMT+10)
Save your spot for our upcoming event that digs into the intersection between two super exciting spaces - VC and Web3.
📚 Trending Topics
Our favourite reads and resources being discussed in the Earlywork community.
A guide to APM at Atlassian: the recruitment process & how to prepare: A guide by Earlyworker Izzy Kohout
From Homeless to Creating Rare Breed Ventures: Earlyworker Vidit Agarwal interviews the legendary Mac The VC.
SaaS Marketing Stack - 500+ Best Free & Paid Tools for SaaS Marketers: A curated tools library by Earlyworker Dan Siepen
2 Months as a Full-Time YouTuber: Earlyworker Dan Lombard shares his reflections so far on quitting his startup job to go full-time on making videos online.
1️⃣ 🕐 💪 One Minute Hustle
We are back once again with One Minute Hustle, a bite-sized interview with an emerging Australian young startup founder or operator.
This week, let’s get inside the noggin of a young founder making sustainable, portable and durable furniture out of cardboard 📦
Benji Swersky, Co-Founder & Head of Product @ Yona
⚙️ What are you working on?
People who move often currently find it easier to dump large items of furniture than take them with them.
We want to make products that make it easy to move, set up, pack up, and move again, and if they choose to discard them it has a minimal negative impact.
We're doing this by creating flat-pack cardboard furniture that can be assembled in under 5 minutes, starting with a cardboard bed base.
🌱 How’d you get started?
We had all recently moved and knew the struggle.
My co-founder Gilad had found an old imported cardboard bed that he loved. We then had a "Wouldn't it be cool if.." discussion and redesigned a version that could be shipped pre-built.
We started off selling sample runs from different manufacturers, each of which was our latest iteration and kept on tweaking as we go.
🤔 Why do you do what you do?
I love the idea of pushing a market to get better.
I look at the way electric cars were "meh", then Tesla really pushed everyone to up their game.
I'd love to push people to embrace recyclable multi-use items.
Keen to get a sustainable, portable bed base?
Benji’s given us 15% off with 15EarlyWork at Yona 🛏
Keen to share your story, or know a young startup founder or operator we should feature next?
Share your deets below or send this to your mate, and we’ll get in touch!
Vibed with this piece?
🍵 Shout us a cheeky herbal tea or chuck us a tip at earlywork.eth
If you’ve got a mate who would find this helpful, spread the love and share it: