Learn to code (or do anything): top down, bottom up and other approaches

A great example of top down learning applied to programming would be a situation where a new developer was given a project they needed to complete using an unfamiliar language or toolset..Instead of relying on a progression of mastery of isolated components, a top down approach instead lets the learner understand the individual parts by exploring and experimenting.Advantages of top downA top down approach to learning is particularly advantageous for some programming students because getting a chance to see how everything is working together is exciting..Personally, my interest in programming was sparked and maintained by resources that let me implement my own complete, (mostly) working projects..Initially this was messing around with making command line quizzes and adding functionality to games via scripts, but the common denominator here is that I probably wouldn’t have even bothered if the only way to learn was one step at a time..Besides providing an incentive to learn, a top down approach is practical..For many learners, the goal is to learn only what’s necessary to understand or implement a very specific concept..In this situation, a bottom up process would be overkill, and possibly even a waste of time.Disadvantages of top downTop down learning also comes with disadvantages..Generally, top down learning leaves the details to the student, which many times can result in a patchy understanding of a concept..Learners may grasp enough to just “get it to work”, with no motivation or clear path to understanding how the foundational components are working together..When I was writing my first command line quizzes, I had no understanding of the differences between primitive values like Strings and Numbers, so I was quite perplexed when statements like 1 + "1" resulted in 11.Although both the top down and bottom up approaches have their own merits, I believe that like many things, a simple dichotomy doesn’t represent all of the viable options..It’s a little cliché to say, but I really do think the best approach lies somewhere in the middle.In my experience, there are two types of situations that almost never work out when trying to learn a new programming concept:Some of you have probably already been here..You get excited to learn about the latest and greatest in Single Page Apps/Machine Learning/Augmented Reality/Blockchain Game Development, so you dive right in to a 32-part YouTube series on how to build your own.. More details

Leave a Reply