I am a Masters student in Computer Science and I have read a lot on different programming languages but never used any of them anywhere. If I have, that was just some few lines at a basic level.

Now I have a student job at a very highly reputable scientific institute. They needed someone for developing a GUI, either in Java or Python, to control some instrument and get its readings on the computer. I got that interview somehow and they just asked me some basic questions unrelated to any coding, and now they have recruited me.

I am a bit worried now about whether or not I will be able to do justice to the job and their expectations because I really think I don't carry the skills for the tasks. Although I really want to work there and learn and this is my first opportunity to practise programming, at the same time, I don't want to disappoint them and make them regret their decision of hiring me.

How should I go about it?

  • 11
    All entry level programmers are either heavily overconfident in their ability and in for a shock when they meet the reality of the working world, or they are panicked they will be overwhelmed. You will at times be overwhelmed. Happens to all or us. Practice and be ready to absorb all you can from day one.
    – dlb
    Feb 12 '17 at 19:39
  • 2
    You got a student job. They don't expect too much from you or they would have hired a professional programmer. This is your chance to shine and impress them. But if you can't, it's not your problem. They get what they pay for (i.e., not much for a student job).
    – Roland
    Feb 13 '17 at 11:50
  • 11
    You're a masters student in computer science but you have never used any programming languages anywhere?? What???
    – UpAllNight
    Feb 13 '17 at 15:56
  • 2
    @bobo2000, but to have never used any programming languages anywhere seems suspect.
    – mikeazo
    Feb 14 '17 at 13:25
  • 2
    @UpAllNight Sure, but some programs are a lot more theoretical than others, where if any coding is done is not very high level.
    – bobo2000
    Feb 14 '17 at 14:52

You already have the job, it's too late for that sort of thinking. Get into your work and prove yourself.

My call is you'll find it's nowhere near as difficult as you're thinking.

  • 5
    Or he won't be able to write a single line of code and just stare at the screen with no idea what to do - which is, unfortunately, what happens to most people that got a diploma but never touched a real-life system.
    – T. Sar
    Feb 13 '17 at 16:25
  • @TSar just start at the beginning, I'm not a fan of academics but that strategy will work for anyone.
    – Kilisi
    Feb 13 '17 at 19:55

Just do your job as well as you can.

Do you feel like you were not honest during the interview process? Did you lie about your abilities? If not, they probably picked you because they thought you were the best fit for the job.

When you start in that company, make sure that you manage the expectations of whoever is going to manage you. If you feel like you need some extra supervision before you get up-to-speed, or if you feel like you need time to learn some aspects of the project, let them know and see with them what can be done for you to become autonomous and productive. That may involve working with a mentor who will teach you the important aspects of the process.

As a beginner, that's going to be your primary challenge. I doubt that they'll assign you tons of critical tasks, but you'll need to show that you can quickly reach a point where they can trust you with work. Things will come naturally with a bit of time and proper mentoring.


Just have a little faith in yourself.

People do not want you to fail. People will help you - they have been in the same boat. It might have been a while ago but they will help you.

If you are unsure do not just sit at the desk. Ask around for advice. You will get some advice and they will think more highly that you have asked.

6 months down the line you will be part of the team. The employers have factored in that it takes about that amount of time to get up to speed.

  • 1
    The person who hired you especially doesn't want you to fail, because they would have been the one who hired the failure. Quite the opposite, by doing your job well you prove that this person was absolutely right hiring you, so they will want to support you.
    – gnasher729
    Feb 14 '17 at 13:33

dlb in the comments section pretty much said what I wanted to. You won't be a dissapointment since you're an entry level programmer. Infact, many people will actually try to help you grow and up skill you.

I would advise you to take lots of notes, ask a lot of questions especially if you don't understand something and be confident.


How to approach the "customer" (your employer)

If they asked you to do the job and you honestly told them what were your capabilities, you have nothing to worry about. Throughout the following months try to keep them informed on your progress and immediatly tell them if you have some kind of problem that will slow you down.
You just have to be sure that everyone has the same expectations, and you don't deliver an underperforming product to an overestimating customer.

Being confident

Keep your resolve and be confident in yourself. Nobody was able to make a fully working and well written software right from the start.
Learning will probably be slow at the beginning, and you WILL find obsacles. Don't lose hope and slowly grind your way around them. When you will be done, you'll think everything was a lot easier than you initially thought.

Practical tips

Learning a language

If you never touched any programming language or GUI tool, choose the one you think is better suited for the job (based on languages supported by the libraries of the instrument you're developing for) and try to put up some simple example program, a small CRUD application with a backend of some sort will show you the most common problems and pitfalls for a beginner. For example, you could try developing a small app to manage your friends addresses and contacts.

If you have no tight time constraint, don't be afraid to try, fail, and try again. Learning from your own mistakes is extremely important for a developer.

Keeping your code clean

There is lots of documentation on the internet about this topic, and learning how to divide and reuse your code will surely make your life easier.
As a rule of thumb, if a method/function doesn't fit in your screen or a class has more than 7/8 methods you should probably ask yourself if the method/class isn't doing too much, and if you should move part of your code somewhere else.
Having well organized code will reduce the chance of bugs in your final product, and will make it easier to fix them or add new functionalities if they ask you.

Asking lots of questions and reading lots of examples

Websites like Stackoverflow are born exactly to help programmers share their knowledge and get better at their jobs. Most basic questions already have an answer there, expecially for more popular languages. If you don't know something, don't be afraid to ask.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .