Another question came up during a recent Twitch stream that I wanted to elaborate on.
How to get the basics down?
I elaborated in the video, check it out too.
- Get a physical book to have an order to learning a language. If not a book, at least a set course of material to step through a little bit at a time. Then take a small part of the book and work through what it shows, but elaborate yourself on it. An example: Cover the first chapter on a new language, learn the data types and then actually sit down and write out some code and get them to print out, take some input that is converted form one type to another, and other exercises. Make them up yourself. This ingrains the specifics in one's mind to be able to quickly write them out in the future while you're coding.
- As I stated in the video, along with other details (watch the video for the details) write something that will import and data and export data from text files. Change the format of the data being written and read in those text files. Then do it again with something else, switching back and forth between something like XML, JSON, or some other format. This will familiarize one with data manipulations that are so often needed but also just the syntax and control structures of a language.
- Choose a library or two to pull in as a dependency and work with that library. An example might be a library that generates random data. Or another example might be a library that simplifies HTTP verb actions or routes for URL's. There are many out there for any language and its respective stack. This helps increase familiarity with available libraries, but also how they're structured and how you might structure libraries. In addition, you'll get a better understanding of the dependency requirements of any particular language stack.
- Choose some of the intricate parts or features of a particular language you're working with and try it out. But don't stop there, elaborate on the particular example you build. For example, try out C#'s anonymous function and see what you can do with them. How do they or don't they connect to an object? In Go you might try out Go Routines and get familiar with communication between routines. C++ you may try out pointers and try to come up with some tricky ways to do things with pointers.
- Choose a domain and find data about it, and then display that data either to standard out or some other way. Maybe display that data on a web page. But find something you're interested in, or might be interested in, gather some data around it and import that data into a database or into the application you're building itself and parse it, print it out, and work through variations on doing this.