cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post

Still Learning to Code? Here’s a Huge Tip

Level 9

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:

https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments.

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!

12 Comments
MVP
MVP

I guess I am old school...never really had an IDE to work with.

I will check into on the ones listed for perl...that would likely get the most use.

Great topic this week. Gives me something else to look at that I need to make time to investigate.

Level 9

Couldn't agree more. My son just started coding a year ago, and this was high on my list of advice for him.

This highlights one of the special features about growing "older" in the network field--keeping up with technologies and acronyms. 

Maybe I'm not the only one who immediately thought of hard drives that are Integrated Drive Electronics? 

There I am, dated.

MVP
MVP

I also agree that it makes no sense at all to try and learn to code in Notepad. The IDEs these days do half the work for you.

Level 13

While not exactly a full IDE, Notepad++ has been my go-to for editing scripts, config files for various programs and Cisco IOS snippets for years.

Level 9

I'm a big fan of Programmer's Notepad for when I'm taking a look at code that isn't a part of my current project, just so that I don't have to wait for a full IDE to load. The styling features of both it and Notepad++ are top notch.

MVP
MVP

+1 for notepad++

I like that you can create templates for various file formats like config files for nagios.

Level 17

+2  for Notepad++

To me there are IDE's better for specific languages.

Most of the time if I am doing Javascript or HTML I use NotePad ++

Android  Eclipse ADT

Java Net Beans

Net or SQL (not really coding, but...)  Visual Studio

MVP
MVP

+1 for Visual Studio + ReSharper. That's a great plugin - well worth the cash. I also use PowerShell's ISE and then PyCharm for Python.

Level 12

I'm hooked on the Visual Studio IDE, I do as much as I can in .NET

It also helps that I don't have to pay for things with my MSDN account.

Level 13

hmmmmm...

I've tried several of the "real developer IDEs" like Eclipse or Visual Studio when trying to learn new languages and I find that they have such a dizzying array of buttons and options and preferences to set (especially initial environment setup, loading things the first time from scratch) that I get frustrated.  Googling for help can make things worse unless the problem is "extremely obvious", otherwise I make a lot of settings changes and install plugins, etc. and then funk up the environment.  I spend more time trying to get things set up and determine what specific steps to do instead of writing code.  So I drop down to notepad/Notepad++/gedit/vim and just get things done.

I think the problem with *not* using an IDE to "learn" is:

- Learning the basics is extremely boring and pointless.  Very few people get any "rush" or understanding when building/compiling/running mini "hello world" examples by hand.

- Not using an IDE means you have to learn the command line tools to build/run/debug/etc.  This excites few people and makes everything seem overly complicated.  Having the code completion, help, and debugger built in means a LOT less time searching for obscure documentation on forums where some insane guy magically is able to get what you want done with some undocumented API call.

- A lot of code is packaged in a way that loads nicely into a specific IDE (because the developer uses that one)

- The internet many times assumes you're using XYZ IDE (especially if you're in .NET or JAVA) so when you have issues they say "click here, here, and here" to set up that environment config.

- IMHO: Learning "the old way in school" was with simple loops and timing code and focusing on the basic details of the language to do things no one learning *for fun* it cares about. Learning "the new way" is loading up an entire app and using tutorials to modify it and see the results in an hour.  Focusing on tiny details of the language happens later, if at all.