I am doing coffee chats for a month now. Here are some of the questions I received most frequently.
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,…
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.
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.
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 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.
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.
Regardless, as already explained, it is a good idea to master more than one programming language.