One of my most memorable experiences in software development occured to me eight years ago when I started working for Airbus. I was fresh out of college, all pumped up with my master’s degree in engineering. As a self-taught programmer, I had been swimming in code for 15 years prior but was still clueless about how to produce great, maintainable code. The main issue with someone that is overcome with pride is that it always finds itself faultless, rejecting any type of failure onto something or someone else. For me, 8 years ago, it was always Eclipse’s fault.
In an effort to reduce costs, Airbus started shifting their software development from Microsoft to the Java open source ecosystem. While familiar with C/C++ at the time, I only downloaded Eclipse for the very first time in 2006 at Airbus.
As an advocate of Microsoft products, Visual Studio was to me the pinacle of the IDEs, making the transition to Eclipse incredibly painful. It was slow: autocomplete would take multiple seconds, it would often freeze… The integration with Maven was never working. The layout was awkward. Spell-checking ON but line numbers OFF as defaults?! I was repulsed by it. Everything about it made me feel like it was created at the time when dinosaurs were still on the earth. I hated my job for having to use Eclipse. I was a miserable coder who knew deep inside that it was all Eclipse’s fault. I thought that things would get better with the days, but they didn’t. I kept dreaming about creating the site http://www.ihateeclipse.com/ three years before it was even born.
Two weeks had passed when a coworker passed by my desk and heard me curse at the IDE. He asked if he could help. I replied that nothing could be done: “Eclipse is just being a piece of *junk* once again.”, after which I engaged in a long 10 minutes rant about how awful Eclipse was, and how it diminished my abilities as a programmer.
He listened carefully and then asked if he could take a look. He picked up a chair and grabbed the keyboard. He started typing extremely fast, opening up the preferences, changing a bunch of options, tweaking memory usage, server settings, etc. His hands never left the keyboard. Everything on my computer, Eclipse included, seemed so fluid, so fast and so responsive. For each specific action, he knew the exact procedure, the right shortcut. The dialogs would open up and close within seconds. Within a few minutes, he had identified the issue, fixed it, tested it and commited the fix. As he left, he mentioned:
You know, Eclipse is just another tool… They are only as sharp as you decide them to be.
I was blown away. Back with my keyboard and mouse, Eclipse seemed slow again, but I knew that if I took the time to master it, it would become a powerful tool. Whenever I swang by my teammate’s desk, I noticed he was only using Emacs and a linux terminal. He had mastered these two tools to perfection and was faster at producing efficient code using them than through other tools.
With the years, I have come to master a small number of tools. I know all the shortcuts in Photoshop, I am pretty fluent in Visual Studio, I have completely customized Eclipse, I have my own Sublime Text plugins and use hand-crafted extensions in Chrome. Just like learning to play an instrument, mastering any tool is hard and requires dedication and a lot of time. I have modified/treasured the tools in a way that they have become a part of me as a coder. With the years, I have come to the conclusion that one of the best ways to become a better coder is to learn to master the tools of the craft.
Even today, I read the debates about Eclipse vs Netbeans vs IntelliJ, about .Net vs Java, Rails vs Django vs Laravel, Mac vs PC, etc. Seeing a title such as the best \[insert any word here\] in the world
is usually devoid of real information. To those who seek which tool is the best, just pick one that you feel good with, and go master it. Make it your own. Make it the best tool in the world.
Akash Agrawal says (October 14, 2014 at 5:35 am):
zerr says (October 14, 2014 at 8:05 am):
Mikael says (October 14, 2014 at 9:41 am):
Taylor says (October 14, 2014 at 2:41 pm):
I will share your story with the world, my friend. This should be read in every introductory Programming / Computer Science course IMO. In hindsight, the level of technological bigotry that exists in the software realm is unbelievable. We should master what we like, and appreciate others expertise instead of criticizing their choices.
Though, it already seems that the frenetic people that you are referring to have already jumped on the opportunity to tell you why you are wrong.
Alec Larson says (October 14, 2014 at 3:00 pm):
R Madala says (October 14, 2014 at 3:47 pm):
Monsto says (October 14, 2014 at 5:55 pm):
A_person says (October 14, 2014 at 6:06 pm):
Jake says (October 14, 2014 at 8:23 pm):
Guido Contreras Woda says (October 14, 2014 at 10:51 pm):
Lee Hanxue says (October 15, 2014 at 3:47 am):
Amit Chootiya says (October 15, 2014 at 10:05 am):
some r says (October 15, 2014 at 3:32 pm):
Henry Sampson says (October 16, 2014 at 9:02 am):
Vishal says (February 11, 2015 at 3:39 pm):
B.A says (March 25, 2015 at 4:02 pm):
Rick Cogley says (March 24, 2016 at 4:35 am):
A.Smirnov says (April 22, 2016 at 5:02 am):
Patrick Günther says (January 4, 2017 at 1:33 pm):
ikk says (December 8, 2017 at 1:26 pm):
Comments are now closed