Over the course of 25 years, I learned 30 programming languages. I want to share my experience

beeline cloud. Enjoy reading!

It all started back in 1997. More than 25 years have passed since then. I wrote my first programs under Windows 95 and Windows 98. At that time I was about 12 years old – exactly the age at which many of my generation began to get acquainted with programming. My first language was Logo, used in MicroWorlds by LCSI (Logo Computer Systems Inc). I received this program from my parents as a gift.

Having exhausted Logo’s capabilities in the limited MicroWorlds environment, I switched to Visual Basic. For a very simple reason – it was clear to me and also available directly in Microsoft Office. Visual Basic 6 was the first “real” programming language I was introduced to.

Unsplash / Paul Esch-Laurent

Unsplash / Paul Esch-Laurent

First steps in web development

Since the Internet was one of the newest technologies in the late 90s, everyone wanted to master web programming. I first purchased a copy Sierra Web Artist to implement your own website. Although I had worked with HTML 3 before, it was only with HTML 4 that I was finally able to create fairly complex web pages. At a LAN party (it was a thing back then), a guy got me into learning CSS. I was also interested in JavaScript, not so much as a language, but because of the possibilities it provided for creating web pages.

Like many people at the time, I had to work hard to get JavaScript code to work in both Internet Explorer 4 and Netscape Navigator 4. My personal preference has always been Navigator. Perhaps this is why I mostly use Firefox these days. In my opinion, this is the best browser, and, besides, it sometimes reminds me of that same Netscape Navigator.

Macromedia’s Dreamweaver was the ideal solution for creating web applications, and professionals used the UltraDev version of Dreamweaver.

Server part in ASP and PHP

As a rule, you become attached to your first serious programming language for a long time. When I first started, everything seemed too new and incomprehensible. It was a small consolation for me to know at least one language, for example Visual Basic. That’s why my first server code was written in VB6 with Microsoft ASP on IIS. Since such technology was too expensive at that time, I made it my mission to learn PHP.

The reason is not only my interest in web development, but also because I was introduced to the SUSE Linux 7.2 distribution and really liked it. Around 2001, I delved into Linux. So much so that SUSE has become my daily platform. PHP is quite easy to learn if you come to it from the world of Visual Basic. The second language is not as difficult to master as the first, given the knowledge of data types and programming basics. However, it was very difficult for me to study it. Perhaps because I was only 17 years old.

You can ask me a reasonable question: what other PHP, if just above you wrote about JavaScript? Don’t forget that in the beginning, JavaScript was extremely limited, painfully slow, and only worked in browsers. It was a primitive scripting language designed to make websites more interactive and interesting. At that time, I simply could not treat it as a serious programming language.

Create web applications, desktop and server code in Visual Studio

Create web applications, desktop and server code in Visual Studio

Education helped me master C, C++ and C#

I got my first job at the same time, at the age of 17, thanks to dual education system in Germany. In 2002, two important events happened in the world: Microsoft released the .NET platform and recommended switching from Visual Basic to C#. My professional education program included C and C++. Not modern C, but classic C without any of the string libraries and other useful things present in C and C++ today.

I couldn’t skip this training course even if I wanted to. It was damn complicated, and at first I literally hated C and C++. The .NET platform, C#, C and C++ made me feel like I had absolutely no idea about programming. I felt like a complete idiot taking my first clumsy steps. However, youth is not characterized by as many doubts as maturity brings. This helped me a lot. I dove headfirst into C#, C and C++. I wrote truly terrible code and got away with it.

Borland C++ 2.0 for DOS led me to C programming - Phew...

Borland C++ 2.0 for DOS led me to C programming – Phew…

What made me really fall in love with C was Linux. On Windows, C seems a bit useless, since C# is often much more convenient. However, C and C++ feel right at home on Linux. It took me more than 5 years to learn how to correctly use C and C++ to solve my problems.

After C everything seems familiar

Once I became somewhat proficient in C, all other languages ​​began to seem the same to me. Mainly because they were written in either C or C++. For example, PHP is written in C. Most Windows and Linux system libraries are also written in C. The .NET framework is written in C. Everything in the world is written in C.

After C, I was able to quickly master a ton of programming languages. ActionScript for Flash, AppleScript for Mac, and even a little Delphi for one project. Learned WML and WMLScript when WAP was a hot topic for Nokia 7110.

