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.
And yet, jumping from that level of technical ability to actually being a professional developer seemed impossibly daunting. Somewhere down the road, perhaps while I was spending my early 20s becoming a terrific but completely unemployable librarian (inasmuch as nearly any librarian is unemployable these days, thanks to the economics of supporting social services and libraries in a capitalist society), the inner workings of the internet just passed me by. I don't know when exactly building websites became synonymous with knowing a lot of JavaScript and understanding what, exactly, is meant by that mysterious phrase "back-end" that I had tossed around so casually—as in, "Oh, if you want this to be connected to a database, we'll need someone to handle the 'back-end' bit." I don't know when it happened, but I knew that I was sick of mentally punting that responsibility to other people. I hated that there was an entire domain of technology that I was almost entirely ignorant of, and I hated to see it invading my precious internet and closing me off from playing around and understanding how things work.
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.
The lessons I took away from GA are not necessarily the ones I thought I was paying for. The Web Development Immersive course teaches students how to read documentation—this is a very important skill for an aspiring developer. It teaches the basics of how to use Git + GitHub, and makes sure everyone is able to put together a CV and portfolio showcasing the projects built over the course of the program. The course assignments start out pretty interesting, as students learn the basics of programming and thinking logically to build simple games like tic-tac-toe or roshambo in JavaScript, and the curriculum builds students up to a level where they're able to create standalone webapps that run locally using whatever framework is in vogue and being taught by the course—we learned to build boilerplate applications with Express, with Sinatra, with Rails; we learned the basics of jQuery syntax and a bit about SASS. I learned that the instructional team and advisors at General Assembly thought that my Twitter account was too aggressively feminist and that it would prevent me from finding jobs. I learned that if the white men who pay for the course think that there's a pipeline problem in tech that it's not my place to correct them, and that if there are fewer female developers it's because women just aren't as interested in computers. I learned that junior developers don't write tests in their jobs; that task is reserved for senior developers. The point is, I learned a lot, and much of it was good and useful, and some of it was not. As I saw more examples of the type of developer I didn't want to be, I was able to form a pretty decent impression of the type of developer I'd like to become.
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.
xx,
Kaitlyn
Top comments (4)
Not my junior devs 😝
Very well-put
Yes, precisely! I've written tests for every bit of code I've written on the job over the past nine months; it's very clearly a required task for any junior dev role worth having. Being able to articulate the importance of testing and how it improves the development process and finished codebase are pretty important to finding a dev job, but my opinion on that was wildly divergent from GA's party line.
Yes. But I can't say I know for sure how I would approach introducing testing. It's a contentious subject to say the least.
Inspiring post. Thank you. Fostering independent junior devs like you is what keeps me motivated as a bootcamp coach. Keep it up!