Bài này viết trào phúng, muốn học lập trình thì cần đọc ngược lại, như đoạn kết của bài nói.
Learn to code, the hard way
These quick tricks will make learning to code as difficult and unrewarding as possible! *
Warning: contains satire…
1. Pick a really difficult language
Make sure to choose a difficult programming language. This will really set back your learn-to-code journey before it’s even started.
Don’t take any chances here. You may have heard some folks say that C++ or Java are challenging for beginners. But, even these can be mastered with a little extra patience and perseverance.
Perhaps you could pick up an old-fashioned language, like COBOL or PL/I. Or how about something really low level like assembly, or even machine code?
For a certain bet, why not try an esoteric language like Malbolge or Befunge or INTERCAL? Starting out with one of these languages will set you back several years already. Plus, their lack of job prospects will thoroughly demotivate you.
Whatever you do, don’t pick a modern, accessible and universally used language like JavaScript or Python or Ruby.
They might be in great demand and have countless free learning resources out there on the web. They may have large, supportive communities of fellow learners.
But where’s the struggle in all that?
2. Set up a nightmare coding environment
You may have heard of various text editors and IDEs (integrated development environments) that can be downloaded or trialled for free. Examples include Sublime, Atom, VSCode, IntelliJ,… and many more besides.
Some people argue these can make writing code much more convenient and productive. Ignore these people.
Sure… autocompletion, syntax highlighting, code-linting, and access to all kinds of extension packages all sound like they’ll make coding easier. But the reality is completely different. No one who really knows how to write software needs to use them.
The fact that these editors and IDEs are widely used throughout industry by pros and experienced developers is irrelevant. It must be some kind of massive conspiracy, funded by Big Tech™ no doubt.
Terminal-based editors, like Vim or Emacs, are often cited as difficult to learn. However, even these can be learned with practice.
For a more challenging development environment, try Windows Notepad. Even better, turn your keyboard upside down and unplug your monitor.
Or, maybe you prefer this setup:
3. Tackle major projects early on
If you’re serious about learning to code, then everyone knows you should make world record progress.
After all, you should be able to build a realtime, distributed video and movie streaming platform within the first week, add an AI powered recommendation system after week two, and launch a zeitgeist-shifting, multi-billion dollar valued tech company within a month or so. Give or take a few days for hiring and firing.
And anyway, it’s not like there are many examples of beginner-friendly, step-by-step learning projects out there. Nor is it as easy as it has ever been to start contributing to popular, open-source projects.
So definitely don’t bother with that.
4. Never, ever ask for help
Despite its common, everyday meaning, in software development the word “beginner” actually refers to someone born with many years worth of experience and programming knowledge.
This is why real programmers never need to ask for help.
Plus, being new to something is a classic sign of weakness.
You don’t want to look weak, so don’t go asking for help when you think you might need it. Why make progress when you can learn the hard way?
Q&A websites such as StackOverflow may seem full of developers of all experience levels answering each other’s questions. But what do they actually know?
Admittedly, many of them are software pros with expert knowledge they want to share with programmers at all stages. But they’re absolutely not helping out real programmers… whatever that actually means.
5. Take frequent six month breaks
You know what’s harder than learning to code?
It’s learning to code in two hour bursts, with six month breaks in between sessions.
Everyone knows the key to succeeding in any pursuit is inconsistency. Some people claim that practicing “little and often” is the best way to learn a new skill. These are usually the same people who say even 20 minutes a day can make a difference. They are wrong on both counts.
A long, six month break is the perfect amount of time to completely forget what you learned previously. If you can’t manage six months, then aim for at least three or four.
Just don’t get into a regular habit of making learning part of your normal routine. Routine tasks include brushing your teeth, tying your shoes, and flushing the toilet.
No one ever got good at these things by doing them every single day.
6. Don’t read around the topic
It’s a well known drawback of the Internet Age — there simply aren’t enough things to read, watch, and listen to online.
Perhaps you’ve heard of these so-called ‘blogs’, ‘online publications’, ‘news websites’, ‘podcasts’ and ‘video tutorials’. The bad news is, I have checked and can confirm they simply don’t exist.
Besides, does anyone seriously believe that reading around a topic helps you develop a broader understanding? Or that chance articles can spark your interest in directions you may never have considered otherwise?
And even if these mythical resources did exist, who’s to say they’d be high-quality, written by experts, and very often entirely free?
Perhaps you’re tempted to visit a bookstore or a library instead?
Well, bad news again. No one prints physical books anymore, because no one reads them. The Internet killed them off. Or did it?
7. Avoid interacting with more experienced programmers
The number one rule of learning anything is “stay clear of experts”.
This is because most experts have short memories, and cannot remember what it was like when they were just starting out. It’s not their fault. Their brains are just too full of stuff you don’t know.
Experience is overrated anyhow… right? Right.
Many folks say pair programming is a great way of learning tricks and tips from more experienced developers. In reality, you’re more likely to pick up their bad habits/poor posture/cynical worldview.
Also, think back to the last time someone looked up to you enough to ask your advice on something they cared about. Remember how awful it made you feel?
So, do you really think experienced developers like talking about what they do? Of course not. They resent people who ask all the same questions they had when they started out.
8. Stay away from internships and job applications
Lastly, be sure to avoid Googling for internships and entry-level developer jobs in your area.
Certainly don’t apply for anything until you’ve authored the code used for a successful moon-landing, and can land a handwritten joint reference from Bill Gates and Tim Cook. Even then, think twice.
OK, so internships can provide real world experience of working in software as part of a team. They can let you get real feedback on how you are progressing. They can also help you decide if you are ready for a particular job role.
But! You have been misled if you think any of that will be useful to you as a professional developer.
Everyone knows that interns are a cheaper alternative to hiring an in-office barista. In reality, you’ll spend all your time brewing coffee. Remember, all the successful learn-to-code stories you have read omit this crucial detail.
Similarly, applying for jobs is a terrible idea.
Yes, it is true that looking at job applications can help you gauge which skills you should focus on developing next. But remember, companies always want you to be an expert at a hundred more skills than you can fit onto your resumé/CV, so this will be a never-ending process.
Even if you do apply for a job and get invited to an interview, be sure to decline. Interviews are scary, and never get easier with practice and experience. A much safer bet is to shut your eyes and wait for the jobs to come to you.
Definitely don’t put yourself out there and aim high!
Postscript
*Of course, if for some reason you wish to learn to code the easy way, follow the exact opposite of this advice.
Or maybe read just the bits in bold…
Pick a modern, accessible and universally used language like JavaScript or Python or Ruby.
… editors and IDEs are widely used throughout industry by pros and experienced developers
Autocompletion, syntax highlighting, code-linting, and access to all kinds of extension packages all … make coding easier
There are many beginner-friendly, step-by-step learning projects out there
It is as easy as it has ever been to start contributing to popular, open-source projects
StackOverflow… full of developers of all experience levels answering each other’s questions…
…software pros with expert knowledge they want to share with programmers at all stages
Practicing ‘little and often’ is the best way to learn a new skill
Even 20 minutes a day can make a difference
Get into a regular habit of making learning part of your normal routine
Reading around a topic helps you develop a broader understanding
Chance articles can spark your interest in directions you may never have considered otherwise
They can be high-quality, written by experts, and very often entirely free
Visit a bookstore or a library
Pair programming is a great way of learning tricks and tips from more experienced developers
Experienced developers like talking about what they do
Ask all the same questions they had when they were starting out
Internships can provide real world experience of working in software as part of a team. They can let you get real feedback on how you are progressing. They can also help you decide if you are ready for a particular job role
Looking at job applications can help you gauge which skills you should focus on developing next
Interviews… get easier with practice and experience
Put yourself out there and aim high!
Thanks for reading!
Source: Learn to code, the hard way – freeCodeCamp.org