If you want to work in a SaaS development company, in addition to linguistic knowledge, fundamental knowledge is important in a rapidly changing world. Those that will not lose their relevance in ten years, and in twenty.
If you constantly have to learn new languages, then in principle there is no better language. So what should a beginner programmer do?
The answer is to learn to quickly master new languages. Programming languages are similar to each other. They form whole families with common ideas, and sometimes even a common syntax. C++, Java, and C# are very similar to each other not only conceptually but also syntactically.
Knowing one language from a family, you will quickly start writing in a related language, even if it has a different syntax. This is the key to learning languages quickly.
Historically, the earliest classification concerns the first high-level programming languages, Fortran and LISP. The first of them was imperative, that is, it consisted of imperatives. The word imperative in Russian is rarely used, we are more familiar with the word team. A program in an imperative programming language is a sequence of commands that a computer executes.
Unfamiliar syntax makes new languages incomprehensible. But in reality, you can get used to it in just a few days. Unfamiliar concepts can be much more difficult.
The obvious base for programmers is algorithms and data structures. It causes serious controversy because for many programmers this knowledge is often not in demand. As they say in Internet battles, you don’t need algorithms to cut the files. And there is some truth in this.
But here it is useful to remember history. Twenty years ago, the cores were cut not in Python, but in Delphi. The backend was written in Perl. In your career, whether you like it or not, you will switch stacks several times. And perhaps the only thing you don’t have to learn on new platforms is the foundation.
You need more than just programming languages
In addition to programming languages, we need tools and methodologies. Wherever you work, you will need git. Even if you don’t work in a team, get a GitHub account, and keep your home projects there.
Understand Continuous Integration and Deployment – CI/CD. Set up automatic builds for your projects.
Learn to write unit tests. Make testing one of the build steps so that your project only builds if all the tests pass.
Bring your knowledge of English to level B2 – Upper Intermediate. This is enough to perceive English speech by ear, communicate with native speakers, and write letters.
I studied English at school. It was enough for me to read the documentation and write a little. But now, in the days of YouTube, new knowledge comes to us through video lectures and reports. I have to finish learning English so as not to block this most important channel for myself.
What can you say about the industry, having worked in it for thirty years? Technology is dying and dying fast. No more dBASE and Clarion, and even these names are unknown to modern programmers. The holy war between Pascal and C, which went on all the eighties, somehow ordinarily ended with the victory of C. But now nobody cares – what do we need Pascal and C when we write in Java?
We learn knowing that 90% of new knowledge will be obsolete in three years. Perhaps we need to master two more skills.
The ability to forget. And the ability not to learn everything, especially if it’s all very fashionable and modern. No one knows how long fashionable technologies are measured. Be selective.
Main Editor in Hooks.Guide, Embedded Software Engineer.