After unsuccessfully attempting (yet again) to navigate the deluge of online options for learning code, I decided that I may not be starting in the right place. Realizing this, I started to make some qualifying assessments.
I first determined whether or not I am smart enough to learn code. Maybe, something was simply getting lost in translation because I am actually an idiot. I am not too proud to admit I might be too dumb to learn something. So, I took an IQ test.
My IQ stands resolutely the same as it was when I was 12, high enough that, raw materials-wise, I should be able to learn this stuff. So, what else could be stopping me?
Next step was to define some underlying assumptions in my endeavors for learning. Beginning for beginners. Beginners for Dummies.
Thankfully, asking and answering questions about myself happens to be one of my more refined skills.
What Do I Need in Order to Learn?
Turns out, just three things. Seems reasonable.
1) It is impossible to remember everything. Thus, an external memory of some form or another must be provided or generated. This can be a book, many articles/documents, my own notes, or something, as long as it is a referable, but editable, text. Perk: CTRL-F.
2) Making connections to pre-existing information is essential to converting data from short term to long term memory. This means I need an example or a reference point in order to assimilate the new information into a schema. If I cannot relate to the subject, it will simply fade away from my mind within a few short days.
3) Making connections is only useful if I have the ability to prove my connections correct. This means I need a person, who I trust and respect, to talk to about the subject. I am an interactive learner and come to my best conclusions while talking about them. If I cannot talk to someone knowledgeable and openly, the when I encounter a question, I am likely to be stuck for good. I may see the train tracks continue on in the distance, but if there is something blocking the way, I will simply stop for lack of clarity.
Why Don’t I Understand Code?
Simply put, I do not agree with the way computers work. I do not agree with the way code works. I think that we are beyond this type of rudimentary processing, and I feel I am being made to do busy work in order to prove to *someone* that I am smart enough to code. It feels horribly obfuscated and pointless.
I do understand how technology works on a basic level. It was my major in college, after all. But I need to understand more about why computers were designed the way they were. Surely, there are better ways to communicate with machines than to learn to speak their language. Why are they not adapting to the way we see and learn in reality?
Why are there so many levels of abstraction keeping us from our goals? I will admit, it shouldn’t be exactly natural to speak to a computer, but I naturally interact with computers every day and have not seen the level of abstraction in my tasks slow my cognitive ability to bend the computer to my will.
And why, for the love of Turing, why, when I have so many better options, would I EVER try to parse data through code with a terminal based UI? Who does it benefit to sort data without a visual component? The computer? Why are we catering to the computer?! I thought the point of computers long term was for them to cater to us. This needs to be explained to me. I have yet to find a satisfactory answer.
What Do I Need to Learn Code?
Well, for starters, I would like a satisfactory answer to the question above. There must be one, or so many people would simply not put up with coding in the abyss the way they do.
I would also like reassurance that code is not just banal busy work to “weed out” those of who aren’t hard workers. And I suppose, I would love some assurance that code itself is not going to be relegated to burger flipper status the second I learn it.
Other people – store clerks, burger flippers, software engineers, the whole vocabulary of meaningless jobs that make up Life in America – other people just rely on plain old competition. Better flip your burgers or debug your subroutines faster than your high school classmate two blocks down the strip is flipping or debugging, because we’re in competition with those guys, and people notice these things. What a fucking rat race that is.” – Neal Stephenson, Snow Crash
A Path to Action:
I need a path to action by which I can see tangible feedback as to what I am learning and why. This feedback is not completing modules online. I need the equivalent of being able to see the crops grow or the bricks being laid. I am an animal. A world without feedback and visual cues is a nothingness void of useless, aimless, crawling in the dark.
Any good path must be a path somewhere. This means there must also be a goal. What I may learn is unimportant if I don’t know why I am learning it. This is the moving piece that I get to define for myself. However, it does hinge on the rest of these issues being thoroughly addressed and conquered, and I am fast losing hope that they will be.
Why is code such an occult. Why must I be initiated. It is the foundation of our world. Without this literacy, we are all less valuable than we could be.
If you like what you read, feel free to share. Basic Rules: Be civil. We are all people and deserve respect. That’s a hard and fast rule, by the way, it is not optional. Other than that, anything goes.