Postby tombombodil » Tue Mar 08, 2016 9:10 pm
I'm a 5th year senior double majoring in Math and CompSci. I've interned at two video game companies in Seattle and work on my own projects regularly. I certainly don't have as much experiences are more veteran programmers herabouts but I have a lot of knowledge.
Internships are awesome/awful with about the same regularity as jobs are. I've had about a 50/50 split with the last two at the same game company being some of the most useful post-high school learning I've had.
They are relatively important and are EXTREMELY valuable even if it just lets you know what you don't wanna do. Every tech company HR director I've talked to, personally and in interviews, say that each internship you have during your undergrad increases your employ-ability because it basically means they get to hire someone for an entry level position that already has some work experience.
They also teach you how to actually work in a dev office, which is knowledge that group projects can't even begin to expose you to.
Also more to your specific question:
1. Having a robust portfolio of your own projects helps quite a lot. Not just fun things you've made, but complete programs designed with a purpose in mind.
2. Learn to use Github, Visual Studio, and other industry standard tools.
3. Contribute to open source projects, and keep detailed records of what you've contributed too, what version your code was used in, and keep copies of it all on your github.
4. Just write code. Lots of it. All the time. Assuming you're thoughtful about your work and show it to others for critique, every single line of code you write makes you a better programmer. Never before has the 10,000 hour rule been more applicable. If you only ever write code for your class assignments, you're going to be miles behind the people who spent most of their free-time during school coding as well and exploring different tools/techniques/languages etc. Obviously since you also work full time this one won't be as easy.
5. Expose yourself to tons of different languages, for a good sampling:
C/C++/Java/C# -- because "curly brace" languages are the lingua franca of programming
Go/D -- alternative takes on "curly brace" languages that have much to recommend them. They can also replace scripting languages like Ruby/Python.
Elixir -- a completely different way to think about server programming, really worth learning. Ruby-like syntax on top of a highly concurrent architecture that emphasizes reliability and distributed computing.
Racket/Clojure -- Lisp-like languages that have lots to recommend them. Programming in a lisp will change the way you look at problems.
Last edited by
tombombodil on Tue Mar 08, 2016 9:23 pm, edited 1 time in total.
Have you found the yellow sign?
Have you found the yellow sign?
Have you found the yellow sign?