实习一年算工作一年吗?_如何在不到一年的时间里获得开发人员的工作

实习一年算工作一年吗?

by Alexander Kallaway

亚历山大·卡拉威(Alexander Kallaway)

如何在不到一年的时间里获得开发人员的工作 (How to Get a Developer Job in Less Than a Year)

加快学习速度 (Speed Up Your Learning)

What is the most difficult part for someone who decides to teach themselves to code? The fact that they usually don’t know what to learn — what programming language to choose, how to approach learning, which resources are the best in terms of time efficiency.

对于决定自学编码的人来说,最困难的部分是什么? 他们通常不知道学习什么-选择哪种编程语言,如何进行学习,哪种资源在时间效率方面是最好的这一事实。

It all starts with Google searches on those topics, which inevitably lead people to one of the many resources that teach people to code. The format of those resources varies greatly, and common sense tell us that we should try a bunch of different resources, and choose the ones that best suit our learning style. Tutorials for some people, screencasts for others, articles for yet another group, etc. Seems pretty logical, doesn’t it?

一切都始于Google在这些主题上的搜索,这不可避免地使人们进入了许多教人们进行编码的资源之一。 这些资源的格式差异很大,常识告诉我们,我们应该尝试一堆不同的资源,并选择最适合我们学习风格的资源。 某些人的教程,其他人的屏幕录像,其他小组的文章等。似乎很合逻辑,不是吗?

Well… no. Today I want to convince you that one of those formats of learning will get you to where you want to be faster than any other. With no further delay, let me tell you what it is and why you should focus all your efforts on it.

好吧……不。 今天,我想说服您,其中一种学习方式将带您到达想要比其他任何方式都更快的地方。 不用再拖延了,让我告诉您它是什么以及为什么您应该全力以赴。

建设项目 (Build Projects)

I bet you saw that one coming.

我敢打赌,你看到那一个来了。

First of all, let me get some of your objections out of the way. I am not saying you should drop all the other types of learning resources altogether.

首先,让我消除您的一些反对意见。 我并不是说您应该完全放弃所有其他类型的学习资源。

All the tutorials and screencasts have their place under the sun, and I will elaborate on that further in the article. For example, sometimes the most effective way to get introduced to a new technology or a framework can be reading an article or going through a tutorial.

所有的教程和屏幕录像都在阳光下占有一席之地,我将在本文中进一步阐述。 例如,有时最有效的方法来入门新技术或框架可以是阅读文章或阅读教程。

The problem is that we tend to stick (or at least I do) to the resources that keep us in our comfort zone, even when it is time to do something of our own. It is just all too convenient, ready for consumption. It also always makes us feel great, because hey, here we are, learning! Right? Who can say that we are wasting time? How dare they? We are filling the gaps in our knowledge!

问题在于,即使是时候该做自己的事情了,我们也倾向于坚持(或至少是我这样做)使我们保持舒适状态的资源。 太方便了,随时可以消费。 这也总是使我们感觉很好,因为嘿,我们在这里学习! 对? 谁能说我们在浪费时间? 他们怎么敢? 我们正在填补我们的知识空白!

It’s dangerous that it may seem to us that these resources are also the most effective way to learn. As humans, we can justify pretty much anything that keeps us within our comfort zone. I’ve been living in that illusion for quite some time.

在我们看来,这些资源也是最有效的学习方法,这很危险。 作为人类,我们几乎可以证明任何使我们处于舒适范围之内的理由。 我生活在那种幻想中已经有一段时间了。

敲,敲,新。 (Knock, Knock, Neo.)

Creating projects… what’s new about this idea? Nothing, and deep inside, we all know that it would be the best use of our time and energy, and would get us to our goals faster. So why don’t we do it? Resistance.

建立专案...这个想法有什么新变化? 一无所有,深入人心,我们都知道这将是对我们时间和精力的最佳利用,并将使我们更快地实现目标。 那我们为什么不这样做呢? 抵抗性。

I’ve talked about the Resistance in my previous article (read it if you are struggling or if you feel stuck), so let me explain why I am so adamant about this topic, and let me convince you to shift your focus (unless it’s already there) to building.

我已经在上一篇文章中谈到了抵抗运动 (如果您正在挣扎或感到困惑,请阅读该书),所以让我解释一下为什么我如此坚持这个话题,并让我说服您转移您的注意力(除非它是已经在那里)进行建设。

Like Neo in the Matrix, who is given the choice between the red pill and the blue pill, we can return to our illusions that the resources that are holding our hand all the time are the best way to learn, or we can take the red pill and embrace the reality that we only move forward and grow when we are out of our comfort zone. (If you haven’t watched the Matrix, you should probably do so.)

就像《黑客帝国》中的尼奥一样,他可以在红色药丸和蓝色药丸之间进行选择,我们可以回到幻想,一直握着手的资源是最好的学习方法,或者我们可以选择红色丸和拥抱现实,只有当我们离开舒适区时,我们才能向前发展。 (如果您尚未观看《黑客帝国》,则可能应该这样做。)

Here are some of my thoughts on how to approach these projects, which can be intimidating to start, as well as some tips I’ve picked up along the way.

这是我对如何进行这些项目的一些想法,这些想法可能会很吓人地启动,以及我在此过程中获得的一些技巧。

您可能还不到一年的时间(什么?) (It may take you even less than a year (What?))

The reasoning behind this is that based on my personal experience, on talking with the members of our Free Code Camp Toronto group, and on reading about the journeys of the members all over the world.

这背后的原因是基于我的个人经验,与我们的多伦多自由代码营小组的成员交谈以及阅读有关全世界成员的旅程的信息。

I find that most often, people are able to find a job even before they finish Free Code Camp’s Front End Development certification. They build the projects required, and start applying. Soon enough, they get an offer to code for money.

我发现,人们通常在完成Free Code Camp的前端开发认证之前就能找到工作。 他们建立所需的项目,然后开始应用。 很快,他们得到了要钱的代码。

If you read through Free Code Camp’s subreddit you will find there are a lot of stories like that.

如果您阅读了Free Code Camp的subreddit,您会发现有很多这样的故事。

