Tricks to learning Software Development
By: Jon Vogel
Tags: Learning To Code, Tips, Beginner, Education, Software Development

Create a feedback loop

Your goal is to maximize your time and condition your mind. Your most finite resource will be put to the best use if you can see it working or more importantly, failing.

There are two stages of the feedback loop. First you want to get to the point where you are able to view a valid error message about your code while trying to run it. It doesn’t matter if you are learning your first language or your 11th you will have to be able to copy and paste errors into google. This is “fail fast” in its most pure form.

Second, once you have a compiling and running project you need to be able to see the changes you make in code reflect in your UI or terminal output. As you write code you need to be able to make the connection between your changes and how it affected the program. This will inevitably lead you back to the first stage of the feedback loop where you break your code and are working on errors.

The feedback loop is simply like exercising. Your mind will become proficiently conditioned to preemptively recognizing details and patterns that make a piece of code work. If you can reframe the frustration a lot of new programmers feel and focus on the “process” you will start to notice two things. You will make fewer mistakes and you will start to solve problems in your head before even writing code. It’s truly “Muscle Memory”

Every programmer knows the punctuating joy of seeing something work, especially a problem you have spent considerable time on.

Find a tutorial or search results that work for you

Getting down and dirty with your feedback loops is the most important step to learning. It’s the glue between rote, understanding, application and correlation of the learning process.

The internet has commoditized information. It’s at your fingertips and that can be overwhelming. Fortunately, the variety will help you discover an instructor or writing style that works for you. Yes, you might end up wasting 12.99$ on a Udemy course that never gains traction with you. However, your time will be maximized.

Similarly, after you google an error in your code you are presented with a host of search results. It’s important to be able to identify which links might be the best use of your time. Maybe a blog you trust continually pops up. Stackoverflow links are usually a sure bet. However, if you don’t find what you are looking for that might be a good indication that your search was off. The ability to “sense” when you might not be looking for the right thing will get you back to your feedback loop faster.

Never copy and paste

Whether it’s starter code for an assignment or a tantalizing code snippet you found online you should always just type it out. Not only is copy and paste a bad habit that will surely get you in trouble down the road but as a beginner you need muscle memory. On my Mac my favorite trick is to turn two windows into a split screen by holding the green expand and collapse button on one window.

Finally, even if the code was not your own typing it out will build confidence. It’s a simple mechanical act which I have found will contribute to your mental edge.

Abandon your tutorial and go play

An earlier point stated that you should not settle for a tutorial that is not resonating with you. Even when you find the instructor you like when the urge to go play strikes you prioritize that.

Google answers sooner than later.

Programming ends up being an endless journey of information, frusteration, and joy. If you enjoy and have the time to spend solving problems like Linked Lists, Graphs, or Bit manipulation with out consulting the internet then by all means do so. However, the reality is that most of us were here to get a better job. Take it from me. Just Google the answer. There is no shame in not “solving” the problem yourself. Great solutions to problems like E = MC² should be things you marvel at not spend a lifetime trying to prove to yourself you also could have come up with that. Stand on the shoulders of giants and put yourself in a position to contribute to the advancement of software by just looking the answer up, if it exists.

Remember some rules

Finally, you can find “senior developer” wisdome all over the internet. Here is a summary of what I have found to be most true.

Strive for clear, simple and digestable code. Break things into the smallest chunks possible. Comment your code. Links, reasoning, dry documentation and even humor are all very acceptable. Clear inputs and outputs will not only make your code more readable but also more testable.

4. You are the problem solver and computers are your tool

5. Finally, ignore imposter syndrome. Programming, like any career has ups and downs. Just keep learning and growing.