Yeah, that is not a book for beginners. Or programmers, even. It is a book for computer scientists, which is a different beast entirely.
You’re telling a 9th grader who just wants to learn some basic coding to read Knuth.
If you read closely, you’ll find that I’m not telling OP anything. I wrote
I’d recommend you also learn about what a computer is and how it works. One of the most fundamental sources on that would be Donald Knuth’s “The Art of Computer Programming” or Charles Petzold’s “Code”.
To reiterate what I just quoted, just in case you missed it again: I currently cannot think of any sources, books or otherwise, which are more fundamental and therefore explain the process in any more detail than these. If you do, go right ahead and suggest them, I’m certainly not stopping you. I’m not saying it’s the most accessible book, I’m also not saying these were the most fun to read or whatever. In fact there are many more things I didn’t say, so please just stick with what I did say.
The person who “told” OP what (not) to read, actually, is BronzeV. I’m very much against trying to keep people from exploring sources for themselves. Mostly because that’s a terrible way of doing things if you want to foster competent, self-sufficient learners.
It depends on who is learning and what the goal is.
Of course there’s gradations in between these two.
I think your self quote has removed a quite important piece of context, by omitting the first clause:
If your aim was not to suggest that he read Knuth, then what were you trying to accomplish?
Suggesting that someone learn the fundamentals of how computers works before, or even while, learning to code strikes me as akin to suggesting that someone learn the fundamentals of number theory before or while learning basic math.
Learning the underlying theory, in either case, is certainly illuminating for understanding how everything else works, but also unnecessary, and likely intractable. Learn how to code, get familiar with the basics, and then learn the theory behind those basics. You won’t be able to implement any of the exercises, anyways, if you don’t know what a ‘for’ loop is.
As you see in this thread, programmers are an opinionated bunch. You will encounter lots of conflicting advice. Do not get discouraged by it - there is more than one way to do things, and as you gain experience you will develop your own taste. Programming (and debugging) develops your sense of skepticism: a good programmer needs to be open to new ideas, but he also knows that 90% of all advice is crap.
My favorite language currently is Go. I use it for most of my new projects, and have found it very easy to maintain over time. Give it a try sometime.
Hope this helps. Programming can be great fun, so hope you will enjoy it!
Again, I appreciate all of the advice I have continued to receive. While I see that some feel like @smurph’s recommendation is not the best, I was serious when I said I will carefully consider all options. It is really important to realize that I love learning just about anything. Mind you I am still very young so many of my conclusions may not be too well formed. However, in my experience many children around my age seem to have a poor motivation for learning and seem to not be very self-driven. I think we need more people in the world like @smurph who want to give that issue a little kick. In other words, smurph’s recommendation may or may not target my objective straight on but he did clearly indicate that that had more to do with computers in general (which, quite realistically, would be a good idea considering I don’t know much about a computer in general). Maybe that book would be a little complicated for me, but in my experience, along the lines of learning, there is never anything that isn’t worth trying. @smurph is trying to be helpful, and everyone, especially myself, needs to be grateful of that fact, so there is no need to get hot. Instead of denying his suggestion, I will take his advice, and surely I will come out having learned something. Let’s all try to follow his example and approach learning the way he does!
I just heard about this site. I haven’t tried it (being a 30+ year veteran of programming,) but you could check it out and let me know how it goes.
Say something ridiculous, try to claim it wasn’t ridiculous, attack people who still see ridiculous as ridiculous.
I think we should all be embarrassed by @Go_Board’s example, since clearly a 9th grader is demonstrating more maturity than the rest of us.
I’ve been programming for some 40 years and I found Elevator Saga way more entertaining than it has any right to be. Great recommendation!
Me too. Insane programmer-addiction.
Also, If you are interested in programming (but the advice can be applied for the acquisition of any new skill) I strongly recommend you define the scope of what you are trying to learn… programming is a extremely deep topic (from web development , to machine learning , there are a ton of fields you can get), then I think is better if you have and idea about what do you wanna do, and which field of programming are you trying to enter.
I talk from my personal point of view, since I wanna enter to web development only, so right now I’m learning the stack MERN, then I’m trying to get good at this stack ONLY ( at least until I get a job with it), but I guess the advice goes for every skill, since it is important to have clarity in what are you are aiming to do , otherwise you are gonna spend a lot of time going in circles.