Ask YC: What do I, a graduating CS student, need to know to go into the real world as a programmer?
https://news.ycombinator.com/item?id=136067What do I, a new graduate, need to make sure I know to land a decent job in the 'real world' as a programmer? I am graduating in less than 2 months with a Bachelor of Science in Applied Computer Science (BSACS) and feel clueless about what is approaching rapidly - a.k.a THE REAL WORLD. I know this question has been asked and answered countless times (most of which I feel that I have read), but as is the case with all in the tech world, often this information becomes dated rapidly, is one sided or extremely biased. So again, what concepts, technologies, languages and various disciplines do I need to KNOW in order to be proficient, or at least to be good enough to land a job, as a professional programmer?
I find myself feeling as if I know all this 'programming stuff' but have no real clue of how to sit down and work in a development environment with other developers on a real project. Not only this, but I feel that I know a little about a lot - i.e. I am a jack of all trades, but a master of none. Clearly I have done problem solving and system design in my classes, but these projects are limited to core concepts based heavily on CS theory and are often very limited in size and complexity. I have been exposed to C++ (4 classes), Java (2 classes), VB.Net (1 Class), SQL (1 class), Discrete Mathematics (1 class), Project design and management (1 class), Advanced Algorithms and Design (1 class) as well as a sprinkling of various other 'CS-related' classes via my education. On the side I have played and dabbled with Ruby, Python, PHP, C, C# and a handful of other technologies that escape me now. I have a 3.6 GPA and have not made less than an A in my core CS classes since the beginning, but again, I still feel clueless.
Any tips, suggestions or criticisms are warmly welcomed (well, except criticism, which will be welcomed, just without the warm feelings attached). Please, where time and willingness permits, be specific - do I need to know how to design/write a compiler? do I need to know assembly (taking that class this term anyways)? If I want to make money first and worry about fun later, should I focus on corporate adopted technologies (Java, anything Microsoft, etc.)?
Thanks in advance!
-Matt