Click here to Skip to main content
15,435,438 members
Articles / Desktop Programming / WPF
Posted 21 Aug 2013

Tagged as


3 bookmarked


Rate me:
Please Sign up or sign in to vote.
5.00/5 (2 votes)
21 Aug 2013CPOL4 min read
A tool for new or aspiring programmers of any age to get started on the right foot in the field.

This article is an entry in our AppInnovation Contest. Articles in this sub-section are not required to be full articles so care should be taken when voting.

Contest Information 

  • Target Platform - Tablet
  • Category - Education
  • Overview - A tool for new or aspiring programmers of any age to learn how to get started in programming, from written and video tutorials to practice areas and step-by-step advice. 
  • Description - See Description section below.
  • Approach Taken - See Approach Taken section below.
  • Coding Language - This is a C# WPF application written in .NET 4.5. Caliburn Micro is used for MVVM help. A number of resources are pulled in from websites and accessed right inside the application.


Learning to program is more than just knowing how to write code. It is about problem solving. Exercising this skill, especially at an early age, will help any individual no matter what their eventual career ends up becoming. Learn2Program is a multifaceted tool to aid users of all ages to stretch and grow their problem solving as well as their actual programming.


Learn2Program has the following features:

  • Multi-user - Each user has their own login so that they can customize the learning to their specific needs.
  • Learning Paths - Takes the user through a series of steps to learn a specific language, as well as the fundamentals of logic, in a structured and thought-out way. Each learning path is designed by a college instructor and industry expert.
  • Video Tutorials - Accesses a set of high-quality video tutorials based upon the subject and language that the student is learning. Useful as a supplemental tool to the actual curriculum.
  • Written Tutorials - Access written tutorials that supplement the learning path that you are on. Some of these are included with the application and some will be links to articles written by industry experts.
  • Practice Code - For each major learning point, there is at least one practice code bit Learn2Code includes all of the starting code samples as well as completed samples for comparison.
  • Bonus Resources - There is so much great material out there (and some not so great material). Learn2Program has compiled a Learning Path-specific list of materials that would be best to review to reinforce and improve upon the topics being learned.
  • Progress Indicator - Track where you are on the Learning Path that you have chosen.


The target audience for Learn2Program is anyone who is unfamiliar with programming and who wants to get into the field. This is a broad group of people but it breaks down into two basic categories: students and adult learners. Learn2Program works to reach both of these groups with the same application. The reason for this is because no matter who you are, when you first start to learn something, you need a lot of help. Learn2Program provides this help. As you learn more, you can venture farther out on your own. Learn2Program accommodates this as well. No matter whether you are a visual learner, an auditory learner, or a hands-on learner, Learn2Program has the features you need to learn best.

Approach Taken

This application is a bit different than the usual app that I build. It is much more about the content than it is about the presentation of the content. However, presentation is still important. Currently I am teaching my sons to program (they are 10 and 8). I am also teaching college freshmen the same. Preparing the materials for both groups got me to thinking about the similarities in the teaching process. I decided to take my already-prepared materials and put it into an application that could be used to supplement my teaching. The way I am building it, the application is not dependent on my teaching.

The code for this project is fairly simple. I'll use a web control to bring in some sites and I'll link the data to Evernote as well to aid in note-taking. At this point, I have the material, I just need to put it into a working application.

Technologies Used

I use the following technologies in this application:

  • Touch - The system is designed to be touched instead of being just mouse friendly.
  • Screen Size - Uses the full screen real-estate by covering the taskbar. This makes the application big enough for a great learning tool yet compact enough that it can be easily taken with you wherever you go.
  • Portability - The tablet is great for learning on the go. Use those times in the car, in study hall, or at grandma's house to take the next step in the learning process.
  • WiFi - A lot of the supplementary resources are located on and accessed through the web.
  • SkyDrive - Saves your progress and synchronizes your practice applications on SkyDrive so that your data is available on any computer.


There are a lot of tools out there to help people learn bits and pieces about programming. There are even some comprehensive tools to do the same. Learn2Program is different in that it takes the fear and confusion out of learning those critical first steps by walking the user through them in a simple and easy to understand manner. By the time the user has progressed through their learning path, they will know not only how to program but also how to get answers about programming and how to continue to improve their knowledge of programming. Whether you are 8 or 80, Learn2Program will help you down the path to programming success.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
Software Developer (Senior) DeGarmo
United States United States
I am currently a Senior Software Developer at a company in Illinois called DeGarmo. My primary skills are in .NET, SQL, JavaScript, and other web technologies although I have worked with PowerShell, C, and Java as well.

In my previous positions, I have worked as a lead developer, professor and IT Director. As such, I have been able to develop software on a number of different types of systems and I have learned how to correctly oversee the overall direction of technology for an organization. I've developed applications for everything from machine automation to complete ERP systems.

I enjoy taking hard subjects and making them easy to understand for people unfamiliar with the topic.

Comments and Discussions

AdminThanks! Pin
Kevin Priddle22-Aug-13 5:42
professionalKevin Priddle22-Aug-13 5:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.