What should I learn for a good career?
The title says it all. I am currently a Sophomore studying CS at middle of the line university. Sometimes I feel like I don't know anything compared to some of the upper class men, including the ones that are only a year more along than me. So my question is what do should I focus on to ensure I will be relevant to the work force before and after graduation? I was in the same position as you a year ago. I kept trying to find my niche but to no avail. Eventually, I took a microprocessors course and wanted to continue working with C, so I learned iOS development from various tutorials on the web. I learned more coding my first few apps than I did in all of my classes. If you are interested in web design, learn javascript and python/django. If you are familiar with java, look into writing android apps. Bottom line is to find something you love and practice every day. You will be surprised at how quickly you will learn and be much better off when looking for jobs at graduation Do searches on indeed.com for various kinds of engineers and see what's up. Web developer, software engineer, mobile engineer, mobile developer, data scientist, data engineer, data analyst, front-end engineer, front-end web developer. You'll quickly get an idea of what kinds of languages companies use / care about! Also, make sure to keep learning, the smartest engineers not only continue learning about what other languages, tools, etc are out there but also keep their idea muscle fresh. Keep coming up with ideas on how to make what you're doing + the world better. unfortunately where i am most people tend to want people that have been coding for well over 5 years. we even get job offers through our academic adviser with some companies looking for people with 8 years exp and other things like that. like they're going to find that in an undergraduate program Apart from actual coding the one skill I would recommend you focus on, which might be equal to coding skills in the jobmarket is : People skills. Learn to talk to people, how to act confident, practice speaking in front of small audiences. Learn how to get your point across. The trend has been moving away from having programmers work seperately to people working in teams for the past few years. It might not be the easiest skill to learn. But if you cultivate it you will be a much more effective team member than the silent, sits in a corner working on his own, programmer type. The best way to figure out what is relevant in "real world" jobs is to apply to the jobs you want and figure out what your weak points are. (Same thing with products -- try to sell a product and see why people reject you. Your product here is yourself.) So try to get an internship in Silicon Valley -- or even apply for jobs, with the cover story that 'I'm ready to jump into something more real-world than the classes I'm taking.' Master C and C++. Both are still relevant today and most other languages are simply derivatives of it (which means you will pick them up easily). Defining mastery is the tough part though... If you think of it the way I do, you will find a good career for the rest of your life, although I don't think coding for 40 years is a life well-lived (especially on 70-hour workweeks). i have dabbled with C and a C++, at our school most of our classes are in java, aside from some of the other classes like compilers and etc. if possible i do what i need to be done on Python but im learning perl this semester also. I haven't messed with c++ a whole lot do to its similarity with java. I feel like if i sat down and needed to do something i'd be familiar enough to be able to do it. Python is a great language. Python and Java are actually both great work-ready languages that can get you hired. I'm not too sure about Perl though. Just add some web background to your 2 languages and you'll definitely get a job over the next 5 years, just remember to improve your skills all the time though. Okay so other than being able to actually write code. Testing!! So long as you can test well you will be able to write code that works. You will quickly learn in industry that quality code does not really matter. What matters is code that works; the way you get code that works is by being able to write tests. Learn to write clearly. Learn to read code that you haven't written. Peter Norvig's essay "Teach Yourself Programming in Ten Years" is worth a look: http://norvig.com/21-days.html awesome checking it out now i have a student site up on our university site, its nothing fancy. I just bootstrapped it out to have something there. http://students.cis.uab.edu/stucky3 Have you ever built a website? Serious question. i have a student site up on our university site, its nothing fancy. I just bootstrapped it out to have something there. http://students.cis.uab.edu/stucky3