Learning Code for the 21st Century and beyond
Please don’t be alarmed by some of the terminologies here. It's not meant to scare you away or minimize your understanding. It's here to set a baseline discussion.
The TLDR (Too Long Didn't Read) BLUF (Bottom Line Up Front) is that if you were ever in your life looking to get into coding or learning a new language in code. This small article is for you. This will help you cross the chasm from 0 to 1 in a short amount of time.
This is not my first attempt at learning code nor is coding something new to my vocabulary. I have been in and out of coding for over 3 decades dipping my toes in and out of things like normal command-line executions, batch file creation, C++ (and the many variants of C), python, basic, and many others. My first real taste of code came at the age of 5 watching my parents try their hand at computer programming. My dad was always into hobbies like rockets and ham radio. For him, it was normal to want to do something that was a little out of the ordinary. On many nights I would watch as he and my mom sat in front of a small television attached to a Timex Sinclair personal computer (with cassette tape drive and all) punching in lines of machine code from something like Byte magazine. In the back of the magazine they always had multiple pages of code you could run on your computer. At the end of multiple hours of typing, they would run some kind of compiler and magically there would be some dot that would show up on the screen and move across. This was ultimately simplistic by today's standards but quite impressive at the time. Later we would have multiple versions of the Atari home computer (the 400 or 800 or even the illustrious 800xl) and eventually x86 DOS machines. My uncle had an Amiga at some point. They were all closet nerds hooking their computers up to telephone lines and sending messages back and forth on BBS (Bulletin Boards).
Throughout these years I have been through enough classes and certification courses to essentially have a doctorate in computer science. Yet still today I hold no formal diploma or degree. I have learned how I am able to learn and instead sought out ways to improve over time all by myself, forgoing the luster of a certificate from some higher educational institution. What I have learned is that I am more of an audio/visual person who also learns through hands-on. The problem with learning code is that doing sometimes means setting up an environment on a computer such that you can emulate what the person trying to teach you is looking at. In my opinion, this is not an ideal situation as it assumes many things. It assumes you are running the same versions of different programs and tools. It assumes that you know how to use these tools in and out without outside help. Even as we are able to clone repositories from places like Github and Gitlab, we still have to have the right set of codebase in place in order to get started. Don't think that your shiny new M1 Mac will run the same code as your old Intel Mac. Windows will put things in a different directory structure and make it hard for you to find what you are looking for. If the instructor is running a Linux machine and teaching everything from bash, you will not see the same things on your end in Powershell.
Enter Scimba:
As I mentioned above I have taken some of the hardest technical classes ever taught (by some of the best instructors in the world) and I have yet to come across anything that actually makes learning not only easy but also entertaining and engaging. You don’t even have to be an uber-nerd to like learning when the curriculum and learning environment are properly configured. This was my journey in Scrimba. A free online learning platform that will bring you from total noob to skilled programmer in a matter of a few hours. They offer so many different courses and paths but all point to where our society is moving. A world where software determines the jobs of tomorrow. Maybe you have heard that in the past. It is still true today, but even more so for reasons I will get into at the end of this article.
Scrimba for the complete noob
Scrimba is a platform like no other. Let me set the stage a little. Most of us have worked in fast food in our earlier years. You go in for your first day and you are usually put in a tiny closet space with a tv. You are instructed to watch 4–6 hours of videos walking you through the operations of the job. How to prepare the line where all the food will be during your shift. Showing you all about “shop” safety (if you haven’t already learned enough in high school shop class). How to count the register and how to open and close the store. These videos are all great (as great as any Youtube video that shows you how to properly mount a shelf on the wall). The thing about Youtube videos is that you can actually go and do the thing while you watch. Maybe you watch one time through and then have the video next to you as you try to perform the task. Either way, you are learning as you are watching. Stopping the video along the way so you can catch up (or maybe take that long-needed snack break before getting into the next part of the video). Interactive learning — This is what Scrimba gives you.
I actually first encountered Scrimba a few years ago following one of their instructors Kevin Powell. He teaches mostly CSS and front-end web development. I have been a subscriber to his email list for a while now. Only recently did I realize that he was teaching on Scrimba. The platform itself is structured like this:
Completely free and completely online. The instructor records each section ( a couple of mins at a time ) and walks you through the code. The interface is set up so that you see: The code, terminal/console window, web interface (mini-browser), file tree with all the files for the project, and video controls for the instruction at a minimum. As the instructor is talking through the course material they are explaining everything step by step and actually showing you how they are coding things along the way. Here is where it gets really good. You know those times when you are watching a Youtube walkthrough of something and you pause the screen so you can try to copy what they are typing… in Scrimba you can pause and literally take over the cursor.
Yes, you can interact with everything you see on the learning platform. No holds barred. You want to pause the instructor because you think they are moving too slow and you already know the answer. Just pause the video, jump in the code and add what you need, run the code to see if you are right. After you feel fulfilled (and you have refilled your drinking vessel) you can just unpause. Everything you wrote will disappear (but it is stored in a note at the timestamp where you hit pause). Then the instructor will continue. For me, this was a revelation. I’ve never, in so many years of learning, seen anything quite like this. I've used all the platforms. The Udemy and the Codecamps, and anything else you can think of (I am a lifelong learner and always trying to find better ways to pour information into my brain) but never have I seen anything quite like Scrimba interface.
In a mere 7 hours worth of work hanging with Per, I plowed through a Javascript course that was really challenging. Here is why this is important. Learning is hard. Finding time is hard. Getting a few min away from the world after you have tucked the kids in bed is hard. This platform is easy and always on. My recommendation is, use it for however long you can every single day. I know everyone wants to have a cheat day where they can indulge in all the carbs and ice creamy goodness at Dave and Busters, but if you really want to be proficient at code, you have to put in the reps every single day. You will lose what you don't use. Even if it is simply practicing the almighty for loop…
for (var i = 0; i < variable; i++)
that is all you really need to do. Solve some problems each day. Here is my ultimate recommendation in a few easy steps:
- code daily no matter how short
- as you are coding write down the ideas that pop into your head
- try to think about these ideas and solve them with sudo code (simple representation of what the code will do)
- try to break this sudo code down into little pieces and pick a piece to work on
- try to solve real-world problems you have with code
- get engaged with the Scrimba discord community to help answer questions (at a minimum say GM)
- rinse
- repeat
Here are some tips to keep you engaged daily:
Grasshopper app (from google) — free
Mimo app — free
Both of these you can load on your phone if you want to code while waiting in line or sitting in heavy traffic. Little bite-sized nuggets to satisfy your coding hunger pains. Whatever apps or gadgets you can find to test your knowledge will be helpful. (would love to hear any suggestions you might have below in the comments)
The struggle is real
I'm not going to lie. I struggled a bit. I haven’t been so engaged with code for such a long time. The simple things were tripping me up here and there. I was forcing myself to write the code on my personal machine in VScode and also to deploy (in the case of React or even normal HTML) and push to Git repositories and share my code in public. But the community in Scrimba is like nothing else you have experienced. Discord can get a little overbearing. It's normal. But ask questions. Post what you are working on. There are people there day and night to help out or lend a shoulder for you to cry on momentarily. You won't be disappointed. And the accountability will keep you motivated. You will be struggling along with your peers (maybe even helping them in some cases). I actually quit on the first block of the Javascript course so that I could start the React course. Eventually, after a couple of weeks I came back and finished the Javascript. It's hard to task switch but it is even harder to avoid the shiny objects on the screen. Tackle one thing at a time. Take your time. Relax. Take little breaks in between. Watch a couple of Netflix shows before bed. Don't try to drive yourself crazy. But remember that daily engagement and practice is worth its weight in gold.
One last thing before I go
As we start to transition into the world of crypto and web3 there is this familiar smell in the air. That smell of grandmas cookies. The scent of your first date. Something recognizable, but at the same time different. I assume that you are reading this (and thank you for reading this far) because you are interesed in coding and development. At this current time in history, nothing has been so exciting for me as what is currently happening in the world of blockchain. You might even be tired of hearing about it at this point since it seems to be everywhere. This stage of blockchain is so very young and there are so many ways that web3 is going to impact all of our lives over the next 2–3–5–10 years. I think it will be faster than most anticipate. I have been watching it very closely. I smell the familiarity of web1.0 and web2.0. I see the blockchain domain names looking like the wild west of 1990 or 1995 or 1999. The difference is that this technology is not following Moore’s Law. It's moving much faster. At the time of this writing, we are essentially in Q3 of the NFT ramp-up. The underlying code that is seemingly gluing all of this together at the moment is Javascript (that's why I went back to revisit my old friend). There is so much going on in tech and finance at the moment, and it's hard to keep up with it. But I know that there are some big things on the horizon. If you ever had the inclination to get into computer science and coding, now is the time. We are going back to the future of technology and web3 is leading that charge alongside crypto and defi. As far as who is leading the teaching of the code. Leave that to Scrimba — to Per and his team. They are amazing and making some huge strides in education.
Thank you for taking time out of your day to read this. I hope you have enjoyed it. Let me know if there is anything else I could do to make this better.
Happy Coding
WAGMI!