学习编程需要什么思维_您做什么和不需要学习编程

学习编程需要什么思维

When I was a kid, I wanted to become a programmer and build computer games. I imagined programmers as someone akin to magicians, able to create worlds using only their fingers. In my head, every programmer was a mathematical genius who started coding at age 10.

小时候,我想成为一名程序员并开发计算机游戏。 我想象程序员就像魔术师一样,只用手指就能创造世界。 在我脑海中,每个程序员都是数学天才,他们从10岁起就开始编码。

The problem was, I wasn’t exactly a math whiz. My first attempt to learn a programming language, C++, was a spectacular failure. I recognized programming wasn’t a path for me, a mere mortal.

问题是,我并不是数学天才。 我第一次学习编程语言C ++的尝试失败了。 我意识到编程对我来说不是一条路,只是凡人。

My misconceptions about programming and initial defeat stopped me from pursuing a career in software development for over a decade.

我对编程和最初失败的误解使我无法从事软件开发事业超过十年。

You may face the same difficulties and superstitions as I did. So I decided to prepare a shortlist of things you need and don’t need to start a programming career.

您可能会像我一样面临同样的困难和迷信。 因此,我决定准备一份简短的清单,其中列出了您需要且不需要从事编程职业的东西。

你不需要什么 (What You Don’t Need)

Let’s begin with some common misconceptions that stopped me and lots of others.

让我们从一些常见的误解开始,这些误解使我和其他许多人不知所措。

All these things are good to have but aren’t necessary for most of the programming jobs.

所有这些东西都是不错的,但对于大多数编程工作而言并不是必需的。

数学很好 (Be very good in maths)

This is what stopped me. I believed every programmer excels in mathematics. But only a fraction of programming jobs require you to go beyond basic arithmetic.

这就是阻止我的原因。 我相信每个程序员在数学方面都非常擅长。 但是只有一小部分编程工作需要您超越基本的算术。

Mathematics can come in handy in some cases, and a lack of deep understanding of algorithms will prevent you from pursuing a career in a few fields (artificial intelligence, big data, 3D graphics). But with elementary math knowledge, you can find plenty of other jobs — especially in web and mobile development.

在某些情况下,数学可能会派上用场,而对算法的深入了解会阻止您从事某些领域的工作(人工智能,大数据,3D图形)。 但是,凭借基本的数学知识,您可以找到很多其他工作,尤其是在Web和移动开发中。

What’s more, even if you weren’t good at maths at school, you can learn it. When you gain experience in programming, you’ll feel more comfortable with mathematics; you may even start to like it. So if you’d like to get a job in the math-related area, or think that it may make you a better programmer, give mathematics a shot.

而且,即使您不擅长数学,也可以学习。 当您获得编程经验时,您会对数学感到更自在。 您甚至可能开始喜欢它。 因此,如果您想在数学相关领域找到一份工作,或者认为它可以使您成为一名更好的程序员,那么可以尝试一下数学。

CS学位 (CS degree)

You should know it by now. Online discussions on whether you need a CS degree to be a programmer never end. But the indisputable fact is millions of software developers work without a CS degree, some of them having the most complicated programming jobs.

您现在应该知道。 关于是否需要CS学历才能成为程序员的在线讨论从未间断。 但是无可争辩的事实是,数百万软件开发人员没有CS学位就可以工作,其中一些人从事最复杂的编程工作。

But maybe you’re a bit like me and still aren’t convinced. When I decided to learn to code, I considered going to the university to get a computer science degree. It felt like a natural way to get a programming job.

但是也许您有点像我,但仍然没有被说服。 当我决定学习编码时,我考虑去大学获得计算机科学学位。 感觉是获得编程工作的自然方法。

After analyzing the school curricula in my area, I realized it doesn’t make sense. The courses felt outdated and had no connection to the job market. Besides, I was 27, so I’d be 30 before I could take a full-time job. That didn’t seem like a good investment of my time.

在分析了我所在地区的学校课程后,我意识到这没有任何意义。 这些课程感觉已经过时了,与就业市场没有任何联系。 此外,我当时27岁,所以我要30岁才能从事全职工作。 这似乎不是我这个时间的好投资。

Maybe you can find the right school in your area, or a CS degree will be useful for you. But be sure you don’t need it to find a job and be a competent programmer.

也许您可以在您所在的地区找到合适的学校,否则CS学位将对您有用。 但是请确保您不需要它来找到工作并成为一名合格的程序员。

Image for post
Photo by NeONBRAND on Unsplash
NeONBRANDUnsplash拍摄的照片

训练营 (Bootcamp)

Some Bootcamps are great. They let you learn to code fast, sometimes preparing you for your first job in three to six months. They provide you with a structured learning plan, feedback from mentors, a supportive community, and their curricula are practical and suited to the job market.

