Another helpful tip from someone who does this for a living
By Corey Adler (ironman84), professional software developer
Greetings again, thwack®. I hope my last post didn’t scare you away from learning how to code properly. What do you mean you haven’t seen it yet? Click here now!
When I began talking to my good buddy and Head Geek™ Leon Adato about more tips for you, the code novice, he stopped me right after I mentioned my first idea. “You know Corey, that’s a great topic,” he said. “You should dedicate an entire post to discussing it, not just a small paragraph.” Sigh. Fine. Here goes nothing.
Integrated development environments (IDEs) are your best friend
An integrated development environment (IDE) is an application that facilitates coding in any number of programming languages. IDEs tend to come with a variety of features, including a source code editor, intelligent code completion, compilers/interpreters (depending on the language), and the ability to debug the code as it runs.
In college, I knew a computer science professor who would not let her intro students use one of the better featured IDEs, such as Eclipse or NetBeans®, for her class. Instead, they had to use one that was nothing more than a text editor that could interpret Java™ programs. She did this because she wanted her students to learn the language syntax, to create class files without all the bells and whistles that would keep them from learning finger memory when they did. My reaction to her approach now is the same as it was back then, only more amplified: I think that’s an incredibly ridiculous way to teach programming – Java or otherwise.
Why? Because you aren’t going to learn the language any faster by breaking your teeth on it. All you’ll end up doing is frustrating yourself to no end. Professional software developers use full-featured IDEs all the freaking time. I’m a .NET developer who keeps a copy of Visual Studio® 2013 Ultimate on my work laptop, along with a bevy of extensions on top of it, including the popular ReSharper extension, which adds even more keyboard shortcuts and code completion features. It even gives me advice about good coding practices that I may have missed while coding.
It’s true. I already know the language. I’m not a beginner who should do it the old fashioned way to learn it. While that may be true, I’ve learned more about coding and languages from the helpers in my IDE than I ever did in class. For example, let’s talk about that whole intelligent code completion business. When I instantiate a variable (more on that in a different post) of a certain type, Visual Studio will tell me every different function and property that I can access on that variable. If they’re a baked-in type, I even get documentation about what each of them do! Why the heck would someone not want that? As previously suggested, don’t try to reinvent the wheel, which includes not avoiding the use of a full-featured IDE.
You know what else is cool about IDEs? The fact that they exist for pretty much any programming language in the world. I did a simple Google® search for a list, and found the following Wikipedia article that includes a huge list:
Not all of them are free, but most of the paid ones will still have a free version with some features. Working on .NET? (Hey! Me too! REPRESENT!) Download Visual Studio Community. How about with Java? Use the aforementioned Eclipse. It’s fantastic and open-sourced! Or maybe you’re one of those unfortunate souls who use Perl® and PHP (heaven help us all. Yes, Leon, I’m looking at YOU). In that case, may I highly recommend using NetBeans, which is free under GPL licensing! With so many options and features to make your coding journey easier, why would you ever choose to not use one?
Maybe Leon was right. This topic did deserve its own post. Until next time, I wish you good coding!
SolarWinds solutions are rooted in our deep connection to our user base in the THWACK® online community.
More than 150,000 members are here to solve problems, share technology and best practices, and directly
contribute to our product development process.