I started my coding journey with zero knowledge of code — so I’m a beginner.
Not one of those ‘beginners’ who studied Computer Science for 4 years at college and university; not one of those ‘beginners’ who has always been into computers since they were in the womb and everything techie just came naturally to them; and I’m definitely not one of those ‘beginners’ who has been working in Tech for most of their adult life and are a little rusty on the old Python syntax but codes day-to-day in other languages.
I am an *actual* beginner!
I did not study anything closely resembling Computer Science at school or University. I was never exposed to coding in any capacity (no, not even HTML). I thought coding was the green gobbledygook you saw on the screen in the Matrix movie (joke…not really). I had never even opened my Terminal before (seriously). And up until quite recently, I had never imagined a time where I would ever want to be a Software Engineer or Developer (let alone even try).
This was very very new territory!
Starting Out
Learning any new skill is difficult when you don’t have an existing structure, but regardless of what you are learning — if you’ve never done anything similar, you will be starting your journey from zero. And that is very difficult.
As I embarked on this journey I was expecting to be welcomed into the fold by wise, intelligent techie folks who were keen to tell me the secret to being a good coder. Unfortunately, like so many industries, my queries and calls for help to the online coding community was met with silence or knowledge gatekeeper type mentalities. “When you know ‘X’ amount of code, then I can help you” is what I was constantly told. No one was willing to point me in the direction of how I get ‘X’ amount of knowledge.
So I did what any person with a vague curiosity but no idea as to what they were looking for would do…I Googled it.
Me: “How do you learn to code?”
Google: Online Tutorials / Bootcamps / Coding is hard / Code Newbie Challenge / Learn to code for £600 / Special Offer / JavaScript / Web Development for beginners / How I learned to code / Bootcamp / Code Academy / Udemy / Learn to code for free / Online Course / Code For Free / General Assembly: Intro to Python Programming for Beginners /
Me: Clicks link to General Assembly website, sees “No prior coding experience required” for course, pays for course.
Who Let Her In?
I arrived at General Assembly London branch and entered a room filled with keen learners all with their laptops opened, and I was ready to begin my journey to learning Python!
The course facilitator greeted the room and asked for a show of hands of those who have experience with Python / Data Science. I sat there comfortably in the knowledge that I had neither, because this was a beginners course and no prior coding experience was required, so why would I know anything?! The entire room bar myself and one other attendee raised their hands.
Why would people with Python experience be attending an Intro To Python course?
We were three slides into the presentation and suddenly everything became extremely technical and complex. Variables, arrays, key-value data structures and algorithms — I had no clue what was going on. The course facilitator handed us a list of approx. 30 algorithm problems and we were told to solve them; cue the internal panic attack! I took a picture of the problems and sent them to one of my friends who was also learning to code, and he too was baffled as to why problems of this complexity were featured on a course that had been advertised for beginners. At this point I became very overwhelmed and spent the remainder of the course fighting back tears and talking myself out of leaving.
Some might say that my reaction was a little over the top, but the reality is that everyone gets overwhelmed at some point in time — particularly when Imposter Syndrome creeps in. At that moment, it seemed like everyone else in the room was finding the work easy and yet I was really struggling to understand it. I felt really stupid. No one wants to feel stupid.
I have worked very hard to build the knowledge and experience that I have within the Project Management and Business Analysis fields, and I knew that I would be starting from the proverbial bottom when embarking on this new journey. However I never expected to feel out of place as a beginner in spaces that are meant to be tailored to the needs of beginners!
10 Steps Backwards
Many introductory coding courses appear to be written by engineers with years of experience within their fields, they have already created a deep understanding of the subject, and seem to struggle to understand (or have forgotten) how beginners might view new material. So I made the decision to ditch the face-to-face courses — as they clearly have a long way to go in terms of curating courses that are suitable for *actual* beginners with no prior exposure to coding.
I finally got into the swing of things and signed up to a number of online coding courses, including Codecademy and FreeCodeCamp, and it finally felt like I was making progress. Two months in and I finally plucked up the courage to go to another coding event. After all, I had been coding for a few months now and was feeling pretty confident about my recently acquired skills.
During the event, I looked over the shoulder of one of the attendees and noticed that they were coding on an interface that looked very different from the simulations that were used on the online coding courses. I asked the him what programme he had downloaded and how I could get my computer to look like that, and was met with a very confused stare. He pointed to his screen very hesitantly and said: “It’s the Terminal…It’s already on your computer”.
Duh! It’s the Terminal!
Once again, I felt stupid and clearly all those months of working was not actual coding. I still knew nothing!
This was obviously not the case, but what people fail to tell you is that coding tutorials often start off painfully simple, and using them as your sole resource for learning to code could give you a false sense of progress.
There are thousands of online tutorials written per year on courses covering HTML, CSS, Ruby and JavaScript by developers with years of collective experience. You would think that there would be a plethora of teaching methods and interactive tools available for learners at all levels — particularly beginners — covering the full lifecycle of coding. The truth is that these courses are designed to introduce learners to the basics of the syntax, but ultimately you are just following a set of instructions without any context or understanding of what you are doing and what the tangible results should be.
After months of feeling cheated, I was then recommended to try a course entitled Learn Python The Hard Way — as if the past few months of struggling to make sense of Python was me learning the ‘easy way’! I was assured that this online course, although not free and very difficult, would provide a solid framework for mastering Python. The only catch was that Learn Python The Hard Way required the learner to be comfortable with Terminal.
Ah, Terminal — my persistent friend, we meet again!
No more blank stares
I received a very timely email from Luke Morton, Director at MadeTech, with news that they had an opening in their Mentoring Programme and could offer me a Python Mentor. I had been connected to MadeTech through a blackgirl.tech networking event, and was so excited that they were able to pair me up with someone well-versed in Python and willing to impart some of their knowledge. I was drawn to MadeTech because they genuinely wanted to help me!
“We cultivate ourselves to cultivate the company” — MadeTech Ethos
This is where the real work began!
5-Months into my mentoring sessions with MadeTech and I have grown in confidence as my mentor is taking the time to show me the ropes — including my arch nemesis, Terminal — and I am not afraid to say “I don’t understand”. I’m learning how to interrogate code and ask questions, and I am actually able to retain some of the Python syntax in my memory. For first time since beginning this journey, I am finally able to see the power and variety of coding in the real world!
There is still a long way to go before I can confidently call myself a coder or even consider making the transition — but for now, I am really enjoying learning to code and I’m very excited for the journey ahead.
My advice to anyone aspiring to learn to code but has had no exposure to the world of coding
Those going down the self-teaching route will face different challenges to those who choose to pursue a degree in Computer Science or opt for the Bootcamp route. If like me, you are juggling a full-time career, the constant battle to achieve 7+ hours sleep a day, and general adult-ing / life, then you will no doubt have a limited amount of time to dedicate to developing your coding skills.
Online Tutorials
While I’m not a huge fan of online coding tutorials, I realise that everyone has their own learning style and some people may find them useful. I would recommend a tool like FreeCodeCamp which has been written by self-taught web developers and has a full curriculum that is specifically meant to help those on the self-learning journey overcome hurdles throughout their journey. If learning Python or Ruby — The Learn Code The Hard Way courses will be your lifeguard as you plunge into the deep end of coding, and is highly recommended.
Get a Mentor
Mentoring is one of the most invaluable ways of giving back as a professional! You are actively shaping and contributing to a person’s future and giving them the tools to take control and drive their professional career. The key is to find someone you gel with, who understands the level that you are currently at, but also has the ability to stretch and challenge you as you progress through your journey.
I am currently receiving free 1–2–1 Python Mentoring with Steven Leighton via MadeTech, and have first-hand experience of the benefits that an effective Mentoring Programme can have on your coding journey! I personally love my mentor session and enjoy solving problems and refining my understanding of the coding world. MadeTech’s main focus is to help organisations to transform into high-performance software teams, through agile software delivery and on-site training. They deliver quality software and encourage best practices because it makes sense for business. Automated test suites, code quality analysis, peer reviews, pair programming are just a few practices that they swear by, and they are dedicated to building products that can make a real difference to their customers’ businesses.
I really love what MadeTech stand for as they see the importance and value in self-improvement and run regular code dojos, show and tells, reviews and other reflective practices to help encourage sharing and I would highly recommend getting in touch with them for the chance to be partnered with one of their knowledgeable Coding Mentors or to apply to their Academy.
Community
Learning to code can be very lonely at times, especially when that imposter syndrome kicks in (which can be very frequent at the start of your journey).
Joining an *active* community that is dedicated and passionate about teaching and supporting true beginners (as well as coders at all other levels) not only provides support, but also allows you to see that everyone else gets stuck and frustrated too.
I have enjoyed attending Code & Chill meet-ups and Intro to Python events run by an awesome charity — blackgirl.tech, who provide learning support and a fierce community for Black Women and Non-binary people interested in learning to code.
Beginners Band Together
One great way to learn is to find fellow coders at your level and learn together. This serves as a great way to build your own coding community, as well as constructing a safe space for you all to learn, develop and make mistakes. You will benefit from seeing first-hand how other people at your level learn and solve problems, and it’s pretty handy having a few accountability buddies for those times when you lose motivation or just can’t be arsed! As they say, a problem shared is a problem halved!
Good luck on your journey and don’t let anyone (including yourself) tell you that you don’t have what it takes!!
Feel free to connect with me on LinkedIn and keep coding!