一些训练营很棒。 他们使您可以学习快速编码,有时可以使您在三到六个月内准备好第一份工作。 他们为您提供结构化的学习计划,导师的反馈,支持性社区,并且他们的课程实用且适合就业市场。

The downside is good Bootcamps are expensive. Usually not as expensive as universities, but costly nevertheless. Also, many Bootcamps aren’t that good, and they just take advantage of desperate students trying to learn to code.

不利的一面是,好的训练营很昂贵。 通常不如大学贵,但是却很贵。 而且,许多训练营都不是那么好,它们只是利用绝望的学生试图学习编码的优势。

So if you did your research and are convinced the Bootcamp you chose is right, consider enrolling. But I believe you usually don’t need it.

因此,如果您进行了研究并确信所选的Bootcamp是正确的,请考虑注册。 但我相信您通常不需要它。

You can get support online for free in lots of places, with Stack Overflow being the most famed. You may find mentors or free roadmaps to becoming a developer on Twitter and other sites. If you’re not sure how to structure your education, you can use the Bootcamp’s curriculum as a guide — just learn subjects in the same order as Bootcamp, but by yourself. It will be harder, but without a doubt, it’s possible.

您可以在许多地方免费在线获得支持,其中最著名的是Stack Overflow。 您可能会在Twitter和其他站点上找到成为开发人员的指导者或免费路线图。 如果您不确定如何安排自己的教育方式,可以使用Bootcamp的课程作为指南-只需按照与Bootcamp相同的顺序学习科目,但可以自己学习。 这将更加困难,但是毫无疑问,这是可能的。

花了很多钱 (Spend a lot of money)

You can learn to code for free; everything you need is an internet connection and lots of time. You don’t need to pay for college or Bootcamp, and you don’t even need to pay for online courses.

您可以免费学习编码; 您需要的只是互联网连接和大量时间。 您不需要为大学或Bootcamp付费,甚至不需要为在线课程付费。

All resources required to get a job are available for free; you just have to look for them and choose wisely. I haven’t paid for any resources about programming until I got my first job.

免费获得工作所需的所有资源; 您只需要寻找它们并明智地选择即可。 在我找到第一份工作之前,我没有花任何钱来编程。

So find some reputable teachers whose style you like, enroll in their free courses, and use other materials. For entry-level jobs, it’s enough.

因此,找到一些喜欢的老师,他们喜欢他们的风格,注册免费课程,并使用其他材料。 对于入门级的工作,就足够了。

你需要什么 (What You Do Need)

Some things are necessary to learn to code, and it may be painstaking to learn coding without them. So be honest with yourself and evaluate your chances.

有些事情是学习编码所必需的,没有它们,学习编码可能会很艰辛。 因此,对自己诚实,评估您的机会。

好的态度 (Good attitude)

A proper attitude is critical. Without the right attitude, it’s almost impossible to learn to code.

正确的态度至关重要。 没有正确的态度,几乎不可能学习编码。

What is the right attitude? I’d say the first ingredient is persistence. Programming is complicated, and you’ll have to work a lot to become a master. You shouldn’t code only when you feel like it. Coding on your bad days as well as good days is the single most viable way to achieve your goal. So you need to keep yourself motivated to face adversity.

正确的态度是什么? 我要说的第一个要素是持久性 。 编程很复杂,要成为一名高手,您需要付出很多努力。 您不应该只在自己喜欢的时候进行编码。 无论您的生活状况如何,编码都是实现目标的最可行的方法。 因此,您需要保持面对逆境的动力。

Programmers have to be patient. You won’t find a solution on your first try. Many times, you won’t find it on the 15th either. Developing programming skills is a marathon, not a sprint; you need to wait for the results. Sometimes you’ll spend whole days debugging seemingly perfect code just to find some convoluted error. On the other days, you’ll have to grind through annoying configuration files or other things you hate. But be patient; this sacrifice leads to your goal.

程序员必须要有耐心 。 您第一次尝试时将找不到解决方案。 很多时候,您也不会在15日找到它。 培养编程技能是一场马拉松,而不是短跑。 您需要等待结果。 有时,您会花费整整一整天的时间调试看似完美的代码,只是为了发现一些复杂的错误。 在其他日子里,您将不得不浏览烦人的配置文件或您讨厌的其他内容。 但是要有耐心; 这种牺牲导致了您的目标。

In programming, countless things can go wrong, and you’ll painfully stumble on many problems. To grow, you have to deal with those problems. Programming is a lot like solving puzzles, so interest in solving puzzles is amongst the critical traits for a good programmer. If you don’t like to crack theoretical problems, programming is probably not a good fit for you.

