当前位置:首页 > 服务端 > 自学成为程序员


2022年09月16日 08:23:50服务端5


Do you have what it takes to become a programmer? Chances are, you will base your answer on a bunch of untrue stereotypes and misconceptions. Those are harmful because they stop you from trying out this career path.

您有成为程序员的条件吗? 很有可能,您的答案将基于一堆不真实的刻板印象和误解。 这些都是有害的,因为它们阻止您尝试此职业道路。

Let's take a look at some of the things that you do not need to become a programmer.


介绍 (Intro)

I have always found programming fascinating since I started using the internet in the late 90s. I was enthralled by the amazing things developers could do. And my admiration only grew as new websites and later apps started to radically change the world around us.

自从90年代末开始使用互联网以来,我一直对编程感到着迷。 开发人员可以做的令人惊奇的事情让我着迷。 当新网站和后来的应用程序开始从根本上改变我们周围的世界时,我的钦佩才逐渐增加。

And yet, I never tried programming myself. Never even tried to take a look at how it worked. But I am generally a curious person who loves getting into things and learning about them. So what happened there? How was it possible to be fascinated by programming for decades and not even try it out?

但是,我从未尝试自己编程。 从未尝试过看看它是如何工作的。 但是我通常是一个好奇的人,喜欢研究事物并学习事物。 那么那里发生了什么? 几十年来怎么可能被编程迷住,甚至没有尝试呢?

The reason, in my case, is what I call the "Hollywood hacker" stereotype. Those of us who did not come into contact with the reality of the field only have media stereotypes to go by. I believed that programming was the activity of an elite, a select few. People who attended exclusive universities and completed very expensive and long degrees. People who had privileged minds who could do superhuman feats of mathematical genius.

就我而言,原因就是我所说的“好莱坞黑客”刻板印象。 我们当中那些没有接触到该领域现实的人,只会经历媒体的刻板印象。 我相信编程是少数精英的活动。 上过独家大学并完成了非常昂贵的长期学位的人。 那些拥有可以做数学天才的超人壮举的人的特权。

I now know this is not true. It's not based on reality. And I wish I had known that earlier.

我现在知道这不是真的。 它不是基于现实的。 我希望我早一点知道。

I eventually understood that this was a much more accessible career path than I had originally thought. I followed a few YouTube tutorials, and got really excited about programming. I got serious about learning, and in 10 months did a career switch from an unrelated field.

最终,我明白这是一条比我最初想的要容易得多的职业道路。 我遵循了一些YouTube教程,并对编程感到非常兴奋。 我认真地学习,并在10个月内从一个无关领域转变了职业。

It wasn't a walk in the park, it was a lot of hard work. Like any skill that we learn, it takes time and practice. But it doesn't take special powers. Here's the story of how I made that switch.

这不是在公园散步,这是很多艰苦的工作。 就像我们学习的任何技能一样,这需要时间和实践。 但这并不需要特殊的权力。 这是我如何进行切换的故事

Now that I'm working as a front-end developer, I want to help others. I want to encourage those who are thinking about programming as a possible career but are not sure if they "have what it takes", or think there are obstacles that aren't actually there.

现在,我正在作为前端开发人员,我想帮助其他人。 我想鼓励那些正在考虑将编程作为一种可能的职业,但是不确定他们是否“具备所需的能力”的人,或者认为有些障碍实际上并没有出现。

So let's explore together 10 things you do not need to become a programmer.


先决条件 (Prerequisites)

These are the things that are rightly or wrongly connected with our popular image of what it takes to be a programmer. They are the kinds of things that are nice to have, and they can be useful.

这些都是正确或错误地与我们流行为程序员的形象有关的事物。 它们是很好的东西,它们可能会有用。

Aspiring developers can dedicate time to attaining some of these skills. But none of them is essential to start, to learn, to get a job, or to have a great career in computer programming.

