This post was originally published on my blog, but after it gained some traction on Twitter, I realised it might be suitable for a wider audience...
Today marks one year since I walked into General Assembly's fresh new Aldgate East campus for the first time, bright-eyed and bushy-tailed and ready to throw all of my money and three months of my time behind one singular goal: Get a decent job in London.
In as much as there is a typical profile (there probably isn't), I never really thought I'd be a likely coding bootcamp alum. I've been making websites most of my life, teaching myself HTML and CSS by snooping code from other sites before I really knew what "code" even was. Much later on, I took courses covering basic HTML, CSS, XML, SQL, all for my graduate degree in library & information science. I knew as much code as I needed to do my job well, and was comfortable enough with it to poke around and build things (or modify existing things to suit my tastes) in Wordpress, Joomla, Drupal, and whatever else people were using.
I also hated putting up with sexist bar patrons and trying to fight my way through the male-dominated craft beer industry, which I had sort of fallen into after failing to find library work, or copywriting work, or editing work, or any other sort of gainful employment after relocating to London. So naturally, becoming a web developer seemed like a solid career move. If I had to put up with sexist pigs, at least I could get paid a bit more handsomely for it, and go back to working regular daytime hours.
I've always been comfortable enough hacking away at things to make them work—in my view, that's not the mark of a professional. If I'm to make this my vocation, I want to do it well, like, really well. I want to be able to write software that other developers can look at and say, "Yes, this makes sense." I want to write code that's maintainable, performative, self-documenting, well-tested, that does what it's meant to do. I also want to really, deeply understand the tools I use, which is a process I understand will take rather a lot of time.
It's hard not to despair at times, feeling like I'm at least a decade behind the curve and missing so much foundational knowledge. It's even harder to measure my progress—how can I quantify knowledge gained, or deeper understanding slowly percolating in my mind? I can't throw together a Rails application any faster now than I could when I built one for one of my GA projects, but my process for doing so is completely different now (and it includes a hell of a lot more test writing).
My favourite part of being a professional developer so far is, surprisingly, something that's a bit of a divisive topic: Code review. After years of hacking away at things and making them work, it's so refreshing to have the confidence to share my code with a mentor and get feedback (even when the feedback is basically, "Tear it all down and start over, but here's where to start and what to think about"). I've been really fortunate to work alongside great developers who give thoughtful, considered feedback and are exactly as pedantic as I'd like them to be. I've gotten great feedback about design decisions, architectural patterns, structuring database queries, and how to optimise for performance, and I've learned that naming things probably isn't as hard as everyone thinks it is—at least, not if you've got a decade of writing and editing experience under your belt.
I'm extremely grateful for everyone who took a chance on me and helped me get this far over the past year—pretty sure you know who you are already, and naming names feels a bit gauche. I plan to repay that debt by putting in the effort to grow into a contributing member of the community, continually fighting against discrimination and cultural hegemony, helping to encourage aspiring developers to boldly pursue their dreams, and calling out bullshit and bad takes whenever I see them. In short, I'll continue to just be myself, but I'll probably get further and bring more people along with me thanks to your help and support.