Note that job markets vary from city to city. In Toronto, for example, there are a ton of front end developer job openings.

请注意,每个城市的就业市场各不相同。 例如,在多伦多,有大量的前端开发人员职位空缺。

Free Code Camp’s official position is that you should complete all 2,080 hours of the curriculum. You will probably be a much stronger candidate (and command higher salaries in more challenging positions) if you do so.

Free Code Camp的官方立场是,您应该完成所有2,080小时的课程。 如果您这样做的话,您可能会是一个更强大的候选人(并在更具挑战性的职位上要求更高的薪水)。

Let’s do some math:

让我们做一些数学运算:

Front End Web Development certificate with Free Code Camp takes around 478 hours. There are people who complete it faster, but it varies depending the level of person’s preparation, so let’s keep 478 as our base.

带有Free Code Camp的前端Web开发证书大约需要478小时。 有些人可以更快地完成它,但是它取决于人的准备水平,所以让我们以478为基础。

What’s less than a year? For the sake of the argument, we’ll work with 9 months. 9 months * 30 days gives us 270 days.

不到一年? 为了论证,我们将工作9个月。 9个月* 30天给我们270天。

478 hours / 270 days is roughly 1.8 hours per day. That means we can code less than for 2 hours a day and in 9 months we can become job ready.

478小时/ 270天大约是每天1.8小时。 这意味着我们每天可以编写少于2个小时的代码,并且在9个月内就可以准备工作。

I know that for some people the schedule doesn’t allow for two spare hours a day, but for most, it’s possible to find them. For others, it might take a little longer, but there are always weekends and other ways to find (or make) the time.

我知道对于某些人来说,日程表不允许每天有两个小时的空闲时间,但是对于大多数人来说,可以找到它们。 对于其他人,这可能需要更长的时间,但是总是有周末和其他方式寻找(或腾出)时间。

If you are looking for advice on how to find time to code, don’t hesitate to reach out to me on Twitter and I will be glad to help.

如果您正在寻找有关如何找到时间编码的建议,请随时在Twitter上与我联系,我们将很乐意为您提供帮助。

I took a bit longer than that — about one year and two months. This article is the analysis of the reasons why it took me longer than it should have. I’ve made all the mistakes that I am talking about in the article. When I give you advice, remember that I am giving that advice to myself as well. We are in the same boat.

我花了更长的时间-大约一年零两个月。 本文是分析为什么我花了比我更长的时间的原因的分析。 我犯了我在这篇文章中谈论的所有错误。 当我给您建议时,请记住,我也正在向自己提供建议。 我们在同一条船上。

I got hired before I could finish the Free Code Camp Front End curriculum, but I know for a fact that it will help me grow as a developer to get back and finish those projects. Here in there in the article I’ve placed links to my Codepen profile (I am a bit ashamed of it!) and when you take a look at it, you will see that I still have a long way to go. So I say — let’s do it together! I am making it my goal to finish all the Front End projects, and to make them my priority over anything else code-related I learn in the near future.

我在完成Free Code Camp前端课程之前就被录用了,但是我知道,这将帮助我成长为一名开发人员,以完成并完成这些项目。 在文章的此处,我放置了指向Codepen个人资料的链接(对此感到有些as愧!),当您查看它时,您会发现我还有很长的路要走。 所以我说-让我们一起做吧! 我的目标是完成所有前端项目,并使它们成为我在不久的将来所学的与代码相关的所有问题的优先事项。

This article is for me and for you — to make us push through the discomfort and optimize our learning so we can get to where we want to be faster!

本文适用于我和您-使我们克服不适并优化我们的学习,以便我们可以更快地到达目的地!

确保您已经掌握了基础知识 (Make sure you’ve covered your basics)

I strongly believe that at the very beginning of your learning, you definitely should use tutorials and interactive online resources to familiarize yourself with the syntax of HTML, CSS, JavaScript, to learn to think programmatically, and become comfortable with the essential, basic things.

我坚信,在学习之初,您绝对应该使用教程和交互式在线资源来熟悉HTML,CSS,JavaScript的语法,学习编程思维,并熟悉基本的基本知识。

An attempt to build projects right away without that knowledge would be too frustrating. Make sure you don’t spend too much time at this stage, as it is very easy to do.

在没有这些知识的情况下立即构建项目的尝试将令人沮丧。 确保您在此阶段不会花费太多时间,因为这很容易做到。

When I was learning HTML/CSS/JS, I would go and learn similar topics from different resources, thinking that somehow that would fill all the gaps in my knowledge. It did fill some gaps, but at some point I’d realized I was using these resources as a crutch to keep me from moving to new, more exciting, but a bit scarier stuff. Don’t get stuck in endless loops (probably a while loop? ;) of reviewing and revisiting the information you already know.

当我学习HTML / CSS / JS时,我会从不同的资源中学习类似的主题,以为可以某种方式填补我的知识空白。 它确实填补了一些空白,但是在某个时候,我意识到我正在利用这些资源作为拐杖,以防止我转向新的,更令人兴奋的但有点吓人的东西。 不要陷入无休止的循环(可能是while循环吗?;)中来查看和重新访问您已经知道的信息。

不要屈服于合理化 (Don’t give in to rationalization)

When you start creating projects, you will inevitably get stuck. If you stick with it, after a while you will overcome the barrier, but soon thereafter you will hit another one. It’s not an option, and it happens to everyone.

当您开始创建项目时,您将不可避免地陷入困境。 如果坚持下去,一段时间后您将克服障碍,但不久之后您将遇到另一个障碍。 这不是一个选择,它发生在每个人身上。

In such moments every part of our body is screaming — let’s do something else, let’s run from here, this is making me feel uncomfortable, I can tackle this later when I know more, I will get back to it, and so on. So we take a pause.

在这样的时刻,我们身体的每个部分都在尖叫-让我们做点其他事情,让我们从这里奔跑,这让我感到不舒服,等我知道更多以后再解决,我将继续下去,依此类推。 所以我们暂停一下。

However, we are afraid that our pause is going to stretch and we will just continue to code less and less and drop it. To not let that happen, but still keeping our “decision” to not work on the project, we decide that for now, we will work through some tutorial or an online course.