Objective-C, combined with the first versions of Apple’s Xcode, was the first language that I really struggled with learning. To be honest, I never became friends with it and still prefer not to use it. I was excited when Apple released Swift and SwiftUI because I never understood Storyboard, a user interface design engine.

My personal top 10 languages ​​today: Swift, Go, C, JavaScript, C++, CMake, SQL, Java, C# and Scratch. Scratch is mostly because it’s great for teaching kids how to code.

I believe that a well-organized personal library of programming books will be very useful

I believe that a well-organized personal library of programming books will be very useful

How I learned programming languages

When I started learning to program, a lot of things were learned through trial and error. Looking back, we can say that there were too many of them. Starting with theory and reading books is not my method. I was and remain self-taught. For me personally, the best option is a combination of theory and practice. Of course, I have used educational literature more than once and love it dearly. Books provide a structured approach to learning, but they cannot replace practical skills.

I bought myself two books on Go, even though I learned it in 2-3 days. They helped me understand concurrency, the basic principles and architecture of the language. Regarding JavaScript, till date I have not read any book, only reference guides on websites. But that’s because JavaScript and I grew up together.

For self-taught people like me, working with your hands and following books is the fastest way to learning a language. I would like to emphasize that the learning process depends on your experience as a software engineer.

Knowledge useful for programming

A programming language is simply a tool by which applications are developed for computers and operating systems. Knowledge of the computer architecture, its design, network operating principles (mainly TCP/IP, IPv4, IPv6, HTTP) and the ability to track HTTP requests using Wireshark at the packet level will help you understand the task.

Knowing how to read documentation and help guides is also very important. I have written programs for Linux, Windows, BSD, Macintosh System 6-9, macOS, Pocket PC, Windows Mobile, PalmOS, iOS, iPadOS, tvOS, watchOS, Android, Tizen TV, OpenWRT, Arduino, ARM Mbed and other OS. Knowing how operating systems work under the hood will help you understand their paradigms and what your code actually does.

Writing a system daemon with networking functionality in C, Rust, or Go on Linux will help you understand a lot about computers and networks. For me, this knowledge turned out to be the most useful I have ever received. The reason is simple: today almost everything on Linux or BSD uses network resources. Just like an iPhone, Samsung TV or router.

Arduino is great for learning computing related electronics

Arduino is great for learning computing related electronics

SQL is a real rabbit hole

SQL is a completely different story. Just because you can write nested SELECT statements doesn’t mean you know SQL. I’ve worked with MySQL and really like it. Communicated with T-SQL and PL/SQL from Microsoft. Wrote thousands of lines of code for stored procedures, functions, triggers and views for MySQL, MSSQL, Oracle and a bunch of other database management systems.

Mastering SQL isn’t just about learning it as a query language. We are talking about the competent design and use of relational database management systems. A paradigm in which applications outside the system are not allowed to directly manipulate tables. A model for designing stored procedures, functions, and triggers to isolate base tables from the outside world. And also many other concepts that don’t really relate directly to SQL as a language in itself. Learning SQL is more about learning relational databases than a language.

Just 10-20 years ago, you had to be fluent and confident in SQL if you wanted to get a well-paid job as a software engineer. With the advent of other alternatives, this may no longer be so relevant. However, I’ve seen quite a few people make great careers using relational databases and SQL alone.

There's more to SQL than just writing queries

There’s more to SQL than just writing queries

Languages ​​I haven’t used in over 10 years

When you learn so many languages, there comes a time when you forget about some of them, and this is completely normal. Here is a list of programming languages ​​that I haven’t used in over 10 years: Objective C, Visual Basic, Delphi, Perl, ActionScript, Logo, OpenScript, WMLScript.

Over time, these languages ​​either died out or lost their relevance for me. When I came across Delphi after 10 years of not using it, I was certainly able to remember many aspects of it. But honestly, I felt like I had to learn it all over again. WMLScript and ActionScript are gone forever. I completely forgot them. If I see WMLScript, I can read the code. But I can’t write anything without reference material and a book at hand (the good old book on WAP programming for Nokia).

Development environments I no longer use

