TL;DR - Understand the core concepts of a language and then alternate between learning details and putting them into practice
A language is a means to an end. Quickly picking up programming languages allows developers to build anything. I've recently been learning Java to contribute to a
Spring backend. I've found that once the foundations of the language have been learned, a great way of learning is to develop a process of cycling through learning details, then putting them into practice.
Getting started - Understand core principles
The first thing to do is understand the core concepts of the language and the main use cases. If you can, get an experienced engineer to mentor you. This way you'll cover the mundane setup stuff and be running code in no time. Spend about a day or two here, enough time to know everything to get you started but not too much that you end up bored and lose motivation.
Ask yourself the following questions:
- What tools do developers generally use and why?
- A good starting point is to ask what's the most appropriate text editor / IDE to use.
- Understand why developers use these tools and what others exist but they don't use. Remember that if all you have is a hammer, everything looks like a nail.
- What's the type system?
- What's the programming paradigm?
- Is it object-oriented, functional, etc?
- Is it limited to a specific paradigm or does it support numerous? It's common for a language to support multiple paradigms
- Is it compiled or interpreted?
Most of the above high-level questions don't have an absolute answer which is why exploring these questions and answers is key. This will allow you to establish strong foundations, on which to learn the details.
Learn the details
At this point you'll hopefully have some vague idea of what the language does and how to execute some code. So now it's time to get to grips with how to write it.
- Learn some syntax, for example:
- How are variables and functions declared?
- What are the available control flows? e.g. if statements, for loops
- What are the core data structures and how do you create them? (e.g. arrays and dictionaries)
- What kind of features does it have? For example:
- Does it have reference and value types? And how are they used?
- Can you define interfaces/protocols?
- How do you write concurrent code?
- If it's strongly typed, does it have generics?
- What's available in the language's standard library?
- What are the main conventions people follow?
- Check a code style guide, for example
- Do developers rely on 3rd party libraries? If so what the most common ones? For example, I've found that modern Java codebases use RxJava
Dive in head first
Theory is great, but we learn much more through
experience. Nobody learns how to ride a bike by reading a book about it. Try out one of the following in order to gain experience:
- Contribute to an existing project at your workplace, pair with another developer if you can.
- I've found that going into an established codebase where good practices are followed has been awesome. It'll be easier to add new small features by extending existing code or by following existing patterns.
- Code reviews by other developers will help point out issues quickly.
- Contribute to an existing open source project. It's common for projects to mark issues that outsiders can pick up, this is a great place to start.
- Create your own project. Find something you're keen on creating and build it with the language you're learning.
Lastly, stay out of your
comfort zone and push yourself to constantly learn.
I’d like to thank Emily Woods for reviewing this article.
i was thinking about doing a course on learning a new language. then i stubmled on your page and had it made way to easy for me as i had no idea where to begin. thank you
ReplyDeleteWonderful post. I am learning so many things from your blog.keep posting.
ReplyDeleteExcellent Vacation Courses in Chennai | Good Summer Course in Guindy
Thanks for the post. Kanhasoft is leading PHP Application Development Company in India, offering PHP solutions for businesses. To know more about visit our site.
ReplyDeleteYou won't believe me, but I was planning to write a blog very similar to the one you have posted here. Great work!
ReplyDeleteselenium training in navalur
Python training In Navalur
Wonderful post. Thank you for updating such an informative content.
ReplyDeleteBest Python Training Academy in Kanchipuram
I admire this article for the well-researched content and excellent wording which is about software development language. I got so involved in this material that I couldn’t stop reading. custom software development company
ReplyDeleteReally it was an awesome blog...very interesting to read..You have provided an nice information....Thanks for sharing..
ReplyDeleteBest Hardware & Networking Course Training Institute in kanchipuram|
Nice blog. Thank you for sharing. The information you shared is very effective for learners I have got some important suggestions from it.
ReplyDeleteNo:1 Hardware and Networking Training Academy in Kanchipuram
Thanks for your informative blog. Your post helped me to understand the future and career prospects. Keep on updating your blog with such awesome blog.No:1 Software Testing Training Academy in Kanchipuram
ReplyDeleteNice blog. Thank you for sharing. The information you shared is very effective for
ReplyDeletelearners I have got some important suggestions from it.
No:1 Azure Training Academy in
Kanchipuram
Very informative article, Which you have shared here about the programming language learning for software application development. After reading your article I got very much information and It is very useful for us. I am thankful to you for sharing this article here.
ReplyDeleteI found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
ReplyDeleteBest Python Project Center in Chennai
Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing.
ReplyDeleteNo:1 Dotnet Project Center in chennai
Great and useful article.Thanks for taking time to share this post
ReplyDeleteAndroid Project Center in Chennai
I have read your blog. Good and more informationuseful for me, Thanks for sharing
ReplyDeletethis information keep it up....
No.1 Python Project Center in Chennai
Thanks for your informative blog.Your post helped me to understand the future and career prospects. Keep on updating your blog with such awesome blog. Best Hardware and Networking Training institute In Chennai |
ReplyDeleteI wondered upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.Best Microsoft .Nets Training institute in Kanchipuram|
ReplyDeleteVery nice post here and thanks for it .I always like and such a super blog of these post.Excellent and very cool idea and great blog of different kinds of the valuable information's.
ReplyDeleteNo.1 Tally Training Institute In Chennai
Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge.
ReplyDeleteBest VLSI project center in kanchipuram
This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
ReplyDeleteBest Android project center in kanchipuram
This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
ReplyDeleteBest Android project center in chennai
Nice blog…. with lovely information. Really very useful article for us thanks for sharing such a wonderful blog. Keep updating…..
ReplyDeleteBest HTML Training institute in kanchipuram
The provided information’s are very useful to me.Thanks for sharing.Keep updating your blog.No:1 MBA project center in kanchipuram.
ReplyDeleteGood Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…
ReplyDeleteNo:1 CCNA cource in kanchipuram
This is really too useful and have more ideas from yours. keep sharing many techniques. eagerly waiting for your new blog and useful information. keep doing more.
ReplyDeleteBest Linux training Institute in kanchipuram
This is really too useful and have more ideas from yours. keep sharing many techniques. eagerly waiting for your new blog and useful information. keep doing more.
ReplyDeleteBest Linux training Institute in kanchipuram
Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…
ReplyDeleteBest Android training Institute in kanchipuram
This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
ReplyDeleteBest PCB training Institute in kanchipuram
This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
ReplyDeleteBest PCB training Institute in kanchipuram
This is excellent information. It is amazing and wonderful to visit your site.Thanks for
ReplyDeletesharing this information, this is useful to me…
Best Advanced .Net training
Institute in chennai