赞
踩
怎么从运营转到前端开发
On August 18, 2015, I was on a one-way flight headed to Copenhagen from Toronto Pearson Airport. I was starting my two semester exchange at the Copenhagen Business school.
2015年8月18日,我乘坐单程飞机从多伦多皮尔逊机场前往哥本哈根。 我在哥本哈根商学院开始了两个学期的交流。
I can easily remember the date because it was my brother's birthday. He was forced to spend it at the airport with our family as they sent me off to Denmark, for what they thought would only be 8 months.
我很容易记住日期,因为那是我哥哥的生日。 当他们把我送到丹麦的时候,他被迫与我们的家人一起在机场度过,因为他们以为只有8个月了。
My only familiarity with Copenhagen was from watching the CPH Open on Thrasher Magazine's YouTube channel. Luckily for me, I absolutely fell in love with the city and, after my first semester abroad, I made it my mission to stay here even longer. I was due to start an internship upon returning back to Canada and challenged myself to find one in Copenhagen instead.
我对哥本哈根的唯一了解是在Thrasher Magazine的YouTube频道上观看了CPH公开赛 。 对我来说幸运的是,我完全爱上了这座城市,在国外的第一个学期后,我把在这里呆更长的时间作为我的使命。 我本打算回到加拿大后开始实习,并挑战自己去哥本哈根找人。
I didn't really have a plan, so I started looking for roles as a sales development representative (SDR). I had just learned about this entry-level role in one of my classes. Since all of my previous experience was in sales and customer service, I thought it would be a good fit.
我确实没有计划,所以我开始寻找担任销售开发代表(SDR)的职位。 我刚刚在我的一堂课中了解了这种入门级角色。 由于我以前所有的经验都是销售和客户服务,所以我认为这很合适。
I sent out my application to a young startup and within 4 hours, I was on the phone with my soon-to-be sales manager. That was my first taste of how quickly things can move in startup-land! About a month later, I had my first day. This was also the first time I had met professional developers.
我将申请发送给了一家年轻的初创公司,并在4小时内与即将成为销售经理的我通了电话。 那是我对事物在初创公司中能以多快的速度迁移的第一印象! 大约一个月后,我度过了第一天。 这也是我第一次见到专业开发人员。
I've always had a deep interest in technology, although the closest I'd been to software development at that point was in my Visual Basic class in high school!
我一直对技术有着浓厚的兴趣,尽管那时我最接近软件开发的是我在高中的Visual Basic课!
Starting my new job was the first time I got to work directly alongside developers. It was thrilling to hear about their work. There were always so many buzz words and technologies they spoke about – React, Ember, Scala, Python, TypeScript, boilerplate-code, compliers, rendering. It was intimidating to think you had to know about so much to develop software.
开始我的新工作是我第一次直接与开发人员一起工作。 得知他们的工作真令人激动。 他们总是谈论很多时髦的词和技术– React,Ember,Scala,Python,TypeScript,样板代码,编译器,渲染。 认为您必须了解太多有关开发软件的知识,这真是令人恐惧。
I spent the next year and a half continuing to progress in my sales career, eventually being promoted to account executive. I felt like I had greatly developed my communication, time-management, and presentational skills.
我花了一年半的时间继续发展自己的销售事业,最终被提升为客户经理。 我觉得自己在交流,时间管理和表达能力方面有了很大的发展。
Although I was successful in my current role as an account executive, I wasn't sure if a future in sales was exactly what I wanted. It was also limiting to my future job prospects if I wanted to continue to remain in Denmark – it's not easy find a good job selling in English in a country where the first language is Danish!
尽管我现在担任客户经理一职很成功,但是我不确定销售的未来是否正是我想要的。 如果我想继续留在丹麦,这也限制了我未来的工作前景–在以丹麦语为第一语言的国家,找到一份以英语销售的好工作并不容易!
I found myself reading more, searching for a new hobby or challenge. That's when I found the freeCodeCamp blog (it was still on Medium at that time). It actually took me a few days before I realized freeCodeCamp wasn't just a blog, it was an entire platform available to learn how to code online, for free! As if the name didn't speak for itself...
我发现自己阅读更多,正在寻找新的爱好或挑战。 那时我找到了freeCodeCamp博客(当时该博客仍在Medium上)。 实际上,花了我几天时间,我才意识到freeCodeCamp不只是一个博客,而是一个可免费学习在线编码的完整平台! 好像这个名字并不能说明一切...
It only took completing a few HTML challenges before I was absolutely hooked. It was then that I decided I would spend all my free time working through the freeCodeCamp curriculum, with the goal of one day in the long-distant future maybe becoming a developer. I loved the idea of being able to speak to my colleagues about React, however far-away that felt.
在完全迷上我之前,只需要完成一些HTML挑战即可。 那时,我决定将所有的空闲时间都花在freeCodeCamp课程上,目标是在很长的将来有一天成为一名开发人员。 我喜欢能够与同事谈论React的想法,无论感觉如何。
I was feeling fairly confident in how quickly I was learning HTML and CSS until I actually attempted to complete one of the projects. Create a simple portfolio? This should be easy!
在真正尝试完成其中一个项目之前,我对自己学习HTML和CSS的速度非常自信。 创建简单的投资组合? 这应该很容易!
But it was overwhelming how lost I suddenly felt in an editor outside of freeCodeCamp. Attempting to start a project from scratch seemed impossible and it was frightening how quickly it felt like I forgot everything. Becoming a real developer suddenly felt like an impossibility.
但这令人不知所措,我在freeCodeCamp之外的编辑器中突然感到迷茫。 尝试从头开始一个项目似乎是不可能的,这让我感到忘却一切的速度令人震惊。 成为一名真正的开发人员突然感觉不可能。
Finally asking for help was the best thing I did for myself. After stewing in my frustration for far too long, I reached out to a colleague who patiently guided me through using VS Code, structuring my HTML document, and linking it to a CSS file. After finally cobbling together a portfolio, I checked the box as done, even though I felt my work was terrible compared to others attempting this same challenge.
最终寻求帮助是我为自己做的最好的事情。 经过一段长时间的挫折之后,我联系了一位同事,他耐心地指导我使用VS Code,构造我HTML文档并将其链接到CSS文件。 最终凑齐一份投资组合后,我把盒子打完了,尽管与其他尝试同样挑战的人相比,我觉得自己的工作糟透了。
I eventually made my way into the JavaScript curriculum, which I had been impatiently waiting to start after about a month and half of struggling through HTML and CSS.
我最终进入了JavaScript课程,在经历了大约一个半月HTML和CSS苦苦挣扎之后,我一直不耐烦地等待着开始学习。
It started out easy enough, although it wasn't before long that I found myself lost and frustrated again. After completing all of the JavaScript modules, I felt I was lacking the confidence and tenacity to attempt the more difficult JavaScript projects. Instead, I took the easy way out and started through the Codecademy JavaScript curriculum.
它开始很容易,尽管不久之后我发现自己迷失了自己,又一次感到沮丧。 在完成所有JavaScript模块之后,我感到我缺乏尝试更困难JavaScript项目的信心和毅力。 相反,我采取了简单的方法,并开始了Codecademy JavaScript课程。
It was certainly helpful in solidifying the basics for me – after all, repetition is key. However, the biggest mistake I made in my learning journey was not going back to attempt those challenges.
这对于巩固我的基础肯定是有帮助的-毕竟,重复是关键。 但是,我在学习过程中犯的最大错误不是回头尝试这些挑战。
After working through all of the Codecademy modules, I started yet another JavaScript course, this time purchasing "The JavaScript Bootcamp" through Udemy. As this was my third time working through the fundamentals, I left that course with more stable footing and more confidence in my ability to work with JavaScript.
在完成所有Codecademy模块的学习后,我又开设了另一门JavaScript课程,这次是通过Udemy购买“ JavaScript Bootcamp”。 因为这是我第三次研究基础知识,所以我以更稳定的基础并且对使用JavaScript的能力更有信心离开了那门课程。
From there, I jumped straight into another course, this time on Node directly followed up with a course on React.
从那里,我直接跳到另一门课程,这次是在Node上,然后是React的一门课程。
Somewhere between the Node and React courses, I had started a new job as an account manager at what I still deem to be Denmark's coolest startup. It was and is incredibly exciting to be a part of a company growing so fast. It was even more exciting to meet so many new and talented developers to learn from.
在Node和React课程之间的某个地方,我以一名客户经理的身份开始了新工作,至今仍被认为是丹麦最酷的创业公司 。 成为如此快速发展的公司的一部分曾经是,而且令人非常兴奋。 结识这么多新的有才华的开发人员以供学习,真是令人兴奋。
About three months into my new job, my manager and I were discussing how my role could develop in the future. I was honest with her and said I wasn't interested in any further responsibility. I wanted to spend any and all excess capacity teaching myself to code, with the hopes of one day becoming a developer.
在我的新工作大约三个月后,我的经理和我正在讨论我的角色将来如何发展。 我对她很诚实,说我对任何进一步的责任都不感兴趣。 我想花费所有多余的能力自学代码,以期有一天成为一名开发人员。
This is not something you want to hear from a relatively new sales rep on your team. But to my surprise, she was incredibly supportive and made a commitment to help me any way she could, as long as I hit my targets.
您不想从团队中相对较新的销售代表那里听到这些信息。 但是令我惊讶的是,只要我实现了目标,她便会给予极大的支持,并承诺尽一切可能帮助我。
After speaking with one of our engineering directors, it was clear that for us to continue a conversation around what a transition from sales to product would look like, I would need to complete our frontend hiring challenge, like an outside candidate would.
与我们的一位工程总监交谈后,很明显,要让我们继续围绕从销售到产品的过渡过程进行对话,我需要像外部候选人那样完成前端招聘的挑战。
The thought of attempting this was both incredibly intimidating and motivating. This is when I started staying late in the office every night. I didn't want to waste time biking home, so the second the clock hit 17:00, I would scurry to find some dinner, returning to my desk as soon as possible, to start my day pretending to be a developer.
尝试这样做的想法既令人难以置信,又令人振奋。 这是我每天晚上开始在办公室呆到很晚的时候。 我不想浪费时间骑车回家,所以在第二个时钟17:00到达时,我会急忙找些晚餐,尽快回到我的办公桌上,开始假装自己成为开发人员。
I had finally finished my React course just before the Christmas holiday and was working on a few side-projects, although I never really followed through with any of them. I knew I needed to start applying my knowledge but found it difficult to complete a project without a real end goal.
我终于在圣诞节假期之前完成了我的React课程,并且正在做一些副项目,尽管我从来没有真正完成任何一个。 我知道我需要开始运用我的知识,但是发现没有真正的最终目标很难完成一个项目。
With some extra time on my hands over the holiday period, I began to look through the frontend challenge again. I still felt far from capable to produce a worthy submission, however, I felt it gave me some sort of end goal to work towards so I could actually finish something.
在假期期间,我花了一些额外的时间,我开始重新审视前端挑战。 我仍然觉得自己无法提出有价值的意见,但是,我认为这给了我一些最终的目标,以便我可以完成一些工作。
Luckily for me, our frontend challenge was very similar to the final project of the React course, so I could reuse much of the boilerplate and components for my submission. I definitely felt like I was cheating.
幸运的是,我们的前端挑战与React课程的最终项目非常相似,因此我可以重用许多样板和组件进行提交。 我绝对觉得自己在作弊。
But I sent through my project anyway and eagerly await feedback. Having my code reviewed by two of our senior engineers was incredibly scary and I was prepared for some harsh feedback.
但是无论如何, 我还是通过项目发送并急切地等待反馈。 我们的两位高级工程师审核了我的代码,这简直令人恐惧,我已经准备好征求一些苛刻的反馈。
After a couple weeks, my grade was in, and my submission wasn't a total failure! I had received some really great, actionable points of criticism. One of my colleagues even spent an hour with me after work, talking me through each line of feedback. Our code review session went so well, we decided to meet again, week after week, until well after I transitioned into becoming a developer.
几周后,我的成绩就达到了,我的提交并不是完全失败! 我收到了一些非常好的,可行的批评意见。 我的一位同事下班后甚至和我一起度过了一个小时,在每条反馈中与我交谈。 我们的代码审查会议进行得非常顺利,我们决定一周又一周再开会,直到我过渡为开发人员为止。
My sales manager and the director of engineering continued to check in on my progress throughout the coming months. In April, the opportunity was presented that I could possibly work on the side with our internal tools team. There were many small, non-urgent tickets that needed attention in our back-office system.
在接下来的几个月中,我的销售经理和工程总监继续检查我的进度。 在四月份,我有机会与我们的内部工具团队一起工作。 我们的后台系统中有许多需要注意的小型非紧急票证。
I was excited – it would be a great way for me to get some real experience in working with the product team and it was made very clear this wasn't to interfere with my work in sales. That thought of working with real, production code was INSANE!
我很激动–这对我来说是获得与产品团队合作的真实经验的好方法,而且很清楚,这不会干扰我的销售工作。 使用真实的生产代码的想法是INSANE!
After a bit of coordination, an introduction to the team, and an invite to our company Github org, I was given my first ticket to work on.
经过一番协调,对团队的介绍以及对我们公司Github org的邀请,我得到了我的第一张工作票。
I was to add an input to make a field editable for our compliance team. It was immediately clear I had no idea how to do this. Sure, I've added an input before and I knew vaguely how forms worked in React but this code felt like nothing I'd seen in any of my tutorials.
我要添加输入以使我们的合规团队可以修改该字段。 显然我不知道该怎么做。 当然,我之前已经添加了输入,并且我模糊地知道了表单在React中是如何工作的,但是这段代码感觉像我在任何教程中都看不到。
I was suddenly left with an ocean of questions. How does TypeScript work? What is a branch? How do I make a PR? What do all of these libraries do? How does my code even get built and sent to our users? What happens if I break something important?
我突然被无数问题困扰。 TypeScript如何工作? 什么是分支? 我如何进行公关? 所有这些库都做什么? 我的代码甚至如何构建并发送给我们的用户? 如果我破坏了重要的东西会怎样?
It took me a couple days to get my bearings, but after much patience and help from the engineering lead, I managed to get two approvals and ship code to production. That was a huge milestone in my journey.
我花了几天的时间来获得轴承,但是在工程主管的耐心和帮助下,我设法获得了两次批准,并将代码交付生产。 那是我旅途中的一个巨大里程碑。
Over the next five months, I continued my routine of staying in the office late, working 09:00-17:00 in sales and 17:00 until whenever pretending to be a developer working with what I considered to be real code.
在接下来的五个月中,我继续按照惯例在办公室呆到很晚,分别在09:00-17:00和17:00从事销售工作,直到假装自己成为真正的代码开发人员为止。
As you could expect, my desire to continue in sales dwindled every day and I started pressing to see if we could agree on a date for me to officially switch.
如您所料,每天继续销售的愿望减少了,我开始敦促我们是否可以商定正式换班的日期。
It certainly didn't go smoothly. No one had experience in what it means to move someone from sales to our product team. First and foremost, I had to be on target. I think that's true with most sales organisations – everything always comes back to making your quota.
当然,进展并不顺利。 没有人曾经历过将某人从销售移交给我们的产品团队的含义。 首先,我必须达到目标。 我认为大多数销售组织都是如此-一切总是归根结底。
After much back and forth, an agreement was made that I could officially make the switch August 1st, contingent that I remain on target. This was the light at the end of the tunnel for me. It was absolutely baffling to think I would soon be presented with an employment contract for my new role as a software engineer. The weeks leading up flew by. By 17:00, Wednesday, July 31, I was no longer an account manager.
经过多次往返之后,达成了一项协议,我可以在8月1日正式切换,视我保持目标而定。 对我来说,这是隧道尽头的光。 认为我很快会因担任软件工程师的新职位而获得一份雇用合同,实在令人感到困惑。 接下来的几周过去了。 到7月31日星期三17:00为止,我不再是客户经理。
There was definitely a transition period in getting used to my new role. It felt like being a stock broker working on the trading room floor to suddenly becoming a librarian.
适应我的新职位肯定有一个过渡期。 感觉就像是在交易大厅工作的股票经纪人,突然变成了图书管理员。
Noise aside, there hasn't been a single day where I haven't been excited about coming into work. I've continued working in our internal tools team, building out our compliance and customer support back-office.
除了噪音,没有一天我没有对上班感到兴奋。 我继续在内部工具团队中工作,建立了合规性和客户支持后台。
The experience I gained in sales is incredibly advantageous in my work today. Strong communication, time-management, and presentational skills have been invaluable as a dev. But I have found these to be lacking in most dev communities I've observed.
我在销售中获得的经验对我今天的工作非常有利。 强大的沟通能力,时间管理能力和表达能力对于开发人员而言非常宝贵。 但是我发现在我观察到的大多数开发者社区中都缺少这些。
I realize I'm incredibly lucky to have been presented an opportunity to work with production code so early on. It was without a doubt a huge leap forward in my learning and massively helped in expediting my understanding of the realities of working as a dev that is impossible to gain from online tutorials.
我意识到我很幸运能这么早就被提供使用生产代码的机会。 毫无疑问,这是我学习的一个巨大飞跃,并且极大地帮助了我加深了对作为开发人员工作的现实的理解,而这是无法从在线教程中获得的。
Having a mentor to work with hugely accelerated my learning and was extremely helpful in keeping me accountable for always having a project on the go, so we always had something to work with. Without all of the support around me, I think I would still be spending all of my nights and weekends working through tutorials or building random Pokemon generators.
有一位指导者与我一起工作极大地加快了我的学习速度,并且对使我始终对正在进行的项目负有责任,这非常有帮助,因此我们总是可以合作。 如果没有我的所有支持,我想我仍然会花整个晚上和周末来研究教程或构建随机的Pokemon生成器 。
I made a commitment early on to spend all of my free time continuing with my development. I think it's very easy to underestimate how large of a time commitment this journey is. Access to a mentor is a huge help, although even someone with enough knowledge to occasionally answer questions can save you hours of frustration. Don't be afraid to ask for help.
我很早就做出了承诺,将所有空闲时间都花在继续发展上。 我认为很容易低估此旅程所花费的时间。 接触导师是一个巨大的帮助,尽管即使是具有足够知识的人也可以偶尔回答问题,也可以节省您数小时的挫败感。 不要害怕寻求帮助。
Looking retrospectively, I wish I would have spent more time building small projects and applying the things I learned. I frequently started projects but never followed through because I felt like I couldn't code something the correct way.
回顾过去,我希望我会花更多的时间来建立小型项目并运用我学到的东西。 我经常启动项目,但从未进行过,因为我觉得自己无法以正确的方式编写代码。
Spending time struggling through something has been way more helpful for my learning. There is certainly safety to staying on the rails of an interactive coding course but it can put a ceiling on your ability to apply your knowledge in the real world. I definitely fell into that trap.
花时间在某些事情上挣扎对我的学习更有帮助。 停留在交互式编码课程上当然是安全的,但它可能会限制您在现实世界中应用知识的能力。 我肯定陷入了陷阱。
It took me a while before a realized no one knows what the right way is, it's all made up. As a novice developer, there is value in a fresh perspective.
我花了一段时间才意识到,没有人知道正确的方法,这一切都构成了。 作为新手开发人员,您将获得全新的价值。
If there was one piece of advice I wish I had earlier on, it would have been to make a greater attempt to apply my knowledge as I learned. There is no such thing as real code or the correct way to do things, especially when you're learning. Any chance you have to apply your learnings along the way is valuable.
如果我希望早些时候有一条建议,那将是我学到的知识做出更大的尝试。 没有真正的代码或正确的处理方式,尤其是在学习时。 您必须在此过程中运用所学知识的任何机会都是宝贵的。
You're not a developer once someone pays you to be a developer, you're a developer the second you start coding.
一旦有人付钱给您成为开发人员,您就不是开发人员,而您开始编写代码的那一刻,您就是开发人员。
Don't be a stranger! Feel free to write if you have any questions, email me your favourite book recommendations, connect with me on Linkedin or follow me on twitter!
不要成为陌生人! 如有任何疑问,请随时写信, 给我发送您最喜欢的书推荐 给我,在Linkedin上与我联系,或在Twitter 上 关注我 !
翻译自: https://www.freecodecamp.org/news/how-i-went-from-sales-to-frontend-developer-in-16-months/
怎么从运营转到前端开发
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。