So i just finished my first semester of college. In my intro to programming class we made a bunch of super interesting (sarcasm) console applications. Any suggestions on ways other than just messing around with console applications for a beginner C++ student to improve?

5 Answers 5


Know the feeling. I was frustrated at the same thing. Console applications aren't very interesting what with all that string reversing and linked lists, but at the same time there is no way I can argue with the other responses given.

To answer your question, pick a topic your interested in. Seeing as I learned C/C++ I headed in the direction of learning GTK+ and SDL. GTK+ should give you a good start on GUI and SDL on 2D graphics (this could lead onto opengl later on). I also recommend you going over beej's guide to networking (its a free online ebook), this should give you a start on networking.


Depends on what you mean by console apps, but there is nothing wrong with console applications to learn C++. It all depends on how complex they are.

You could try writing a gui app with something like QT, but then you'll spend most of the time learning the framework.

You could write a game in something like OpenGL, SDL etc.

The problem with C++ is that it is a huge step from simple stuff to something useful.

  • 4
    Qt is amazingly accessible. Just follow the tutorials and very soon you'll be writing your own small (but real) applications.
    – Javier
    Commented Dec 19, 2010 at 11:20
  • @Javier: Qt is accessible, but somewhat un-C++. Because Qt is object oriented with hacks to provide kind of introspection while modern C++ is more about functional and generic programming.
    – Jan Hudec
    Commented Jul 23, 2014 at 7:45

Console applications are the best ways to learn C++. And rather than learning advanced C++, better learn the data structures first. Once you learn list, tress, graph etc. then you will have much more option in console applications.

  • 1
    Second this. Speaking from experience, jumping straight into GUI programming gives a very superficial understanding of C++. Despite all its high-level abstractions, C++ is built on top of very low level abstractions and hence it's critical to know these basic building blocks in order to understand how the abstractions work and, more importantly, when these abstractions leak (as they will inevitably do so given its unsafe nature).
    – Rufflewind
    Commented Jul 23, 2014 at 3:43

Find an open source project you find interesting, and contribute. We love new contributors, and more experienced coders will be reviewing your patches and providing feedback. :)

  • +1. And don't forget the fact that you get to read other people's code, which is good way to learn new idioms and important skill in itself.
    – Jan Hudec
    Commented Jul 23, 2014 at 7:42

Console applications may seem boring but they are essential to the development of the programmers ability to think of solutions. The basics of programming are always overlooked these days with the shiny stuff. I still use console applications a lot to test out ideas before building the high-level stuff on them. Once you have become good at the low-level stuff, you become a programmer with better understanding and flexibility and also have good programming habits.

Try challenging problems each time. I would recommend you Cracking the Coding Interview by Gayle Laakmann to get challenging questions and insights. You are at the best time in your career to start building up on these fundamentals and polishing them up into being a great programmer some day. Good luck.

Not the answer you're looking for? Browse other questions tagged or ask your own question.