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…

A pinch of salt… Photo by Mira Bozhko on Unsplash.

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 webThey may have large, supportive communities of fellow learners.

But where’s the struggle in all that?

If learning to code doesn’t make you melancholy, you’re doing it wrong. Photo by Ethan Sykes on Unsplash.

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:

Via https://xkcd.com/378/.

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.

Learning web development? Don’t be asking for any help now… Photo by Kobu Agency on Unsplash

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.

You never got good at this by practicing every day. Photo by Nathan Dumlao on Unsplash.

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-qualitywritten by expertsand 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?

Interesting books and blogs exist only in stock photos. Photo by Anete Lūsiņa on Unsplash.

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.

Are these guys pair programming? No. Photo by Helloquence on Unsplash

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 progressingThey 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 teamThey 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

Learn to code, the hard way – freeCodeCamp.org
Tagged on:     
%d bloggers like this: