小明一家过桥,过桥时是黑夜
by Marilyn Magnusen
玛丽莲·马格努森(Marilyn Magnusen)
过桥:如何过渡到软件开发的职业 (Crossing The Bridge: How to Transition into a Career in Software Development)
I’ve been learning how to code for some time, mostly as a hobby in the evenings and weekends. It went from a couple of hours a month to replacing my Sudoku addiction.
我已经学习了一段时间的编码,主要是晚上和周末的业余爱好。 从一个月的几个小时到取代我的数独瘾。
One Saturday, I was sitting in our office (I used to go in and make use of the comfy sofas, unlimited tea, and stable wifi). I had one of those moments when you look at yourself from the outside and realized that instead of doing normal things on a hot summer afternoon, I was alone, inside an office, glued to my computer.
一个星期六,我坐在我们的办公室里(我曾经进去使用舒适的沙发,无限量的茶水和稳定的wifi)。 当您从外面看着自己的那一刻,我感到其中的一刻,我意识到,除了在炎热的夏日午后做正常的事情外,我独自一人在办公室里,粘在我的电脑上。
It was then that I decided to make the leap to become a full-time Developer. I’d never had something I enjoyed and could market as a skill in the workplace.
那时,我决定飞跃成为一名全职开发人员。 我从未有过喜欢的东西,可以在职场上作为一种技能来推销。
After a few months of juggling learning and work, I left my job at a software start-up to focus on learning full-time. People around me said how brave I was for pursuing my dream, but the looks on their faces plainly said I was crazy to give everything up for an unknown. I’d be lying if I said I wasn’t **very** scared.
经过几个月的学习和工作,我离开了一家软件初创公司,专注于全日制学习。 我周围的人说我为追求梦想而勇敢,但是他们脸上的表情清楚地表明我为放弃未知而疯狂。 如果我说我不是“非常”害怕,那我会撒谎。
The plus side is that taking away your parachute suddenly focuses you. It’s not a case of “this might work,” it’s a case of “this has to work.” There was no plan B.
好的一面是,带走您的降落伞会突然使您集中注意力。 这不是“可能有效”的情况,而是“这必须有效”的情况。 没有计划B。
It’s taken just over three months to accept my first role as a Software Developer.
接受我作为软件开发人员的第一个角色仅花了三个多月的时间。
These are some of the things I wish I’d known before, and will hopefully help anyone looking to embark on a similar journey.
这些是我以前希望知道的一些事情,希望对希望踏上类似旅程的任何人有所帮助。
知道你为什么 (Know your why)
Why do you want this? This has to be the most important question. Sure, everyone knows about unicorns, IPOs, unlimited beer and an array of perks. This isn’t enough to keep you going when you’ve been staring at the same error for the last 15 minutes or hit a road-block and have to find another solution.
你为什么要这个? 这必须是最重要的问题。 当然,每个人都知道独角兽,首次公开募股,无限量啤酒和各种福利。 当您在过去15分钟内盯着同一错误或遇到障碍并不得不寻找其他解决方案时,这不足以使您继续前进。
What’s the ultimate end-game? Do you eventually want to run your own company? Or freelance? Or head-up a Development team? Do you want to get more cats online? (Which is totally fine). Or do you want to change the world? Whatever your motivation, make sure you really understand it and hold onto it for dear life.
最终的终局是什么? 您最终想经营自己的公司吗? 还是自由职业者? 还是领导开发团队? 您想在线获得更多猫吗? (完全可以)。 还是您想改变世界? 无论您的动机是什么,请确保您能真正理解它并坚持使用它来维持生命。
做工作 (Do the work)
The great thing about software is that it’s mostly meritocratic. It matters less and less what your academic qualifications are, (sensible) employers only care if you have the right skills or the ability to learn those skills on the job. Use this to your advantage.
关于软件的伟大之处在于,它基本上是有功的。 您的学历是什么越来越重要,(明智的)雇主只在乎您是否具有正确的技能或在工作中学习这些技能的能力。 利用这个优势。
Regardless of whether you choose front-end or back-end, take the time to really understand the core concepts. Focus on learning the vanilla language instead of relying on frameworks. A solid understanding of something like JavaScript will equip you to learn any JavaScript framework, but the reverse isn’t true. You’ll be caught with your pants down when it’s time to debug and you don’t know if it’s the framework or your code causing the issue.
无论您选择前端还是后端,都要花点时间真正理解核心概念。 专注于学习香草语言,而不是依赖框架。 对JavaScript之类的扎实了解将使您学习任何JavaScript框架,但事实并非如此。 在进行调试时,您会陷入困境,而且您不知道是由框架还是由代码引起的。
展示你的作品 (Show your work)
You must have work to show. If you come from a computer science background, you have a qualification to show what you’ve done. If you don’t have any formal qualifications, this is even more important. Just turning up to ask for a job isn’t going to cut it. You need to be able to show the code you have written, (ideally something more substantial than a tutorial on a blog).
您必须要进行展示。 如果您具有计算机科学背景,那么您就有资格证明自己的成就。 如果您没有任何正式资格,这一点就更为重要。 只是要求工作并不会减少工作。 您需要能够显示您编写的代码(理想情况是比博客教程要重要的东西)。
Show how you’ve tackled real problems and the path you took to get to your end solution. You don’t need to have dozens of projects — quality is more important than quantity. The first interview I landed was based purely on what they’d seen from two projects on my GIT. It was a steaming pile, but I could explain every line, what it did, and why I took certain decisions.
展示您如何解决实际问题以及获得最终解决方案的方法。 您不需要有数十个项目-质量比数量更重要。 我进行的第一次采访完全基于他们在我的GIT上的两个项目中看到的内容。 那是一堆蒸腾的东西,但是我可以解释每条线,它做了什么,以及为什么我做出某些决定。
不要害怕面试 (Don’t be afraid of interviews)
The only way to get better at interviews is to do interviews.
使面试更好的唯一方法是进行面试。
This is a piece of advice I got from a Developer friend of mine at the beginning. It sounds like a chicken-and-egg situation, but you can make a start by practicing at every opportunity.
这是我一开始从我的开发人员朋友那里得到的一条建议。 这听起来像个鸡和蛋的情况,但是您可以通过每一个机会进行练习来开始。
There are services like interviewing.io which will help you practice. Talk to people you know and look up common interview questions for Junior Developers online. There are even YouTube videos which will help.
有喜欢的服务interviewing.io这将帮助你练习。 与您认识的人交谈,并在线查找初级开发人员的常见面试问题。 甚至还有YouTube视频也会有所帮助。
You won’t be expected to do a white-board test as a junior, but you will be asked to explain concepts or address different scenarios in your own words. They aren’t trying to catch you out, they’re giving you the opportunity to shine and show what you do know. If they ask you about something you don’t know, make a note. (Yes, I actually kept a notepad/my laptop with me during interviews to jot things down).
初中阶段不会要求您进行白板测试,但是会要求您用自己的语言解释概念或解决不同的情况。 他们并不是想赶上您,而是给您机会发光并展示您的知识。 如果他们向您询问您不知道的事情,请记录下来。 (是的,我实际上在面试时随身带了一个记事本/笔记本电脑以记下事情)。
At the end of the interview, ask them about some of the things you weren’t quite sure of. This will show you’re keen to address gaps in your knowledge and help your own understanding. The best interviews I’ve come away from have always left me knowing more than I went in with.
面试结束时,向他们询问一些您不太确定的事情。 这将表明您渴望解决知识上的不足并帮助自己理解。 我所经历的最好的面试总是让我对自己的了解比以往更多。
这是两条路 (It’s a two-way street)
You should be assessing them as they are assessing you. If you were to work there, would you be happy and successful? How clearly written is the job spec? Are your emails replied to in a timely manner? Are they happy to answer questions, or are they defensive on certain topics? Do the people in the office seem happy to be there, or do they have one eye on the clock?
您应该在评估他们的同时评估他们。 如果您要在那里工作,您会幸福快乐吗? 工作规格书写得有多清晰? 您的电子邮件是否得到及时回复? 他们乐于回答问题,还是在某些主题上具有防御性? 办公室里的人似乎很乐意呆在那儿,或者他们只顾时钟吗?
The aim is not simply to get a job, it’s to get a job which you’ll love, which will allow you to grow and get better at writing software. I ended up declining an offer to move onto the second stage of one interview process because I didn’t think they could support me as a junior. Three years + and it probably would have been fine, but I didn’t get the impression they’d have the time or resources to support my learning as a new Developer. These are the type of things you should take into consideration.
目的不仅仅是获得一份工作,而是找到一份自己喜欢的工作,这将使您成长并在编写软件方面变得更好。 我最终拒绝了进入一个面试过程第二阶段的提议,因为我认为他们不能支持我作为初中生。 三年以上,可能还不错,但是我没有得到他们有时间或资源来支持我作为新开发人员学习的印象。 这些是您应考虑的类型。
寻求反馈 (Ask for feedback)
Ask for feedback at every opportunity. You’re unlikely to get feedback just for submitting an application, but you should be aiming to get feedback on every interview. This will help plug your weaknesses. Write an email asking about them if they don’t offer any up. When you finally land your first role, you’ll need constant feedback to improve, so this is a good habit to get into at the start.
寻求每一次机会的反馈。 您不太可能仅仅因为提交申请而获得反馈,但是您应该着眼于每次面试时获得反馈。 这将有助于弥补您的弱点。 写一封电子邮件,询问他们是否不提供任何服务。 当您最终担任第一个角色时,您将需要不断的反馈以进行改进,因此这是一开始要养成的良好习惯。
We seem to be genetically programmed to be adverse to any type of social interaction involving potential awkwardness/negativity. This type of thinking will kill your career and your growth. You wouldn’t expect to merge without a code review, so how can you expect yourself to come out the other end without going through a similar review and feedback process?
我们似乎在基因上被编程为不利于涉及潜在尴尬/消极情绪的任何类型的社会互动。 这种思维将杀死您的职业和成长。 如果没有代码审查,您不会期望合并,那么,如何不经过类似的审查和反馈过程又能期待自己走到另一头呢?
了解如何使用现有代码库。 (Learn how to work with an existing codebase.)
This one is particularly painful to talk about, but I do so in the spirit of helping others.
谈论这一点特别痛苦,但我本着帮助他人的精神这样做。
One of my interviews was with an amazing agency who was doing work for brands I could only dream of. They mentioned that they work a lot with SASS so I spent hours reading up and practicing.
我的采访之一是与一家出色的代理商合作,该代理商正在为我梦dream以求的品牌工作。 他们提到他们与SASS一起工作很多,所以我花了数小时来阅读和练习。
When I got to the interview, the code challenge was fairly simple: create a feature within an existing codebase. This may sound crazy, but editing code others have created requires a different skill-set to editing your own code. It’s like opening a book that’s half-written and trying to finish the story yourself.
在接受采访时,代码挑战相当简单:在现有代码库中创建功能。 这听起来很疯狂,但是编辑其他人创建的代码需要不同的技能才能编辑自己的代码。 就像打开一本半写的书,然后尝试自己完成故事一样。
I realized that the first time I had ever worked with code someone else had written was there and then at the interview, and it caught me off-guard to switch gears. It’s like that nightmare you have when you have to take an English exam and realize you’ve studied the wrong book and wake up in a sweat. But instead of waking up, you have an hour where you have to type something. Anything. There’s literally no way out, not even a fire-escape or a poorly constructed window.
我意识到,我第一次有其他人编写的代码曾在那儿,然后在面试时发现,这让我措手不及。 就像当您必须参加英语考试并意识到自己学习了错误的书并大汗淋漓时所遇到的噩梦。 但是除了醒来,您还有一个小时必须输入一些内容 。 什么都可以 。 字面上根本没有出路,甚至没有逃生通道或构造不良的窗户。
Try and practice working with existing code as much as possible. Do hackathons, take part in open-source projects, or even get together with any other programmers you know and find something small to work on. The irony is that after I’d gotten back and dried my eyes it was fairly easy to create from scratch, I just couldn’t get my head around something that had already been started.
尝试并练习尽可能多地使用现有代码。 进行黑客马拉松,参加开源项目,甚至与您认识的任何其他程序员聚在一起,找到可以从事的小工作。 具有讽刺意味的是,当我回到并干了眼睛之后,从头开始创建起来相当容易,但我只是无法将脑袋绕过去。
没关系没关系 (It’s ok to not know)
Do not be afraid of what you don’t know. One interviewer asked me to rate myself on a scale of 1 to 10 on my front-end knowledge. I was honest and said that at the start of the process, I probably would have said about 4. But after all the work I’d been doing, I’d probably put it at 1.
不要害怕你不知道的东西。 一位面试官让我根据我的前端知识对自己进行打分,等级为1到10。 我很诚实地说,在流程开始时,我可能会说大约4。但是,在我做了所有工作之后,我可能会将其设置为1。
This wasn’t to self-deprecate, it was because every document or article I read introduced me to about 10 new concepts. So the more I learned, the more I realized how much more there was to learn. As a Developer, you must make your peace with the idea you will never know everything. There are new languages, frameworks, and technology being born every day. You could read 24/7 and still not scratch the surface.
这并不是自嘲,这是因为我阅读的每个文档或文章都向我介绍了大约10个新概念。 因此,我学得越多,我就越意识到要学习的东西更多。 作为开发人员,您必须让自己永远都不了解的想法安心。 每天都有新的语言,框架和技术诞生。 您可以阅读24/7,但仍然不会刮擦表面。
有正确的态度 (Have the right attitude)
In the end, the feedback I got from the job I accepted was that I was the least qualified of all the candidates (too true, seeing as I had exactly 0 years of experience). But I more than made up for it in enthusiasm and I seemed like the type of person they’d actually want to work with.
最后,我从接受的工作中得到的反馈是,我是所有应聘者中最不合格的(太正确了,因为我有0年的工作经验)。 但是我不仅仅热情地弥补了这一点,而且我看起来就像他们真正想要与之共事的那种人。
There’s little you can do about your experience or qualifications in the beginning, but what you can do is give yourself the best possible chance of putting your best foot forward. Talk about things you’ve done and show your passion for the role. This can include articles you’ve written, events you’ve been to, books you’ve read, or even podcasts you love that are related to the field.
一开始,您对自己的经验或学历几乎无能为力,但是您能做的就是给自己最好的机会,使自己的脚步向前。 谈论您已完成的事情,并表现出对角色的热情。 这可能包括您撰写的文章,您去过的活动,您阅读过的书籍,甚至是您喜欢的与该领域相关的播客。
忘掉津贴,买自己的甜甜圈 (Forget the perks, buy your own doughnuts)
A lot of software roles will be offering numerous perks to entice Developers. I’m not going to pretend they’re irrelevant. But at this stage in your career, they should be. The most important thing should be the actual team you’ll be working with and the opportunities for training and development. Do they do code pairing? Peer reviews? Is there time set aside for personal development?
许多软件角色将提供许多好处来吸引开发人员。 我不会假装它们无关紧要。 但是在您职业生涯的这个阶段,他们应该做到。 最重要的是应该与您一起工作的实际团队以及培训和发展的机会。 他们会进行代码配对吗? 同行评审? 是否留出时间进行个人发展?
In years to come, when it’s time to make your next move, you’ll need to be able to demonstrate what you know, now that you’re a Developer with X years of experience. They won’t give a rag what you were paid in your previous role or how many free perks you devoured. But they will be impressed if you can show all the new technologies you’ve learned, how you worked to solve different problems, and what you’ve done to aid your learning in your first role.
在接下来的几年中,当您要采取下一步行动时,由于您是一位具有X年经验的开发人员,因此您需要能够证明自己所知道的知识。 他们不会为您以前的职位给您带来多少回报,也不会给您吞噬多少免费的津贴。 但是,如果您能展示所学到的所有新技术,如何解决不同的问题以及在第一任职中为帮助您的学习所做的工作,它们将给您留下深刻的印象。
By focusing on perks when it’s time to accept an offer, you’re selling yourself short and may as well work for magic beans.
通过在接受报价时专注于津贴,您卖空了自己,也许还能为魔豆工作。
建立您的网络。 (Make your network.)
I was lucky to come from a software start-up and to live and work around the software hub of London. It’s brimming with meetups and groups. Codebar is probably the best thing I’ve been part of. They not only pair you with Developers to learn, but it’s free, they have awesome talks, you get access to industry insiders, and it’s a completely non-judgmental environment where you can ask anything.
我很幸运来自一家软件初创公司,并在伦敦的软件中心生活和工作。 聚会和团体充满了气氛。 Codebar可能是我参与过的最好的事情。 他们不仅使您与开发人员结对学习,而且是免费的,他们进行了精彩的演讲,您可以与行业内部人士接触,并且它是一个完全无条件的环境,您可以提出任何问题。
If you live somewhere similar, please take full advantage and get out there and meet people. Yes for the networking, but more importantly because what you soak up in those surroundings will pay dividends several times over. Hiring managers also love being involved in the community, and your next employer may well be presenting at the next meetup you attend.
如果您居住在相似的地方,请充分利用并离开那里与人会面。 对于网络连接是可以的,但是更重要的是,因为您在这些环境中所吸收的东西将带来数倍的回报。 招聘经理也喜欢参与社区活动,您的下一位雇主很可能会在您参加的下一次聚会上发表演讲。
我们尽可能地需要您 (We need you as much as you want this)
The imposter syndrome is well documented and certainly something I suffered from in those moments of self-doubt. There are thousands of people graduating from CS degrees and bootcamps — was I unrealistic to even attempt this a career only knowing what I’d taught myself?
冒名顶替综合症有据可查,这无疑是我在自我怀疑的那一刻所遭受的痛苦。 成千上万的人从CS学位和训练营毕业-我什至不尝试这种职业,只是知道我自己教给我的东西是不现实的吗?
The truth is that there aren’t nearly enough Developers to meet the demand of open jobs. As long as you have the core skills, the right attitude, and a willingness to learn, you’ve got a shot. Employers can’t afford to hire based on qualifications alone.
事实是,几乎没有足够的开发人员来满足空缺职位的需求。 只要您具有核心技能,正确的态度和学习的意愿,您就可以尝试。 雇主无力仅凭资格聘用。
This next part is a little touchy — the diversity issue. Anyone who doesn’t live under a rock knows that tech has a huge diversity issue. When I started applying, I couldn’t help but notice that every team lead I looked up on LinkedIn was male.
下一部分有些棘手-多样性问题。 任何人都不会在岩石下生活,都知道技术存在着巨大的多样性问题。 当我开始申请时,我不禁注意到,我在LinkedIn上查询的每个团队领导都是男性。
The truth is that not once did I ever feel like I wasn’t welcome or wouldn’t be respected as an equal member of the team. Every interaction I had, I felt as if each of these teams were holding out a hand wanting me to be successful. I now truly believe most companies want to increase the diversity in their teams and are active in doing so.
事实是,我从来没有一次感到过自己不受欢迎或不会受到团队平等成员的尊重。 我进行的每一次互动,我都感觉好像这些团队中的每一个都在伸出援手,希望我成功。 我现在真正相信,大多数公司都希望增加其团队的多样性,并积极地这样做。
If you don’t fit the stereotypical mould of what a Developer should look like — so what? Technology wants and needs you. It’s a big table, and there’s enough room for everyone.
如果您不符合开发人员应具有的陈规定型观念,那又该怎么办? 科技需要和需要您。 这是一张大桌子,每个人都有足够的空间。
If you’ve enjoyed this post, please clap to show your appreciation.
如果您喜欢这篇文章,请拍手表示感谢。
You’re also welcome to leave a comment below.
也欢迎您在下面发表评论。
Find me on twitter: Marilyn Magnusen
在推特上找到我: 玛丽莲·马格努森
翻译自: https://www.freecodecamp.org/news/crossing-the-bridge-1eb0622a4e45/
小明一家过桥,过桥时是黑夜