但是,我们担心暂停会延长,我们只会继续编写越来越少的代码并将其删除。 为了不让这种情况发生,但仍然保持我们的“决定”,该项目不工作,我们决定现在 ,我们将通过一些教程或在线课程。

It’s very easy to rationalize yourself out of creating. Nobody will tell you are not learning to code or criticize you in any way for doing that. You are the only one who can identify what’s really going on (fear, risk aversion, resistance) and make a decision to stick to working on the project.

使自己脱离创作很容易。 没有人会告诉你这样做并不是在学习编码或批评你。 您是唯一可以确定实际情况(恐惧,规避风险,抵制情绪)并做出决定继续从事该项目的人。

Trust me, all the walls will crumble if you bang on them long enough. Think of the people who, back in the day, were learning foreign languages by having two copies of the same book in their native and target languages. How did they do it? They just stuck with it long enough.

相信我,如果您在墙壁上撞击足够长的时间,所有墙壁都会崩溃。 想一想在过去,通过以母语和目标语言购买同一本书的两个副本来学习外语的人们。 他们是如何做到的呢? 他们只是坚持了足够长的时间。

不要从大想法开始 (Don’t start with your BIG IDEA)

It’s amazing that you already have it, but there are some other considerations at play here that may change your mind. The reason I bring this point up is that I keep hearing this a lot from people: “I want to build an online application that lets people create accounts for their pets, upload photos, track locations, and many other things. I’ve recently started learning to code, and I am already in the process of building out my idea.” This makes me go “Whoa whoa whoa”.

您已经拥有了它,真是太神奇了,但是这里有些其他考虑因素可能会改变您的想法。 我提出这一点的原因是,我不断听到人们的声音:“我想构建一个在线应用程序,使人们可以为他们的宠物创建帐户,上传照片,跟踪位置以及许多其他事情。 我最近开始学习编码,而且我已经在构想。” 这使我成为“哇哇哇”。

What I can easily see happening in this situation is that a person gets overcommitted to the idea, they start very enthusiastically and slowly build it out, but as the time goes, their learning can’t keep up with the project’s demands, and it feels dragging, always at the back of their mind, unfinished.

我很容易看到在这种情况下发生的事情是,一个人对这个想法变得过于专注,他们非常热情地开始并慢慢地将其构想,但是随着时间的流逝,他们的学习无法跟上项目的需求,并且感觉到拖延始终在他们的脑海中,未完成。

The worst that can happen in this situation is that the person will give up on the project and with it give up on coding as well.

在这种情况下可能发生的最糟糕的情况是,该人将放弃该项目,并且也放弃该代码。

I recommend starting with simple projects, and as you finish each of them, you will get a feeling of accomplishment, and a better understanding of how to structure a bigger project.

我建议从简单的项目开始,当您完成每个项目时,您将有成就感,并对如何构建更大的项目有更好的了解。

Imagine you were a writer and you had an idea for one major book of your life, and you’ve started writing it right away. You would probably have to rewrite the whole thing 3–4 times to get it to a decent level of quality, whereas you could start with writing small stories, get feedback, improve you writing, and approach your Moby Dick when you are truly ready.

假设您是一位作家,并且对自己人生中的一本主要著作有个主意,而您现在就开始写它。 您可能需要将整个内容重写3至4次才能达到不错的质量水平,而您可以从编写小故事开始,获取反馈,改进您的写作,并在真正准备就绪时接触Moby Dick。

在哪里获得项目创意 (Where to get ideas for projects)

The best place I know is Free Code Camp. That’s what I used after being completely stuck. In the beginning of my coding journey I would ask all the developers I knew (both offline and online) what should my first project be. I kid you not when I say (surprise surprise) they all said it should be a To-Do List app. I honestly think that if we keep making these To-Do list apps they will soon overcrowd the whole Internet.

我知道的最好的地方是免费代码营。 这就是我完全卡住后使用的方式。 在编码之旅的开始,我会问所有我认识的开发人员(离线和在线)应该是我的第一个项目是什么。 当我说(惊讶)时,我都不骗你,他们都说这应该是一个待办事项列表应用程序。 老实说,如果我们继续制作这些待办事项列表应用程序,它们很快就会使整个Internet拥挤。

Free Code Camp helped me in a sense that it provided a list of exciting projects, lined up in a sequence of increasing difficulty. Another great thing is that each of them is specifically designed to teach you a specific topic, for example: a Tribute Page will take your HTML/CSS skills to the test, Show the Local Weather will teach you to work with APIs, Build a JavaScript Calculator will, obviously, improve your JS skills, etc.

Free Code Camp从某种意义上帮助了我,它提供了一系列令人兴奋的项目,这些项目以难度越来越大的顺序排列。 另一个很棒的事情是,它们每个人都是专门为教您一个特定主题而设计的,例如:“ 致敬页面”将带您HTML / CSS技能进行测试,“ 展示当地天气”将教您使用API​​, 构建JavaScript显然, 计算器可以提高您的JS技能,等等。

It is the strongest starting point I know to get you building. For all of the projects you finish you can get feedback from the community, as well as see how others have approached them (after you’ve built yours, no cheating!) For extra inspiration you always can Google “list of cool code project ideas” or something of this sort.

我知道这是让您建立起来的最强起点。 对于您完成的所有项目,您都可以从社区中获得反馈,并了解其他人是如何对待他们的(在构建您的项目之后,不要作弊!)要获得更多的启发,您始终可以使用Google“出色的代码项目构想清单” ”之类的东西。

首先构建项目 (Structure your project first)

Before you start building, write out what you want it to do. Have specific user stories written, for example: “Users can play audio when they click on the audio player button”, “Users can log in using their email and password as well as just using Facebook”.

在开始构建之前,请写下您要执行的操作。 写下特定的用户故事,例如:“用户单击音频播放器按钮时可以播放音频”,“用户可以使用电子邮件和密码以及仅使用Facebook登录”。

Your code has to have a basic structure too, before you begin writing it. Write in pseudocode — basically just explain in words what each part of the application or the project code will do.

在开始编写代码之前,您的代码也必须具有基本结构。 用伪代码编写-基本上只是用文字解释应用程序或项目代码的每个部分将做什么。