有抱负的开发人员可以花时间来获得其中一些技能。 但是,它们都不是开始,学习,找到工作或拥有出色的计算机编程职业所必需的。

成为天才。 做一个数学家。 (Be a genius. Be a mathematician.)

This one is the most important myth to dispel – the myth of the privileged mind. There is no special thing your brain must have to become a programmer.

这是要消除的最重要的神话-特权人士的神话。 要成为一名程序员,您的大脑没有什么特别的事情。

Programming is a skill like playing the guitar or running a marathon. You get better at it by doing it. By dedicating time and effort. By learning from others. It's a skill that you develop and grow the more you do and the more productive effort you put into it.

编程是一种技巧,例如弹吉他或参加马拉松比赛。 通过这样做,您会变得更好。 通过投入时间和精力。 通过向他人学习。 您越做越多,投入的技能就越多,越能发展。

If you see a programmer who is capable of doing amazing stuff with a computer, it is always the result of dedicating time and energy into their craft. It's not some innate talent they were born with, or some divine inspiration.

如果您看到有能力用计算机完成出色工作的程序员,那么这总是将时间和精力投入到他们的工作中的结果。 这不是他们天生的天赋,也不是神圣的灵感。

Also, let's talk about math. Even though mathematics is at the heart of programming, you don't need it in your day to day work. The majority of programming languages used today for most jobs are high-level languages. These are closer to human languages than numbers, and don't need any special knowledge in math.

另外,让我们谈谈数学。 尽管数学是编程的核心,但您在日常工作中并不需要它。 今天,大多数工作使用的大多数编程语言都是高级语言。 它们比数字更接近人类语言,并且不需要任何数学方面的专门知识。

Programming is much more like writing than doing calculus. If you are good with math, it will help you solve certain problems faster. If like me, you didn't fall in love with it at school and never looked back, this won't be a hindrance.

编程更像是编写而不是演算。 如果您擅长数学,它将帮助您更快地解决某些问题。 如果像我一样,您在学校没有爱上它,再也没有回头,这不会成为障碍。

成为计算机向导 (Be a computer wiz)

Programming requires you to write programs that run on a computer. You do so using a computer. It's the medium you work in.

编程要求您编写在计算机上运行的程序。 您可以使用计算机进行操作。 这是您工作的媒介。

But, you don't need to be able to build a computer from scratch by hand to be a programmer. You don't need to be able to understand the inner workings of a computer. Or be that person all your friends come to with their computer problems.

但是,您无需成为一名程序员就能从头开始构建计算机。 您不需要能够理解计算机的内部工作原理。 或是成为您的所有朋友都遇到计算机问题的那个人。

It's one thing if you use a car to do your job, but it's a different thing to actually be a car mechanic. Of course the more you know about your tool the more independent you'll be at tackling up and resolving problems. But you can be an effective programmer without first learning how to fix your aunt's virus-infected machine!

如果您使用汽车来完成工作是一回事,但是实际上成为汽车修理工则是另一回事。 当然,您对工具的了解越多,您解决问题和解决问题就越独立。 但是您可以成为一名有效的程序员,而无需先学习如何修复姨妈的受病毒感染的机器!

拥有精英大学学位。 拥有CS学位。 有任何大学学历。 (Have an elite university degree. Have a CS degree. Have any university degree.)

A university degree is a great thing to have. It teaches you methodologies and investigation. It teaches you about your own learning style.

大学学位是一件很棒的事。 它教您方法和调查。 它教您自己的学习风格。

Being a graduate, if you are lucky enough to have access to a university, is a good thing in general. Being a Computer Science graduate is even better for programming. It gives you great depth and breadth of knowledge. An elite university will open doors and give you contacts.

总的来说,如果你有幸进入大学,成为一名毕业生是一件好事。 成为计算机科学专业的毕业生对于编程来说甚至更好。 它为您提供了深度和广度的知识。 一流的大学将打开大门,并与您联系。

