Development Map for Becoming a Good Programmer Using Small Basic and MSDN

Development Map for Becoming a Good Programmer Using Small Basic and MSDN


Maintaining your enthusiasm

Learning requires the desire to learn. For as long as you’re learning to program you’ll need to regularly revise your goals and how you set about achieving them. This will help ensure your enthusiasm is always there. Maintaining your enthusiasm is vital so that you can go on to learn and gain a deep understanding of several different languages suitable for different purposes. This deep understanding of varying languages is essentially what a good programmer has. The best programmers will push the limits of a language using creative and simple methods and not necessarily spend all of their time learning all of them.

Setting and Using your Goals

Setting goals is your map to becoming a good programmer. A good goal is flexible, realistic and practical. Learn to become a ‘pragmatic programmer’ by first learning how to set useful goals.

Goals reflect ones ambitions and are closely followed by your approach. Try to keep your programs simple. Good programming is often the simplest and most direct solution to a problem.

Your goals will need continual fine tuning and adjustment. Often is the case when starting out that the time estimated to complete a task is underestimated. Adjustments also allow for unexpected related learning. For example you may need to refresh your algebra, trig and equation solving skills along the way. Goals will provide you with morale building feedback on how you’re going.

Don’t Give Up at First Attempt

Know from the outset that every programmer (not just you) is continually faced with problems that they can’t solve at first attempt.

At times it can be helpful to put aside what you’re working on and come back to it with fresh eyes, but don’t put it down for too long. You may need to do some research, practice some new methods then come back and redo your program or parts of it. This is pretty much the norm especially when you’re new to programming and trying stuff out. Find out what you’re doing wrong including a check that your goals and approach are pragmatic.

“…break the problem down into smaller chunks… Then look to get those smaller chunks (or sub routines) working first. Getting some successes with smaller portions of code is great for morale. Then gradually, build or merge those portions together… It's also easier to fix faults in a small piece of code that you've spent 10 minutes writing, rather than within 100's of lines of code “  - Old Basic Coder, SB forum member.

Be Patient

You’re not going to develop the next big thing after 3 months of programming. But after 3 months you’ll probably start to notice your skills develop. Here’s a good opportunity to use these early days as best you can to gain a deep understanding of what the language is good for and some of the important programming methods and techniques you’ll need for later. These skills are necessary and will help you learn new languages when you’re ready.

Avoid skipping ahead and trying to write programs that you haven’t gained enough skill for yet. Continually attempting programs that are way beyond your skill and experience or trying to learn languages that aren’t good for learning will lead to bad morale, probably a major reason why people give up.

That said; don’t put off forever doing something that will extend your ability. It’s important to be ambitious and take on a new challenge that you think is a little bit beyond you. Make some mistakes and find out where you went wrong. If you’re a beginner, it’s likely you won’t master all of Small Basic and the important programming concepts it can teach you in 3 months.

Along the way try to develop thoughts on what the language is good at.

Choosing the ‘Best’ Language

The best programming language to choose for learning is one that is designed to accomplish your goal or task, learning. Overtime the best one might become your favorite i.e. probably the one you use the most. But consideration of what the language is good at is sound criteria in choosing.

Small Basic is a simplified yet considerably powerful language designed specifically to make learning easier. Consequentially it speeds up the learning process and makes the programmer learn ways to manage features that are often automatically managed in more feature packed languages. It’s a great choice for beginners and those returning to programming after a break. It’s suitable for people of any age.

A good programmer over the course of 5 to 10 years will learn several different languages good for different types of tasks.

Use your time on Small Basic to gain a deep understanding of some key programming methods and techniques. This will make it possible and easier to learn a more featured and complex language when you’re ready.

Learn by Doing

“The best way to learn is by doing, making mistakes, doing it better and seeing others do it differently (better or worse).

Keep an open mind, always looking for neat tricks and reading lots of stuff.  The internet and blogs, wikis etc etc is such a great resource that just wasn't there when I started playing with computers - make the most of it.

And of course have fun getting better at it and also try VB or C# or other languages as you go.” –LitDev, Small Basic forum moderator, 2013.