Basic example:// When user opens a page, grab their location// Send a request to the weather API site with the location// Receive data// Display the degrees on the page// Change background image of the page to reflect the current weather

基本示例: //当用户打开页面时,抓住他们的位置//将请求发送到带有该位置的天气API站点//接收数据//在页面上显示度数///更改页面的背景图像以反映当前天气

Don’t overdo it, there is no need to write out every little thing your code will be doing in pseudocode first, but do have the main parts laid out.

不要过度使用它,不需要先写出您的代码将要用伪代码执行的每件事,但是要安排好主要部分。

The best example I can provide you with is: remember when you were writing essays in school, you had to structure them first, for instance, an intro with your opinion on the subject, 3 main points in support of your opinion, and a conclusion.

我可以为您提供的最佳示例是:记住在学校写论文时,您必须首先进行结构整理,例如,对主题的观点进行介绍,支持观点的3个要点以及结论。

This will help you anticipate potential problems and improve the quality of your code.

这将帮助您预测潜在的问题并提高代码质量。

可以卡住了 (It’s okay to get stuck)

As I mentioned before, it’s okay to get stuck. It doesn’t mean we are stupid, it just means we don’t know yet. You will always experience the moments of getting stuck: not just when you are learning, but at work too.

如前所述,卡住是可以的。 这并不意味着我们很愚蠢,只是意味着我们还不知道。 您将永远经历卡住的时刻:不仅在学习时,而且在工作中。

The sooner you get comfortable with being uncomfortable, the better. It will make your progress that much faster. Programming itself is creative problem solving. If there are no problems that are difficult for you to solve, it means you are playing it safe. Stop treading in the shallow water and take a dive!

越早感到不舒服就越好。 它将使您的进步更快。 编程本身就是创造性的问题解决方案。 如果没有您难以解决的问题,则说明您正在安全地进行游戏。 停止踩在浅水里潜水!

Most of all, and I will repeat this again, don’t think of yourself as stupid. I know it is easy to do in these moments. I often talk to people who went through the HTML/CSS/JS part of Free Code Camp with ease, knocking out 30–40 items a day, and then they get to basic and intermediate algorithms and find out that they can only do 1–5 a day, so they come to a conclusion that they got stuck and that they are stupid, not good enough, or not meant to be a developer.

最重要的是,我会再重复一遍,不要认为自己是愚蠢的。 我知道在这些时候很容易做到。 我经常和那些很容易经历Free Code CampHTML / CSS / JS部分的人交谈,每天淘汰30至40个项目,然后他们接触到基本算法和中间算法,发现他们只能做1个问题,每天5天,因此他们得出的结论是,他们陷入困境,而且很愚蠢,不够好或者不是要当开发人员。

I was the same way as well, I felt like there are people probably who just fly through this section and I felt bad about myself and my progress. Now I know better.

我也是如此,我觉得有些人可能只是飞过本节,我对自己和进步感到难过。 现在我知道了。

What I am trying to say here is you should learn to:

我想在这里说的是,您应该学会:

在你的头上 (Be in over your head)

You have to find that level of project difficulty that keeps you right in the middle between the “things that are easy” and the “things that are still too hard.”

您必须找到一定程度的项目难度,才能使您始终处在“容易的事情”与“仍然很难的事情”之间的中间。

I’ve talked a lot about the reasons why it’s dangerous to keep reviewing and relearning the same material (the easy things), so let’s talk about the opposite side of the equation: the difficult things.

我已经谈论了很多原因,因为不断审查和重新学习相同的材料(容易的事情)很危险,所以让我们来谈谈等式的反面:困难的事情。

Your general rule when approaching something difficult — something you think you might not be able to do —should be to try doing it first.

当您遇到困难时(您认为自己可能做不到的事情),您的一般规则应该是先尝试做。

Start from the basic structure, and try to code it. If you are stuck on the same thing for more than three days of focusing on it, drop it for a while and find similar — but a bit easier — things to do.

从基本结构开始,并尝试对其进行编码。 如果您专注于同一件事超过三天,请放下一会儿,然后找到类似的事情,但要容易一些。

What I find is that after I do that, my subconscious mind is still focused on solving the problem I got stuck on. I get these random ideas on how I might solve it when I am doing simple things — like taking a shower or washing the dishes — it suddenly hits me!

我发现这样做之后,我的潜意识仍然专注于解决我所坚持的问题。 当我做一些简单的事情(如洗个澡或洗碗)时,我对如何解决它有一些随机的想法,它突然打动了我!

Sometimes it works exactly that way. Sometimes it doesn’t. But the main advice here is — always pick something that makes you a little uncomfortable. Anything else is not worth your time.

有时,它就是这样工作的。 有时并非如此。 但是这里的主要建议是- 总是选择使您有些不舒服的东西 。 其他任何事情都不值得您花时间。

弹性 (Resilience)

I want to share with you one of my absolute favorite words:

我想与您分享我最喜欢的话之一:

Resilience — the capacity of a system to tolerate disturbance without collapsing, to withstand shocks, to rebuild itself when necessary, and to improve itself when possible.

弹性 —系统容忍干扰而不会崩溃,承受冲击,在必要时进行自我重建并在可能时进行自我改善的能力。

This is an amazing quality that you as a programmer (and as a person looking to succeed in life) should work on developing in yourself. Prepare for all the problems, all the challenges, all the criticisms of your work, of your designs, of your solutions, and anything else you might do even before they happen.

作为程序员(和希望在生活中取得成功的人),您应该在自己的发展中工作,这是一种了不起的品质。 为所有问题,所有挑战,对工作,设计,解决方案的所有批评,以及甚至在这些问题发生之前您可能做的任何其他事情做好准备。

Are you afraid of being on stage? Sign up to teach people in your local community the basics of web development, or sign up to speak at a conference/tech event.

你害怕在舞台上吗? 注册以向您当地社区的人们传授Web开发的基本知识,或者注册以在会议/技术活动上发言。

Are you disappointed in how your interview went — and that you didn’t get hired afterwards? Are you afraid that it’s too late to start learning to code? Aren’t happy with the project you just finished?