However, none of the above is actually necessary to be a programmer. The field is packed with brilliant programmers who don't have a CS degree, or any degrees at all. If you put your mind to it, you can become a good programmer without any of it.

但是,以上所有内容实际上都不是成为程序员的必要条件。 这个领域挤满了没有CS学位或根本没有学位的优秀程序员。 如果您全神贯注,那么您就可以成为一名优秀的程序员。

There are lots of different paths to becoming a developer nowadays. The traditional university route is only one of them. There are bootcamps that condense the essential knowledge into a few months of intense work. There's a wealth of online resources for those who want to go the self-directed route. This is a great option for people who need to continue holding a  job while preparing the career change. And there are plenty of free or cheap options that remove the economic barriers too.

如今,有许多不同的途径成为开发人员。 传统的大学路线只是其中之一。 有一些训练营将基本知识浓缩为几个月的紧张工作。 对于那些想走自我导向路线的人,有很多在线资源。 对于需要在准备职业转变的同时继续工作的人们来说,这是一个不错的选择。 并且有许多免费或廉价的选择也消除了经济障碍。

拥有最先进的计算机或昂贵的软件 (Have a state of the art computer or expensive software)

This might be a bit silly. But for many people living in difficult economic situations, it means the difference between taking that first step or not.

这可能有点愚蠢。 但是对于许多生活在困难的经济形势中的人来说,这意味着迈出第一步与不迈出第一步之间的区别。

I used to imagine that programmers needed the most advanced computer with the highest processing power since they are the ones who write the software and apps that run computers. I imagined that to develop software you needed specialized and expensive software. A bit like the toolkit needed by those doing design or video work.

我曾经以为程序员需要具有最高处理能力的最先进的计算机,因为他们是编写运行计算机的软件和应用程序的人。 我以为要开发软件,您需要专用且昂贵的软件。 有点像从事设计或视频工作的人所需要的工具包。

So I was surprised when I followed my first tutorial and all I needed to build my first website was Windows's built-in Notepad. Notepad!! The humblest and most boring piece of software on any computer. A text editor that is as bland and basic as can be.

因此,当我按照我的第一个教程进行操作时,我感到很惊讶,而构建第一个网站所需的全部是Windows内置的记事本。 记事本!! 任何计算机上最简单,最无聊的软件。 一个文本编辑器,它尽可能平淡而基本。

Well yes, you can do all the basic stuff on an old machine with no bells and whistles at all. One expects to have a good machine when working professionally. But as a learner, you can go very far with an internet connection and a basic computer that can run a text editor.

好吧,是的,您完全可以在一台旧机器上完成所有基本工作,而无需花哨。 人们期望在专业工作时拥有一台好的机器。 但是作为学习者,您可以通过互联网连接和可以运行文本编辑器的基本计算机走得很远。

And besides, there are free versions of every tool you need to use along the way.


英文流利 (Be fluent in English)

As with most of the above, being fluent in English helps. Programming languages were invented and flourished in English speaking countries. So for better or worse English dominates the field.

与上述大多数情况一样,流利的英语会有所帮助。 编程语言是在英语国家发明和发展起来的。 因此,无论好坏,英语都占主导地位。

The words used in programming languages are English. And the majority of documentation, tutorials, articles, and resources about the subject are in English. So it helps a lot if you have a decent level of comprehension.

编程语言中使用的单词是英语。 而且有关该主题的大多数文档,教程,文章和资源都是英文的。 因此,如果您具有不错的理解水平,它将很有帮助。

But, this shouldn't be the barrier that's holding you back from programming. You can learn and become good at it with an intermediate level of English. Many people get by only with being able to read and comprehend English.

但是,这不应该成为阻碍您进行编程的障碍。 您可以学习并熟练掌握中级英语。 许多人只能够阅读和理解英语。

刻板印象 (Stereotypes)

There are a lot of stereotypes associated with programmers in the public imagination. Now let's be clear, I'm not saying these stereotypes aren't sometimes real, or that they are negative in any way. Only that you don't need those to fit in.

