A List of the Things I Don't Know Yet
Everyone likes to make a list of the things they know already in software world. Here’s a list of the things I don’t know yet.
As I’ve said in the heading, we as developers love to brag. And why won’t we? Programming is a hard field. Things don’t make sense. People consider computers smart, while in reality they are nothing of the sort. And to top it all, you have to deal with idiots who love using apps created by you, and yet say to your face, “Oh, you just type all day long. What’s so hard about it?”
And thus, everyone likes to make a list of things they know. Whether they be abandoned technology which you learned when you entered the field, specialized languages like SQL, or just bragging about your algorithmic magical powers. Everyone likes to talk about their skills.
So, I’m writing this article in the opposite way. These are the things which I don’t know yet. You can even consider it a checklist for me. I’ll update this article later as I learn the things featured within it.
So, here, without further ado, is the list of the things I don’t know yet.
Algorithms and data structures: let’s get this obvious thing out of the way. I don’t know the algorithms and data structures, and certainly don’t know how to use the big O to check the efficiency of an algorithm. I’m not telling you here that I can be a great developer without this skill just to make me feel better. Instead, I’m telling you this:
I’m actually trying to learn this, and improve on it. Sadly, I lack the mathematical background to go any deeper than just watching the algorithm, and then trying to implement it as best as I can. To solve this problem, I’m improving my math skills with Khan Academy and various other math resources. but the progress is slow, because of the difficulties I have encountered while learning math, about which you can read here in more detail.
I haven’t gone to a college or university, so that is a problem as well, since self-teaching can be hard. You don’t know what path to choose to improve your skills, and whether that path will work for you or not when you encounter higher difficulty problems. This is always a headache as a blind guy trying to deal with this.
Parsing: Okay, I’ve put parsing here for now, because I’m hopelessly lost just by thinking about how to implement a simple calculator parser. Cranking the difficulty up to compilers is just unfair, I think, and I might as well put my head in a grinder to save myself the trouble.
Again, to learn how to parse expressions in a calculator, I’m using the “Monkey see, monkey do” approach, by trying to see how other people do that, and then copying it. I may never become a compiler wizard. But I’m sure I will be able to write a small parser one day.
Interview skills: now, this problem has no solution. Sure, you can practice online for coding problems, even brute force it like me with ugly, ugly code. But there’s just no alternative to facing the boss, learning its patterns, then adapting to the patterns to improve yourself. And much like in the old school shooter games for the NES and SNES, you’re going to be dying, a lot during this process.
Unfortunately, I haven’t gotten any chances to face the bosses. Most of the time, the sub-bosses just kick me out of the room when they learn about my disability. Of course, they never say it openly; the reason is always different. But I know the real reason, without them saying so.
Let’s see whether I can learn these skills or not. Tell me, did you enjoy this article? What should I write next? Tell me in the comments below.
If you want to support my writing, then please consider buying me a coffee.