What Next?

Hey Guys, 

I've just finished my first semester of my Junior year at college. For about one and a half of those years I've been a Computer Science major (started out in Microbiology). Our curriculum focuses heavily on C at first and then transitions into C++. After a few classes just on basic programming the curriculum then switches to focus on data structures. Personally I have completed up through the data structure classes and am just about to get into the higher level classes (no labs or assignments, more conceptual, etc.)

Ok so after this background I can kind of start my question to you guys. What are some things that I can do with these skills? I am on my universities mailing list for job openings so I am constantly getting emails about internship opportunities and for people looking for employees. Problem is I hardly ever see anyone wanting a person that knows C or C++. It is always a web developer or someone that works with Java. 

If anyone has any personal experience with internships in the Computer Science field feel free to share. When I do see an internship that looks like something that I maybe could do I tend to just think "Oh there is no way I could do what they are asking." So do most places provide training on the job or do they just expect you to know how to do everything when you start. 

Thanks in advance for the help guy

Signed, 

A College Junior Worried About His Future

A bit late, but I'll chime in here.

What you are learning now is still, in the grand scheme of things, the basics of programming. I don't know if your 'college' is what we would refer to as college years or university in England. But even at the end of a computer science degree you wouldn't expect the graduate to know what they are doing. I'm sure any internship would be just a good glimpse at professional programming.

I suppose my point is your skills are going to be more interchangeable than you think. I've only programmed a few basic things in Java, but I can dive into a big project and work things out quickly. Sure, I couldn't start a large Java project from scratch, but I could code a SQL database controller or make a basic form or whatever without any previous experience. I was helping/teaching kids to make games in Python with zero experience.

"Oh there is no way I could do what they are asking."

It always looks that way from the outside, but its a case of look at how something is done, being able to grasp the concept (this is where OOP concepts are vital) and then working with it. But even from the basics, you're still going to be a long way off.

The reason you learn C/C++ is because its the core. It can do basically everything and all the big languages have taken lots of concepts from it. Each weekend, or for an evening or two a week, install development software for production. Not to learn 'Java' or to learn another 'language'. The language is in most cases just minor syntax differences. Install Android Studio, install Game Maker, install Unity, Silverstripe, make an ASP.Net/MVC website or whatever takes your fancy. Follow basic tutorials. Learn how to apply your basic programming knowledge to the flow of another, but realise that its not the languages you end up learning... but the framework your applying yourself to. Android Studio is basically XML layouts and Java. But Java isn't what you'll struggle with, its learning how to do 'Android' things. Java itself doesn't know how to make a button in an app, it's the android libraries that have the functions to make the buttons via Java code. That is the framework. You'll soon realise whether or not you have yet to understand 'object orientated programming'. Once you do, you can move around a lot in programming.

Don't worry if you don't. I studied computer science as an A-Level, thought I knew what was what. Went to uni and beasted the first two years of the programming modules. Year one was basics, like college all over again. Year two was C++ fundamentals and learning XNA for game development. Not really a problem at all. Come the 3rd year we were thrown in the deep end with setting up and programming a game from scratch and my group went the DirectX route. I quickly learnt how little I knew. However during that 3rd year, my OOP understanding was blown apart and rebuilt, I had this insane 'eureka' moment and now I know how I can work on anything I want to. That final click is what will transition you from learning the basics to learning professional programming. It'll come, but it'll only come when you're ready to be thrown into the deep end of the pool. Then you'll be ready to worry about your career as a developer, engineer or programmer.

One of the most helpful replies I've ever gotten on here. Thanks for chiming in and helping me better understand what the purpose of some of these classes are! I actually started a couple of tutorials in Android App Development a couple of weeks ago. So I am excited to see what I can learn.

Gray

If if you are skeptical about being able to do what they ask, explain to them that you are skeptical but still interested to give it your best effort. I start uni next year but I already have an internship lined up to start this summer with an IT contractor, and I'll be working with their systems support guys (I'm not that interested in development). From what I know from just talking to them the perspective of what it's like on the actual job is the most valuable part of the internship. Even if you don't learn a single technical thing, you still get an idea of what it's like to work in the field.

It may be different for you, but having the right perspective and seeing something done is something that helps me get my head straight. I guess I'm just more of a hands on person.

Thanks stackz0r!

 

I'm definitely the same way with hands on learning. If I am shown how something works I am much more likely to remember it. I'm trying to get on with a local internet provider in my hometown at the moment so hopefully that works out. As for where I want to go in the field I am not so sure. I feel like I need to have some of these hands-on experiences in order to fully make my decision. 

Thanks Again!

Gray