在编程中,无数错误可能会出错,并且您会痛苦地发现许多问题。 要成长,就必须应对这些问题。 编程很像解决难题,因此难题的兴趣是一个好的程序员的关键特征之一。 如果您不想破解理论问题,那么编程可能不适合您。

As a programmer, you’ll be wrong many more times than right. Humility is the key to keep yourself sane. You don’t know all that much now, and even if you spend every second learning, you won’t know everything. You should recognize it and remember that no matter what you think right now, you’re probably wrong. And when you get new information, you should be ready to change your mind. Even then, you’re still wrong, but maybe a bit closer to the truth.

作为程序员,您犯错的次数比正确的多。 谦虚是保持理智的关键。 您现在并不了解太多,即使您花每一秒钟学习,也不会一无所知。 您应该认识到这一点,并记住,无论您现在怎么想,您都可能错了。 并且,当您获得新信息时,您应该准备改变主意。 即使那样,您仍然错了,但也许更接近真相。

Attention to detail often makes a difference between an OKish programmer and a great programmer. It will help you find bugs faster and make fewer bugs in the first place. By being attentive, you create more precise UIs, better APIs, and clearer abstractions. You’re able to deal with edge cases and predict problems before they arise. Computers aren’t smart, but they follow instructions with high precision. Your job is to make those instructions crystal clear, so being accurate is crucial.

对细节的关注通常会使一个OKish程序员和一个优秀的程序员有所不同。 它可以帮助您更快地发现错误,并且一开始就减少错误。 通过专心,您可以创建更精确的UI,更好的API和更清晰的抽象。 您能够处理极端情况并在问题出现之前进行预测。 计算机不是很聪明,但是它们会按照高精度进行操作。 您的工作是使这些说明清晰明了,因此准确至关重要。

Image for post
Photo by Volodymyr Hryshchenko on Unsplash
Volodymyr HryshchenkoUnsplash拍摄的照片

逻辑和抽象思维 (Logical and abstract thinking)

I said you don’t need to be particularly good at maths to be a programmer. But you have to be familiar with a field related to mathematics — logic.

我说过,成为一名程序员并不需要特别擅长数学。 但是您必须熟悉与数学相关的领域-逻辑。

Programming is based on logic, and you’ll encounter it at the very beginnings of your programming journey. It may seem trivial, but over time abstractions build on each other, and logic often becomes complex. So make sure you have a good grasp of logic, as it will facilitate your learning.

编程是基于逻辑的,您将在编程旅程的一开始就遇到它。 这看似微不足道,但随着时间的流逝,抽象彼此之间建立起来,逻辑常常变得复杂。 因此,请确保您对逻辑有很好的理解,因为它将有助于您的学习。

Maybe even more important than logic is the ability to think abstractly. Every program is, in essence, a general idea translated to code by abstract thinking. The letters from your editor are almost magically changed into websites, applications, or games. You have to be able to reason about the program by just looking at its code, frequently at many different levels of abstraction at once.

比逻辑更重要的是抽象思维的能力。 本质上,每个程序都是通过抽象思维转换为代码的一般想法。 来自编辑器的字母几乎被神奇地更改为网站,应用程序或游戏。 您必须能够仅通过查看其代码来推理该程序,经常一次在许多不同的抽象级别进行。

Without the ability to think abstractly, you’ll struggle to comprehend programming concepts. If you feel that’s not your forte, take some time to practice it. Before you start coding, write what you want to do in plain English. Then formalize it into pseudocode — instructions that tell what should be done in what order, with possible variations. Only when you have an excellent understanding of what you actually need to do, start coding.

没有抽象思维的能力,您将难以理解编程概念。 如果您觉得这不是您的强项,请花一些时间练习一下。 在开始编码之前,请用简单的英语写下您想做的事情。 然后将其形式化为伪代码-指示应该以什么顺序进行的指令(可能会有变化)。 仅当您对实际需要有很好的了解时,才开始编码。

很多的时间 (Lots of time)

You can’t go around that — you need lots of time, I’d say at least several hundreds of hours of deliberate practice, to find your first programming job.

您无法解决这个问题-您需要花费大量时间,至少要经过数百小时的精心练习才能找到您的第一份编程工作。

Some people achieve it faster, some slower, but you need to be willing to devote time to programming if you want to pursue a career as a software developer.

有些人更快,有些慢,但是如果您想从事软件开发人员的工作,就需要愿意花时间在编程上。

That’s all. If you can smartly approach programming, think abstractly, and are ready to put in the hours, you’re ready to go.

就这样。 如果您能聪明地进行编程,抽象地思考并准备投入大量时间,那么您就可以开始工作了。

翻译自: https://medium.com/better-programming/what-you-do-need-and-dont-need-to-learn-programming-f81fd0976122

学习编程需要什么思维

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值