Getting Started with Programming
“Pulling the puzzles apart.” — Coldplay, “The Scientist”
Purpose
Today, programming is a tool used in practically every industry. Of course, this is because every industry probably uses computers for one purpose or another. Storing information and manipulating/managing it is probably something that comes up very often across various fields.
For example, to discover safe and effective drugs, it might be a good idea to modify the structure of existing drugs. Let’s say that programming was not used in this process; people would have to draw the molecules on paper and make a 3D model of some sort, like what those two fellows were doing at that Cambridge pub some years ago. However, a group of modern scientists would have to be a lot more intoxicated than the prior two to actually want to do that for the thousands of molecules in their library. I might not be entirely right about the process that would have to take place, but, fortunately, we can all forget about my daydream because computers exist!
The point is, if you can make computers do what you want, or even just an understanding of how you might be able to, you have a valuable skill that can be applied to many areas of interest.
When to Start
Everyone should know how coding works generally from a young age, and I believe that most people in the U.S. are exposed to the MIT block-programming language, Scratch, starting around primary school.
As a kid during indoor recesses in elementary school, I always found it incredibly frustrating that there were very few top-notch games on Scratch. The port of Street Fighter was just the part where the player has to destroy the car, which didn’t actually work correctly. I would assume that the reason is only kids use Scratch and people with more experience do not think of developing a game using the block-programming language.
However, my focus is on when people actually get into type-based coding languages—which is around middle school or high school, depending on personal interests. This isn’t too late but it isn’t ideal, considering that high school is a lot more work than middle school.
Practicing Logic and Syntax
I’m not going to disregard the importance of clear thinking and learning + applying logic to programming, but a big problem is that students don’t actually remember how to type syntax when they do have an idea of how to solve a problem. This is based on Dopa’s attention theory (as described in (this video)[https://www.youtube.com/watch?v=GEyeAedn1f8&ab_channel=DongHuaP]), which claims that people only have a certain quantity of mental energy they can assign to certain tasks and that it is crucial to delegate these attention points correctly.
For example, when one of my classmates required my assistance on a programming project (happens a lot), I tried to get him to understand the logic first. Assuming that he begins with 100 attention points, he will expend, let’s say, 60 points on just the logic. Afterward, he only has half of his attention points to remember + type out syntax and put his ideas into motion.
So, what really ends up happening is he just forgets how to write a for-loop or an if-statement and I have to teach it again. Furthermore, it is way more tedious as a teacher to explain a syntax error than a logic error (pointing to whatever line etc). So, it should be the learner’s job to just open up a text file and type the code over and over every day until they can type it in their sleep.
Course of Action
People often worry about learning the wrong first language but it doesn’t really matter. An experienced programmer can pick up new languages very quickly once the concepts are understood. However, if you really do want my opinion, I have a basic and general course of action.
- Learn how a (flowchart)[https://en.wikipedia.org/wiki/Flowchart] works.
- Apply flowcharts to household appliances like microwaves, fridges, etc. An example for microwaves would be waiting for a time to be input, next waiting for the confirm button to be pressed, then heating the food, etc.
- Learn C/C++, Java, and Python in any order you like, but I listed them in order from hardest to easiest. Of course, the ordering doesn’t really matter so if you want to start with Python because a lot of cool things are done in Python, there is no one stopping you. These are the top four programming languages currently, and learning all of them is not a bad idea. During a recent hackathon, I realized that my team did not really have a programming language in common which is basically a Genesis 11:1–9 situation.
- For every program you write, create a flowchart for it beforehand.
- Do not be afraid to draw out ideas on paper.
Again, the order in which you learn programming languages does not really matter but understanding at least one is very important.
Also, please do additional research before committing to your course of action.
Leave a comment