The Road to Code

Why is it so hard to leave your comfort zone in order to follow your developer dreams?

Tanja Babic-Debrosse
The Startup

--

Two years ago, around Christmas time, I decided to stray from my known career path and start a new journey. I felt burned out, unmotivated, looking for the purpose in getting up every morning and going to a workplace that no longer made me feel i belong there at all. Working in a large company with an even larger set of corporate rules had made me feel more of a kindergardener than a self-determined grown woman over the years I’ve spent there.

In search of a new purpose and calling in life I decided to become a Social Media Manager. I got up from the comfort of my predictable life and requested funding from a local organization that supports women who are trying to do a career change and reeducate themselves, in order to be able to pay for the not so inexpensive Digital Marketing course I was planning to attend. At the end of the program each of us had to put together a digital marketing concept for a self-chosen company/brand, including a website.

We learned how to use Wordpress in a day, but were far from knowing what we are actually doing. I started out making my first mock-up, as I had clear vision for the fictive company I came up with : Barkingham Palace!

Barkingham Palace, a five star resort for dogs. Yes, dogs.

Including a training center, a dog hair salon and much more. I thought the idea is incredibly funny and one of my teachers told us that in marketing there are two things that sell best: babies and puppies. As I just had a baby at home at that time and therefore my mind already suffered from a baby-stuff-overkill, I decided to go for the puppies. I did pretty well with all the marketing plans and customer journeys, but once I started to bring the website to life I could not be stopped any more. I had so much fun putting my vision together, that my main focus shifted to creating the best website in my class, despite the little knowledge I had.

I started out with a theme, but soon realised that I don’t like to use predesigned layouts. So I shifted to Elementor and finally I had to start using some CSS for little custom effects.

This is where my life turns around.

My teachers were very satisfied with my work, they encouraged me to follow through with the decision I had already made in my head: To stop trying to be anything else but a web designer.

I started my own little side business of making websites with WP and Divi and landed my first clients. At first I was terrified and my first client was not as easy as I wished for, but after the second website that went online, I felt super comfortable. But after i short while my wish became to code what i was building with themes and visual builders myself.

Barkingham Palace Concept Website — my first website.

But of course in order to create anything i needed to learn HTML5 first. I printed every damn tutorial I had found online, ordered some heavy books and to be honest, I thought “Man, i soooooo got this!”.

Until i encountered CSS grid. Grid and Flex definitely stopped me in my tracks for a second. The first couple of layouts did not exactly work out the way I envisioned them. The ressource that helped me get through it was “CSS Notes for Professionals” (Click for free download). A very detailed CSS book that I highly recommend to anyone wanting to master CSS.

After 3 month of intensive learning i felt finally ready to tackle my next goal: Holy JavaScript.

After joining freecodecamp I soon enough got, what i call, “Google - Poisoning”. I am sure you all know the feeling when you feel some pain and start to google your symptoms just to find out you are most likely not going to survive another week…Well the same goes for looking up “How to become a web developer”.

Everyone has something to say about the “right” way how to do it, but the sheer amount of opinions and guides and paths make you feel like a child lost in a dark and scary forest. You get redirected to codewars, hackathons and sample projects before you even get to understand how a for-loop works.

Looking at the alogorithm challenges “for beginners”, where you are expected to perform tasks like solving the exact same math problems that already made you hit the wall with your head back in high school can not just frustrate you, they make you want to throw your laptop out the window and become a gardener.

My mind became my worst enemy. I couldn’t see though the function mess anymore. I had set myself a schedule to master JS in 2 months and trying to solve one simple function challenge for half a day turned into a major eye opener: There is no quick fix for this. There is no such thing as “Oh I want to become a developer in just as little as 6 months, like all the expensive bootcamps keep shouting out there. JS is not like reading a recipe and making a dinner meal. This was going to take lots of time and self-discipline. And above all patience with my goddamn insecure self.

I tried out a dozen tutorials and courses. And almost all of them did not work for me. I believe there is a course for everyone out there and it is pretty much like looking for a significant other: you have to kiss a lot of frogs to find the right one, without giving up in the process and deciding to remain single for the rest of your life.

After all I settled for a JS course on Udemy. I luckily found the right teacher that presented things in a way that made me understand stuff that looked like chinese riddles to me before. I downloaded some JS quiz apps to practice the theory on my way to work and back, at lunch break or while waiting at the doctor’s office. I continued freecodecamp and built their exercise projects in CodePen.

But it just didn’t seem to klick. There was something missing and I constantly had the impression that I still don’t fully grasp what I am doing. Until I had an idea and started building on it.

My idea was to build a bullet planner. I love bullet planners, and have them in all shapes and sizes at home. I still prefer handwritten notes but that didn’t mean someone else would’t like to do the same thing on a computer.

Carpe Diem was born. It made me practice all the CSS i learned so far, implementing all the little components and actually making them work — water intake tracker, a randomly displayed quote from my assets, a mood board, the possibilty to download your daily sheet or make a simple to-do list, a work time tracker — was the most rewarding thing to do. Most of the things I learned so far did not cover what I was trying to do with this project, but it gave me a foundation that met the goals halfway. The other half I had to research and code alone. Trial and error at it’s best.

My fist bullet planner app

This has been a very important lesson: Learning is better by doing.

I can not stress enough how important it is to leave the path of precoded projects you re-code during an online course and try to build your own stuff. I made it a habit to start one own project after every new project chapter I did online. That did not just make the stuff you learn stick, it also gives you alot of courage to proceed with coding itself. When working on your own project you are automatically way more motivated and determined than with something you just code following someone’s instructions.

Long story short — in the past 8 months I prepared for the “Microsoft 70–480 Programming in HTML5 with JacaScript and CSS3” exam. I did not take the exam at the end, but they have a very good study guide and doing the practice exams helped me remember most concepts and build a strong foundation.