在公众的想象中,有许多与程序员相关的刻板印象。 现在让我们澄清一下,我并不是说这些刻板印象有时不是真实的,或者以任何方式都是负面的。 只是您不需要那些适合的东西。

做个书呆子。 成为玩家 (Be a nerd. Be a gamer)

Let me repeat, nerds are great, gamers are wonderful. But you can be part of a tech team without being either of these things. This is not the 90s – people of every style now work in the industry.

我再说一遍,书呆子很棒,游戏玩家很棒。 但是,您可以成为技术团队的一员而不必成为上述任何一种。 不是90年代-现在,各种风格的人都在行业中工作。

When you are looking for a job for the first time, the team you end up with is one of the biggest factors in your success. So finding a supportive team with a good atmosphere is most important. Far more important than the hobbies you might or might not share with the other programmers.

当您初次寻找工作时,与您合作的团队是您成功的最大因素之一。 因此,找到一个氛围良好的支持团队至关重要。 比您可能会或可能不会与其他程序员共享的兴趣更重要。

内向 (Be an introvert)

Same as above. There is no particular personality type that is well-suited for this profession. Don't go looking for personality traits that might show you whether this is for you or not. Your attitude is far more important.

同上。 没有特别适合该行业的个性类型。 不要去寻找可能会告诉你这是否适合你的人格特质。 您的态度要重要得多。

Being able to deal with frustration and persist is a key ingredient. And that's a learned skill, not part of a fixed personality.

能够处理挫败感和坚持不懈是关键因素。 那是一种博学的技能,而不是固定性格的一部分。

多元化 (Diversity)

The following items are not stereotypes, they are statistics. Looking at the face of the industry as it is now, you might not see yourself represented. This might lead you to think that this is not for "people like you", however you identify yourself.

以下各项不是刻板印象,而是统计数据。 纵观现在的行业面貌,您可能看不到自己的代表。 这可能会使您认为这不适合“像您这样的人”,但是您可以识别自己。

But our attitude should be the contrary. The lack of representation is all the more reason to get into it and put yourself out there. The industry has become much wiser about the importance of diversity in teams. Many companies and individuals are putting a lot of effort into making the industry more inclusive.

但是我们的态度应该相反。 缺乏代表性是进入它并将自己摆在那儿的更多原因。 业界对于团队多元化的重要性变得更加明智。 许多公司和个人都在努力使行业更具包容性。

年轻 (Be young)

You do not need to be young to work in tech. You do not need to start young to be a good programmer.

您不需要年轻就可以从事技术工作。 您无需从小就可以成为一名优秀的程序员。

I started learning at 39 and I was 40 when I got my first job. And there are people of every age group who have successfully made the transition.

我从39岁开始学习,到第一份工作时才40岁。 每个年龄段的人都已经成功地完成了过渡。

It's never too late to learn. Never too late to change careers. Besides, a company that only wants to hire young people is probably not a good place to work for anyway. If you need some more inspiration, check out this story about developers who got their first tech jobs in their 30s, 40s, and 50s.

学习永远不会太晚。 永远不会改变职业。 此外,一家只想雇用年轻人的公司可能不是一个工作的好地方。 如果您需要更多灵感,请查看有关30、40和50年代获得第一份技术工作的开发人员的故事

做个男人 (Be a man)

This should be clear. But it has to be said. You don't have to be a man to be a programmer. And while men still make up the majority of programmers, this is hopefully rapidly changing.

这应该很清楚。 但是必须说。 您不必是一个男人就可以成为程序员。 尽管人们仍然占程序员的大多数,但希望这种情况正在Swift改变。

Any company with insightful leadership has understood the importance of gender-diverse teams.  It is not just good for "equality" (which is reason enough), but also gender-diverse teams make better decisions and are less likely to be biased.

