With the target of “learn programming language concepts”, if you follow these steps, you will learn efficiently:
#1 Understand this language’s design philosophy and general language features
For example, if you begin to learn Ruby, let’s find what’s special for Ruby firstly.
Figure 8: source: www.ruby-lang.org
Hmm, let’s dig deeper: http://www.ruby-lang.org/en/about/
Try to summarize the main features you need to understand before you start to learn it:
- Focus on simplicity and productivity, code is easy to read
- With an interpreter. So you have GC, which means performance may be a problem for some tasks.
- Everything is an Object, it’s a language with OOP, and even “pure OOP”.
- Flexibility. We even can redefine many parts of the language.
Knowing the most important features of the language, including its benefits and drawbacks. This will help you much when you start coding in this new language, it serves as a road-map for you.
#2 Learn syntax and practices with tutorials or books
You need to master the fundamental parts of a language, including the syntax, basic IO, the debugging tools, the unit test tools, etc.
If you are a newbie, try to find authoritative books about it. Like the books written by the language creators, or search on Amazon with language names to find the books with great review ratings.
Remember you’d better write code by yourself when you are not a guru, don’t just copy code. Practice the new language with exercism.io, there are mentors to review your code and give you suggestions for free, it’s wonderful.
If you are a language guru, just find some simple guides for this language or even some sample code in this language. Take a look at learnxinyminutes.com.
#3 Read and write more code with the new language
It’s time to start a project with the new language, with the knowledge of related ecosystems, tools or libraries. You could start with a simple one, like a game of guessing the number or a simple book store or to-do apps. There will be many similar projects for starters on Github.
#4 Understand more details of language implementation
This is not necessary for every language. As I said in To Be a Programmer, an aspiring programmer will be interested in the details and implementation of their languages. And sometimes, bug even comes out because we don’t have good knowledge of language implementation.
- Can sociopaths be hypnotized
- Is prostitution legal in goa
- How PayPal adaptive chained payment works
- What should every human being know?no_redirect=1
- What was Aretha Franklins most successful song
- What percentage of men masturbate
- How would a Trump presidency affect Israel
- Which is more elastic air or water
- Do you believe in learning by experiences
- Can healthcare workers use CBD
- What did Avicii die of?no_redirect=1
- What is the capacity of nuclear power
- Why we should go to temple
- What the most beneficial kind of chocolate
- Is linguistics tough to study
- How does a molecule reflect light
- Why did Hummer go bankrupt?no_redirect=1
- What is the concept of weightlessness
- Where did black magic and voodooism originate