您对面试的方式感到失望吗?之后又没有被录用吗? 您担心开始学习编码为时已晚吗? 对刚刚完成的项目不满意吗?

Reframe all of this: what can you learn from the experience to make it better next time? How can you turn your weaknesses into strengths?

重新构想所有这些 :您可以从经验中学到什么,以使下次更好? 您如何将自己的弱点变成优点?

For example, you might worry that you are coming to coding too late after having been on another career path for X number of years. Reframe that in your mind by thinking about a different perspective and maturity you will be bringing into the industry that desperately needs more mature people (psychologically) and more diverse backgrounds? You are making the tech industry richer by the very decision to get into it!

例如,您可能会担心自己在X生涯的另一条职业道路上走了太晚了。 通过考虑不同的观点和成熟度来重新构想,您将进入一个急需更成熟的人(心理上)和更多样化的背景的行业吗? 您正决定加入该行业,从而使科技行业变得更加富有!

If you hear a voice within you say ‘you cannot paint,’ then by all means paint, and that voice will be silenced. — Vincent Van Gogh

如果您听到自己的声音说“您无法绘画”,则一定会绘画,并且该声音将被静音。 — 文森特·梵高

What I can recommend for increasing your resilience is these three books:

我建议您提高弹性的这三本书:

  1. “Letters From a Stoic” by Seneca

    塞内卡的《信徒的信》

  2. “The Obstacle is the Way” by Ryan Holiday

    Ryan Holiday的“障碍就是路”

  3. “Turning Pro” by Steven Pressfield

    史蒂文·普雷斯菲尔德(Steven Pressfield)的“ Turning Pro”

设定每日限时目标 (Set a daily time-bound goal)

In order to progress faster, you should work on your projects every day. That part is just common sense. However, there are some additional considerations that you should keep in mind.

为了加快进度,您应该每天处理项目。 那部分只是常识。 但是,还有一些其他注意事项。

Instead of setting an outcome goal (“I will finish this feature or that part today”), set a definite period of time which you will spend coding every day. Don’t make it more than 30 minutes or an hour per day.

而不是设置结果目标(“我今天将完成此功能或该部分”),而是设置一个确定的时间段,您每天将花费在编码上。 每天不要超过30分钟或一个小时。

I know you want to make a commitment of coding for 3 hours a day and try to stick to it. This works, but only for so long, until life comes into play. With a reasonable time limit — like 30 minutes a day — you will always know that it can be done, and that you will always have half an hour a day to spare on coding, especially if your main goal is to learn to code. You will even find yourself coding more on certain days, and that will feel great, because you will already have fulfilled your quota for that day.

我知道您希望每天进行3个小时的编码,并坚持执行。 这行得通,但只能持续这么长时间,直到生命发挥作用。 在合理的时间限制(例如每天30分钟)下,您将永远知道可以做到,而且每天总是有半小时的时间来节省编码时间,特别是如果您的主要目标是学习编码的话。 您甚至会发现自己在某些日子编码更多,那感觉很好,因为您已经满足了当日的配额。

This time limit is more of a psychological trick that works because of the way our brains are wired. Remember that time you had a big project that you needed to start, but you kept delaying and delaying until you just had enough time to finish it before the deadline? You did OK, but you were stressed out all the time prior to that. Then add to this the fact that there is no one to set you a deadline on becoming a developer. That is, no one, but you.

这个时间限制更像是一种有效的心理技巧,因为我们的大脑相互连接。 还记得那个时间,您有一个大项目需要开始,但是您一直在拖延,直到您有足够的时间在截止日期之前完成它为止? 您做的还不错,但是在此之前,您一直都很紧张。 再加上没有人为您设定成为开发人员的最后期限这一事实。 也就是说,没有人,只有你。

What happens when we set an outcome goal is that we can’t estimate the time it’s going to take to finish that or this feature. And more often than not, we end up not accomplishing what we’ve set out to do for the day. That makes us feel terrible, and decreases the desire to sit down and code the next day.

当我们设定结果目标时会发生什么,就是我们无法估计完成该功能或完成此功能所需的时间。 而且,大多数情况下,我们最终没有完成我们当天要完成的工作。 这使我们感到恐惧,并降低了第二天坐下来编码的欲望。

With a time-limited daily goal, you will make progress every day. Who cares if you haven’t finished that specific feature you wanted to wrap up today? You’ve made progress! You showed up. That’s what gets you ahead.

有了有时间限制的每日目标,您将每天进步。 谁在乎您是否还没有完成您今天想总结的特定功能? 您已经取得了进步! 你出现了。 那就是让您前进的动力。

Another great bonus is once you sit down and start coding, ideas and solutions will start flowing, as if out of nowhere (similar to writing an article, huh? :). It will be much easier to get yourself to sit down and code once you get unrealistic expectations and fears out of the way.

另一个很大的好处是,一旦您坐下来开始编码,想法和解决方案就会像无所不在地开始流动(类似于撰写文章,对吧?:)。 一旦获得不切实际的期望和恐惧,让自己坐下来编码就容易得多。

复制代码浪费时间 (Copying code is wasting time)

During the process of building a project, either at the very beginning — when you don’t know where to start from, or at a later stage when you hit a problem you can’t easily solve — you will experience a strong desire to look at the source code of the project to see how it is done. You will rationalize that it will make you instantly understand the code, and that means you’ve learnt and assimilated it. Far from it.

在构建项目的过程中,无论是从一开始-当您不知道从何开始时,要么在后期遇到一个您无法轻松解决的问题-都会有强烈的外观要求在项目的源代码中查看如何完成。 您将使它合理化,它将使您立即理解代码,这意味着您已经学习并吸收了它。 离得很远。

Don’t copy whole projects and customize them. Don’t take parts of the code. Don’t even take pieces of it.

不要复制整个项目并对其进行自定义。 不要使用部分代码。 甚至不要收拾它。

With projects — don’t look at the code in the first place. With the stuff that you looked up on Stack Overflow and such, look at it, analyze, understand, but then code it yourself from scratch. You will see that it’s difficult to write it yourself even after you just saw the whole thing.

