Compiler/IDE for beginning programming

Joined
Dec 20, 2011
Messages
23
Flipping through the programming books for beginners, it seems that many recommend a particular compiler or IDE to download for use with the book. The problem for me is that these books seem to assume previous knowledge of using these tools to do the examples, but don't really give you much in the way of a tutorial. Today, I was looking at C Programming Absolute Beginner's Guide, by Perry and Miller, in the book store. The first few pages tell you to download CodeBlocks, but I didn't see any further references on how to use CodeBlocks in the book. I recall trying out the first edition of Programming: Principles and Practice Using C++, by Stroustrup, and but the Microsoft IDE he recommended didn't compile the first example program using the steps provided. That may have been due to my ignorance in using the free Visual Studio, though.

Can anyone recommend the simplest tools for some starting with either C or C++ to get the programs compiled, and troubleshooting them? I'm thinking about getting comfortable with a compiler first, and then stepping up to an IDE much later, after I have more experience. Might this be the best way to start without being overwhelmed with all the options,(like debuggers, gui elements, break points, etc.) or am I way off base? Do you know of any compiler or IDE with good tutorials for the newbie on their own?
 
Visual Studio Express is perfectly functional, however keep in mind it has a few Microsoft specific compiler options (mostly #pragmas). The debugger is quite nice and you probably won't miss any features from the full version until you gain significantly more experience.

The only other viable Windows IDE for C++ I've heard of is NetBeans.

As for the not compiling a simple example: I remember a similar issue coming up in one of my college courses. The professor was using a standard C book to teach the class but using Visual Studio. The source of the problem was that in C++ standard libraries do not have .h in their include statement, whereas in C they do. ie #include <cstdio> instead of #include<stdio.h>

Though on a side note, I'd like to ask what are your goals? You mention GUI's, which if you plan on doing multi-platform applications C++ or Java using a GUI Framework are your best options. However if you are planning on sticking to Windows I'd highly suggest picking up C#, Winforms, and eventually WPF. Those frameworks take a significant amount of work out of trying to write a Windows GUI.

C# is significantly more forgiving to a beginner due to memory being managed by the language instead of manually like in C/C++. The Visual Studio IDE also constantly compiles C# code as you type it so it will immediately let you know if there is an error in your code without having to recompile. If anything, C# provides a good starting point to learn basis of any modern language (functions, classes, inheritance, interfaces, generics/templates). Also, the syntax between C# and C++ is quite similar so if you decide to make the switch later it won't be quite as painful.

On a similar note, if your goal is to eventually do something like game programming or intense calculations, C++ is a better choice due to speed.
 
Last edited:
If you decide to go with scripting languages like Perl or Ruby then Notepad++ is very popular.
 
Notepad++ is not an IDE.There are some add ins that help it get close, but it doesn't have a debugger and therefore isn't integrated.

Visual Studio Express is free, and excellent. Eclipse runs under Windows and supports C++. MingW runs under Windows, too, but has spotty support -- sometimes going years without updates.
 
I think you're just going to have to go with one, try to get it working and figure it out (stick with it). You'd be better off posting the example code with the error you are getting and having people help you figure out how to work through it.

So I guess I'm going to suggest picking a popular one and trying to google the errors your getting and if you cannot figure it out post your question here or a site like StackOverflow.com and ask for more help. I think Visual Studio is great and a widely used IDE, eclipse is big too in the java world and others..
 
am i the only one who plain dislikes Eclipse? It's such a bloated cow....
 
c/c++ are not very forgiving. they're about the last thing i would recommend for learning to program by yourself.

python is nice, but i dont write gui's in it, i dont know how difficult they are. its not compiled, and even has an interactive interpreter so you can get results as you type, which is very handy. ipython has even fancier stuff in that regard, but i dont use it.
i like eclipse + pydev for python.

similar to python, you could look at ruby, i havent used it, but it should be similar to python for ease of learning/power.

i'd even recommend java before c/c++ if you want to write guis. I think the built in java gui toolkit works well. A lot of the os specific stuff gets abstracted away. i like eclipse, but people also like netbeans & other ides. The java api docs & tutorials are pretty good. Its wordy with boilerplate class stuff, but not too bad.

Once you've mastered one of the easier languages you could move on to c++11, but i think you're just in for a world of frustrations if you jump straight into the deep end.
 
I tend to use text editors like Notepad++ in Windows and Kate in Linux, and not IDEs, but I hear Code Blocks is a good one too and it's also cross platform, so I'd probably stick with learning that personally.
 
Eclipse itself is written in Java, so it's slow and big.

Slow is an understatement....And I don't think it'd even be fair to blame Java for that. I suspect most of my irritating performance problems have to do with poor threading. I don't like it when trying to publish a small web app to my local application server can cause the entire GUI to block and wait for about 30 seconds while eclipse is doing who knows what in the background. The 'run this task in the background' would be a great feature, if I could ever actually click the button. In my personal experience, Visual studio is never as problematically slow as Eclipse is in a regular basis.

I also can't stand the appearance and 'rough edges' eclipse suffers from. I knew from the very moment I started using Eclipse that it wasn't commercial software. The UI and all the button icons just seem childish and cartoony, and I find it really irritating whenever I'm trying to do something I should be able to do in one fell swoop, yet find myself stuck doing everything item by item, one at a time. I can't think of many examples off the top of my head, but every time I try to use Eclipse I run into annoyances like trying to close multiple projects. Why can't I just select 5 projects from my workspace, right click, and click close? Is there really a reason why I have to click on each of them individually, and then close them individually? The UI isn't even close to refined. If I were a generous person, I would take note of these things as I came across them, and try fixing them, but alas, I don't have enough free time for that right now.
 
Of all the IDEs that i've used, my personal favs:

Java: Netbeans or IntelliJ depending on type of project i am looking at

OSX / iOS : XCode

.NET / C#: Visual Studio
 
Back
Top