Approach To Learning Software Languages

Use this as a template for exploring new languages and getting the feet wet.

First Steps

  • Learn the "why" behind the language?
  • Pros and cons of the language?
  • What are the use cases?
  • How does benchmarking work for this particular langauges?
  • Testing frameworks for the language?
  • Popular web servers for the language?
  • How does documentation work?
  • How can you create packages?
  • Over-the-top "Hello, world!" using as many principles as possible for the language
    • Use types
    • If Object Orientated, use interfaces/abstract classes
    • If Protocol Orientated, use protocols
    • Use interfaces if available
    • Use over-the-top pointers if available
  • What are the nuances of the language?
  • How does package management work?
  • How does importing work?
  • How does logging work?
  • Find some articles that give you best tips and tricks for the language and the above questions

Understanding Through Programs

Not all need to be done (pending what the language is useful for), but here are some useful ideas to get familiar with packages and testing for real world uses:

  • Webserver that takes and returns JSON
  • CLI tool that parses the markdown for this file and can be used as a helper
  • A file reader/writer that parses common file types
  • Learning the "wtf" scenarios and gotchas with the languages
  • Finding out the best environments for each language (IDE etc)