学习编码,艰难的方式

这些快速技巧将使学习编码变得尽可能困难和无益! * (These quick tricks will make learning to code as difficult and unrewarding as possible! *)

Warning: contains satire…

警告:包含讽刺…

1.选择一种非常困难的语言 (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.

不要在这里碰碰运气。 您可能已经听说有些人说C ++或Java对初学者具有挑战性。 但是, 即使稍加耐心和毅力也可以掌握这些内容

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?

也许您可以选择老式的语言,例如COBOLPL / I。 或诸如汇编之类的甚至是机器代码之类的真正低级的东西呢?

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.

对于某种押注,为什么不尝试使用MalbolgeBefungeINTERCAL等深奥的语言? 从这些语言中的一种开始,将使您倒退几年。 另外,他们缺乏工作前途会彻底挫败您。

Whatever you do, don’t pick a modern, accessible and universally used language like JavaScript or Python or Ruby.

无论您做什么, 都不要 选择像JavaScript或Python或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.设置噩梦编码环境 (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.

您可能听说过可以免费下载或试用的各种文本编辑器和IDE(集成开发环境)。 例子包括崇高,凌动,VSCode,的IntelliJ,... 等等再说

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.

这些编辑器和IDE在整个行业中被专业人士和经验丰富的开发人员广泛使用的事实是无关紧要的。 毫无疑问,这一定是某种由Big Tech™资助的大规模阴谋。

Terminal-based editors, like Vim or Emacs, are often cited as difficult to learn. However, even these can be learned with practice.

通常认为基于终端的编辑器(如Vim或Emacs) 难以学习。 但是,即使是这些也可以通过实践来学习

For a more challenging development environment, try Windows Notepad. Even better, turn your keyboard upside down and unplug your monitor.

对于更具挑战性的开发环境,请尝试Windows记事本。 更好的是,将键盘上下颠倒并拔下显示器的电源。

Or, maybe you prefer this setup:

或者,也许您更喜欢这种设置:

3.尽早处理重大项目 (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.

毕竟,您应该能够在第一周内建立一个实时的分布式视频和电影流媒体平台,在第二周后添加一个基于AI的推荐系统,并在一个月内成立一家价值zeitgeist转移,价值数十亿美元的高科技公司或者。 给或花几天时间进行招聘和解雇。

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.永远不要寻求帮助 (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?

诸如StackOverflow之类的问答网站似乎充满了具有各种经验水平的开发人员,可以回答彼此的问题 。 但是他们实际上知道什么?

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.经常休息六个月 (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.

每个人都知道成功追求成功的关键是不一致。 有人声称练习“少而又经常”是学习新技能的最佳方法 。 这些人通常是相同的人,他们说即使每天20分钟也会有所作为 。 他们在两个方面都是错误的。

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.不要阅读本主题 (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.避免与经验丰富的程序员互动 (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.远离实习和工作申请 (8. Stay away from internships and job applications)

Lastly, be sure to avoid Googling for internships and entry-level developer jobs in your area.

最后,请确保避免在您所在的地区使用Google搜索进行实习和入门级开发人员工作。

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.

选择一种现代,可访问且通用的语言,例如JavaScript或Python或Ruby。

… editors and IDEs are widely used throughout industry by pros and experienced developers

…专业人士和经验丰富的开发人员在整个行业中广泛使用编辑器和IDE

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…

StackOverflow…充满了所有经验水平的开发人员,可以回答彼此的问题…

…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

即使一天20分钟也可以有所作为

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!

谢谢阅读!

翻译自: https://www.freecodecamp.org/news/learn-to-code-the-hard-way-65dece5b0005/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值