How I’m leveling up technically as a self-taught software developer
I've now passed seven years as a developer, six of those years professionally! 🎉
From the moment I got my first job I've felt like I've been playing catch up, something that can't be put down to just imposter syndrome in my eyes. I didn't know what a closure was less than a year ago, and now I was expected to be helping write Angular 1 programs?! I think a more formal learning experience would have helped my confidence, but it's paid dividends in the long run to be used to scrounging together an education.
I think the tapestry of knowledge I have has many holes, and I used to think that if I would have done a computer science degree it would be a lot more intact. Having talked and worked with a bunch of other software engineers I now think the difference is hard to know unless you ask someone.
To address the gaps, over the years I've tried a bunch of books, courses, and mentorship programs, with varying amounts of success. I'm a much more extroverted developer than I am a person in general, so I'm trying to find environments where I can work collaboratively with others. This year I'm embarking on these efforts:
- Starting at the Recurse Centre on Halloween! I'll hopefully be working on a kotlin app and react website for an idea I have for a kind of "looking after yourself tamagotchi". Also I'll be pairing with a bunch of people, which will be great.
- Getting involved with Chaitin School, which is a local coding school to me in London. I think this will be more 'learning side-by-side' than actively collaborating, but even that helps me out a lot, and I'll soon know which it is!
- Starting to attend Code Book Club meetings online, to work through books and coding exercises. I am very demotivated alone when it comes to "pointless" exercises, aka things that don't lead to a tangible outcome, so I'm hoping this will help
- Going through Teach Yourself CS at my own pace alone, to see where my interests lie and what topics I need to dig into more
- Working on a preliminary project for the human tamagotchi project, using automerge, rust and kotlin, with a friend. Working on a project he and I are actually going to use is really helpful and encouraging; I think I tended to try and pick "pointless" projects, and keep myself motivated through the boring and incomprehensible-to-me parts by sheer brute force. This approach suits me much better, where we are working towards a common goal and it will definitely be used if we succeed.
- Trialling streaming with Jess, and if I enjoy it doing it regularly to have a community and impetus to code daily.
Watching courses and reading books is featuring much less heavily than usually for me; I would usually try this more traditional route and end with incredibly brittle knowledge of how the actual systems I was being taught worked beyond what was said in the tutorials.
Most of my knowledge of coding has come from on-job maintenance and feature-adding work, and so I haven't had as much experience spinning up new greenfield projects and building things from scratch, which I'm hoping Recurse and the automerge project will help with.
Having more community to talk through coding problems and thoughts on a platform other than Twitter will help immensely with my coding journey.
Thanks so much for reading! If you're also a extroverted developer I'd love to hear about what you do to learn, hit me up on Twitter.