A Remedy for Novice Coders Who Want To Get UnStuck

Anya Schechter
Nov 1 · 5 min read

I have been learning how to code for a year now, mostly on my own. Some days I feel like I’m really getting it. Other days, I’m lost. Completely lost. We just made the move from Ruby on Rails to Java Script at my Bootcamp. I’m having one of those completely lost moments. What to do when this happens? This blogpost shares some concrete tips.

First, try to understand why you’re getting stuck.

Javascript is a more abstract language. It is flexible. You can color outside of the lines with Javascript. With Ruby on Rails, it is clear what you can do and cannot do. This is very helpful for beginners and effective when you want to build certain things, such as a social network for posting content, very quickly. But with Javascript, you can build anything. And I still don’t get it!

This leads me back to try and understand, “What is code anyway?” Ask an average person this question and they have no idea. It is a language? Does that give instructions? To computers? I must say, I don’t really get it.

I started reading this book, The Information, by James Gleick, and it is explaining, step-by-step, what code is all about. It starts with understanding language. Chapter I literally starts with the language of drumming between different tribes in Africa and how indigenous cultures used to send signals by different smoke patterns. Think morse-code before wires and electrical pulses moving through them. And before there was morse-code we needed to have the alphabet, i.e. lots of symbols to signify different sounds, to make different words. And we needed electricity, pulsing first through big wires and eventually through tiny tiny transistors, sending messages. So code is just a bunch of yes’s & no’s, 0’s and 1’s. But then it gets organized into different languages that build structures on top of these 0’s and 1’s.

You could think of Javascript as being semi-structured and Ruby on Rails as being very-structured. Right? Where does this all come from?

The “History of Programming Languages” from Wikipedia:

During 1842–1843 Ada Lovelace translated the memoir of Italian mathematician Luigi Menabrea about Charles Babbage’s newest proposed machine: the Analytical Engine; she supplemented the memoir with notes that specified in detail a method for calculating Bernoulli numbers with the engine, recognized by some historians as the world’s first published computer program.[2]

The first computer codes were specialized for their applications: e.g., Alonzo Church was able to express the lambda calculus in a formulaic way and the Turing machine was an abstraction of the operation of a tape-marking machine.

To some people, some degree of expressive power and human-readability is required before the status of “programming language” is granted. Jacquard Looms and Charles Babbage’sDifference Engine both had simple, extremely limited languages for describing the actions that these machines should perform.

Okay! We’re onto something. This lady, Ada Lovelace, translated a book about Babbage’s proposed machine, the Analytical Engine. First things first, these two, Ada and Charles, were having an affair. And she had to explain the meaning of his machine that he supposedly invented? What was this “Analytical Engine?” Basically, the design of the first computer. It was meant to be powered by steam (let’s not even think about that!) and could do computations, like a calculator. Queue Wikipedia:

The Analytical Engine incorporated an arithmetic logic unit, control flow in the form of conditional branching and loops, and integrated memory, making it the first design for a general-purpose computer that could be described in modern terms as Turing-complete.[5][6] In other words, the logical structure of the Analytical Engine was essentially the same as that which has dominated computer design in the electronic era.[3]

The trial model of a part of the Analytical Engine, built by Babbage, as displayed at the Science Museum (London)

I’m going to restrain myself from going too far down the Wikipedia rabbit hole. But Loops! One of the first concepts that I ever started to get, sorta. What are the loops? Repetitive instructions. They allow you to do something many times over without needs to repeat yourself. What about these Turing-complete things? We haven’t learned that yet.

In computability theory, a system of data-manipulation rules (such as a computer’s instruction set, a programming language, or a cellular automaton) is said to be Turing complete or computationally universal if it can be used to simulate any Turing machine. This means that this system is able to recognize or decide other data-manipulation rule sets. Turing completeness is used as a way to express the power of such a data-manipulation rule set. Virtually all programming languages today are Turing complete. The concept is named after English mathematician and computer scientist Alan Turing.

Woah. So who is Turing? Here’s a quote from the book that inspired this whole post. Here is James Gleick writing about 1943:

“Can machines think? It was a question with a relatively brief and slightly odd tradition — odd because machines were so adamantly physical in themselves. Charles Babbage and Ada Lovelace lay near the beginning of this tradition, though they were all but forgotten, and now the trail led to Alan Turing, who did something really outlandish: thought up a machine with ideal powers in the mental realm and showed what it could not do. His machine never existed (except that now it exist everywhere). It was only a thought experiment.”

I don’t want to take away all the fun of your own Wiki-hole or reading The Information, but if you’re learning to code and getting a bit stuck it may be helpful to remember that coding was an incredible innovation. It took thousands of years to get to the point where we could write code.

It took language, electricity, logic, machines, and so many insights.

When we’re learning to build an app, push something to Github, or just use a command line, we’re relying on so many complex systems that we often don’t understand. So my advice, when you feel stuck, spend some time just learning about the history of coding, and this will help you remember that right now you’re just learning about a very very small piece of the universe that is computer engineering.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade