While I agree about your points I still maintain that a couple of courses in data structures and algorithms is a very good investment of your time.
In data structures you learn how to properly use a data-type. You learn how to implement a hash and a list. That is knowledge that is very valuable when programing high level stuff later on.
In algorithms you learn how to construct loops and programs that run faster than they would otherwise. For instance, think about how much faster it is to search for something in a sorted list than in a unsorted list (its log vs exp if its a nested search).
Processor architecture because you want to know where those bits go, if you dont, how are you ever to truly understand pointers, variables and data structures?
Your life will be soo much easier with these fundamentals in Computer Science in regards of scalability, performance and even user design. It's not for everyone and you can certainly do without it. But what you're advocating is basically "luck". Not everyone will write plentyoffish or twitter.
The guy wants to build complicated websites, not be a hacker snob, so I'm giving him the honest truth and getting modded down for it.
"While I agree about your points I still maintain that a couple of courses in data structures and algorithms is a very good investment of your time."
Maybe a good investment of your time, but not if you are going to just be building websites, that would not be a good investment, the returns on that investment would be small.
"In algorithms you learn how to construct loops and programs that run faster than they would otherwise. For instance, think about how much faster it is to search for something in a sorted list than in a unsorted list (its log vs exp if its a nested search)."
Do you even do any practical web programming? Unless you are hitting a amazing load on your server this would never come up. Also, if you are digging into these details you better have a good reason because there a good chance of creating bugs or overloading your web box. However if you keep it basic, and just scale horizontally, which you don't seem to understand web hosts can do, its a much better use of resources.
"Processor architecture because you want to know where those bits go, if you dont, how are you ever to truly understand pointers, variables and data structures?"
I've been in web development and scripting for 15 years, can you show me where these "bits" are, I must have misplaced them.
I'm 100% self-employed and build websites where I earn money from advertising/affiliate/sales-revenue. Been doing it fulltime for 7 years now, before that I was a student for a couple of years (where I learned that me and academics wasnt a match made in heaven..).
I used to have a site that carried 5m uniques/month, but I've also run sites that had has worse performance problems with much less users. I know of several instances where I got stuck and had help from academic books (to refresh my memory) or friends that paid more attention in class than I did :-)
My point, and as others point out, you just dont learn these things yourself unless you are forced todo it. Learning to solve a problem and learning to learn are two very different things and the later makes your view of a issue much more complete. Many subjects is completely useless stuff that is only in the courses to make them hard, but when I look back I tend to see that many courses were very valuable.
Sounds like you dropped out of academics, were successful in website development, are arguing for a hands on learning approach where it "makes your view of an issue much more complete", and even successfully used compsci books, you write "many subjects is completely useless stuff" and yet in your first post you give advice of doing the opposite of what you found success doing.
I'm saying that academics helped me understand some subjects that have been very valuable for me in my "career" as a website developer.
Perhaps I would have done fine without them, but I'm sure my projects are better as a result of me spending a couple of years learning stuff.
If you want to become a "better" programmer in the context of writing more efficient code, more bugfree code and become more efficient (learning to use the concepts that comes with the language instead of reinventing the wheel). Then yes, school helps.
You can learn it outside school aswell but I bet it will take more time in the long run. I think we'll have to accept that we disagree on this topic.
And indeed, it might just be that, if you happen write a twitter by the seat of your pants, it will choke on the volume and you will be fired and replaced by someone who knows how data structures lead to scalability. You never know...
In data structures you learn how to properly use a data-type. You learn how to implement a hash and a list. That is knowledge that is very valuable when programing high level stuff later on.
In algorithms you learn how to construct loops and programs that run faster than they would otherwise. For instance, think about how much faster it is to search for something in a sorted list than in a unsorted list (its log vs exp if its a nested search).
Processor architecture because you want to know where those bits go, if you dont, how are you ever to truly understand pointers, variables and data structures?
Your life will be soo much easier with these fundamentals in Computer Science in regards of scalability, performance and even user design. It's not for everyone and you can certainly do without it. But what you're advocating is basically "luck". Not everyone will write plentyoffish or twitter.