Monday, December 6, 2010

Programming is not hard, we make it hard.

When I decided to write software as a career, one of the most difficult things about programming I personally discovered is being able to port knowledge from one language to the next or from one environment to the next.

Say, the C# language from building nothing but ASP.NET web sites to creating console apps, then moving from that to web forms. Many of the instructors I've listened too do not take a simple approach to explaining how to do that, which makes programming for a beginner extremely difficult.

Programming is not hard.
What makes learning to program difficult is that no one programmer thinks exactly alike. Although there are standards in programming and such. Every person approaches solving a problem differently. What is factored into solving the problem is the layer of knowledge that the person draws from to solve the problem.

If the problem requires the out put of data to the screen and the programmer has only built console applications, then they will most likely develop from that perspective. A web developer would choose a web interface and a Windows Form developer a desktop application.

When I teach courses to students learning to develop I tell them that it is best to purchase books from a single author on a particular language than to get them by title or subject only. Because each author will take a different approach to solving the same problem, the beginning programming may become confused.

Another problem with teaching programming languages is the learning curve. None of my instructors in college, or programming DVD or CD's I've purchased taught from a perspective that would shorten the learning curve. They simply taught. I would hear words like inheritance, delegates and my mind would go, I know these terms but what do they have to do with programming.

Teaching programming from a natural perspective will bring more people into the development world. Helping people make a connection between what they know already and what they are learning about programming will make programming fun and not mysterious.

No comments: