Almost 2 years ago, I wrote a post called 542 days as a Drupal developer. Many more days have passed since then and I mentioned at the end of the post I hoped that I would still love doing this 5420 days in. So consider this a checkpoint post. I’m no longer doing Drupal full-time now, instead focusing on front-end work.
The 4 points that I covered in that earlier post still apply though. I still learn on the job (a lot), and have been lucky to have mentors who are patient enough to explain things to me. And don’t get me started on building stuff, I have loads of tiny projects that were built because “I felt like it”. As for meet-ups, I now run one too 🙆!
This past weekend, I helped out with a TechLadies workshop in Kuala Lumpur. TechLadies is the brainchild of Elisha Tan, and is a community for women in Asia to connect, learn, and advance as programmers in the tech industry. (Copied that verbatim off their website 😛) At the end of the workshop, we had a mini-panel for the participants to ask questions, especially since most of us did not have a formal Computer Science education, yet managed to find ourselves working in tech.
If you’ve read some of my other posts, or watched me speak, you’ll realise that I tend to go off on tangents (and also flail my hands a lot). So someone asked a question about what was the steepest learning curve we encountered when learning to code and I gave a 5 minute answer that, in retrospect, did not actually answer the original question 😔, but was apparently inspiring.
This is a tangent…
Because the audience were people who had no prior experience with code or programming, I felt it was necessary to bust the myth that programming is easy. This is my personal opinion, and you may not agree, but telling people programming is easy is a lie. It may be easy to get started with actually writing some code that does something, but there is a lot of underlying principles that take time and effort to comprehend before we can create something decent.
I’m not saying you need to know all the things before you are allowed to write code. But we need to accept that a lot of the code we write, especially as we’re getting started, will be bad code. And a lot of the things we do “just to get things done”, may be bad practices. The key thing here is, how much do you care? If you don’t care, it really doesn’t matter as long as the thing runs, right?
Well, I care. I care that badly built websites take forever to load, sap users’ data plans and are hard to use. And once you care enough, you will be willing to put in the time and effort to learn better practices, and figure out how things work under the hood to optimise your code and make it run better. I don’t think you can care much about something you’re not interested in. Because if it’s not interesting to you, you will not want to come back when frustration gets the better of you.
Now that we’ve established that I still care and am interested after 1239 days, here’s some more stuff I did that was helpful to my learning process.
Write about the stuff you learnt
I had been writing about everything I’d done from the start, largely for the purposes of documentation. I could refer to old posts if I ever encountered the same problem again. So there are a bunch of posts that are just step-by-step instructions with screenshots (turns out people have real jobs doing this). But I also realised that writing about concepts in my own words forced me to really understand them. So I also started writing about HTML and CSS.
And with my penchant for diving into rabbit holes, I started to get really interested in how HTML and CSS developed over the years, how browsers worked, how the Internet worked and so on. Which is why I now read CSS specifications and follow along what goes on at the CSS Working Group on Github.
Sometimes writing about your own experiences can also be helpful to other people who may feel the same way. I don’t write technical posts all the time. This post isn’t technical at all. But writing is the solidification of your thoughts and ideas into something tangible, and the act of writing can organise them such that you can better understand what you’re thinking.
It’s also an experience to submit a piece to a publication. I’ve written for A List Apart and now am a contributor to the Codrops CSS reference. Writing for yourself is one thing, but writing for a publication that has a significant readership is something else. There are standards to adhere to, and editors who will go through your writing to ensure your article is polished before publication.
Usually the pieces that get rejected are those that aren’t very coherent. A problem of mine, because I tend to write like a stream of conciousness. Having an editor comb through my writing has made me a better writer. I still have a long way to go, but I think I’m better now than when I first started out.
Talk about the stuff you learnt
I’ve also started speaking at meet-ups. My first talk was at Talk.JS, but I spoke about the picture element 🤷. After running Talk.CSS, I also ended up being a pretty regular speaker at my own meet-up because it’s hard to find speakers sometimes. To me, speaking comes after writing. As I mentioned before, writing helps with the organisation of thoughts and ideas. You don’t have to write before you speak, but the act of writing, at least for myself, makes me formulate more coherent words.
After hosting CSSConf.Asia 2015, I spoke at CSSConf.Asia 2016 at the end of last year. That was my first ever conference talk, and I spoke about learning how to CSS by writing, speaking and building stuff. I definitely spent a lot more time preparing for the conference talk because, you know, people paid to show up, and I didn’t want to waste anyone’s hard-earned cash.
I was never uncomfortable with public speaking, but I’m pretty aware of how I sound when I speak, so I really didn’t want to trip over my words, or have periods of awkward silence where I suddenly blank out on what I wanted to say. So I rehearsed that talk for about a week every day while I commuted to work on my bicycle. Overall, it was fun, and I got to meet and chat with some really rock-star speakers, like Lea Verou, Sarah Drasner and Chris Lilley.
Never forget how it felt like to suck
Being involved with TechLadies has been a very good learning experience. I have not been doing this for all that long, and together with all the posts I’ve written, there are constant reminders of how I stumbled along all over the place. There is a tendency, as we learn things and get better, to take certain things for granted. This is applicable to more than just writing code.
Everyone had to start somewhere. Nobody came out of the womb already knowing how to walk. But odds are, most of us can’t remember how it felt like learning how to walk when we were toddlers. Walking is something I take for granted sometimes. I get reminded that we are all just temporarily able-bodied whenever I get injured playing basketball.
But when it comes to knowledge, it is less common to have it just taken away from you. In my limited experience, barring traumatic brain injury or some degenerative brain condition, you can’t suddenly unlearn what is familiar to you (someone please correct me on this). It is easier to take knowledge for granted, especially knowledge that we gained long ago and has since become second nature.
I’ve been very lucky to have grown up in a household that had computers in the house. My first operating system was MS-DOS and I learned early on that typing certain commands in the terminal would allow me to play games. Even though I got into web development much later in life, my prior knowledge about how computers worked made things easier to a certain extent. For people who have only ever experienced GUIs and installed software via installation wizards, there’s a lot more to learn before things make sense.
I value the opportunities to teach workshops to beginner-level participants because the questions they ask show me how everyone, because of their diverse life experiences, will approach and understand the same problem differently. I end up coming up with various analogies to explain concepts in a non-technical way that make me think about those concepts in a completely new way as well. These “so-called” beginners are actually making me understand what I thought I already knew even better.
Rounding things off
So that was the 20% checkpoint post, and it appears that I still love doing this web development thing. I’ve gotten a bit more opinionated since then, and also discovered even more things that I don’t know. What I do know is that I will probably never get bored doing this.
Exasperated? Sure.
Frustrated? Definitely.
(╯°□°)╯︵ ┻━┻ will probably occur in perpetuity.
But bored?
Never. 😈