I built my first site nearly 20 years ago and even then I was able to source quite a lot of information online.
Even though most of my learning was a combination of reading IDE manuals (QBasic), downloading manuals and guides on a floppy disk from Internet cafes, and reprinting original books in multiple copies since these were extremely rare to find.
Some engineers here have been coding for 40 years and faced a far more conservative ecosystem while still being able to produce code decades later.
Studying programming now is a no-brainer. Between YouTube and Udemy tutorials, Coursera and FreeCodeCamp training programs, tons of Kindle books, GitHub, and gazillions of bootcamps and private training academies, students can access everything needed at their fingertips. I recalled how learning coding was like before in a video I posted on Linkedin.
Self-Taught Computer Programmers vs Computer Science Graduates
It’s NOT about the skills.
- It’s about the background.
- The foundational knowledge.
- The conceptualized overview of computer science (and its corresponding areas).
Self-taught computer programmers can learn everything graduates have learned. But for the most part, they haven’t put the time and effort to do it.
There are tons of universities teaching Computer Science with transparent/public curriculums online, often sharing presentation/slides or recommended reads, too. But I hardly doubt more than 2% of all self-taught programmers have considered going through this process.
That’s not to say that universities have covered everything you need to know.
It’s more about having a common pattern or strategy for solving well-known types of problems, just like design patterns. And a group of people with CS degrees will likely communicate easily, without having to refer to manuals or explain concepts like design patterns, regular expressions, the Big O notation, binary search trees, or anything like it.
You can look it up online, but it may get trickier if it happens all the time.
It’s what everyone says about development — you don’t have to memorize every class or function out there, but if you have to look it up every single time then you’re as good as a freshman.
But, Does Practicing Coding Questions Online Help?
The only time I ever bothered about coding questions were on my university and certification exams.
Online exams are about memorizing syntax curiosities, specific function names, and hardcoded limits. In practice, you really don’t need to be able to quote the entire manual of a programming language back-to-back while building a software application.
Programming is about solving business problems through algorithms. Nothing less, nothing more. Efficient and elegant development add to that by introducing conventions, design patterns, optimal data structures, and algorithms.
And programming is a piece of the puzzle from the entire technical stack. Think about your computer architecture and the installed operating system. The network layer as well. And all utilities, servers, tools, libraries, daemons running atop. While the raw theory doesn’t make a lot of sense in class, it’s paramount when building real-world applications.