• 0

Question for Computer Science/Software Engineering Professionals


Question

I'm finishing up my 3rd year of college, I'll be looking for an internship for summer after my 4th year and I'm worried that I don't know enough to work in an internship. I've had classes in COBOL, C++, JAVA, VB and I'm wondering how much harder does the programming get? Is the stuff I'll be doing at work similar to what I did for my classes or will it be mostly learn as I go once I get a job? What do I need to expect when I do get a CS/SE job of some type?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

well, my experience is that no matter what you do, you're gonna suck the first few months no matter what. the designs you'll come up with won't be thorough, the code you write will "work" but be ugly or unmaintainable, your testing will be shallow, etc. depending on where you work, no one may notice...

what really matters is how quickly you can pick things up and learn from the senior engineers.

that's just my experience from interns/college hires on my team.

Link to comment
Share on other sites

  • 0
well, my experience is that no matter what you do, you're gonna suck the first few months no matter what. the designs you'll come up with won't be thorough, the code you write will "work" but be ugly or unmaintainable, your testing will be shallow, etc. depending on where you work, no one may notice...

what really matters is how quickly you can pick things up and learn from the senior engineers.

that's just my experience from interns/college hires on my team.

My experience is somewhat different. We have interns at work and they're expected to perform the same as full-times from the beginning, and they do. They write good, well tested code, and they consult with us full-timers to make good designs. I've also done the internship thing and the code I've written has been expected to go into production.

@OP: The code you write in uni is often very "ideal" compared to what you see in the real world. The system I work on would be shunned by professors as being inaccurate and hackish, but it's scalable and robust and we've calculated trade-offs that's allowed us to serve 1000's of QPS over millions of users.

One thing I've learned is that language is irrelevant. If you're an SE/CS major, then you're expected to be able to pick up a language in a few days. When I started my last internship, I didn't know a thing about python other than it existed. My first task was to program in python. I'm doing full-time now and have no formal education and very little exposure to Java (by choice since I hate Java), but I've found myself writing production Java code every so often.

As for what to expect, you'll probably get a starter project at the beginning to get you up to speed. This is really more to do with getting you used to the environment such as build systems, the SCM, and various policies. This should only take a couple of weeks. Then, depending on what you work, you'll get an intern project or you'll end up doing several smaller pieces of work, usually on the same code base.

Link to comment
Share on other sites

  • 0

My experience is rather between MrA's and reil's

When I was intern 14 years ago, I wrote some awfully designed code but it worked and some of it is operational. Work in internships is not that different from the uni, you should not be afraid of that.

As an intern, I had a privileged relation with the seniors who took me under their wings and showed me the ropes. I do that now and you're likely to have a senior close to you.

One thing that I have learned is that you are expected to continue to learn everyday something, to learn from your mistakes and others' and to adapt to the computing environment.

At the end of my school, I knew Fortran 77, C and a tiny bit of C++. Now, I wrote in Python, Perl and C++. I concur with MrA, the language becomes irrelevant, you are expected not to block yourself with a given language, toolkit or development platform.

I am used to OpenGL, I am not afraid to go digging into DirectX if needed.

Link to comment
Share on other sites

  • 0

Specialize in hardware or software! Don't try to do both in only 4 years. I graduated with a BS in Computer Engineering but I specialized in software (my preference).

Also, take a design patterns course! I can't stress this enough. There are many common design patterns that have their own benefits and drawbacks. Learn them. Incorporate them in your code to understand them. Design patterns are not necessarily covered in a standard OOP course. Try to find one that uses this book:

http://www.amazon.com/Design-Patterns-Obje.../dp/0201633612/

Link to comment
Share on other sites

  • 0
Specialize in hardware or software! Don't try to do both in only 4 years. I graduated with a BS in Computer Engineering but I specialized in software (my preference).

Also, take a design patterns course! I can't stress this enough. There are many common design patterns that have their own benefits and drawbacks. Learn them. Incorporate them in your code to understand them.

I disagree. Build a strong foundation at first, and then add design patters later. When a developer (student or experienced) first gets exposed to design patterns, their project becomes one giant design patter implementation. As time goes on, they remember what worked well and what didn't. The book may list the pros and cons of a pattern, but it takes years of experience to truly figure it out. Students can't gain this experience in school. Most graduates have a bare understanding of object-oriented programming, and if you throw in design patterns, they're going to be all over the place.

Link to comment
Share on other sites

  • 0
I disagree. Build a strong foundation at first, and then add design patters later. When a developer (student or experienced) first gets exposed to design patterns, their project becomes one giant design patter implementation. As time goes on, they remember what worked well and what didn't. The book may list the pros and cons of a pattern, but it takes years of experience to truly figure it out. Students can't gain this experience in school. Most graduates have a bare understanding of object-oriented programming, and if you throw in design patterns, they're going to be all over the place.

+1

Link to comment
Share on other sites

  • 0
I'm finishing up my 3rd year of college, I'll be looking for an internship for summer after my 4th year and I'm worried that I don't know enough to work in an internship. I've had classes in COBOL, C++, JAVA, VB and I'm wondering how much harder does the programming get? Is the stuff I'll be doing at work similar to what I did for my classes or will it be mostly learn as I go once I get a job? What do I need to expect when I do get a CS/SE job of some type?
It gets 10000 times harder. I landed my first internship after just a semester of Software Engineering, I had barely learned C++, and on my first day I was dumped into a 30000 lines application, filled with exceptions, patterns, templates, function pointers and no documentation. Needless to say, I spent 3 weeks staring at the debugger in Visual Studio, taking notes (which I never read afterwards, but I thought it'd help) :p At some point I managed to make gain sufficient comprehension of it to be useful to the project. My supervisor knew my skill level and he was very satisfied with what I achieved.

Interns are supposed to have little experience, otherwise you could apply for a permanent position. Just do your best and you shouldn't have any problem.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.