Getting into Software Part 4: How to prepare for your first job or internship?

The best way to prepare for interviews is to build websites in a similar way to what you would do in the working world.

### Programming skills Basics ###

1. Create a website by following a Node.js, Ruby on Rails, or Django tutorial depending on which Language you are learning JavaScript, Ruby or Python. There are a ton of tutorials any twitter clone tutorial works great.

2. Study Data structures and algorithms
3. Study Object oriented design at a basic level.
1. inheritance
2. polymorphism
3. interfaces

4. Play around with Git or Mercurial — we use version control tools every day at work.
5. Create a real time chat website where users can see each others messages without refreshing the webpage.

### Resume ###
Keep it short 1-2 pages

Place your education, skills and work experience in an easy to find place on the first page.
Not all of your experience is relevant, minimize the less interesting experiences and bring to the front the important experience on your resume.

If you have room for clubs and side activities on the first page you probably are not going into enough depth on your experience.

### Interview Preparation and Advice ###

The employer’s goal in programming interviews is focused around estimating how well you can talk about software concepts, see if you have anything obviously wrong about you that you can’t hide in an interview, and see how you can solve problems under pressure.

Your goal in these interviews is to demonstrate that you are a smart, driven and prosocial person who has the technical ability to contribute to the team. Secondarily, you want to gauge how much you like the team, what kind of person your potential manager is, and get a feel for what hours the team considers normal.

At this point most of the programming problems used in interviews are common knowledge. You can expect questions about data structures, sorting algorithms, graph algorithms and object oriented programming. Fizz buzz and Fibonacci and palindrome questions are also pretty common, I have even gotten a question about designing a file system. There are 10s of websites devoted to ‘interview problems’, including https://leetcode.com, and https://www.hackerrank.com. You will want to do some of these problems before you start doing technical phone screens. I recommend doing 10-20 problems. Doing more than 20 is unnecessary because the problems are not that different from each other, just make sure you try a combination of easy, hard and intermediate problems.

You want to appear clean, shave if you grow facial hairs, get your hair in relatively tidy and dress appropriately. For programming jobs its hard to go wrong with a blue button down shirt and dark colored trousers. Wearing a suit is pointless most of your interviewers will be wearing t-shirts, shorts and sandals.

Do what it takes to arrive 5-10min early. Find the office and use any convenient bathrooms you come across. Be polite to everyone in the building you never know who works for the company or if the receptionist is also the HR manager.

We will go over in interview strategies in the next section of this series.