对于项目-首先不要看代码。 使用您在Stack Overflow上查找的内容,进行查看,分析,理解,然后自己重​​新编写代码。 您会发现,即使您只看了整本书,也很难自己编写。

This is how deliberate practice is different from regular practice (repetition). The 10,000 rule’s main catch is that the practice has to be deliberate. Following templates and ready-made solutions will not take you anywhere. Someone probably would be able to write a Python script that will replace you in whatever it is you are doing, if you go that way. Pay attention to what seems difficult for you.

这就是故意练习与常规练习(重复)的不同之处。 10,000条规则的主要内容是必须谨慎行事。 遵循模板和现成的解决方案将不会带您到任何地方。 如果您这样做的话,也许有人可以编写一个Python脚本来代替您的工作。 注意对您来说似乎困难的事情。

Another off-topic idea is that if you struggle with a particular topic, try teaching it to others, or just even explaining it to them the way you understand it. Results will follow for both you and the learners.

另一个偏离主题的想法是,如果您在某个特定主题上遇到困难,请尝试将其教给其他人,甚至只是以您理解的方式向他们解释。 结果将为您和学习者所遵循。

Copying code will rob you of the opportunity to learn to do it yourself, and it is in no way better than going through a tutorial. Yes, the solution is right there. Yes, you can take it if you want to. But what’s the point? Are you trying to impress someone with the speed with which you’ve built the project? Or are you trying to avoid the hard problems that will take some time to solve?

复制代码将使您失去自己学习的机会,而且这绝对比学习教程更好。 是的,解决方案就在那里。 是的,您可以根据需要服用。 但是有什么意义呢? 您是否要以构建项目的速度打动别人? 还是您要避免需要一些时间才能解决的难题?

Whatever your reason might be — it is just another way back into the warm comfort from which we are trying to escape from. Do the opposite. Run toward the discomfort.

无论您是什么原因,这都是回到我们试图摆脱的温暖舒适的另一种方式。 相反。 奔向不适。

The only time it’s OK to peek into other people’s code is after you’ve finished the project. Then look as much as you want, analyze it, and learn from it.

只能在完成项目后才能浏览其他人的代码。 然后根据需要进行查找,分析并从中学习。

Every difficult problem you solve makes you grow by leaps and bounds.

您解决的每一个难题都会使您跨越式发展。

不要分散精力 (Don’t spread your efforts around)

I am very guilty of this, and that’s actually a piece of advice I am writing more for myself than for anybody else (sorry!). When you start working on a project and hit the walls that I mentioned, you will be tempted to put that project on hold and start a new one.

我对此非常内,这实际上是我为自己而不是其他任何人写的一条建议(对不起!)。 当您开始一个项目并碰到我提到的墙时,您会很想把该项目搁置并开始一个新的项目。

It always feels great in the beginning, until you hit a wall with the second project. Then you will have two unfinished projects on your hands. This will repeat again and again, if you let it.

开始时总是感觉很好,直到您在第二个项目上碰壁。 然后,您将手上有两个未完成的项目。 如果允许的话,它将一次又一次地重复。

The solution here is to limit yourself to 2 projects at a time. Once you get stuck on one, spend some time figuring it out. But if it seems uncrackable at the moment, just move to the other project you’ve got. The key thing is not to start a third one, because it’s a slippery slope from there.

这里的解决方案是一次将自己限制为两个项目。 一旦陷入困境,就花点时间弄清楚它。 但是,如果目前看来无法破解,只需移至您拥有的其他项目即可。 关键不是开始第三个,因为从那里开始是一个湿滑的斜坡。

You should always try to do anything possible to make yourself stay on the path of learning. If you feel fed up, or are just bored with what you’re currently doing, take a little break, adjust, and get back to it. Don’t give up on coding altogether.

您应该始终尽一切可能使自己走在学习的道路上。 如果您觉得受够了,或者对当前的工作感到无聊,请稍作休息,进行调整,然后重新开始。 不要完全放弃编码。

This is why I always recommend having a little wiggle room, be it a temporary distraction in a form of a different learning resource (limited to a week), or, in this case, two projects instead of one.

这就是为什么我总是建议您留出一些摆动的空间,以一种暂时的分散注意力的方式,即以不同的学习资源的形式(限制为一周),或者在这种情况下,是两个项目而不是一个。

您的投资组合将使您被录用 (Your portfolio is what will get you hired)

It’s very difficult for a hiring manager or for an engineer to assess your skills based solely on what you’ve written in your resume. “I know JavaScript! (and have 4 years of experience).” “Show me!” (I’ve really got to stop with the Matrix references).

对于招聘经理或工程师来说,仅根据您在简历中所写的内容来评估您的技能非常困难。 “我知道JavaScript! (并拥有4年的经验)。” “给我看看!” (我真的必须停止使用Matrix引用)。

All of the projects you build and put online comprise your ultimate live resume. Anyone can look at it and be convinced that you actually know what you are doing.

您构建并上线的所有项目都将构成您的最终实时简历。 任何人都可以查看它,并确信您实际上知道自己在做什么。

Don’t get scared though, it doesn’t mean your code should be ideal for them to even consider you. These projects will help whoever is tasked with interviewing you to properly assess your skill level.

不过请不要害怕,这并不意味着您的代码对于他们甚至考虑您来说都是理想的。 这些项目将帮助负责采访您的任何人以正确评估您的技能水平。

You won’t have to experience interviews way above your level because some HR person have found a particular set of keywords on your resume. Your employer’s expectations will be more on-par with your actual abilities.

您无需经历比您的水平更高的面试,因为某些HR人员在您的简历中找到了一组特定的关键字。 您的雇主的期望将与您的实际能力更加一致。

The positive benefits of having your work online include:

在线工作的积极好处包括:

  • employers see that you know what you are doing

    老板看到你知道自己在做什么
  • they see that you are constantly working on improving your skills

    他们看到您正在不断提高自己的技能
  • they see that you are, in fact, a developer, and that you are brave enough to put your work online for everyone to see.

    他们看到您实际上是一名开发人员,并且您有足够的勇气将您的工作放到网上供所有人查看。

From my personal experience, and from what I keep hearing from the people at our Toronto Free Code Camp group is that the most important factor in finding a coding job has been their portfolio of projects.

