In the first part of our series we showed that the job of a developer is much more than just writing code.
We talked about the first days in a software house, the difference between university and real projects, and why experience is gained primarily through practice.
Today we move on to the question almost every Junior asks themselves. What should I actually learn?
The internet suggests everything. Some say you must know React. Others claim the future belongs to Rust. Still others insist that without Docker, Kubernetes and five certificates it makes no sense to send a CV.
The truth looks much calmer...
Don't learn frameworks. Learn programming.
That sentence may sound strange.
After all, companies advertise positions for React Developer, Java Developer or PHP Developer.
So why do we say not to start with frameworks? - Because a framework is a tool. And tools change very quickly.
A few years ago many people were convinced AngularJS would dominate for decades. Today it looks completely different.
You will learn frameworks throughout your career. However, the way a developer thinks stays with you forever.
Therefore first learn to:
- solve problems,
- analyze requirements,
- design solutions,
- read other people's code,
- write readable code.
Technology is only a means to an end.
Master one language really well
This is probably the most common mistake of beginners.
Today JavaScript. Tomorrow Python. The day after Go. Next week Rust. After a month C#...
After two months it turns out none of them were learned at a good level. It's much better to pick one language and really get to know it.
Understand:
- how memory works,
- what references are,
- how exception handling looks,
- how collections work,
- what the difference is between synchronous and asynchronous programming,
- how debugging works.
When you learn one language really well, you'll learn others much faster.
Learn to read documentation
Not flashy? Very.
Extremely useful? Even more so.
A good developer doesn't remember everything. A good developer knows where to find a reliable answer.
The framework or library's official documentation will almost always be a better source of knowledge than a random forum post from six years ago.
This ability to search for information is what distinguishes those who grow from those who endlessly copy solutions found on the internet.
Git is not the "Send" button
If we had to point to one skill worth learning as early as possible, it would be Git. Not because it's trendy. Because practically every development team uses it.
Git is not just saving changes. It's a way of collaborating. Branching. Pull Request. Merge. Resolving conflicts. History of changes.
Without it, it's hard to imagine working in a professional team.
And one more piece of advice. Never send a project as a ZIP file. Seriously.
SQL - even if you don't want to become a database administrator
Many Juniors avoid SQL. That's a mistake.
Most business applications use databases. You don't have to become an expert in query optimization.
But you should understand:
- what a relational database is,
- how relationships work,
- what an index is,
- what the difference is between LEFT JOIN and INNER JOIN,
- why a poorly written query can slow down the entire application.
This knowledge will be useful in almost every project.
Linux doesn't bite
You don't have to immediately give up Windows. But it's worth learning the basics of working in the terminal.
Most servers run on Linux.
Knowing basic commands:
- ls,
- cd,
- grep,
- cat,
- chmod,
- ssh,
can save a lot of time.
At first it looks strange. After a few months it's hard to imagine working without the terminal.
Docker - why is everyone talking about it?
A few years ago environment setup could take a whole day.
Everyone had a different PHP version. A different database. Different libraries.
Docker greatly simplified this problem. It allows running applications in identical environments regardless of the computer.
Should a Junior immediately become an expert in containerization? - No.
But it's worth understanding what a container is and why practically every modern project uses Docker.
AI is a great mentor. Not the best programmer.
This is a topic you can't ignore today.
ChatGPT, GitHub Copilot and other AI tools can greatly accelerate learning. Under one condition. Don't copy code without understanding it.
It's much better to ask:
- Why is this solution better?
- How does this algorithm work?
- How can this be optimized?
- What are the drawbacks of this approach?
AI explains very well.
However, it should not replace independent thinking.
The debugger is your friend
At the beginning most developers do something like: var_dump($variable);
Then: echo $variable;
A little later: console.log(data);
console.log(data2);
console.log(data3);
console.log(data4);
We all started that way. But it's worth learning to use the debugger as soon as possible.
It allows you to pause the program anywhere, inspect variable values and understand what is really happening during code execution.
This is one of the skills that greatly speeds up development.
What hardware to choose?
Here many expect a list of computers costing tens of thousands of zlotys. Unnecessarily.
At the start more important than the latest processor are:
- a comfortable keyboard,
- a fast SSD,
- an adequate amount of RAM,
- a stable working environment.
RGB lighting won't speed up compilation. Three monitors also won't make your code better.
Good hardware should help you work. Not make an impression in photos (though let's not hide it - looks do matter ;) )
Glossary of terms
Framework
A ready set of tools and libraries that make building applications easier according to certain rules.
Git
A version control system that lets you track changes in code and collaborate with multiple developers on one project.
Docker
A platform that enables running applications in isolated containers, allowing the environment to work identically on different machines.
Debugger
A tool used to analyze a program's execution step by step and find bugs.
SQL
A language used to communicate with relational databases.
Summary
A good developer doesn't know all technologies. Doesn't know every framework. Doesn't remember the entire documentation.
A good developer has solid foundations.
They know how to analyze problems.
They can find information.
They understand how technologies work.
And that's why they can quickly learn new tools.
Frameworks will change.
Languages will evolve.
The way of thinking will remain the most valuable skill throughout your career.
In the next part we'll show what a Senior Developer's daily work looks like, why Code Review is the best school of programming, what Clean Code really is and why the phrase "it works on my machine" causes many developers to smile nervously.



