Are You a Computer Scientist or a Code Monkey?
Learn how to transform from a code monkey into a computer scientist without spending $50,000+ and years at a University.
Quick Jump: Code Monkey Video From 2007 | Some of My Students Are Code Monkeys (But It's Ok) | The Unknown Is the Scariest Thing in the World and Can Cloud Your Judgment | What's the Worst That Can Happen?
Scientists are people who use research and experiments to learn more about something in specific.
Remember the Scientific Method?
- Make an observation
- Think of interesting questions
- Formulate a hypothesis
- Develop testable predictions
- Gather data to test predictions
- Develop general theories and repeat
The key take away here is that a scientist constantly experiments and draws conclusions based on facts and the data they acquire in their tests.
Why is it that a lot of people nowadays perform step 0 first?
- Directly ask for help without trying
About 10 years ago there was this great video on being a code monkey. If you haven’t seen it already I recommend watching it before reading on:
Code Monkey Video From 2007
There’s no official definition of what a code monkey is, but my take on it is there’s this guy with a dead end job who is constantly pressured by his boss.
The work he does is unfulfilling and his skill set is very weak. I’m making an assumption on the last part because if he was an expert in his field, he would be working at a better place or off on his own raking in cash hand over fist while getting all the chicks.
He’s the type of dude who comes across a problem and immediately asks for help without trying to even troubleshoot the issue. He’s the type of person who can bring down an entire team’s productivity because he’ll relentlessly ask questions to the scientists.
Overall, he’s a really nice guy and you almost tear up for him because while he’s toxic in the work environment, he’ll buy you drinks and let you crash on his couch for a week during hard times. He’s really nice on the inside and would take a bullet for you.
Easily Remove the Monkey Out of the Code Monkey
I get that everyone has different personalities and that’s great. There’s going to be nice people and total jerk faces. I’m not saying you need to change your personality to be a warm hearted individual but you can pretty easily become less of a code monkey.
The great part about it is, it won’t cost you 4-8 years at an expensive University, or dropping $10,000+ on a programming bootcamp (which will probably turn you into a code monkey btw).
All you have to do is practice using your brain, and that’s free.
Some of My Students Are Code Monkeys (But It’s Ok)
It’s ok because some of my courses are meant for beginners and if a student just graduated University or has been trying to learn on their own, they don’t really know any better.
It would be impossible to do otherwise from the start and I totally get that. I was (and sometimes still is!) a code monkey.
It’s been about a year since I released my first online course and since then I’ve released 3 more courses and I’m really close to hitting the 10,000 student mark across all platforms.
Spoiler alert: My next course will be a complete remake of the Docker for DevOps course to bring it up to date and bump up the production quality. It will be much more than just a re-recording of the old version.
Anyways, I’ve learned so much since last year and I will be posting about all of that in other articles, but one of the biggest things I noticed was how reluctant some people are to try things out on their own.
All of my courses include a short lecture early on that explains how students can report issues on the private course forums but more importantly, they should check their code for obvious mistakes, then hit up Google and report an issue as a last resort.
I do this because I want my students to finish my course with skill sets they can apply in the real world. I won’t be able to answer their work related questions in near real time outside of the course.
This isn’t because I’m lazy. After 20 years of learning and programming I noticed much of the learning process comes from overcoming problems on your own.
Common Issues From Students Were Surprising
It seems that lecture wasn’t enough because 95% of the issues that get reported are students running into the slightest amount of resistance and giving up, where giving up is to immediately post their issue – often not even searching for similar issues first.
Out of ~400 issue reports, I can only think of a handful of issues that were really tricky due to a student’s workstation being set up in a way that I could never have accounted for in my beta tests, or they deviated slightly from the material and installed something newer that has bugs.
Most of the time I read the issue and then immediately answer it because it’s something silly like they have Postgres installed on their workstation before taking my course and when they run the application through Docker, they get a port conflict when the Postgres container starts up.
If those students took the error message and pasted it into Google they would have found out the cause of the error and a fix for it in about 10 seconds. Often times students didn’t even realize they had Postgres running on their machine full time and definitely didn’t know the port number.
The goal of this article isn’t to make fun of my students for forgetting to run commands (the most popular issue type) or not knowing they have Postgres installed. It’s to show you that sometimes you need to just experiment with things on your own because the learning process is more important than the result.
P.S., if you are one of my students, don’t purposely avoid asking questions. If the same questions get asked over and over, then it’s most definitely a mistake on my part for not being clear enough.
The Unknown Is the Scariest Thing in the World and Can Cloud Your Judgment
I get why a lot of people ask first before trying things out on their own because I found myself doing similar things in a different part of my life. A part of my life that I wasn’t an expert in.
Without getting into too many details, I recently underwent phase 1 of non-trivial surgery. I was never more nervous in my entire life. Nothing else came close.
Now, I spent a lot of time Googling things (protip: never do this with medical issues) but when something looked weird or questionable to me and I couldn’t find an answer on Google I texted my point of contact at the surgical facility (with her permission) pretty quickly.
I just looked at my phone and between both of us, we had 206 conversations. First off, a lot of it wasn’t directly related to questions I asked about the surgery, but at least 50 of them were over the span of about a month.
It dawned on me that I was asking her things that may have been super standard from her point of view because she’s seen this thing a million times but from my point of view it was literally the scariest thing on Earth because I had no idea what to expect or do.
I did it without even thinking and after I healed up, it immediately made me think about students asking me questions without trying things out on their own first. When the unknown rears its ugly head, it can make you second guess everything.
It was funny because I later talked to the surgeon in a follow up visit and offered to condense all of our conversations into a proper FAQ just to alleviate concerns that other patients may have had because that’s the type of guy I am (deep down I am part code monkey). He politely said no it’s ok and then told me:
Nick, there's a spectrum when it comes to how aware people are with what's going on in their body. On one side, you have people mowing their lawn after invasive surgery and on the other side you have people following the instructions to a T.
He told me that while drawing the 2 ends of the spectrum in the air with his hands, and then he pointed to where I was, which was WAY off the spectrum on the side of caution. He literally told me to stop babying everything and that things are going great.
I couldn’t help but laugh because that’s totally me. I’m the type of person who wakes up and wonders if his left ventricle is operating at maximum efficiency today.
Ok, it’s not really that bad but my point is, when the unknown is at play people can become afraid to do anything. Don’t let that paralyze you. It sounds corny but just trust your gut, it’s probably right.
In the case of software development you’re often not making life or death decisions. Just make a decision and try it on your own. That’s the first step of becoming less of a code monkey and more of a scientist.
What’s the Worst That Can Happen?
Eventually I’m going to tell the tale of how I started programming in another post but let’s just say back then Youtube and Google didn’t exist.
I routinely dove into a language’s documentation and just played around with stuff until it worked. You’d be surprised at how far you can get by taking action and trying something out. Experiment and test.
If you’re thinking about trying out a new language or web framework then just install it and start playing with it instead of researching videos and blog posts for 15 hours first because you’re truly not going to know if you like it until you start using it.
Save the deep research until after you’ve validated your hypothesis that you want to use that technology.
If you’re the type of person who jumps on IRC or posts questions on message boards, try making that your absolute last resort. Try tinkering with it on your own and then hit up Google when you’re truly stuck. Then, if all else fails and you’ve exhausted every last ounce of your ability, directly ask for third party help.
I promise you, you’ll be a much stronger programmer in the end.
Strive to be a problem solving machine. Not a code monkey.