1) Computer Science theory and concepts. I might know some buzzwords but I didnt initially understand things in depth. It took time working on projects to start grasping them.
2) Perspective on the industry. People get so caught up in language and framework wars. It's easy to just take someone's opinion and run with it. After a while you realize that there isn't really a right or wrong and focus on learning underlying concepts.
3) How to keep cool under sudden pressure. Releasing a bug into prod would scare the hell out of me. Sure, it's never a good thing, but even Apple releases bugs. Taking a second to breathe and calm down can make a huge difference in effectively tackling pop-up issues.
I'm sure I'm missing some but those are the ones that came to mind for me anyways.
Currently learning algorithms and I've been enjoying it so far, learnt a lot and some of the knowledge gained helped me in a recent interview where I was asked what data-structure the HTML DOM used. I am a JavaScript person so I'm reading this book -> http://www.amazon.com/Structures-Algorithms-JavaScript-Micha...
I'd like to add a defiant similar question and an answer to go with it.
What do non-self-taught web developers lack?
Experience :)
Tongue in cheek. I still have gaps all over when it comes to CS, paradigms, patterns, and I'm perpetually at odds with all the tooling around these days.
- SCRUM - it would be hard to teach oneself SCRUM without job environment
- jargon (I didn't know what "pull request" or "ticket" ment before I went to the first job)
- courage, self-assurance (because of lack positive feedback from other programmers - people who learn programming on jobs are in better situation than self learners)
- realism, cynicism (Self taught programmers are sometimes too optimistic or too pessimistic and dont have sense of reality).
Edit: sure it's good to know, but that's another question.
Edit: a Web Developer doesn't need to know it but it's most likely part of a CD curiculem.
Just because software is on the web, doesn't mean it doesn't have to care about logic errors