Hi all,<p>basically the title says it all. I'm currently a CS student working towards my Bachelor's. Since I have plenty of free time (for the most part), I was thinking of picking up other skills/domains to further my prospects of acquiring an internship/job once I graduate.<p>I was thinking along the lines of:<p><pre><code> 1. Learning about other topics such as security, distributed systems, graphics which I may not have the chance to formally take a course on (given limited elective choices).
2. Developing expertise in a particular development 'domain', e.g. web development, mobile development through various side projects.
</code></pre>
Otherwise, I was thinking of devoting the extra time to going more in-depth than what the module may demand i.e. dive into the textbooks/relevant material and cover content beyond what may be officially covered by the course, but I am not sure to what ends this will help to improve my skillset. What do you guys think?
* If you want to get better with security study for the CISSP and read security literature. Right now I am learning how to produce certificates and trust authorities from openSSL and its a huge pain in the ass even just for localhost.<p>* If you want to get better at programming write an ambitious open source application. With enough experience you will realize that any given application is just some variable mix of instructions and data structures.<p>* If you want to be a technical expert in the real world get better at writing. Spending time writing original technical documentation, revise it, and then write some more. Writing ability is what identifies the adults in the room.<p>* Web development is a contentious subject. If you want to be employable learn a framework. Memorize the framework's API, become familiar with the tools and conventions, and tap into the framework's development community. You can fail at everything else.<p>If you want to be a strong web developer and make more money spend the minimal amount of time on a popular framework to be minimally employable. Spend the rest of your time focusing on code portability, performance, and accessibility using conventions directly gleamed from the standards. Know how to quickly build a web application with confidence without a framework.
Imho the "otherwise" option should be on the top of your list.<p>Tools/best practices come and go, can be learned quickly with so much information out there.<p>That said, be curious and try different things and you will know what you like. Passion amplifies learning by a magnitude.<p>All of the above is imho, that I would've told younger myself.