Been quiet for a bit. This is an update on what I’ve been up to, plus a few thoughts on developing good mental models.
I’ve been working on improving my knowledge and the quality of my work. I think this will give me more value over random side-projects.
On the content side, I will aim to hit a post a week on LinkedIn and a blogpost a fortnight.
I bought “Fundamentals of Backend Engineering” and “Fundamentals of Database Engineering” by Hussein Nasser. Haven’t touched the Database one, but the Backend one is solid. And I’ll highly recommend the Backend course.
Arrives tommorrow. Keen to go through this.
I do own a copy of the famous Red Book - “Designing Data Intensive Applications” by Martin Kleppman, but I found the book too dense as an early career engineer.
Hopefully with this book and the courses above, I should be able to make progress on the Red Book.
Caught up with a mate recently who is currently looking for a Software Developer role. He was doing an interactive React tutorial and I noticed that he had weak or missing mental models for some of the basics.
And at points he was lost, since he was making decisions three or four steps beyond the mental model.
To explain what I mean by that, let’s use an analogy. Let’s say we are trying cross a river and our knowledge forms the rocks that we step on. The stronger our knowledge and mental models are, the stronger our footholds will be when crossing the river.
This applies when trying to debug somethin. You need to understand what is going on. The clearer the picture you have, the easier it will be to debug. It also applies when you are learning. How do we build knowledge on top of a weak foundation?
To be fair I’ve seen this with absolute beginners. I’ve seen it in my peers. And most importantly, I’ve seen it in myself (specifically the me that is writing this).
I kinda have a business idea for a E-Commerce app, but I wanted to understand the problem more. Spent some time here watching YouTube videos on E-Commerce and Dropshipping.
Based on my research, Dropshipping doesn’t really scale that well. It’s great for getting started, but you’ll eventually have to migrate to a differentiated product. And you have to be careful since there are a lot fo Dropshippoing Charlatans out there.
Seems like Copywriting, Messaging and Brand Building are the keys to success in this area. It’s really interesting that there’s a lot of parellels here with building a startup.
This does conflict with my current North Star of “Become a Senior Developer”, so I’m not sure if I should pursue this.
I haven’t spent as much time as I would like with golang.
But recently, I came across a TDD based set of tutorials called Learn Go With Tests. This is really good, I’d rate this.
Did the first three or four tutorials, then went to Code Wars and did some of these problems. Instead of doing it in the platform, I created a new repository in GitHub and coded it using Golang and TDD with the in-built testing library.
This was really effective. I’d say I’m now somewhat comfortable with the language’s syntax.
But not too sure if I want to continue with Golang. I think it makes sense to park this and focus more effort in more advanced TypeScript projects.