Thoughts from freeCodeCamp

Recently I completed freeCodeCamp's frontend development course. I'm pretty pleased with myself. I also have a lot of thoughts. So here we go...

Background

If I had one big, burning question, it would be why it took me so long to get into coding anything beyond basic HTML and CSS for all those years. I've always liked computers - I'm definitely a things person more than a people person, and I felt comfortable and happy with them, because let's be honest, I have the social skills of a rock and there's no sense denying it. Computers don't play mind games or mock you or put you in some inscrutable social hierarchy. Sure, they're frustrating most of the time, but in the end they only do what you tell them to do. There's a lot of comfort in that when you feel overwhelmed by all the social bullshit flying around all the time. Sure, that might be stereotypical, but given the chance I'd gladly stare at a glowing screen, energy drinks by my side, and not talk to people, and that's okay.

I guess I could blame the terrible state of my school's IT courses. Here is an antiquated machine with an antiquated OS! Let's learn how to open a Word document - except it's not Word because these things are so ancient there is no Word! (This was around 1998 if you're curious, so it's not as if Word didn't exist.) But whilst that might be the reason I never ended up with a computer science degree, it doesn't explain anything else. I didn't need an IT class to teach me HTML and CSS, I just needed the desire to make web pages for myself.

I guess some people might want to say it was because I'm female, but gender has never been a big deal for me and I guess I was lucky enough to avoid or not internalise any "what girls do" messages that might have come my way. I don't know why or how that happened - it's a question I've asked a lot, and never been sure how to answer, and it's also a whole other ramble. Biology is messy and rarely clear-cut. But yeah, as much as I hate all that Mars/Venus crap, it wasn't a factor here.

Maybe the real reason was that I was messed up by this persistent idea that art and tech are two opposing things. These days I'm pretty sure that's bullshit. I make stuff. It doesn't matter if it's a sculpture or a novel or a piece of code. The same analytical feel, of putting things together, swearing and despairing because it looks terrible, then putting it back together after you break it and suddenly IT WORKS and LOOKS RIGHT and everything is amazing… that feeling is there no matter what.

Whatever happened, I never poked further until one day when I ran into a link to Codecademy and decided to give it a go - wait, aren't we talking about freeCodeCamp? Yeah, but Codecademy was where I started out and learnt a lot of syntax, mostly JavaScript but a few other languages too. I enjoyed Codecademy, and made a few little things with what I'd learnt (the wordcount generator and calculator here) but I didn't do much more. I poked around at a few other resources and then finally ran into freeCodeCamp.

And yeah, I love it.


Teach Yourself

I'm not saying it's for everyone. If you want to learn something other than JavaScript and web development, you won't get it - FCC focuses almost entirely on those technologies. But I enjoyed it because (a) I like that stuff anyway and (b) the learning style is unlike Codecademy's. Not knocking Codecademy either, if that works for you, cool. But with Codecademy I felt like I was learning a lot of syntax but not a lot of what to do with it. FCC gets you going with some basic syntax, but after that, it sets you challenges and asks you to build things with what you know. It'll drop you a hint or two, but you have to work it out for yourself.

I loved it! Okay, many days I hated it, but when you finally work out a solution and everything works as it's supposed to, there's nothing like that. The sensation is a real reward-centre button presser. I had a few moments where I wanted to give up and one time I took a long break, but I got back into things by deciding to tackle the 100DaysOfCode challenge, and that was the motivation I needed to not give up when things got really hard.

And sure, I probably wrote a lot of terrible code, but I learnt how to seek help when I needed it, and that there's no shame in going looking for it. And who's good at any craft when they first start out? All your first attempts look awful. Code's no different.

Now I've completed the front end certificate! Unfortunately the tutorial stage for the next step (Data Visualisation) isn't complete, so I've moved on to the back end course, but I know I can always look that stuff up elsewhere if needs be. Either way I've done a lot of work and learnt many things that I wouldn't have managed otherwise. The puzzle it out strategy is such a great way to learn! You need somewhere to get help if you're stuck, sure, but things will stick in your mind a lot better. When you're used to learning being a case of memorising the right answers, it's difficult, but also awesome in the end.

It's not always been great. I worried a lot that my work wasn't as elaborate as some other people's. I completed the coursework with JQuery and vanilla HTML/CSS, and sometimes I'd look at the things other people were doing and ask why I wasn't using more fancy libraries or preprocessors. That's ok too. The most important words you can say are "I don't know", because you can follow it up with "but I'm going to learn how to do it." When I grew worried I was just some kid playing with JQuery, I challenged myself to make vanilla JS versions of my projects to learn about what it was actually doing. When a recruiter asked me what event propagation, promises, and closures were and I had to admit I had no idea, I decided to learn. FCC's style was helpful in telling me not to give in to imposter syndrome, but to look that jerk in the eye and punch it in the face and run off laughing. FCC didn't teach me everything, but it taught me I had the ability to teach myself what I needed. That's the most valuable thing you can learn.

As for FCC's backend course, it's more intimidating, because this is an area I have much less experience and understanding of, but I'm confident in my abilities to get through it. There's a big and beautiful world there and I don't want to miss out any more.