Lately, I’ve been trying to really home-in on some of the problems that I see many of my students going through that holds them back from their learning and programming goals. Today I want to talk about “the details”.
Computer Science, like many fields, is one that enjoys details. We thrive on it actually, digging into problems, exploring the minutia, and giving everything an acronym. But I start to think how unhelpful this attitude is to students. Learning to program well requires the introduction of the following all at once:
- Basic concepts of programming
- Development software / IDEs
- Foundational knowledge in computing
- Coding standards
- Requirements gathering
- Syntax for the language they are studying
You can probably tell this is an overwhelming list. I actually could add a few more items but typically, this is what is covered in the first few WEEKS of an introductory computer programming course. I start to ask myself why. Why are we so caught up in all of these details? Why is it so important to impart the skills of documenting or making sure they can understand a bit from a byte when they are first starting out?
It seems to me we would be doing a students a great service if we tried to remove some of these roadblocks to their learning and actually just taught them how to program. We don’t teach people how to drive cars by making them learn how to fix one. No one ever learned how to write by studying the history of penmanship. Some topics are better left for later when the student has a grasp of the language, then we can go back and make sure that they understand what is going on under the hood.
So today, for all of my students, I would recommend the following – put down the details and focus on the programming. Really dig into the whys and hows of your current language and don’t worry about all of the peripheral knowledge that you can gain over time. Slim down your list to:
- One programming language (of course, I think C# is the best)
- One IDE – Visual Studio really cannot be beat
- A simple set of challenges or projects you want to accomplish
You will make far more progress in learning how to program if you narrow your focus towards a goal that can be stated easily such as “A program that can convert temperatures from Fahrenheit to Celsius” or “A program that lets me enter and search my DVD titles”. Not only will you find that you have more motivation when you are focused on completing a particular project, but you will learn a lot more about your programming language by solving the challenges that will be held within.
If you haven’t checked out my learning course for C# yet, now is a good time to get started – learn more here.