3 ms·
I think one key is to have a solid understand of the fundamentals - I think programming is like martial arts that way. As usual, it doesn't have to be exact, ju
by keefe 17y ago
I think one key is to have a solid understand of the fundamentals - I think programming is like martial arts that way. As usual, it doesn't have to be exact, just a useful abstraction. What is a computer program, anyway? A set of instructions for manipulating data and devices attached to the computer. The CPU can only manipulate data in RAM, so you have to load data from storage, network and other devices. If you want it to live on past the program running, it needs to be sent out of ram. At the low level, all computer programs boil down to machine codes - sequences of simple operations. There's no need to learn them. Higher level languages stand between human language and instruction primitives. A compiler does the translation. Higher level languages all share certain fundamental concepts : functions, loops, variables and in some cases, classes and objects. An object is a bunch of data grouped together with a name and classes define common characteristics of objects. Once they understand these basics, they should explore them in some safe environment. There's plenty of ways to do that. I really think you need to get this kind of basic literacy down first and it doesn't matter what language it happens in. Once they get over this hurdle, focus on data and use cases. What is your application about? What are people trying to do with it, why did someone build this thing in the first place? What are the fundamental types of data involved and how are they transformed? I think all programs tend to be broken down into input, processing and output. Where can you see these things in your application? That gives the lowest level building blocks and the highest level overview. From there, it depends on their interests but however you slice it, a good place to start is to explain version control and give them a bug to fix. Once they get frustrated, do pair programming.
- listic 17y agoFor this kind of thing, I recommend the book "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold. http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319 http://www.amazon.com/Code-Language-Computer-Hardware-Softwa... Being a CS major, I bought this book for the sheer amazement at how the gist of everything I had learned about computers in the university could be conveyed in one book in such easy and fun manner. The learning curve is so gentle, it just couldn't be easier. I cannot recommend this book enough to _every_ person who really wants to understand how computers work.