fbpx

Hello, (Tech) World! Learning about coding

coding

ARTICLE SUMMARY

Tilly Chow from SheCanCode shares her experiences of learning to code.

Before we start, it’s important to understand that, to be a “woman in tech”, you don’t have to be the clichéd programmer. Not all are perpetually swamped in an oversized hoodie (with the hood up) and consistently fuelled by coffee. Not all “women in tech” code, there are some that are entrepreneurs, others that are product managers and others that are in charge of product design.

“But Tilly, stop beating around the bush – I’m actually just interested in coding.” Well then, speak friend, and enter! Although I’m by no means experienced (I’m not even really confident calling myself a coder at all), I offer my tuppence on the resources and steps I found useful in my own journey so far.

Step 1: The Basics, with Harvard CS50x

When it comes to taking that first step towards coding, the thing that flings most people into an endless abyss of procrastination is the age-old: “There’s so much out there: I don’t know where to start!”

Well, panic no more. Before you dive into the nitty-gritty, might-as-well-be-Greek sounding words like PHP, IDE, Erlang and the Document Object Model, ZOOM OUT. Step back. Breathe, and pace yourself. Before you get to any of those details, it’s so crucial to start from the basics.

That’s where Harvard University’s CS50x course (self-paced and available for free from edX) saved me from a lot of heartache and agony. This course is so popular it’s been described as an almost-cult (!) before.

Receive lectures from Dr David J. Malan (a Harvard Professor in Computer Science), complete with interactive problem sets, and an almost-celebrity-status team of mentors, all from the comfort of your own home. Honestly, for a big fat price tag of £0, I don’t think you can get a better course than CS50x.

coding classThe best tip I have here is that no matter how basic you think these introductory courses might be, DON’T SKIP ANYTHING. You’re allowed to watch lectures on 1.5x speed (it’s my favourite trick), but DON’T. SKIP. ANYTHING.

If you think you already know the difference between binary vs decimal; if you topped your year in maths at high school and think you know everything about integers or if you’re dying to move straight onto your “sexier” courses like JavaScript and Ruby on Rails, there is fundamental groundwork that you need to grasp first. My source? My own experience. Listen. I’ve done the skipping thing many a time before, only to tear my hair out and have to come back to the basics, tail in between my legs, when I feel blocked when learning the “fancier” stuff. Trust me on this one: your future self will thank you later.

Step 2: The “fancier” stuff

Got your fundamentals etched into your memory yet? Feel so confident you can tell your <div>’s from your <span>’s in your sleep? Congratulations – you’re ready to dive into something meatier.

At this stage, you will know that (at least if we’re talking about web development) programming languages might be broadly categorised into front-end and back-end.

  • Front-end being whatever you are able to see on a website For example the words – that’s HTML; the pretty colours – that’s CSS; and the interactive elements such as alert windows and clickable buttons – that’s JavaScript
  • Back-end being the magic that happens behind the scenes. For example, if you went onto Airbnb, you wouldn’t be able to see the algorithm behind the scenes matching you to your next holiday destination, but you know it’s there and it’s working.

coding web developerWhen it comes to choosing whether you want to be a front-end or back-end engineer, there’s no set rule. In fact, being a “full-stack” engineer (i.e. you’re comfortable with both front-end and back-end languages) means that you can build an entire, fully functioning website on your own, which may make you extremely in demand later on, when you want to consider tech as a full-time career.

With that in mind, I started The Complete Web Developer in 2019: Zero to Mastery, which I bought from Udemy for just £10.99 – cheaper than two lunches in London! Of course, you don’t have to take this exact course, but what I would like you to take away is HOW I chose this course out of so many others I could’ve chosen – six particular factors made my decision beyond easy:

Reviews & Ratings:

On established platforms such as Udemy, edX and Coursera, courses will often have reviews and ratings. I chose Andrei’s course because it had almost 20,000 ratings, averaging 4.7 stars. 20,000 people can’t be wrong!

Price point:

Nowadays, coding bootcamps are all the rage. (Don’t know what bootcamps are? They tend to be immersive “schools” where you pay around £10k – depending on which provider you opt for – for a very comprehensive crash course in different areas, from Web Development, to Data Science and Cyber Security. (Check-out SheCanCode’s Bootcamp Directory). The idea is that, in a couple of weeks/months, you could get from not knowing a line of code to being hired by top tech companies as software engineers. Some famous London-based providers are Le Wagon London, Flatiron School and General Assembly.) Whilst bootcamps are a great option for those who can afford it and are very sure that they want to commit to a full-time position as a software engineer, especially for somebody like me (I’m a full-time student), it’s just too expensive. In these cases, online courses are a great alternative.

* Pro tip: Regarding the Udemy course I recommended, don’t panic if you click on the link and the “normal” price is listed as £199 – Udemy does extremely frequent sales where the price drops drastically – if you check back at the right time, you’ll easily find the same course available at £10.99.

Instructor:

It almost goes without saying, but spending 30+ hours of lecture time with one person is a huge commitment. If you were doing this course in the evenings after work or school, I’m sure you wouldn’t want to be sitting in front of the computer screen watching some boring uninterested instructor drone on and on about some programming concept or other. In the reviews & ratings, look out for particular comments which talk about HOW that particular instructor teaches. Does it suit your learning style?

Relevance:

The best thing about this course is that Andrei (the instructor) avoids a very common trap that other instructors fall squarely into. What’s that? Wasting a load of time on now-obsolete conventions or syntaxes (jargon-buster: “syntax” is just a fancy way of saying spelling, grammar & punctuation, only in programming rather than normal human languages). As programming evolves at break-neck speed, the hottest thing today might be considered bad practice tomorrow. The beauty of online courses is that you tend to get lifetime access the moment you pay, and they get updated frequently (if they are well-maintained) to catch up with the latest best practices and trends.

Community:

Whatever course you choose to take, there will be moments when you’re trying to do the exercises and, for the life of you, you just cannot figure it out. That’s where community comes in. At the beginning of Andrei’s course, every student is invited to join the course forum, which is kept very active. You can find mentors and buddies here, and Andrei himself often posts inspiring success stories and coding challenges into the #general channel.coding career

Career prospects:

Whilst you shouldn’t trust this too much as a metric, it’s normally a fair indicator of a high-quality course if alumni/graduates have been hired as software engineers. In Andrei’s case, many of his students have landed roles at big names such as Apple, Google, Amazon, JP Morgan and IBM.

Step 3: Put your skills to the test

Wow – look how far you’ve come! If you’ve been super dedicated, it might’ve only taken you a couple of weeks to learn how to build an entire website from knowing no code beforehand. But wait – just because everything made sense during the lectures, does that mean you remember it all? Even if you can, can you put it all into practice?

We’ve all heard the age-old phrase “if you don’t use it, you lose it”. Nowhere is it more true than in coding. Again, I’ve been there and done that: I would painstakingly complete an entire course on JavaScript, only to end up not using my new-found knowledge to build something tangible. Then, within a few weeks – lo and behold – I’ve lost everything I learned. (Pro tip: Make notes! Lots of notes. Personally, my favourite note-taking software is Bear, as it has features that allow you to mark down code/code blocks as opposed to normal text.)

So, in this section, I’m going to highlight a couple of ways I try to keep up my coding knowledge rather than let it slip away between the cracks of my memory.

coding challengesCoding challenges:

Numerous free coding challenges exist – I love Codewars. You act as a warrior, earning badges and allies while tackling progressively harder challenges. Sometimes, I solve challenges in 10 lines while others need only 2. Simplicity is key; the beauty of programming. These challenges boost confidence and refine elegant coding ability.

Start a personal project!:

Got an app idea you’ve wanted to build for ages? Your Aunt Flo wants a fancy personal website to showcase her latest cakes? Now’s your chance to shine! Get your hands dirty by building something tangible with the skills you’ve just acquired. It doesn’t have to be perfect – far from it. Everybody has to start from somewhere, right? At points it might be frustrating, but the high you get as you get so comfortable with your language of choice you can feel the code practically spilling out of you, is probably one of the best things about programming (there’s a name for it too: “coder’s high”!).

Ready to move to real life?:

We’ve been coding at home (or a nearby coffee shop with WiFi). You might feel unsure telling friends. You do know coding, but may doubt if you’re a coder (Impostor Syndrome). Similar to a singer who only sings in the shower, you’re missing the real-life tech community, which is welcoming and supportive.

Meetups & Hackathons:

Once you feel ready, sign up for meetups and hackathons. There’s a load of free, high-quality events out there (I like Hackathon.com, Eventbrite and Meetup.com). These range from casual meetups where coders bring their laptops and work on their own stuff, to large-scale hackathons. Jargon-buster: A “hackathon”, often shortened to “hack”, means a group of coders or even designers and entrepreneurs get together and create an app from scratch often over just 1 or 2 days – hatch London is a great example).

And that’s all from me. I myself am still very much a beginner coder and during my role at SheCanCode I have really grown passionate about helping more women consider transitioning into a tech career. If any of my tips above resonated with you, or you have any comments, let us know.

Happy coding!

100 days of code

P.S.: Check out #100DaysOfCode – you’ll be glad you did.

RELATED ARTICLES

Jess Mant, a newly qualified solicitor in Womble Bond Dickinson's digital team, shares her journey into technology law and offers key advice for aspiring female...
Join us as Sonny Patel, CTFO at Socotra, delves into practical and actionable advice for women aspiring to reach top executive positions like Chief Product...
Dr. Nosheen Gul, Computer Science Course Leader at Ravensbourne University London, shares her inspiring journey as a woman in tech, highlighting the challenges she faced...
Dr. Naureen Farhan, Course Leader for Creative Computing at Ravensbourne University London, shares her insights on succeeding as a woman in tech.