One Month of Coffee Chats in Review: Frequently Asked Questions
Tags: beginners, discuss, career, watercooler
Published: 2022-03-27 23:30:30



I am doing coffee chats for a month now. Here are some of the questions I received most frequently. 


## Can you hear me?

Yes.

## At which type of companies should I apply to as a junior?

From a developer's point of view, there are two types of companies: Those that *uses* technology and those that *produces* technology.

These companies know exactly how technology works. They also understand your way. Ideally, they also support newcomers and promote them further. Technology is the DNA of such companies; they are passionate about technology. Therefore, they look for such passion in their employees as well. They know that there is often much more value in hiring someone who knows how to learn rather than someone who supposedly already knows everything.

The other companies that "only" use technology are primarily looking for "service providers" who solve their problems immediately. It is often the case that such companies also fill junior positions, but this is often only done for cost reasons, not necessarily out of the motivation to follow a common path with the employee.

Of course, there are exceptions in both cases, and the above should only be considered a rule of thumb. So you should look for companies that already mention training opportunities and open culture in the job advertisement.

Examples of *technology first* companies: Google, Facebook, Microsoft, Amazon, Airbnb, Todoist,…
Examples of *technology second* companies: Walmart, Starbucks, General Motors,…

## What are companies looking for when hiring a candidate?

Even more than being a good programmer, it is crucial to understand the employer's business problems that they want to solve with technology.

What does that mean? Creative solutions in the software world often come from a developer understanding the problem and then looking for a suitable solution, rather than blindly working through given tickets of small tasks. Of course, it is important to be a good programmer, but beyond that you should also be a good consultant. If you are the one who builds bridges between the business world and the software world, all doors are open to you.


## What is your background?

I learned to program as a kid on my parent's computer (which was Pentium 133MHz at that time) in Basic. In school, I learned some Logo, C, and Pascal.
I got my first client after school, and after a year or two doing freelancing work as a teenager, I decided to take the next step. One of my clients sponsored my university studies. I've been working as a consultant ever since. I like to see different teams, different problems, and different technological approaches in new projects. It's the variety that appeals to me.

## Should I learn programming languages other than JavaScript?

In general: Yes, absolutely.
In particular: Maybe not yet!

When you feel reasonably confident in the programming language you learned first, it is a good idea to learn other programming languages.

Many programming languages are very similar to each other, with functional programming languages being an exception.

For example, if you are good at JavaScript, it will be easy to learn Python, PHP, or C#. The advantage of at least knowing several programming languages is that you get to know different methods for solving the same problems. In this way, your understanding of good programming style and your repertoire of tools will broaden.

For a prospective employer, it is also essential to see that you are able and willing to learn new topics and technologies.


## I have learned the essential things, but I often don't get to the solutions to our assignments (#100Devs). What is the secret of putting the blocks together?


The difficulty in programming is often to break down a problem into such small components that it can be described with the limited commands and constructs of a programming language.

Especially in the beginning, your thoughts may often revolve around the peculiarities of the programming language (Do I put a comma or a semicolon? Do I have to put a parenthesis here? etc.). Pseudo-code can be a helpful way to first decompose the problem close to the natural language and then implement it in the computer language.

Apart from that, it is practice, practice, and practice that will get you further here. Try to understand the solutions of other tasks, find the patterns in the solutions, try your ideas again and again until it fits. You will eventually develop an intuition for how programmes are put together.


## Why did you pick Python as your main language of choice?

Software development is more than just web development. And in many areas, Python is one of the most universally applicable languages.

For example, I often deal with scientists who want to turn their ideas into software. Because Python has such a simple structure, almost like pseudo-code, it is easy to turn these ideas into reality because the language doesn't get in the way.

This does not mean that other languages are not suitable. JavaScript, in particular, can be found in many places nowadays. In the end, it's a matter of personal preference and perhaps also of chance which jobs you end up with. 

Regardless, as already explained, it is a good idea to master more than one programming language.

{% embed https://twitter.com/bascodes/status/1509560645259345928 %}