How can you learn a new programming language as a software engineer?
As a software engineer, you may want to learn a new programming language for various reasons. Maybe you want to expand your skill set, work on a different project, or explore new paradigms. Whatever your motivation, learning a new programming language can be challenging but rewarding. In this article, we will share some tips on how to approach this task and make the most of your learning experience.
Before you dive into learning a new programming language, you should have a clear idea of why you want to learn it and what you hope to achieve with it. Different languages have different strengths, weaknesses, features, and applications. For example, if you want to learn web development, you might consider JavaScript, Python, or Ruby. If you want to learn data science, you might choose R, Julia, or Python. If you want to learn low-level programming, you might opt for C, C++, or Rust. Choosing a language that aligns with your goals will help you stay motivated and focused.
-
Roberto Lara Rodríguez
Software Developer
Un lenguaje es una herramienta. El hecho de que todavía usemos lenguajes de programación escritos para expresarle nuestras ideas a una PC, deja claro que las Ciencias de la Computación están aún en pañales. Puedes elegir cualquier lenguaje, algunos te harán entrar escalar más rápido que otros en el mercado laboral, pero lo importante es que aprendas los conceptos esenciales de la Computación (estructuras de datos + algoritmos, principios filosóficos del diseño del software, etc.)
-
Rini Joy
Software Engineer ⫸ Dedicated to Crafting Equitable Web Solutions for users ⫸ Focused on Javascript, Python, React, Node.js, RESTful APIs, MongoDB ⫸ Believer of Kindness.
Step 1 before getting here: Pick any one language and understand it throughly. Ex: Python or Javascript. Step 2: Understand the language that your industry commonly use and choose one Step 3: Learn how to handle different data types in this language Step 4: Understand basic syntax/ take the shortest possible tutorial Step 5: Start working on a mini project using this language The real learning happens when you code and reference the documentation during the process.
-
Dickson Sosanya
Software Engineer || Technical Writer || Adept at Transforming Business Ideas into Engineering Solutions
You also want to pick a more challenging project than your current language. If you write JavaScript or python already, consider picking up GO. If you write GO already consider picking up Rust, C++ or C. If you already write any of those, you can consider picking up Haskell. The idea is to write something that deepens your knowledge about engineering.
-
Wilson Ibekason
Lead Software Engineer @ Medxoca | Software Architect | Agile Advocate | Indie Entrepreneur Harnessing SaaS for Innovative Solutions
There are tons of programming languages built specifically for different use cases, It your responsibility to understand what area that really inspires you, The choice of the programming language that suits your interests should be built around concepts like Algorithms and Data structures, UML Diagramming, System design, etc. Understanding the fundamentals also plays a unique and vital role to your success.
-
Damian Green
Software Developer
It also helps to do a bit of research into the tools your company uses, the common stack in your field the emerging technologies. These findings change over time and vary person to person
-
Jan Werkhoven
Manager (2y), programmer (14y), UX designer (6y), mentor to some, front-end, back-end, dev ops, father, husband, friend, gardener 🌱🌳, from 🇧🇪, home in 🇦🇺
Start seeing coding languages as tools: hammer, drill, saw, ... You need to wield multiple to build and no you cannot use the hammer for everything. Every language sucks at something. Right tool for right job.
-
mohammed reqqass
This also depends on the community that uses the language and its evolution, as well as the documentation available for the language.
-
Nayana Weligalla
Software Engineer at auraDOT | MSc in CS, UoM (Reading) | Full Stack Dev | AWS & OCI Certified
As a software engineer, you already know the basics of programming languages. Instead of starting from scratch like a beginner, research what you want to accomplish and find the language with it's ecosystem (3rd party libraries, community support, etc.) that gives the best help to achieve your job easily. Once you've decided, focus on learning the native syntax of that language. Since many modern languages share fundamentals, having prior knowledge of one language makes it much easier to learn a new language. It is just a matter of picking the best tool for your job.
-
Hamza Akhun
CTO | AI Engineer | Blockchain Engineer | Saas Founder | Product Manager | Product Designer | Brand Strategist | RWA Developer
One might be impressed by AI, Robots, Softwares, Blockchain. I was impressed with blockchain Technology. As current ERA might have AI interest. First step is to check underlying core used by the technology. For AI learn Python, for Blockchain learn solidity , for websites learn javascript. Try to build a simple app first . its might be todo list. an ai agent, a smart contract, a mini website of pizza shop. All use specific tools and languages, Smart contract = solidity, Websites = Javascript, AI = python, now if you dont know which language is used by technology watch a youtube video then start a tuturial build the app. this is how it works. You need practical solution and for that pick a tool to help you reach there.
-
SARDAR UZAIR
Empowering Innovation: From Full-Stack Development to Entrepreneurship, Founder at @susolz, Unleashing Tech Solutions with Expertise in PHP/Laravel, DART/Flutter, Python/Django, C#/.Net, JS/React, Vue.js, and Beyond!
Selecting the right programming language is crucial for achieving your goals in software development. Whether it's speed, versatility, or ease of use, align your choice with the specific objectives of your project.
Once you have chosen a language, you need to find a good resource to learn the basics. There are many options available, such as books, online courses, tutorials, blogs, podcasts, and videos. You should look for a resource that matches your learning style, level, and pace. For example, if you are a visual learner, you might prefer videos or interactive platforms. If you are a self-directed learner, you might like books or blogs. If you are a beginner, you might need a resource that covers the fundamentals and explains the concepts clearly. If you are an intermediate or advanced learner, you might want a resource that challenges you and introduces you to new topics.
-
Jan Werkhoven
Manager (2y), programmer (14y), UX designer (6y), mentor to some, front-end, back-end, dev ops, father, husband, friend, gardener 🌱🌳, from 🇧🇪, home in 🇦🇺
Avoid courses like the plague. Online tutorials teach you nothing. Hello world gave you a false sense of accomplishment. Instead have real purpose. Have a real app in mind to help out a real person. Start building towards that. You'll quickly realise that all these tutorials focus too much on syntax and methods you will never need in real life projects. Also the reality is that your app requires a myriad of code languages. No one language will build it all. The sooner you have a real project in mind, the sooner you'll theoretical bullshit of courses. 🙈
-
Ali H.
Senior Software Engineer @Prixite | FullStack | AWS | Team Lead
Instead of wasting time on tutorials, I always recommend to build a small app in the language you are trying to learn. In this way you actually do the work and end up learning a lot instead of tutorials pitfall where you just keep on wasting time and not actually doing anything. So one thing I would recommend is just write a Chat APP. you get work on Rest + WS + file handling (uploading attachments) + UI + Auth
-
Nathan Muntner
Software Developer for AV Control
Let a current code base and AI be your teacher and you can't go wrong really. There is a debate if AI make s you dumber or smarter, well the choice is really yours. Learning is asking the right questions and the dumb questions to a teacher that never judges. That is the power of AI.
-
Damian Green
Software Developer
I find the free courses online very helpful and self paced. Once you feel confident you can start testing your skills in sites such as leetcode.
-
mohammed reqqass
You can begin with online courses to gain a broad overview of knowledge, but for deeper understanding, it's important to read books and, of course, practice through real projects.
-
Matthew Sessions
Software Engineer
It's usually best to use tutorials and guides from the same organization that makes/develops the language. Don't use the first result on Google for a tutorial in that language; spend some time finding out who makes the language, go to their website, and see if *they*, or someone who works for them, have some guides or publish some books. Additionally, if you're trying to truly master a new language, try to learn it bottom-up: start by learning how basic expressions and functions work, and work your way up through concepts; instead of top-down, where you're shown code that does what you want and then it's explained bit-by-bit in minimal depth.
-
Faustino Delgado Camacho
Enablement Data Programmer @ Bayer | Data Analytics, Google Cloud, AWS, GIS, SQL, Python, R, Biotech
I find that some free online tutorials are very helpful to cover the fundamentals, although I would verify with official documentation and guides.
Learning a new programming language is not just about reading or watching, but also about doing. You need to practice with projects and exercises that allow you to apply what you have learned and test your understanding. Projects and exercises can also help you develop your problem-solving skills, creativity, and confidence. You can find projects and exercises from various sources, such as online platforms, books, courses, or your own ideas. You should choose projects and exercises that interest you and match your skill level. You should also try to implement them in different ways and compare the results.
-
Khaled Mohammad
Lead Senior Software Engineer (Web) at CHEQ Lifestyle Technology, Inc.
A very important step! Depending on your level you can take different paths. For a Junior engineer following reading official docs and seeing how to do basic things like print, loop would help and then as you gain confidence try out different projects to build, for a example simple CLI, or CRUD app, etc, depending on the language. For a Mid-Senior Engineer, reading the official docs and then doing some problem solving just get the hang of the language yet keeping it fun (maybe some leetcode problems) and then dive into building something with it like a chat app, which will allow you to utilize advanced features of the language such as networking and others. But remember, each one of us learn differently! Do what suits you best.
-
Herry Gunawan
Co-Founder & CTO at Gajiku | Writing bitbytebit.xyz
Learning by doing has always worked for me. Here are my steps: 1. Define the project and set up the goal that you want to develop. 2. Follow frameworks, tutorials, best practices, or success open source project. 3. Avoid copying and pasting; instead, write the code yourself. 4. Understand each part of the tutorial. 5. Once you start enjoying the language, try implementing solutions on your own.
-
Ali H.
Senior Software Engineer @Prixite | FullStack | AWS | Team Lead
My goto way to learn a new piece of technology is to implement in some project either hobby project or small freelance project or convincing at Job.
-
Damian Green
Software Developer
One thing I would suggest here is to give yourself a reasonable deadline to complete tasks. Try to have a mental space of having to get it done and prepare dedicated times for practice. Discipline is key
-
Kayanat Suleman
Automation Engineer at Sogeti UK | Sogeti Women and Allies in Tech
Having a little black book to keep your ideas in is a good start. Inspiration usually starts with being frustrated or impatient with the way something works for me. Once I acknowledge what I wish worked better and I think ‘what if’ I could write a couple of lines of code to make my life easier. It’s adopting this mindset that lets me be creative and keeps me excited to continue to learn and implement programming. You should then take ownership and pride in what you create from then, as it was conceived by you. Put it on GitHub and share your ideas. You’ll become more confident in your abilities to think creatively and develop a sense of what ideas are more useful than others as time passes.
-
Jan Werkhoven
Manager (2y), programmer (14y), UX designer (6y), mentor to some, front-end, back-end, dev ops, father, husband, friend, gardener 🌱🌳, from 🇧🇪, home in 🇦🇺
Have a real project to help a real person. It's a great way to cut all the theoretical fluff and cut straight to "how can I write code to help this person". That person will keep you accountable and focused. It's also worth finding a mentor who agrees to review your code. Again that person will hold you accountable to keep make progress and point you at the next thing to learn and master.
-
Nayana Weligalla
Software Engineer at auraDOT | MSc in CS, UoM (Reading) | Full Stack Dev | AWS & OCI Certified
Rather than just following a beginner tutorial or reading through documentation (which could be daunting or boring) about the new language. I believe it is much more rewarding to learn a new language by starting a project with it. It doesn't matter if your project is small. Start by picking a small problem and try to solve it using the new language. Since you already have experience in problem-solving as a Software Engineer you'll learn the language features along the way. in this way, you’ll naturally learn about the language more than just following step-by-step tutorials, because you tend to research more.
-
William Lowrimore
Frontend Web Developer, Software Engineer, NextJS | JavaScript | TypeScript | TailwindCSS
Tutorials can be helpful, but they can also be a pitfall. If you are completing tutorials, but not understanding what you just "learned" it's because you didn't really learn much of anything. Tutorials are meant to only get you on the right path to understanding the context. The real learning is up to you, the developer. My advice, and what's worked for me is to find a website, app, etc. that peaks your interest and makes you think, "I wonder what technologies they used. I wonder if I can build this.". Then recreated it. Along the way do your research ( i.e. which technologies are best suited for this platform? ). Take it one step at a time, and MAKE MISTAKES! You'll be shocked at how much you learn solving your own problems!
-
Nathan Muntner
Software Developer for AV Control
You have two options go to school or a class and pay to learn or do on the job and get paid to learn. You have more mentors to learn from at work then you will ever at school.
Learning a new programming language can be more fun and effective if you join a community and seek feedback from others. A community can provide you with support, guidance, inspiration, and opportunities to learn from others. You can join a community online or offline, such as forums, social media groups, meetups, or hackathons. You should participate actively in the community by asking questions, answering questions, sharing your projects, giving feedback, and collaborating with others. You should also seek feedback from others on your code, such as your peers, mentors, or experts. Feedback can help you improve your code quality, style, and performance.
-
Jan Werkhoven
Manager (2y), programmer (14y), UX designer (6y), mentor to some, front-end, back-end, dev ops, father, husband, friend, gardener 🌱🌳, from 🇧🇪, home in 🇦🇺
Amen! Find all the other geeks who love the same coding languages you do. Their companies will organise free seminars and meetups with free food, presentations, mingle time and job opportunities. Find the companies that also use the obscure coding language you love. Git paid to learn. $$$
-
Nathan Muntner
Software Developer for AV Control
Linkedin is a decent place to share but I feel like Discord is the best to learn and teach and share and collaborate even. Indulge in what you find fun and with the people share that joy and you will organically develop your software along with your new relationships.
Learning a new programming language is not a one-time event, but a continuous process. You should keep learning and exploring new aspects of the language, such as libraries, frameworks, tools, patterns, and best practices. You should also keep updating your knowledge and skills as the language evolves and changes. You can keep learning and exploring by following blogs, podcasts, newsletters, or courses that cover the latest trends and developments in the language. You can also keep learning and exploring by challenging yourself with more complex and diverse projects and exercises.
Learning a new programming language as a software engineer can be a rewarding and enjoyable journey. By following these tips, you can make the most of your learning experience and become proficient in the language of your choice.
-
Nayana Weligalla
Software Engineer at auraDOT | MSc in CS, UoM (Reading) | Full Stack Dev | AWS & OCI Certified
Learning isn't a single task that you can finish. Even if you believe you have achieved your goal with the new language, just keep learning! You will be surprised when you discover new and easier ways to do things that you've already done. Even if you don't want to change stuff that you have already done in your work, continuing to learn will help you in future greatly. Personally, this happened to me a lot. So my advice is to never stop learning.
-
Nathan Muntner
Software Developer for AV Control
If you want to stay young than keep learning and playing. Keep it fun and you will always have an insatiable thirst for knowledge.
-
mohammed reqqass
Of course, you need to engage in continuous learning to explore new aspects of the language and to stay updated with its latest features.
-
SARDAR UZAIR
Empowering Innovation: From Full-Stack Development to Entrepreneurship, Founder at @susolz, Unleashing Tech Solutions with Expertise in PHP/Laravel, DART/Flutter, Python/Django, C#/.Net, JS/React, Vue.js, and Beyond!
Dive into new coding challenges regularly to expand your programming skills and knowledge. Also Challenge yourself with coding exercises and projects to apply theoretical knowledge to practical scenarios
-
William Lowrimore
Frontend Web Developer, Software Engineer, NextJS | JavaScript | TypeScript | TailwindCSS
One thing I keep in mind is that learning a language is more than just programming with that language. Step outside and look in. The language(s) you are working with will have other languages, frameworks, and libraries that compliment them. Part of learning something is being aware of its full scope and capabilities, as well as, where it may fall short. Research and listen to other programmers, take in their approach to problems and solutions, gather and store it in your wheel-house with your translation. If the way you translate it works, then you are properly learning...not regurgitating someone else's approach.
-
Martin Vaughan
Head of Data Engineering and Software Development at Glowinkowski International
I would always argue for the benefit of understanding general computer science (CS) concepts when both evaluating and learning new languages. This can provide key insights that can hone one's intuition into how to most effectively use a language. E.g., one of the first things I always want to know about a new language is: are function arguments 'pass by value' or 'pass by reference'? This simple fact will have highly non-trivial consequences! Another important issue is how strongly 'typed' the language is (the casting of a float to an integer is the cause of many a bug). Then there is the question of how well true object orientation is implemented (not very well in many cases) or whether the language permits multi-threading.
-
Vasileios Fasoulas
Executive leadership | Engineering management | Architecture | Data Lifelong learner | AI adopter | Author (work in progress)
Programming languages come into families. The process of learning another in a family you know e.g. from Java to C# is a lot more straight forward than learning a language in a different family as that usually requires to learn to think of problem solving in a different way e.g. from C# (OO language) to F# (functional). Consider your long term objectives as the effort required for crossing language families is typically considerably higher. For languages that mix both object and functional paradigm, consider which one you want to focus and adopt as your dominant style.
-
SARDAR UZAIR
Empowering Innovation: From Full-Stack Development to Entrepreneurship, Founder at @susolz, Unleashing Tech Solutions with Expertise in PHP/Laravel, DART/Flutter, Python/Django, C#/.Net, JS/React, Vue.js, and Beyond!
Stay engaged with the programming community through forums, meetups, and online platforms to exchange ideas and learn from others' experiences.
-
William Lowrimore
Frontend Web Developer, Software Engineer, NextJS | JavaScript | TypeScript | TailwindCSS
Speaking with other developers about what you are working on, how you are approaching it, and declaring your "Aha moments" can open a world of conversational knowledge. Do this, BUT don't forget that you once didn't know the technical jargon. I say this because explaining the same thing to a non-programmer can be very helpful to you as well. When you talk about your strides to a layman, you have to use layman terms. It forces you to really get to the heart of how and why something works or fails. This will almost always unearth another "Aha moment".
Rate this article
More relevant reading
-
ComputingWhat are the most effective ways to learn a new programming language fast?
-
IT StrategyWhat do you do if you want to master new programming languages?
-
IT OperationsWhat do you do if you want to expand your IT Operations skills by learning new programming languages?
-
Web ApplicationsYou're struggling to learn a new programming language. How can you make the process less daunting?