🤔 Learn Programming in 21 days!
These days when you open YouTube you see endless videos offering you to teach C, SQL, Ruby, Python, JavaScript, Algorithms etc and so on in few hours. Also, when you open Amazon or walk into any bookstore, and you’ll see how to Teach yourself Java in 24 hours or so and so languages in a few days or hours.
The conclusion is that either people are in a big rush to learn about programming, or that programming is somehow fabulously easier to learn than anything else.
So is it really possible to learn programming in 21 days or in a month ?
Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies. But becoming a good programmer requires experience which only comes with time and practice. So, the answer is NO!
Here is why you can’t learn programming in 24 hours or in 21 days. Say you are learning C++.
- In 24 hours you won’t have time to write several significant programs, and learn from your successes and failures with them. You won’t have time to work with an experienced programmer and understand what it is like to live in a C++ environment. In short, you won’t have time to learn much. So the book can only be talking about a superficial familiarity, not a deep understanding. As Alexander Pope said,
a little learning is a dangerous thing.
- In 24 hours you might be able to learn some of the syntax of C++ (if you already know another language), but you couldn’t learn much about how to use the language.
- In short, if you were, say, a Basic programmer, you could learn to write programs in the style of Basic using C++ syntax, but you couldn’t learn what C++ is actually good (and bad) for. So what’s the point?
- One point can be you need to perform a specific task using an existing tool to accomplish a specific task. For that you need to learn a tiny bit of C++ or any other language to perform that task. That maybe possible in 24 hours. But then you’re not learning how to program; you’re learning to accomplish that task.
✅ So You Want to be a Programmer. Here’s my recipe for programming success:
Get interested in programming
Get interested in programming and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in your ten years/10,000 hours. Until unless it is fun and enjoyable, you can’t continue it for long.
Remember: good programmer is a Learner, Thinker, Questioner, Explorer!
Write code
The best kind of learning is learning by doing. Document the concepts and also your mistakes as you learn programming. As you learn the concepts try to see how it can be applied in a real world project and build something. Programming is a practical skill. So, there is no point learning programming if you don’t build anything with your programming skill.
Try to build something which requires a bit high skill that your current abilities. Once you are able to build it, then aim for a bit higher level. And continue this. This way you will be able to improve your programming skill. And this is not only applicable for the newbies but experienced individuals should also practice to improve their programming skills.
Talk with other programmers; read other programs.
This is more important than any book or training course. You can join attend local programming events, join online or local communities.
Put fours years at college if you can
If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don’t enjoy school, you can (with some dedication) get similar experience on your own or on the job. In any case, book learning alone won’t be enough. Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter says Eric Raymond, author of The New Hacker’s Dictionary.
One of the best programmers I ever hired had only a High School degree; he’s produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub.
Work on projects with other programmers.
Be the best programmer on some projects; be the worst on some others. When you’re the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you’re the worst, you learn what the masters do, and you learn what they don’t like to do (because they make you do it for them).
Work on projects after other programmers.
Understand a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain them after you. Learn how other programmer has approached a problem.
Glancing through open source projects is a good way to read other people’s code and learn new tips and techniques.
Learn at least a half dozen programming languages.
Include one language that emphasises class abstractions (like Java or C++), one that emphasises functional abstraction (like Lisp or ML or Haskell), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), and one that emphasises parallelism (like Clojure or Go). If you don’t like a programming language then don’t blame programming, instead explore other programming language. You never know when you find the programming language of your choice.
This will help you to explore set of programming languages, each with distinct features and paradigms, catering to various programming styles and problem-solving approaches.
Remember that there is a “computer” in “computer science”.
Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk.
Be curious to know how things work at low level.
Assign a career mentor
Assign a career mentor to be responsible for the development of the prospect and carefully keep a career file. The mentor can guide you what to do and what not to.
Conclusion
Anton Ego, says: Not everyone can become a great artist, but a great artist can come from anywhere.
So go ahead and buy that Java/Ruby/Javascript/PHP book; you’ll probably get some use out of it. But you won’t change your life, or your real overall expertise as a programmer in 24 hours or 21 days. How about working hard to continually improve over 24 months? Well, now you’re starting to get somewhere…