任何有领导才能的公司都了解性别多元化团队的重要性。 这不仅有利于“平等”(这是足够的理由),而且性别多样化的团队可以做出更好的决策,并且不太可能受到偏见。

Gender is not a factor in how good of a programmer you can be. There is no chromosome or brain configuration that is better suited. Programming is mostly about problem-solving. And we need as many perspectives as possible to solve a problem in the best way.

性别不是决定您的程序员水平的因素。 没有更适合的染色体或大脑结构。 编程主要是解决问题。 我们需要尽可能多的观点以最佳方式解决问题。

享有特权 (Be privileged)

One of the things I loved the most when I first started learning to program was how democratic, open and inclusive the community is.


The programming world is filled with wonderful people. They dedicate time to help others become better programmers. They create resources and maintain open-source projects that benefit everyone.

编程世界充满了很棒的人。 他们花费时间来帮助其他人成为更好的程序员。 他们创建资源并维护使所有人受益的开源项目。

Many groups and collectives are still underrepresented. Especially those who have historically been marginalized, or had difficulty accessing opportunity. But the community itself is much more welcoming and inclusive than it might seem from the outside. And it is continuing to change.

许多团体和集体仍然人数不足。 特别是那些历来被边缘化或难以获得机会的人。 但是社区本身比外面看起来更热情和包容。 而且它还在不断变化。

You may not see yourself represented in the popular images or the statistics about programmers. But this should not be a factor in being able to become a programmer. Your sexual orientation, your social class, your ethnicity, your disability, whether you don't live in the industrialized world, whether you are poor. These are all factors that are not a hindrance but a benefit. For the same reasons as mentioned above.

您可能不会在受欢迎的图像或有关程序员的统计信息中看到自己。 但这不应该成为能够成为程序员的因素。 您的性取向,社会阶层,种族,残疾,是否不生活在工业化世界中,是否贫穷。 这些都是因素,不是障碍,而是好处。 出于与上述相同的原因。

The greater the diversity of the team, the better it is at solving problems in a way that transcends biases. And that's always a good thing. And you can be part of the changing image of this industry.

团队的多样性越大,以超越偏见的方式解决问题的能力就越强。 那总是一件好事。 您可以成为这个行业不断变化的形象的一部分。

奥托罗 (Outro)

I hope this article helps you in breaking myths about programmers and removing barriers to entry. I hope that if you are intrigued by programming that you give it a go. And if you find yourself excited by it and interested in pursuing a career that you will try it.

我希望本文能帮助您打破关于程序员的神话并消除入门障碍。 我希望,如果您对编程感兴趣,那么可以尝试一下。 而且,如果您对它感到兴奋,并且对追求职业感兴趣,那么可以尝试一下。

Ignore the self-doubt that comes disguised as one of these barriers that we think are in our way. Programming is complex and requires hard work. But everything about it is made up of skills anyone can learn if they persist.

忽略自我伪装成我们认为阻碍我们前进的障碍之一。 编程很复杂,需要艰苦的工作。 但是有关它的一切都是由任何人坚持不懈地学习的技能组成的。

Life can be tough and can put lots of obstacles in our way. The challenge is to react to these obstacles and find our way around them. So let's at least remove from our path all the clutter that isn't actually real obstacles.

生活可能很艰难,可能会阻碍我们前进。 挑战是应对这些障碍并找到解决之道。 因此,让我们至少从路径上消除实际上不是真正障碍的所有杂物。

If you know anyone who is thinking about whether programming is for them or have recently started learning, please share this article with them.


How about you? Do you have any other stereotypes and misconceptions about what it takes to become a programmer? Do you see things in the popular imagination about programmers that aren't true?  Tweet me your comments, I would love to keep this discussion going on Twitter. Find me on Twitter and say hello.

你呢? 您对成为一名程序员有什么其他刻板印象和误解? 您是否在流行的想象力中看到关于程序员的错误事实? 将您的评论发给我,我很乐意继续在Twitter上进行讨论。 在Twitter上找到我并打个招呼。

