How to prepare for an programming job interview

Hello, today we will talk about how to best prepare for an programming job interview. A job interview can be a nerv wracking thing but you can prepare for it.

With the tips below you will be ready to face your first job interview.

Prepare for the whiteboard

Its very likely, that you will have to solve code problems during your interview, either on a whiteboard or in some other forms. If you are not used to it this can be very hard. Luckily there are many plattforms out there, that let you solve programming challenges. Some of them are:

Solving daily problems will help you a lot to prepare for whiteboard interviews.

Build an portfolio

A portfolio can be a collection of github repositories or of workings apps that you buildt. The important part here is that an employer can see that you are highly commited to becomming a programmer.

Your portfolio is the best way to show an employer that you are the perfect fit for them.

Know your strengths and weeknesses

Its crucial that you know your strengths and weeknesses. Be honest during your interview, but dont sell yourself to short.

Its ok to not know everything

If you dont know about a technology, say that you have never worked with it but that you are commited to learning.

Handle rejection

Not every interview will go well, you will have to be persistent and play a numbers game. Every interview will teach you something, use the lessons you learned for the next interview.

Use your network

Dont be afraid to use your network, tell everyone you know that you are looking for a programming job. Most people will be glad to help you out.

Getting your first job as a programmer is hard but software developers are in high demand so the best time to apply for jobs is now. The job market is very much in your favour.

If you have any questions hit me an email at: martin@junior-dev.com


The different types of debugging

Hello, today we will talk about debugging.

What is debugging?

Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system.

So debugging means to find and fix errors, there are various ways to do this.

  • Print output on the screen
  • Create Unit tests
  • Create Integration tests
  • Debug using a debugger

So what are the different types of debugging?

There are many different types of debugging, below are some of the most common

Print output to the screen
The easiest way is to print the output of expressions or the state of variables to the console using
System.out.print();

Create Unit tests
Unit tests assert the correct function of the smallest piece of code you have e.g. methods
There are various frameworks out there, most popular junit.

Create Integration tests
While Unit tests, verify only methods, an Integration Test asserts an complete Module of code e.g. a payment module. Typically Integration Tests take longer to complete as they are bigger and often access a database.

Use a Debugger
This is what most people have in mind when they hear debugging. Using a debugger is a skill on its own. If you use IntelliJ check out the debugging cheat sheet

Recommended book list

I created a book list with my top recommendations for junior java developers. You can checkout the list on google docs: here

IntelliJ – Debugging Cheat Sheet

IntelliJ

Debugging is a skill on its own. If you use IntelliJ, i have something for you.

A Debugging Cheat Sheet that will help you become a better developer

Click here to open the sheet on google docs


Junior-Dev – Fundamentals Checklist

When are you job-ready?

A common question from beginners with no previous job experience is when they are ready for their first job as junior-developer. The answer is probably 6 months after you started your first job.

The truth is you will constantly learn on the job, but below is a list of “minimum” requirements to be “job ready”. Take the list with a grain of salt as some companies have more requirements and some companies might have fewer requirements.

Basic Java Syntax

This one is obvious, if you want to apply for a java-dev position you at least have to know the language. There is no way around this and there are a lot of ressources out there that help you learn java. Check out the recommended book list.

Java I/O

If you want to work as a java junior-developer you at least have to know the Java I/O and NIO libarys. There are a lot of great tutorials out there.

Basic SQL Knowledge

Even if you want to work as a java developer, you will most likely have to work with a database. Having basic SQL knowledge is therefore a must.

Basic Knowledge of Data Structures

You have to know the advantages / disadvantages of the different data structures and you have to know when to use which.

Basic Knowledge of a Version Control System (GIT, SVN, or other)

Every company (hopefully) uses version controll systems, so its wise to learn the basics of the most common systems out there. Probably the most common is GIT.

Portfolio of “Pet” Projects

Having a portfoilo of applications will build your skills and it will impress potential employers. If you are self thought and without a degree this is the best option to showcase your skills

You know how to Debug

Debugging is an important part of programming, check out the different types of debugging.

Willingness to learn quickly

Your willingness to learn quickly will decide if you can become a programmer or not. This is the most important part of all. Everything else can be learned, but you must have the willpower and endurance to keep on learning, even when its though.