Programming == Not Knowing What You’re Doing
When programming, you’re developing a system. The more you repeat yourself, the more you’re not using a system. So, when you’re creating new code, you’re figuring out how to make a new system.
That’s one thing when you’re using a system you’re familiar with. A common exercise is to re-implement a tool in a new language or on a new system, so you can compare the inputs and outputs.
Right now, I’m trying to change three things.
I know Javascript, but as a client-side language. I’ve installed Node.js and I’m playing with it, but honestly, I’m barely beyond the “Hello World” point with this language.
I’m familiar with SQL, and have several MySQL databases spread all over, but I’m starting to work on a problem where things are very tightly tied to persons, and so I’m thinking that it’d be better to have everything together, which should scale to millions of records and protect against data escape better than selecting for user_id in an SQL table. So, I’m trying MongoDB as my database, because I’ve heard that this is more the way MongoDB works.
I’ve been hand-coding my SQL since I started using it, and I’m now very familiar with that, but I’m looking at Mongoose as an ORM (Object Relational Mapping).
So, I’m dealing with a data store I’m not familiar with, a database I’m not familiar with – a database style I’m not even familar with – and a way of connecting the two that I’m not familiar with. Bear in mind, right now, the project domain is nowhere to be seen.
When you don’t know what you’re doing, you feel like an idiot. You feel like you’re making no progress. Until you do make progress. Please, please, let it be soon.
Image from Three Panel Soul