Don’t select tasks that are too hard, but hard enough to teach you a lesson.    Answering questions on the forum is good practice as well. Repetition of lessons you’ve already learnt will reinforce and deepen your understanding, not to mention give back to your favorite forum. A win- win situation.

Talk to other programmers

Talking with other programmers is necessary to become good. This is how you pick up tips and solutions that aren’t included in books and manuals. The programming community is benevolent and happy to offer tips and solutions.

Participate in a forum on your language. For Small Basic programmers the Small Basic forum, SB blog and TechNet wiki’s on MSDN are a fantastic resource. It will keep you up to date with what’s happening with the language and expose you to the best programs being written with that language.

Read other peoples code samples and keep an open mind.

Relevant Health & Safety Issues

Most of the burden in determining the quality of information on the internet falls on the reader. It's useful to know who the information comes from and or verify the information against another source. There's no point in getting annoyed if you accepted a piece of misinformation and didn't first ask yourself "does this look right?" or checked it.

Personally I think it’s a good idea to take regular breaks from everything. The forums are for on topic stuff and on their own probably don’t make for a healthy social life.

Using Small Basic and MSDN (a self-paced Learning & Development Map)

The following is an example of a self-paced Learning & Development Map using some free and available resources (listed below). It’s not intended to be the only way but may give you some ideas that may help you develop one suitable for yourself. Formal education and employment are generally considered to be the best sources of education and experience.

Practice and experience are what this map is trying to help you get started with. Getting in some regular practice time, whatever you can responsibly manage will be conducive to learning.

Setting completion times to accomplish your goals is a great way to assess your progress.

My map was as roughly as follows:

  • At the start of each month I would set my goal.
  • At the end of each month I would assess my progress by how much of the material I had covered and if I could successfully solve the monthly challenges and ‘show what you know’ exercises in the curriculum.
  • My self-assessment would then help me set my goals for the next month. For example:



Reading & Doing



Curriculum 1.1 to 1.5

Related Chapters in the Manual

Related threads on the forum

Wiki tips e.g.

Attempt related monthly challenges

Read and do the curriculum and its samples. Attempt the "show what you know", then check and do it as done in the curriculum's solution.

While doing the above check the manual for related material. (there’s some great samples and more depth there).

While doing this check the forum for any related threads and ask questions on anything I didn’t understand.

Do and post my solutions to related monthly challenges. Post comments there on any problems I had and invite feedback when needed.

Read the samples of other people’s solutions to the challenges, with an open mind. If someone did it differently to me then I wanted to know why, and often found out why by doing it that way myself.

Proceed to the next Chapter of the curriculum once I was convinced I understood all of it and could do the exercises and related challenges.



Curriculum  2.1 to 2.4

Take a peek at Curriculum 3.5

And same as above

Same as above


Curriculum  2.4 to 3.3

Stacks & Arrays: visit LitDevs web page and download the Samples. Start reading and do some of the Arrays sample.

And same as above

Same as above


Curriculum  3.4 to 3.6

Redo Curriculum 3.2

Continue LitDevs Arrays sample

Same as above

Keep working through LitDevs Arrays samples

See next month for Curriculum 3.4


Curriculum  4.1  Curriculum  3.4 ‘Show what you know’

Same as above

Curriculum  3.4 ‘Show what you know’ exercise at the end. The sample solution to this is very difficult to follow.

Do some of the easier challenges as well


The curriculum:  download a copy of the curriculum to your hard drive (just in case the link fails).

The reference manual:  An introduction to Programming. This is located in the Small Basic program directory. C:\...\Small Basic\IntroducingSmallBasic.pdf

The Small Basic forum:


Acknowledgments & References:

  • Peter Norvig’s article: “Teach Yourself Programming in Ten Years”

  • All the Small Basic Community
  • LitDev & Old Basic Coder for direct reference to their wise tips.
  • 8Bit Pony, special thanks for your timely and relevant feedback.
  • Ed Price for his encouragement.







Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
  • Midlandman2 edited Revision 12. Comment: Minor grammatical changes.

  • Ed Price - MSFT edited Revision 10. Comment: Title tweak. Great article!

Page 1 of 1 (2 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Page 1 of 1 (6 items)