根据我的个人经验,以及我不断听到的多伦多自由代码训练营小组成员的信息,找到编码工作最重要的因素是他们的项目组合。

您在面试中会做得更好 (You will do better at interviews)

At interviews, you are likely to get a real life little web app or a page to build, or to be given a problem to solve.

在面试时,您可能会得到一个现实生活中的小型Web应用程序或要构建的页面,或者遇到需要解决的问题。

Often with these problems, the person who is doing the hiring is looking to see how you think through solving a problem. They don’t always want you to produce the ideal solution. Sometimes they give problems that can’t be solved just to see what you will do. You will get a lot of practice of that kind with projects: each of them will be filled with these mini-problems.

通常存在这些问题的是,正在招聘的人希望通过解决问题来了解您的想法。 他们并不总是希望您提供理想的解决方案。 有时,他们会给出无法解决的问题,这些只是看您将要做什么。 您将在项目中得到很多类似的实践:每个项目都充满了这些小问题。

As for the real-life stuff that you can be given to build, it can and will vary. Here is something I had to build during the interview for my current position. I know the code isn’t that great, but this should give you an idea of what to expect. The only reason I was able to finish it on my interview day was because I had previous experience building things like a weather app and a calculator through Free Code Camp.

至于您可以构建的现实生活中的东西,它可能并且会有所不同。 这是我在面试期间必须为我目前的职位建立的东西 。 我知道代码不是那么好,但是这应该使您对期望有一个了解。 我能够在面试当天完成这项任务的唯一原因是因为我以前在Free Code Camp上构建天气应用程序和计算器之类的经验。

您将识别出您真正的知识差距 (You will identify the real gaps in your knowledge)

Here is where the tutorials and the like play a trick on you. They make you feel that when you’ve finished them, you’ve covered everything you need to know about the subject. But the moment you try to build something on your own, you’ll instantly get stuck — often on very simple stuff.

在这里,这些教程之类的东西会在您身上发挥作用。 他们使您感到,当您完成它们时,就已经涵盖了您需要了解的有关该主题的所有内容。 但是,当您尝试自己构建某些内容时,您会立即陷入困境-通常是在非常简单的内容上。

Why is that? Because the bits and pieces of information given to you in a tutorial were chosen by someone who created it using their own understanding of what people might be looking for. And because it is simply impossible to cover everything in a tutorial.

这是为什么? 因为在教程中提供给您的零碎信息是由创建者根据自己对人们可能寻找的内容的理解而选择的。 并且因为完全不可能在教程中涵盖所有内容。

The only way to truly see what knowledge you are lacking is to keep discovering the gaps in it as you go. You don’t know what you don’t know. So the process is: go, hit a wall, work through the problem, keep going, and so on.

真正了解您所缺少的知识的唯一方法是在您前进的过程中不断发现其中的差距。 你不知道你不知道什么。 所以过程是:走,撞墙,解决问题,继续前进,等等。

每个新项目都会吓到您。 该怎么办? (Every new project scares you. What to do?)

I don’t know about you, but with me it happens all the time. I finish a project and feel great about myself and my skills. Then the minute I read the user stories for my next project, I become paralyzed by fear.

我不认识你,但与我同在的事无时无刻不在发生。 我完成了一个项目,对自己和我的技能感到非常满意。 然后,当我阅读下一个项目的用户故事时,我就因为恐惧而瘫痪了。

I find myself thinking — how can I even start? What should I do first? How was I able to finish the previous one? I know nothing! *Toggle Full Panic Mode*

我发现自己在想-我什至可以开始吗? 我应该先做什么? 我怎么能完成上一个? 我什么都不知道! *切换全恐慌模式*

There are a couple of techniques that I use when I get into that situation:

遇到这种情况时,我会使用两种技术:

First of all, take a look at all the previous projects you’ve built. They were also hugely intimidating. Somehow, you found a way to solve the problems and build these projects out.

首先,查看您之前构建的所有项目。 他们也非常吓人。 您以某种方式找到了解决问题并扩展这些项目的方法。

Looking back on your past successes when you’re in a low self-confidence moment is a powerful method to pull yourself back together, and to get ready for a new challenge.

在自信低落的时刻回顾过去的成功是一种强大的方法,可以使自己重新团结起来,并为迎接新的挑战做好准备。

The key is to look at the project as a bundle of tiny problems to solve. We only get scared because we see the whole iceberg in its entirety, and it’s coming towards us. However, if you use a technique we talked about before — breaking the project down to a basic structure — it will be very easy to get started.

关键是将项目视为一堆需要解决的小问题。 我们只会害怕,因为我们看到了整个冰山的全部,并且正在向我们逼近。 但是,如果您使用我们之前讨论的技术(将项目分解为基本结构),则将非常容易上手。

忘记完美主义 (Forget perfectionism)

You are not doing this to create some sort of an ideal, amazing project with the code so beautiful it will make experienced developers cry.

您并不是要用这样漂亮的代码来创建某种理想的,令人惊叹的项目,而不是让有经验的开发人员哭泣。

The goal is to do what’s necessary: fulfill the user stories that you have been given (or have created for yourself) so you can learn the mechanics of how a certain coding technique/language feature/framework works, be it APIs, functions, promises, etc.

目标是做必要的事情:兑现您已经获得(或为自己创建)的用户故事,以便您可以学习某种编码技术/语言功能/框架的工作原理,包括API,功能,承诺等

Then do as much as you can to improve the project — both design, functionality and the quality of code.

然后,尽您所能改善项目-设计,功能和代码质量。

But at some point, allow yourself to stop. It’s not an international art competition. It’s you and the subject you want to learn. Don’t let the subject scare you so much you can’t even start.

但是在某个时候,让自己停下来。 这不是国际艺术比赛。 是您和您想学习的科目。 不要让这个主题吓到你,甚至不能开始。

People who have an extreme need to do everything perfectly are usually the people who get absolutely nothing done.

极端需要完美地完成所有工作的人通常是绝对没有完成任何事情的人。

I wouldn’t be able to start on this article, for example, if I spent too much time worrying of whether it would be good or bad, let alone perfect. I knew this was an important topic that a lot of people are interested in, and that I needed to write about what I’ve discovered so far, in hopes that it would help someone and make their coding journey easy.

