Ask Gayle: What can a student now do to prep for a programming position?

Posted on Saturday, May 29th, 2010

Hi Gayle,

I am an international student from India and I just finished my BS in EE with minor in computer science and will be moving to CMU for my MS in computer science this coming fall.

Being an EE student, I am not so proficient at programming. Since I will be starting my MS this fall , I would like to obtain good internships during my MS which I can convert to a relevant full time positions.

My problem is that I am not sure what minimum background and knowledge is needed before I go to these interviews or be selected for them. Secondly, I am not sure which language am I expected to be really good at?  Do I have to know C inside out?  What else should my resume have to ensure that I land up an interview?

Thanks

PY

I would focus on three things:

1. Learn data structures and algorithms

Your coursework should hopefully be sufficient for this, but I’m not super familiar with your program.  Sometimes schools offer two MS programs – one for CS-undergrads, and one for non-CS undergrads.  If this is the case for you, and you’re in the MS program for people without a lot of coding experience, make sure that your algorithms course is truly rigorous.  This should mean covering most of the CLRS algorithm textbook.

2. Learn object oriented programming (with Java or C++)

Formal design patterns aren’t especially important for interviews, but it can be useful to see a lot of different ways of representing data.  The important thing, really, is to get out of the mindset of “throw down any code that works.”  Your coursework might not cover design patterns, so here are two books: Head First Design Patterns and Design Patterns: Elements of Reusable Object-Oriented Software.

Practice these in either Java or C++.  C is generally less important.

3. Complete at least 3 “meaty” projects

Seek out the courses where you’ll be doing some large programming projects.  You can also work with professors on their research, but make sure that (1) you’ll be doing coding and (2) you’ll really “own” a chunk of it.  You’ll not only learn a lot from doing coding projects, but this will also give you material that you’ll put on your resume.

As you go through school, keep in mind these resume tips for software engineers.  It’s never too early to prep for your interviews!

Post to Twitter

Categorized as Ask Gayle

3 Responses to
“Ask Gayle: What can a student now do to prep for a programming position?”

  • PY says: May 30th, 2010 at 6:45 pm

    Thanks for your response. During my undergrad at University of Minnesota, I did take 6 CS classes including operating systems, data structures & algorithms(CNRS),databases and object oriented programming with data structures in Java. However my problem is that even though I did really well in these classes , I do not remember the syntax of several functions at the top of my head. That is why I am not sure if I will be able to handle white board interviews where the expect you to write a good amount of code. I am quite confident that I get the logic correct almost all the time but converting it to code is where I am not so comfortable. During class projects I used to Google C/Java functions that can help me meet my objective. So how should I overcome it ?

  • Gayle Laakmann says: May 31st, 2010 at 1:09 pm

    It’s very common to not remember the exact methods. We all google the answers to things like that :) . Depending on what syntax you’re forgetting, it may not be a big deal to many interviewers.

    You probably just need more practice. What I would recommend is this:
    (1) Take interview problems and practice implementing them. Feel free to use a compiler. If there are particular things you’re missing up on, put special focus on those areas. Once you feel reasonably comfortable with this, go to step 2.

    (2) Practice interview problems WITHOUT a compiler. Just write the code by hand. This is considerably more difficult, but it’s the sort of practice you need.

  • PY says: June 30th, 2010 at 6:16 am

    Hi Gayle,

    I did several programming projects, some were in C, Java , JavaScript and Python.So I have put those languages on my resume. However I usually practice programming problems with Java , just because I like the fact that I do not need to take care of pointers in Java and I find the APIs very useful.

    Because I am quite comfortable with Java and tend to forget the syntax of things like pointer to a function and similar things,should I continue listing these languages (i.e. other than Java) on my resume ? If I have to take another class with the above languages I can easily catch up in a week . I am worried that the interviewer might start grilling me on C concepts because it is on my resume for some of the class projects ? What do you think I should do ?

Leave a Reply