My name is Syk and I’m a front-end developer based in Madrid. I career-changed into web dev from an unrelated field, so I try to create content for those on a similar journey. My DMs @Syknapse are always open for aspiring web developers in need of some support.

我叫Syk,我是马德里的前端开发人员。 我从一个无关领域转变为Web开发人员,因此我尝试为类似旅程中的人员创建内容。 我的DM @Syknapse总是对有需要的有抱负的Web开发人员开放。

翻译自: https://www.freecodecamp.org/news/the-10-things-you-dont-need-to-become-a-programmer/






标签: 程序员

“自学成为程序员” 的相关文章



引言 相信大家对“睡后收入”这个名词应该都很熟悉,那么作为程序员,我们都有哪些方式能够获得"税后"收入呢? ​ 获得税后收入的方式 接私活 这种方式似乎是很常见的,只要你有资源,你就有接不完的活,当然了也就有挣不完的钱,我见过的一...

GitHub 热点速览 Vol.24:程序员自我增值,优雅赚零花钱

GitHub 热点速览 Vol.24:程序员自我增值,优雅赚零花钱

摘要:升职加薪,出任 CTO,迎娶白富美/高帅富,走向人生巅峰是很多人的梦想。在本期的热点速览中你将了解自由作者 Easy 如何优雅赚取零花钱的方法,以及定投改变命运 —— 让时间陪你慢慢变富。说到程序员自我增值,除了优雅赚钱之外,还可以研究下各种生活中小工具的代码实...



一、前言 程序员到创业,这一路上的经历。多多少少是有感悟,我平时也一直保持空杯,保持饥饿,保持利他。感谢张哥邀请,我在这里跟大家分享下目前得到的一些小感悟:关于程序员到创业,成长之路的一些技能 首先不建议大多数人选择创业的道路,创业前先问自己...



线上博客预览地址:乐哉开讲 本篇博文同步视频教程:B站 博客使用的是开源halo搭建 写在前面 具备一定的 Linux 基础。 具备一定的 Docker 使用基础。 如需使用 IP 访问,请先确保 Halo 的运行...


Java程序员面试宝典--this 面试例题1:下面程序的结果是什么?[Trend公司面试题] class Tester { int var; Tester(double var) {     ...

ASP.NET中高级程序员 面试题

ASP.NET中高级程序员 面试题

第一部分: 互相介绍及了解 1.请介绍一下你自己?包括工作经历和项目经历? 2.请谈一下你就最近的一个项目?你在其中的职责和负责的部分? 第二部分: 一、ASP.NET技术问题选择性提问。一般可以选择三五个。 1...



无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试的同学用的着! 问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法?...

一线互联网常见的 14 个 Java 面试题,你颤抖了吗程序员

一线互联网常见的 14 个 Java 面试题,你颤抖了吗程序员

面过大 / 小公司、互联网 / 传统软件公司,在此过程中不断查缺补漏,养成了踏实、追本溯源、持续改进的习惯,特此将自己经历过、构思过的一些面试题记录下来,如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的同学有所帮助,陆续整理中。 跳槽不算频繁,但参加过不少面试...

【吐血整理】超全golang面试题合集+golang学习指南+golang知识图谱+成长路线 一份涵盖大部分golang程序员所需要掌握的核心知识。

【吐血整理】超全golang面试题合集+golang学习指南+golang知识图谱+成长路线 一份涵盖大部分golang程序员所需要掌握的核心知识。

脑图持续不断更新中,在线查看地址 后续文章和内容会不断更新到 github项目 中,欢迎关注。 目录(善用Ctrl+F) 基础入门 新手 Golang开发新手常犯的50个错误...



此文转载自:https://blog.csdn.net/m0_46995061/article/details/109995223 总结了一份Java架构师的技能树,希望对Java编程的同学有点帮助,文末有该架构师技能树获取方式 Java编程技术点:...