The Surprising Truth About Learning a New Language in 2023

Alex Josef Bigler
Full Struggle Developer
4 min readMay 17, 2023

The checklist for learning a new language is a joke. If you don’t know the difference between “if” and “for”, then you shouldn’t read further.

Okay, it’s 2023, and programmers no longer write code but integrate ready-made libraries or platforms (anything from databases to messaging brokers or file storage) into their solutions. Whatever task a programmer is given, the first thing they will do is google a library that solves that task or go on StackOverflow to find a question similar to theirs, and get an answer that suggests the necessary library. By the way, it’s now correct to say “Software Engineer” instead of “Programmer” (oh, modern times 😌).

Don’t think that I’m grumpy — there is still a huge amount of code that needs to be written. To start developing programs today, you don’t even need to know algorithms and data structures — everyone has forgotten about multithreading.

Below, I’ll describe what questions you need to answer before starting your career in IT. If you’re choosing courses, make sure that at least this checklist is covered.

Item one: IDE

There are lots of videos online showing people programming in Notepad. There are also many interview questions like “write it down on paper”. This creates the impression that becoming a programmer requires extensive knowledge, to the point where you can compile code in your head. No. Your job as a programmer is to solve as many different tasks as possible, gain experience, and constantly increase your arsenal of tools (by which I mean libraries). Writing code has a very indirect relationship with this.

Therefore, the process of writing code should be as simple and comfortable as possible. If you want to learn Java, google “IDE for Java” and download IntelliJ IDEA from the first link. And so on for any programming language. The IDE will mark up your code, suggest the name of a function based on the first three characters, and much more that you don’t need to worry about. At most, you’ll need to find a guide on “how to create a new project” and maybe learn what a breakpoint is and how to set it.

Important! There are IDEs that cost money. Don’t skimp on an IDE. It’s your primary tool for work.

Item two: How to write code

Yes, you still have to program a little bit 😒. In a new language, you need to understand how to create a variable, describe a class, and call a function. And if you’re really new, you need to know the difference between “if” and “for”.

I wanted to write a third question — how to compile code. But I won’t — there’s a button in the form of a bug or a green play button. By the way, also try-catch. It doesn’t hurt to handle errors.

Item three: Delivery of code or release

The main value of code is that someone else uses it besides you. If you’ve made a web application but can only run it on localhost, well… You won’t get paid. Therefore, CI/CD, Docker, K8s. Or if your company is sadistic, a little bit about bare Linux and Nginx.

Item four: Basic set for learning

For frontend and backend, they differ, but the essence is roughly the same — you need to be able to work with JSON and send HTTP requests. For backend, you also need to be able to connect to databases or other such things. Once you’ve connected once, it’s all the same.

Secondly, you need to understand what a framework is. Because no matter what you do, you do it through a framework. Want to make a web application? Use React. Want to make an API? Connect FastApi for Python or Asp.net for C#. And so on. You don’t really need to learn how to work with it. You’ll learn on the first real task.

Okay, joking aside. What’s the point of all this?

There are a huge number of courses on software development and IT in general. I’m not against them. But at every other interview, something like this happens:

“I don’t know how to make a default API, but I know how to do bubble sort and singleton.”

Or like this:

“Have I used Resharper? I’ve never heard of that pattern before, but I’ll definitely learn it.”

In short, you don’t have to learn a programming language 100 percent.

Spoiler! You won’t learn it.
You need to understand what this language is capable of. You need to start tackling a real task as soon as possible — coding, making mistakes, debugging, and gaining experience.

At some point, you will feel “constricted” when using a certain library, and you will start to try and rewrite it. That’s when it’s time for bubble sort, graphs, and trees.

In the comments, there will always be something like:

Did you even pass the technical interview? Without knowledge of the basics, you won’t get anywhere.

I’ll answer a question with a question — have you ever tried pulling out your phone, googling the answer to a question during a technical interview, and then answering?

In most cases, it’s important for a team lead to know that you can work independently. Your code will be reviewed and tested. You’re not the last hope of humanity, certainly not at the start of your career. You will be paid not for knowledge, but for work.

Another question is, the more knowledge you have, the better the job. But if you keep striving for knowledge forever, you can die of hunger.

Thank you for your attention! Subscribe. Clap. Bombing in the comments = plus to karma.

--

--

Alex Josef Bigler
Full Struggle Developer

Enthusiast of new technologies, entrepreneur, and researcher. Writing about IT, economics, and other stuff. Exploring the world through the lens of data.