Writing code and building software is fun no matter which language one uses. But what we have found is that there is no “language to rule them all”. There are a number of languages out there each with its own quirks, strengths and weaknesses and that’s just amazing.
So where does that leave us as software engineers? We will probably need to pick up more than one languages as we go along, but what’s the best way to go about that?
1. Learn the Language
The basic structures are 99% the same across all programming languages, so we just need to learn what makes this language different. For example:
- does it support types and you have not used them before?
- does it support concurrency and that’s new for you?
- does it support Object Oriented programming and that seems weird?
Then we need to put everything together by creating a simple “Hello World!” mini-application that covers the things we didn’t know.
Finally, every language follows some patterns and has some recommended best practices on how to structure a new application and how to code. These make learning a new language a lot more straightforward. Some examples from different languages:
2. Learn the Tools
Have you ever tried writing code with a simple text pad? No vim, or emacs just a simple notepad … If you have then you know how cumbersome that is 😂.
So, yes learn the tools that you can use and an IDE is right there at the top of the list for me. My most loved IDE feature I think is the ability to combine it with the language’s debugger and then step through the code. This is a great way to learn the language as well as it allows you to do deep dives into your code and really understand how it works.
But it’s definitely not all roses and peaches with the IDEs. Say you write in 5 or 6 programming languages which means you have 5 or 6 specialised IDEs. That also means you now have a huge headache of how to update these on every new release 😖.
I have recently solved this problem by using the JetBrains toolbox which pretty much automates the updates of all my IDEs which has been great!
3. Learn the Frameworks
To begin with you are probably better off just not using anything at all. That way you can really discover on your own how this new language would behave in your day to day scenarios.
But if you stick with the language for a while and you want to use it to build something of a somewhat significant size then I would recommend picking up a framework.
Frameworks are usually written keeping the best practices of each language in mind so looking at one of them for your new language will give you better insight of how to approach something new.
4. Learn the libraries
Learn what are the basic libraries that the language is using. Basic things are usually the most well thought off and well designed pieces of a language so learning the main, most used libraries can be a huge help.
These could be part of the standard library, like for example how can you raise and handle errors, how to work with a file etc. but they can also be third party libraries that allow you to better manage your logs etc.
So it is important to not only learn how to install these dependencies but also how to maintain, deploy and update them. If your language has a package manager then that’s an excellent place to start 👍!
5. Have fun
Most important of all: remember to have fun in the process! Going from 1 language to 2 can be a bit challenging because you need to let go some of the things that you have invested a lot of time learning and internalising.
But soon you will be able to go from 2 to 3 to 4 to … who knows 🙂?