Neumorphism Audio Player Project — just for practicing functions and fun.

What I did instead was the Udacity FrontEnd Nanodegree, which has been a great but also very challenging experience, that I will describe in another story, but let me tell you, it is definitely worth it. Udacity does not sit you down and explain every single step to you before they ask you to do their assigment projects, as one would expect from a paid nanodegree. They give you the core concepts and then throw you into the cold water by setting pretty harsh requirements, that make you do alot of research and let you struggle on your own for a bit.

I really liked that the styling part is completely up to you, so you can let your creativity flow. Also the code reviews by experienced devs were contructive criticism at its best. Once you do figure the projects out, you know that you did something on your own, with no copy & paste, which gives you a little boost. At the same time you might lose some confidence because you think you should know it all by now in order to fulfill the requirements.

But you don’t.

Which leads me to another lesson learned: You don’t know it all. And that’s ok.

Programming is not something that you prepare as much as you can for and then you know you’ll pass. Most likely you won’t pass at first at all. That is why debugging is such a big part of coding. It’s about MAKING things WORK, the are not going to work just because you know all programming language theory by heart.

I think programming languages are called “languages” for a reason. They have to be learned like a real spoken language. First you learn all the words, then you try to put your first sentences together and once you can do that, you have to understand the grammar, the future and past tense, expressions…Once you realize how long it takes to learn a new language and get to a certain point of fluency, you will be aware how long it takes to master coding. Many of us, including me, fall for the ads and articles saying that everyone can learn to code and land a job in 6-12 months. But that is a delusion (few exceptions here and there) and what makes it even worse is the pressure those words put on each of us.

If I am told I can be a Frontend Developer in 6 months, I will give myself 2 months for HTML & CSS and another 4 months for JS and Bootstrap and maybe a little Node.js. I might make it through the first part in time but as soon as JS hits me like an iceberg the Titanic i might not be able to keep up the schedule and that will make me feel like a loser and not made for this at all. Here lies the danger of misperceptions about coding.

Some of the most common mistakes most newborn devs make are

  1. Trying to learn everything at once. Focus on one thing and when you feel comfortable using it, move on to the next one. Babysteps. Try to focus on one area of development and try to master it. If you put too much on your plate at once, it will only lead to confusion and slow down the process of learning.
  2. Waiting to be an expert before you got your feet deep into the coding waters. Most of us wait until they finish “that” course or get “this” certificate to feel validated. Everyone starts with low confidence and doubts, but if you have an idea for a website or an app NOW then guess when the right thing to build it is? NOW. The best way to build confidence is to build your skillset by actually making things happen.
  3. Giving up right before it “klicks”. Way too often you will feel like you are facing a huge wall. You need alot of patience in order to learn programming. The setbacks, bugs and errors are a part of this journey and they make you what you desire to be: a good programmer. Remember we are problem solvers not quitters.
  4. Learn for the job. If your only focus is how and how soon you will land a job and your decisions on what to learn are based on the job market and not on your personal talents and preferences, you are setting yourself up for failure. To be good at something you have to do it for yourself. Because it fullfills you. I wanted to master Java at one point because most jobs where I live require it. But I discovered my love for FrontEnd and React and even though it may seem to limit my job oppportunities, I am sure that I will be better at it than at something I am not fully interested in.
  5. Writing code without a plan. Making a structure of an application before you actually start writing the first lines of code will help you a great deal. Once you have an overview and know exactly what each component is supposed to do, you’ll find it easier to code it accordingly.

Coding is not easy. If it was easy the world would be ruled by Senior Developers. It takes a lot of determination, discipline and resilience to succeed. The hardest part fro self taught devs is the constant self-doubt that comes with it, the fear to drown in a market full of IT graduates with years of experience under their belt. The thought of giving up every second day in the process of learning. I can not recall how many times I said to myself “Seems like you are not as smart as you thought, huh” or “What the hell are you actually doing here?” or “What makes you think you will ever land a job with this?”.

But fellow future devs: I REFUSE TO GIVE UP.

I finally found something I really enjoy doing. It puts me in that FLOW feeling I read in some super smart life-guide-book about. The feeling when time and everything around you gets irrelevant and blurry and trying to solve a component for 8 hours feels like 8 minutes to you. The satisfaction I experience every single time I make something function, yet finish a whole application.

Joining “Women Who Code” made me realize how many women are out there, that have found their love for coding, but are so lost and overwhelmed by all the learning ressources and their inner critic. That have to deal with toddlers jumping on their head while trying to write a function. Angry husbands and friends, feeling neglected because you prefer to learn Redux instead of watch TV or socialize. I want to let each one of you out there know:

JUST DO IT.

This is not a sprint, noone is going to offer you a job after 8 months of doing this. Take your time, try things out, find your own niche and try to be as good in it as you possibly can. Build stuff, build more stuff, build so much stuff that you can choose which projects out of the dozens you wanna put on your portfolio. When you feel like giving up — step back. Be patient with yourself. Sleep, read something non-related and don’t think about code for a day or two. Works like a charm.

Stop thinking if you are ever going to be good enough, if you can make a living one day with it, if you are wasting your time. Doing something that sparks joy is never a waste of time, even if you really end up being a gardener for the rest of your life.

Udacity Blog Page Project

Currently I am learning React. The concept of reusable components just amazes me. I still get disencouraged at times but I try to focus and debug my mind over and over again. When I feel overwhelmed, I try to take a break. When my inner critic tries to pull me down, I slap him in the face and keep moving on.

I decided to document this extraordinary journey. I want to write down all my experiences and steps I take down this road, so whenever I drown in doubt again, I can be reminded of what brought me here in the first place — The love for code.

--

--