Friday, January 8, 2016

Am I that good of a coder or are the others just really bad

Am I that good of a coder or are the others just really bad? That's a question that I can't seem to get an answer to. Let me start by taking you back to my younger years in my quest to find an answer.


When I was about 10 years old, my father taught me the foundation of programming in Basic. This really interested me and I started creating all sorts of useless applications with it. I got better and better by trying and looking at other people's code. I was particularly interested in using the I/O port on my Commodore 64 since that could give some real meaning to my code, so I started reading the Commodore 64 books. That was extremely difficult as all books I had were in English and I didn't understand a word of English back then. Eventually I succeeded and hooked the I/O port up to a couple of lamps in my room using relays (electronics had always been my thing). I could now turn the disco lights on and off with my own software and I created an application to design light-patterns. I remember being proud to have pulled it off but nobody else seemed to think it was a big deal. Being able to code didn't really give you an edge in life back then and my grades didn't improve with my coding knowledge so I didn't think much of it.


After my electronics study I found a job in IT. I created customer support applications but still didn't see myself as a developer, just someone who was good in writing some. While being involved in these software projects, the business end of it all started to interest me so much that I slowly started moving away from software development. Many years later I found myself being head of IT and Customer Support. The company I worked for had a small software development department of about ten developers. These guys were all considered class-A hires. Super developers! Most of them were wearing these huge headsets and having a "normal" conversation with them was a challenge unless the topic was WoW. At some point, I had to purchase a large number of servers to run the company's software product on. I asked development for input on requirements like memory, processors and disk speed. Even after repeatedly asking them I never received any requirements! Turns out these guys could seriously write code, but none of them knew a single thing about hardware. Then a few months later one of their development servers had to be replaced and I gave them a brand new server. Then I found out that none of them were able to do a proper Linux installation! So I figured, does that make a class-A developer, someone who can code but cannot be bothered to learn anything about what they are coding on?


Then about two years ago, working for another company, I found out that even though I worked so hard to move into a management position, I wasn't done with the technical side. I always felt the urge to write some code so I moved into a position as a Technical Project Manager. The perfect balance! I could manage technical projects and sometimes create software myself. For the larger projects I helped draft requirements for the development team. The work that they delivered was often so poor that I didn't even want people to know that I was involved in the project. But even though I tried to convince the world around me that we couldn't accept this level of work, people around me didn't seem to care all that much. This made me think: Am I too much of a perfectionist or am I maybe comparing the delivered work to what I would have delivered if it were me writing that code.


Then last year I worked on a project that really got me thinking. I had to deliver an app and because I had never done that before and because I didn't have any Java experience I hired an Android developer. This turned out to be a big mistake. He was not able to finish the product because he lacked skills and experience. A week before the deadline I had to start looking for someone else to finish the project. Through my network I found a Senior Android Developer who had tons of experience and a pretty serious hourly rate. I asked him to fix the show-stopping issues in the product. Because fixing the issues took way more time than expected I was forced to dive into Android development myself and work alongside him. After a few days I started to feel comfortable with Java and could fix a lot of issues. We made the deadline and since I really enjoyed coding Java I decided to finish the app myself. Then a couple of weeks later I was so comfortable with Android development that I realised I was already way better than the expensive consultant that I had hired. So maybe I am a lot better in coding than I always thought I was. And maybe I really am a "Software Developer"!!


So what makes a top-developer? I've had my issues finding good developers and I still don't know the universal way to find them. On some freelance platforms developers are rated on a programming language by taking an online exam. These exams are based on syntax-related questions. On an average workday, I use at least 5 different languages. I cannot possibly remember all the not-so-often-used methods from the top of my head! And why should I, that's what we have Google for right? On top of that, if someone asks me to create a piece of software in a new language I might not know the syntax yet, but I'm still a really good coder. That doesn't stop at the boundaries of a language, it's a way of thinking!


I am now back to tech, focussing on web applications and Android apps development as a freelancer. But if I am having issues separating great developers from good developers from incompetent developers, how will potential clients know that I am one of the great ones? While searching for the answer to that, I ran into Toptal, a freelance platform that allows only the best 3% of the applicants on their platform. Being on the Toptal App engineers group would totally solve that problem. Clients of Toptal would already know that whoever they hire, it will always be top-talent. Apart from that, maybe this also answers my life-long question, "Am I that good of a coder or are the others just really bad". I guess an answer to this question will always be subjective, but it might have significant value if answered by the right people...


No comments:

Post a Comment