For the last month or so I’ve been trying to get my foot into iOS development. This has proven more difficult than I had anticipated mostly because of my lack of spare time to dedicate to such endeavor. One thing I’ve come to realize is that even though I’ve been programming for a couple of years now, I’ve been suffering from a widespread disease amongst programmers, the lack of confidence and fear of failing.
Countless times have I taken on some personal project that I never fully develop because I get stuck thinking about the “right” way to achieve something. I tend to get blocked on the “how should it be done” instead of the “how can I do it”. This time I’ve decided I will not go down that hole and, surprisingly, things are coming along quite nicely. I’ve finally realized that more important than trying to do the things the “right way” (if there’s such a thing) is to actually get things done.
It’s amazing how much more you learn when you spend hours banging your head on the wall trying to solve some problem, trying out a multitude of different approaches with an open mindset without fear of failing or doing it wrong. This process leads to such a great feeling once you finally get it! Thinking back to my first experiences in programming, this was the feeling that got me interested in programming. Back then, I had absolutely no fear of failing, all was great because I was fully aware that all those failed experiments would be followed by that wonderful feeling of finally solving the problem by myself.
So what made me forget what was really fun and fundamental in programming? I blame the fact I work as a programmer for a living, mostly doing uninteresting stuff on the web using uninteresting languages like PHP (sorry guys). But most of all, I blame the fact that in my work I can’t actually program the way that always made me happy, banging my head on problems, pushing even further when a problem is taking more than a couple of hours to solve, experimenting crazy ideas that I already know won’t work but that might gain me some insight into the inner workings of something else. All these are great but not possible in my day job, deadlines are deadlines and budgets are budgets. Working as sole programmer on the team doesn’t help either, having no one else that relates to what you do just makes it worse.
So, wrapping it all up, if by any chance you are starting out on programming my advice is that you keep pursuing the fun in it. Keep trying out approaches. Keep present the idea that all those failed attempts will bring you pleasure. To sum it up, just do it.
My many thanks to the Apple team for creating the technology that reminded me once again of what is really important about programming and most of all of how fun and self-rewarding it can be.