I went down this path and am about 2yrs into the industry. Things I lacked:<p>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.<p>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.<p>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.<p>I'm sure I'm missing some but those are the ones that came to mind for me anyways.
This question comes up a lot, I once saw this asked on Quora, will update this post once I get the link. IMHO I think most self-taught developers lack the basic CS concepts, myself being a self-taught developer created a list of topics that I study every morning -> <a href="https://github.com/nkudo/daily-study" rel="nofollow">https://github.com/nkudo/daily-study</a><p>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 -> <a href="http://www.amazon.com/Structures-Algorithms-JavaScript-Michael-McMillan/dp/1449364934" rel="nofollow">http://www.amazon.com/Structures-Algorithms-JavaScript-Micha...</a>
I'm a self-taught web developer. I think every web developer was when I started out.<p>I'd like to add a defiant similar question and an answer to go with it.<p>What do non-self-taught web developers lack?<p>Experience :)<p>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.
In general, self-taught Web Developers tend to lack some of the computer science theory. This may show up when you work on a large project and you need to sort and ingest a million records at a time. There can also be a tendency to be attracted to the newest trends out there when a more conservative approach might pay better dividends.
- team work, unless somebody learned this skill in other way<p>- SCRUM - it would be hard to teach oneself SCRUM without job environment<p>- jargon (I didn't know what "pull request" or "ticket" ment before I went to the first job)<p>- courage, self-assurance (because of lack positive feedback from other programmers - people who learn programming on jobs are in better situation than self learners)<p>- realism, cynicism (Self taught programmers are sometimes too optimistic or too pessimistic and dont have sense of reality).
Well if you have only worked by yourself previously then the obvious skill you need to learn is team work. Stuff like work delegation and handling expectations of others.
general computer architecture like the max size of an integer. High level languages usually abstract this away. How a whole number is represented at the hardware level.