I'm starting a job as a programmer soon, but I do not have a degree in Computer Science. I've worked as a programmer before for a brief period of time. All I know is C, C++, and Java, but I know all of those languages really in depth. Exactly that in depth knowledge of the said languages got me the job. I also know algorithms and data structures in depth. What I've heard from my colleagues is that you only need to read up on subjects that are related to the project you are working on. The thing that's bugging me (pun intended) is that I lack knowledge in the following subjects, which are a part of almost every Computer Science curriculum:
* Computer Architecture
* Networking
* Databases
* Operating Systems
Will the lack of knowledge in those subjects affect my work? All of the colleagues that I'm going to work with have degrees and do know about those subjects, if they see that I lack knowledge can that affect there decision on whether they should keep me on the job?
And is it true that the most important thing is for you to be good at programming, data structures, and algorithms and read books on subjects (that you do not have in depth knowledge of) that are related to the needs of the project you are working on?
Side note: Even though I lack knowledge in the above subjects that did not affect my previous project which I managed to complete successfully and on time.
The #1 skill you can have is the ability to learn new things on the fly and to hit the ground running every time. My main selling point in my last interview was that "I don't know everything, in fact there's a lot that I don't know...but I can figure it out".
Oh, and don't worry too much about CS curriculums. They're mostly a complete joke based upon antiquated technology in most universities. They give you good theory at best and bad practices at worst.