My daily programs are VSCode, Xcode and vim. I really love Xcode, it allows me to program the way I want. VSCode is pure magic for a polyglot programmer, as it creates a comfortable environment for any language that is necessary and interesting to me. There are IDEs that I no longer use, but in which I spent a significant part of my life.

These IDEs were quite good in their own way, and I spent a lot of time in them. However, as new programming languages ​​and runtimes emerge, so do new tools. Every language has its time. And one day you realize that you need to move on. With the advent of Mac OS X, all System 9 tools essentially died overnight. Don’t fall in love with these IDEs, you never know how long they will last. But it never hurts to learn the basics of vim.

30 languages, you say? Hm!

The title states that I’ve learned 30 languages, and by learned I mean I’ve written a fair amount of code in them. Developed, assembled and deployed the application. Here is a complete list of these languages ​​in alphabetical order: ActionScript, Arduino, Assembly, Bash, C, C#, C++, CMake, COBOL, ColdFusion, Dart, Delphi, Go, Java, JavaScript, Logo, Objective-C, OpenScript, Perl, PHP, PL/SQL, PowerShell, Scratch, SQL, Swift, T-SQL, TypeScript, Visual Basic .NET, Visual Basic Classic and WMLScript.

I probably might have forgotten something. There were many small scripting languages ​​that I learned, used for a few weeks, and then threw out of my mind. So there could be more than 30. The number doesn’t really matter.

It doesn't matter how many languages ​​you know, it's what you can do with them that matters

It doesn’t matter how many languages ​​you know, it’s what you can do with them that matters

Psychological factors in programming

A big part of being a programmer is feeling stupid. Mistakes and failures become a daily experience. The world of computing is so vast that you can’t keep up with everything. In the mid-1980s, computers were still relatively simple. But even at that time, it was impossible to know everything – from the design of the chip to the design of the user interface of the application. The human brain is simply not capable of storing all this information. Don’t be too hard on yourself.

You need to enjoy working with computers

I highly recommend the book Just For Fun, a biography of Linus Torvalds. In addition to the story of how he created Linux, it contains many of his personal life impressions. Understanding what Linus went through will help you realize that you are not alone. And that we all go through ups and downs in programming.

Linus is one of the best software engineers our world has today. Definitely worth following him and learning from him. He wrote the most popular and important operating system of modern times and is still responsible for its support. Linus is someone you want to look up to.

Write what you love most

As you learn different programming languages, find the niches that resonate with you the most. For me, it’s all mobile. I love mobile apps, mobile websites, and computing technology that I can carry in my pocket. I loved programming for Pocket PC, for Android, and I just love writing for the Apple ecosystem.

Writing mobile web applications adapted for smartphones is an activity that gives me great pleasure. But your situation may be different. Everyone has their own interests and hobbies that cause special delight. My personal recommendation is to follow your preferences. Then, even in the most brutal periods, you will enjoy programming.

Find your passion

Find your passion

Don’t fool yourself, be simpler

Programming languages ​​as such are over 100 years old, and assembly language will celebrate its 100th anniversary in 2049. In the decades since Konrad Zuse invented the Zuse Z1 in 1938, a lot has changed in computing. You don’t have to play the Zuse Z1, Windows or Linux. Of course, it helps to understand the basics, but you don’t need to become a jack of all trades, and you can’t. Your brain can’t.

I was very strict with myself and believed that I needed to learn everything new. I brutally forced myself to learn ActionScript in order to be able to create Flash applications. I never enjoyed any of this. Back in the day, I enjoyed working with Dreamweaver and Fireworks just as much as I enjoy working with VSCode, XCode, vim, Photoshop, and Illustrator today.

Learn what you like and don’t be too hard on yourself. Organize your training, don’t throw yourself into the pool headlong. Get some really good study guides. There are wonderful books and video courses. I wish I could have used all these video tutorials back in the day. I really enjoy watching programming lessons on TV while lying on the couch.

Programming should be fun, and if it’s not, look at it from a different angle. Try a different area (for example, desktop applications instead of the web) or a different way of solving problems (for example, technical problems instead of algorithmic ones). Personally, I prefer technical ones. For example, programming a network protocol instead of an indexing algorithm. Not all programmers are the same, and everyone has their own taste.

Write what you like. Study what you like.

beeline cloud – secure cloud provider. We develop cloud solutions so that you provide your customers with the best services.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *