roark (Feb 5th, 2012)
Hey there,
Because I know that many people have (had) problems with acquiring the programming logic/mindset, I am planning a product which will make the learning process of programming more intuitive and interactive.
Because I want the product to solve problems, I would like to know a few things from your personal experience:
-Which concepts did you have problems with when you first started programming (pointers in C, arrays in Java, classes/objects, sessions in .NET...)
-why do you think you had these problems? what was missing? what would you need for the concepts to become easier?
-which type of learning is the most intuitive and effective for you (visualizations, video explanations, interactive applets, real life applications/examples, metaphores...)?
Thank you in advance for your time!
Someone needs to teach programming concepts outside of programming language. The concepts of programming are the same, once you learn them all you have to do is learn the syntax of a language to execute the concepts. Session concepts in .NET, Perl, PHP are all the same, you just use a different syntax to execute it.
Years ago, back in school, i had to learn some C. Pointers were a complete mystery to for me and I really couldn't grasp those at all. Thus making linked lists and that kind of stuff was way too difficult for me.
The difficult thing? Understanding what points where and how and how that information is useful for me.
Of course all that was still rather basic C, but that experience turned me off from programming for years. Just recently I started thinking about coding, especially in the context of web-programming (codeyear).
As with what comes to the format.... I am a visual person and illustrations + video explanations would most likely work the best for me.
I hope this helps.
IMO, the beginning concepts you need to learn aren't the difficult part of beginning to program. Conditionals, variable, etc are all things we've done in math. Putting it into code is necessary to get an understanding of them in a different "language" (i.e. syntax). I don't think anyone has a problem understanding what "x=2 and y=3" - if "x+y=5" then we want to do something different than if it doesn't equal 5".
Once it's easy to put these concepts into the syntax of a language, then we have to run into concepts that are not as easy to simple put into words, or don't have bearing with the "real" world. A couple quick examples would be boxing\unboxing, or adding an number to a string.
Pointers, classes
Life usually doesn't correspond to any of the concepts, however they can be explained by real life examples.-why do you think you had these problems? what was missing? what would you need for the concepts to become easier?
Learning by doing programming.-which type of learning is the most intuitive and effective for you (visualizations, video explanations, interactive applets, real life applications/examples, metaphores...)?
You are too granular, what I am suggesting is you teach the concept of connecting to a database and writing data, such as how and where error checking should be done, why you worry about injection attacks, normalizing data. These things are all the same no matter what language you code in.
I see, that makes sense. Database programming is an entire discipline in itself. While the two are inseparable, my programming experience comes less from database work, and more with working with that data, as shown in my reply. Both are hugely important, and need to be understood.
The only problem I see with this is this,
Programming is an art and then a science. All coding is planned and mapped first and then put into code. The actual planning part is the most important part and which is more of an art than a science. Trying to teach an art form is very difficult, if your not able to explain it to a 8 year old then you probably can't teach it yourself.
Tax Relief ; Solve your tax problems with the help of tax attorneys, certified public accountants and enrolled IRS agents.
LOL, at certain levels you can call a programmer an artist. I will also say that some people have an aptitude for programming and others don't. But even artists are beginners at some point, and they have to learn single point perspective vs dual point perspective, anatomy concepts and so on. Artists have to learn these concepts before they worry about the medium they are using (charcoal, oil, watercolor). I am suggesting the same for programming, teach the concept, then the medium (in programming the medium is each particular language).
For me it would be Hands On Learning. If I am not doing it and I am just reading it to figure it out, it is tougher for me. It will take me twice as long if I am not doing it hands on.
Tax Relief ; Solve your tax problems with the help of tax attorneys, certified public accountants and enrolled IRS agents.
Your advice is that programming is art and teaching art is hard, fantastic! There are a lot of really good art schools that don't have any problem teaching art, SCAD, RISD, Ringling, College of Creative Studies at the top end, and Fullsail and other programs that manage to stay in business teaching art.
I have worked with several hundred programmers since 1978 when I learned my first of many languages (Fortran), about 10 have been "programming artists", the rest are just capable enough to make a living at it. I know a lot about teaching and learning, especially programming. When new programmers come to work for me, they understand syntax because that is what schools teach, they don't teach the concepts of what makes a good, bug free, bullet proof program, that is my advice to OP.
roark (Feb 5th, 2012)
What sorts of schools do the programmers come from? I went to a small community college for a year, and they were teaching these concepts. I mean there is always more to learn from actual experience on these topics, but good unit testing, abstractions, and a long list of other things were preached there.
Granted, reading your posts, I do side on teaching those types of concepts rather than syntax. There are plenty of places to learn all of the "other things", and a single site to learn concepts past that doesn't exist to my knowledge. Lots of good books though.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks