I have been writing code for over two years and looking back, it amazes me the number of things I don’t know yet. It’s a rat-race trying to catch up with the industry, the more you try hard to catch up, the further you realize you are behind. I want to use this opportunity to list out some programming technologies I don’t know.
This is kind of a journal for me to see what I don’t know as of 2018. This by no means undermines my capabilities as a web developer but only shows I’m humble enough to admit waht I don’t know something yet
Linux, Unix and Bash command: Ironically, I use a Linux machine but I only manage to do the basic stuff on the terminal, the rest I just google, copy and paste. I have never done SSH before.
Webpack/Bundlers: I have only heard of Webpack and what it can do but I have not used it. Never bothered with Parcel or Gulp.
GraphQL: This has got to be the hottest topic in web development right now and I know jack about it!
Databases: I have never used any relational DBs such as MySQL, PostgreSQL, Sequelize and even non-relational DBs such as DocumentDB, Cassandra, Coachbase, HBase, Redis, and Neo4j. There are so many Databases I can’t even list them all. The only databases I have used are Firebase and MongoDB.
Node Frameworks: Even though I’m more backend inclined, I have only used Express. I haven’t used Koa, Hapi, Sails or any other node framework to write my backend code. Also, not familiar with Vue framework like Nuxt.
Testing: I have never written any test before, this is something I know I should learn but haven’t gotten around to yet.
Web Sockets: I haven’t used it before. I only know what it’s used for.
Devops, Docker: DevOps is another huge field on its own and not something I intend to get into for now. Containers, Kubernetes, Azure are just buzzwords I hear every day but don’t really know what they are used for. I haven’t tried Continous Integration or Continous Deployment as well.
Data Structures and Algorithms: This is a topic that seems to be controversial. I only know a few simple algorithms and data structures but to be honest, I don’t think I have ever applied any of the knowledge in real-world development.
Deployment, Web Servers and AWS: I don’t know to deploy applications using Digital Oceans or any other hosting platforms like Heroku, etc. Never tried any of AWS to deploy my applications.
Design and Graphics: Don’t even go there!
Networking: Funny enough, I did networking for almost a year before I picked programming but I have forgotten most of the stuff I learnt back then. I still remember little but wouldn’t go far, TCP, UDP, Packets, HTTPS, SSL, etc.
Frontend Technologies: There are so many technologies I still haven’t come to grasp with. They include, accessibility, Animations, Browser rendering, PWA, etc
This doesn’t devalue my knowledge and experience. There’s plenty of things that I can do well. For example, learning technologies when I need them.
This article is largely inspired by Dan Abramov article on the same topic. Dan is an industry leader and writing something like this goes a long way to encourage other programmers that it’s possible not to know everything and still be relevant in the industry.