How do I become a programmer?

Maximiliano Poggio
Aklamio Tech
Published in
5 min readNov 11, 2020
Photo by Sean Lim on Unsplash

Since I arrived to Berlin to work as a Senior Frontend Engineer a few months ago, I have come across a lot of people who have asked me one (or all) of the following questions — “What do you have to do to work as a developer?” “What do you do on a day-to-day basis?” “Can I start at 30?” In this article, I am going to provide answers to some of them and shed some light on this beautiful (and confusing) world of software.

Where do I start?

In a world where the amount of information we receive daily confuses us more than it clarifies, programming is not an exception. If you start looking for resources about something in particular (ex: React, Angular) you can find thousands and thousands of posts, videos and articles. The problem is that many of them tend to quickly become obsolete, and they can contain errors.
There are platforms such as Udemy and Pluralsight, where you can get very good quality courses for a very low price. In the long run, the $10 investment for a professional course pays for itself, and from my experience, a lot of time is wasted looking for high-quality free tutorials. When you are just starting out, it is very valuable to have a professional course, with periodic reviews, where you can trust what you are learning.

Photo by Artem Sapegin on Unsplash

Technologies and orientation

Another question that I usually get is about the difference between a Backend, Frontend or Fullstack developer.

Backend handles the development of everything that happens on the server side. For example: when we click on a ‘Buy’ button, that request travels from our browser to a server that processes it. It will validate the data that the user provided, it will carry out a conversion, it will save that information in the database, it will return a confirmation message to the user, etc.

Today, the most widely used languages ​​in this area are Python, Java, Ruby, C #, Go, Javascript (NodeJS), and Rust. Each has its advantages and disadvantages, but if I had to make a recommendation, I would lean towards Python, Javascript, and Go.

I consider that the basic necessary skills for a position as a Backend programmer are the command a language among those mentioned above; a related framework (NodeJS for Javascript, Rails for Ruby, etc.); SQL to handle a relational database (MySQL, SQLServer, etc. ), and Git (for version control).

Frontend takes care of the user interface and everything that happens when the user interacts with the system, e.g. the colors of the application, location of the components, user interaction (when clicking or scrolling,) what happens when the user sends information to another system / server, etc. It is the face of the application.

Javascript is the undisputed king in this respect. However, there are different options as to which framework or library to use: React, Angular and Vue are three viable options as of today.

To work as a Frontend developer, one must have knowledge of Javascript, CSS, HTML, Git and some of the frameworks mentioned above. Knowledge of Typescript is something worth paying attention to, but not a necessary requirement.

A Fullstack developer has experience both in Frontend and in Backend, and can work on both parts of the system. There are many discussions about the requirements to be a Fullstack developer that exceed the scope of this introductory post.

Photo by You X Ventures on Unsplash

A day in the life of a developer

One imagines the developer as a typing monkey, who only gets up from the computer to find for more coffee (quickly!) Nothing could be farther from reality: there are meetings, emails, discussions, drawings on a blackboard, and of course, code.

There is a general classification regarding the companies where one can work: Product companies and software factories. Both have advantages and disadvantages.

Product company: Generally the work rhythm is more stable and calm. The company develops a product and all resources are dedicated towards that goal. Workflows and processes are more organized, yet, the opportunities for learning are fewer, as these companies tend to focus on a single language and platform. Examples of product companies are Airbnb, Facebook, The New York Times, Aklamio, etc.

Software factory: In this type of company you get to work on several projects at the same time. The pace of work is fast, but you learn a lot. Timelines are usually set by the client, so many elements of a project roadmap are outside of the developers’ control. Examples of software factories are consulting firms such as Accenture, Globant, among others.

Today companies usually work with Agile work methodologies (Scrum, Kanban), where a sprint of 2 weeks of work is established (or as long as desired, but usually 2). This sprint is a grouping of a set of requirements, where all those involved in the project commit to solve in the agreed-on time frame. There is a ‘planning’ meeting, where these requirements are assessed, planned, and tickets (work units) are generated and estimated.

At the beginning of each day, there are usually 10-minute meetings (called ‘daily’ meetings), where each developer quickly explains what they are working on and if there is a blocker preventing them from finishing a task in a timely manner. At the end of the sprint, there is usually a meeting called ‘retro’ (retrospective), where teams evaluate what went well, what went wrong, what could be improved, what should stay the same, etc.

Photo by Mathew Schwartz on Unsplash

I am 30 years old, is it too late to ride the wave?

No, definitely not. I always like to name the case of a former coworker, who started to study programming at age 27 and was working as a mid-senior earning a very good salary in a large consulting firm by the time they were 29. Not all of us have the same times, nor the same starting line. But if you like this world, I can assure you that there is no place that offers more opportunities than this, at any age.

Gone is the time when one had to be a math genius to work in the software world. Today, you only need to use logical thinking skills, perseverance, and openness to constantly learn and change.

--

--