Programming Anxiety

Programming is one of the cornerstones of modern information technology. It is what enables the entire Internet to deliver a myriad of services and information to everyone at any instant. We live in an era where all sorts of amazing programming projects exists, especially the Linux kernel and the GCC compiler. These amazing programs are the product of tens of thousands of hours devoted by legendary experts. I admire how programs has helped humanity as a whole. So while most of my previous posts have been about the progression of what I have learnt, this post is not one of them.

I started learning about programming in the earlier part of this decade; I don't really remember the specific date anymore. Learning programming was fun. Reading blogs, articles, and disseminations about programming was fun too. But what comes after those? The culmination of all that knowledge and skills is to write your own program. To set your fingers free and ultimately find their way to a creative product of your own.

Would it be self-sabotage for a noob programmer to have read well-written articles discussing the pros and cons of incorporating open source libraries in your project? Or the fastest/most-concise implementation to sort and filter data structures? Or how should a programmer write a program so that he can easily write unit tests for? GCC or LLVM? Imperative or functional? The latest netsec update about exploiting common bugs in poorly-written programs? These questions and information weigh on me before I even write my first function. Would I have done this better? Did I make the right choice using tuples instead of arrays? Is it time to refactor this tiny functionality?

Most of the advice for beginning programmers have always boiled down to "Start small, start well". But even with my best intentions, I would not have known where does one draw the line at well. The fear of finishing a program only to realize that it was never going to be functional, and I have wasted hours of my time only to backspace my way to Line 1. The disappointment after writing a program that I think is somewhat decent, only to find that a similar open source library already implements this with impeccable style and documentation. As a result, even if they would have never taken off, dozens of my programming projects have never left the drawing board.

What would have been the lesson of this post? I don't know. Perhaps I should just learn to embrace the idea that the programming process inherently requires a lot of rewriting and will inevitably be filled with security issues. Thank you for reading.


“What is better: to be born good or to overcome your evil nature through great effort?”
- Paarthurnax