Hi, I'm a 20 year old Undergrad studying computer science at UC Berkeley. I’m scheduled to graduate in the next year or two, and I realized I haven’t really been thinking much about the future.
This summer, I have been working at an University lab doing some small scale HPC/parallelism work, and StackOverflow has been a ridiculously awesome resource for me. I always try to answer a question or two after posting one of my own, but after spending (an increasingly larger) amount of time here at SO, I realized there are so many aspects of development I have no clue about.
I've always felt that the curriculum here at Berkeley is rigorous and will prepare me well for any kind of development job that I chose. I mean we have the (MIT clone) cs61a SICP scheme class that makes over 60% of the class cry. We also have some great professors that I've had great luck in taking classes with, who actually have worked in the field. My compilers class for example taught me the importance of source control and the debugger (I'm a reforming printf :). I've taken and reasonably mastered pointers and recursion through course work, and the long projects helped me budget my time and work with other programmers.
However, when I take a look at SO, I realize that I can only really answer with any sort of confidence a tiny tiny tiny tiny fraction of the questions posted here (mostly C and C++, regexes, algorithms, kernels, and parallelization). By in large, most of the questions seem to have something to do with IT (databases etc), web development (insert frameworks here), or something about mobile apps. Also, after reading a lot of blogs and stuff over the summer, I get the feeling that systems programming is rare, and hard to come by now, and pointers are evil. And all this stuff with XML... I don't get it :|
I guess my question is, is this what the industry composition is like, and should I try learning the buzzword techs before graduating? Because honestly I don't feel prepared for this yet. I've worked very little with different frameworks and databases, and my web development resume is limited to writting silly php madlib generators and hacking badly designed servers in computer security class. I've only recently really migrated to managed code for non-kernel projects (keeping the C speed instincts at bay), and I'm not too sure how to approach this huge array of new technology and frameworks that everyone seems to be using.
While I want to go to graduate school eventually, I also want to try working out in the field for a few years. What do you guys, who are the top of the line in development, think? Can I get a decent job with my skillset?