例如,如果我花太多时间担心它的好坏,那我将无从谈起。更不用说完美了。 我知道这是很多人感兴趣的重要主题,我需要写一下到目前为止我发现的内容,希望它对某人有帮助,并使他们的编码之旅变得容易。

If everything had to be perfect, would there be any place for sketches in art? Imperfections are what makes them unique, after all.

如果一切都必须是完美的,那么在艺术素描中会存在任何地方吗? 毕竟,不完美是使它们与众不同的原因。

让您的创造力流动! (Let your creativity flow!)

Don’t feel like you have to make your project exactly the same as you see on the page, if you are working from a description and an example you found online. Programming is as much art as it is science.

如果您正在从网上找到的描述和示例中进行工作,则不必觉得您的项目必须与页面上显示的完全相同。 编程既是艺术,又是科学。

Take this point even more seriously if you are doing front end.

如果您要进行前端处理,请更认真地考虑这一点。

If you are making a Random Quote Machine, let the quotes be from your favorite character. If you are making a game, let the sounds and design be whatever you want them to be!

如果您要制造随机报价机 ,则使报价来自您喜欢的角色。 如果您要制作游戏,请让声音和设计随心所欲!

Be weird. Let all of the quirks and unique differences of your personality out. Unleash your true self.

奇怪 消除所有个性上的怪癖和独特之处。 释放你的真实自我。

Focus on fulfilling all the user stories, but everything else is completely up to you.

专注于满足所有用户需求,但其他一切完全取决于您。

Here is the Zen Calculator that I’ve built, as an example of what I am talking about. Of course, you can get much more creative. The original is here, though it’s already been updated. The version I’ve worked from reminded more of an iPhone calculator app.

这是我构建的Zen计算器 ,以此作为我正在谈论的示例。 当然,您可以发挥更大的创造力。 原始文件在这里 ,尽管它已被更新。 我使用的版本让我想起了iPhone计算器应用程序。

The web — and programming in general — allow us that freedom. Never hold yourself back. Be whoever you want to be, do whatever you want to do, and let that spill to every part of your life, including coding.

网络以及一般的编程使我们拥有了这种自由。 永远不要退缩。 做自己想做的人,做任何想做的事,然后将其扩散到您生活的每个部分,包括编码。

Here is something for inspiration, and to illustrate what I mean:

这是一些启发,并说明了我的意思:

Things only get their flavor when you add personality to them! Compare hyper-realistic painters and Picasso. Could you tell hyper-realistic painters apart just by looking at their work? I highly doubt it. Yet you would know a Picasso painting right away. Makes you think.

当您添加个性时,事物才有其味道! 比较超现实主义画家和毕加索。 您能仅通过看他们的作品来区分超现实主义画家吗? 我对此表示高度怀疑。 但是您马上就会知道一幅毕加索的画。 让你思考。

偶尔让自己分心 (Give in to a distraction — once in a while)

Sometimes it’s okay to take a little break from the projects, but for that you have to have some rules.

有时可以从项目中稍微休息一下,但是为此您必须有一些规则。

Ideally, your distraction has to take less than a week, be it a course or a tutorial, or anything else. It should be a specific subject you want to learn, preferably connected to something you need to know to continue refining your project.

理想情况下, 您的分心时间必须少于一周 ,无论是课程,教程还是其他任何事情。 它应该是您要学习的特定主题,最好与您需要了解的东西相关,以继续完善您的项目。

Otherwise, it’s completely fine with me if you are reading programming books or watching coding videos during your commute, or while waiting somewhere with no access to the internet.

否则,如果您在上下班途中或在无法访问互联网的地方阅读编程书籍或观看编码视频,对我来说完全可以。

Just make sure that when you are back at your desk (or whichever place you code from — could be a bed or a couch, right?), you are back to the real stuff. It’s your Practice.

只要确保当您回到办公桌前(或您从哪个位置进行编码-可以是床还是沙发上,对不对?),您就可以回到真实的状态。 这是你的实践

获取有关您的项目的反馈 (Get feedback on your projects)

In addition to helping you fill the gaps in your knowledge, projects also give you an artifact which you can share with the world, soliciting constructive feedback.

除了帮助您填补知识空白之外,项目还为您提供了一个可以与世界共享的工件,并征求了建设性的反馈。

Be careful whom you share your projects with. Don’t let the over-critical people in. Try to find real developers, or people who are also still learning, but are already a little more advanced than you are. Ask them to review your code and provide their feedback. What you can improve? What works? What doesn’t?

注意与谁共享项目。 不要让过于挑剔的人进入。尝试找到真正的开发人员,或者仍然在学习但已经比您先进的人。 要求他们查看您的代码并提供反馈。 您可以改善什么? 什么有效? 没什么

This will further accelerate your learning, because these kind people will help you uncover insights you wouldn’t have otherwise found yourself.

这将进一步加快您的学习速度,因为这些善良的人将帮助您发掘原本不会发现的见解。

I hope I’ve convinced you by now that building live projects is the most effective way to go about learning to code.

我希望到目前为止,我已经说服了您,构建活动项目是学习编码的最有效方法。

I’ve personally noticed that the periods when I build — as opposed to watch, read, or go through online courses — are the periods when I learn the most. I hope your experience will be the same as mine.

我个人已经注意到,与学习,阅读或学习在线课程相反,我学习的时间段是我学习最多的时间段。 希望您的经历和我一样。

Good luck! Feel free to add your advice in the comments to this article, and share your projects here as well.

祝好运! 随时在本文的评论中添加您的建议,并在此处共享您的项目。

Random note: I wrote this article while listening to the Tron: Legacy Soundtrack.

随机注意:我在听《 Tron:旧版原声带 》时写了这篇文章。

If you liked this article, please click the ❤ to recommend it here on Medium. It would mean the world to me! :)

如果您喜欢这篇文章, 请单击 ❤以在Medium中推荐它。 这对我来说意味着世界! :)

翻译自: https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645/

实习一年算工作一年吗?

你可能感兴趣的:(编程语言,人工智能,java,python,大数据)