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 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.
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.
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.
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
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.
“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.
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
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
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.
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:
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.
Curriculum 3.4 to 3.6
Redo Curriculum 3.2
Continue LitDevs Arrays sample
Keep working through LitDevs Arrays samples
See next month for Curriculum 3.4
Curriculum 4.1 Curriculum 3.4 ‘Show what you know’
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:
Great job! Very valuable!
Thanks. I hope it's helpful.
Great article - well done!
Congratulations on winning a medal! blogs.technet.com/.../technet-guru-awards-june-2013.aspx