I’m new to the world of programming, and this is my first blog. I want to get a few thoughts into the world before I get swept up in the usual noise. You know, the “this abstraction sucks” or the “you’re not a real programmer unless you use Linux” bandwagon, or whatever other tribal arguments I’ll eventually stumble into.
Right now, I’m still mostly on the outside looking in. I've only just learned what a Kernel is and I'm two days into learning the command prompt. I've never built anything and I barely know the difference between an interpreter and a compiler. These are the opinions I have before I've been fully corrupted by refusing to believe I have skill issues. Right now, everything is a skill issue. One day, when I’m deeper into the craft, I’ll probably look back and laugh at how naïve some of this sounds — and that’s the point.
For context, I’m not starting totally from zero. I’ve done a couple of Boot.dev courses, and I’m in my first year of a CS degree. So, I know just enough to form opinions on things I barely understand. So, in the words of the great Primeagen: Let’s go (in these nuts).
Level > Framework
Observation 1 – Choose the right programming language to suit the level of abstraction required for your problem, sure. There’s no point trying to address low-latency requirements in VBA. But try not to get too het up on which framework is better. Use what you feel comfortable and confident with and try and make sure it’s a framework that won’t be deprecated in the next 5 mins.
Obviously, if you are a component of labour, you have to choose what pays. But beyond that, be cool with choosing a lane, and letting others choose theirs.
Learn the Metal, then the abstraction
Observation 2 – How many devs that use React know DOM commands? I’m hoping all of them, but I’m guessing it won’t be. Personally, I’m rolling my sleeves up with C before going much further. I’ve done the Boot.dev Introduction to Python course and I'm doing the the Linux course now. But I want to understand how to control caching and registers. The closer I get to the 1’s and 0’s, the longer I’ll survive as a dev. I’m looking to code for a specific industry. One that is more than happy with vibe coding, so long as it gets the right results. I want to buck that trend and prove that intricate knowledge of the tools I’m working with, puts me ahead not behind.
Never let ego get in the way of developing
I’m getting a very strong feeling that a growing number of programmers just jump into chat GPT whenever they get stuck. Or worse still, jump straight into coding, without decomposing first. If I want to minimise errors, I need to understand the problem space and write algorithms for as many eventualities as possible. In addition, I need to ensure my algorithms fail loudly. That way I can fix it before I add dependencies. In my view, modularity is the sweet nectar that oozes from the nipple of success. That and structured documentation.
Summary
That's all for now. A year from now, I’ll look back at this and see how much of a fool I was. I’m looking forward to it.
Top comments (0)