I gave up on programming a little over a year ago when I kept hitting this wall. I am revisiting the subject because I want to create basic Android application. But I feel that my limited knowledge will not suffice. Here is my problem.I have read a few books and watched video tutorials on C#/Java, followed examples, then finished the book. In the end they always seem to leave me dumbfounded as to what to do next. What a mean is they teach you from your basic hello world application all the way up to if's and arrays then seemingly expect you to know how to go out into the world of coding and create anything.Am I missing something here? I know these are the building blocks of all programs but books that I read never really show me what to do next.The easy answer I suppose would be to 'start coding', but where? I read Head First Java for example; up to the part were they tell you take everything you have learned and create a dog racing game.... try not to cheat and look at the source code provided, you should be able to do this by now _ that's not an exact quote but basically that's what I was told....... Half an hour ago they were just explaining how to do arrays, then without any theory I am meant to create a working game?The reason I ask this is because I fear that this is all I am supposed to know to at least start coding, yet it feels like I have been given a small toolbox and been told to build a skyscraper. Thank you for any advice
Past If statements Arrays, loops... Now what?
java;c#;programming languages;design
What a mean is they teach you from your basic hello world app all the way up to if's and arrays then seemingly expect you to know how to go out into the world of coding and create anything.Am I missing something here? I know these are the building blocks of all programs but books that I read never really show me what to do next.Actually, no. They aren't. The building blocks of all programs are abstraction and reuse. Lots of programming languages don't even have arrays or ifs or loops.There are some great books that teach you how to program as opposed to how a particular programming language works, which seems to be the books that you've been reading.How to Design Programs aka HtDP is such a book. It teaches you, well, how to design programs. And it does this by giving you recipes to follow for how to analyze problems, solve them, transform them into algorithms and further into working programs. Note that recipe is basically another word for program, so in other words, the book teaches you programs for humans to run in their heads in order to generate programs to be executed by computers. How cool is that? :-)The authors are currently working on a draft for a second edition of HtDP, which you might want to read instead of the first edition. The material about imperative programming has been removed, and is going to be covered in the as-of-yet unwritten second volume How to Design Components, but you can read those missing chapters from the first edition.Note that HtDP assumes no programming knowledge and is targeted at high school students. But don't let that stop you: it just means that you'll probably be able to finish some early chapters faster, but I don't think you will be bored.Concrete Abstractions is also a good read along similar veins. Like HtDP, it doesn't assume any programming knowledge.Another book that you might hear mentioned is Structure and Interpretation of Computer Programs aka SICP. It is one of the greatest programming books ever written, and again, it doesn't assume any programming knowledge. It is, however, geared to complete newbies who study at MIT. And so, while it does not assume any programming knowledge, it does assume quite a bit of domain knowledge, e.g. in the fields of electrical engineering, physics and math. Note: these have nothing to do with the concepts being taught, they are just needed to understand the exercises and examples. So, it might be better to read HtDP or Concrete Abstractions first, and then read SICP.