毕业后第一份工作的工作总结
Breaking into a new industry or role is difficult. Learning a new set of skills and getting a job using them is just that, difficult. You could even say it’s O(n)²
difficult.
进入新行业或新角色很难。 学习一套新技能并利用它们来找工作就很困难。 您甚至可以说这是O(n)²
困难。
Now try competing for that same role in a market saturated with other folks in your same shoes. Most good things in life aren’t easy, but they are worth fighting for.
现在,在同一个鞋店中的其他人已经饱和的市场中,尝试竞争同一角色。 生活中最美好的事物并不容易,但值得为之奋斗。
In my case, my new job gave me a 20% pay increase from my former role as a project manager. And now, I’m also doing work that invigorates me.
就我而言,我的新工作使我从以前的项目经理职位中获得了20%的加薪。 现在,我也在做使我精神振奋的工作。
I’ve seen a bunch of posts with technical breakdowns of what folks did to get to the finish line. This post will take some broader strokes and talk about soft skills that are also important to help you land that first job. Don’t worry, there’s a break down at the end of this article with the technical skills I achieved along the way.
我看过很多帖子,其中包含了人们为达到终点所做的技术细分。 这篇文章将更广泛地运用技巧,并讨论软技能,这些技能对于帮助您找到第一份工作也很重要。 不用担心,本文结尾部分将介绍我在此过程中获得的技术技能。
编程很难。 找工作很难。 不要放弃 (Programming is hard. Finding a job is hard. Don’t give up.)
Learning how to program is a journey in itself. You’re telling a computer a detailed story so that it can then tell the same story to other folks at a higher level. As developers, we need to be very detailed and specific, because computers are dumb.
学习如何编程本身就是一个旅程。 您要告诉计算机一个详细的故事,以便它可以将同一故事讲给更高层次的其他人。 作为开发人员,我们需要非常详细和具体,因为计算机很笨。
Learning to give instructions to computers is a journey. Enjoy it. If you don’t like learning how things work, this might not be the path for you (which is totally cool!). But, it takes time to get on the same page as a computer. They need details!
学习向计算机发出指令是一个旅程。 好好享受。 如果您不喜欢学习事物的工作方式,那么这可能不是您的路(这很酷!)。 但是,它需要时间才能与计算机位于同一页面上。 他们需要详细信息!
Programming is about solving problems and understanding how things work. That’s why the salaries of developers are high. People who solve problems using a skill set that is difficult to acquire are expensive to employ.
编程是关于解决问题和理解事物如何工作的。 因此,开发人员的薪水很高。 使用难以掌握的技能来解决问题的人聘用起来很昂贵。
寻找工作的好地方需要时间和运气 (Finding a great place to work takes time and luck)
I really lucked out on my job hunt. Not only did I get a job (at Dexter) that I wanted, but I also found an organization that values engineering, learning, and personal growth, and is filled with fun people. Finding an organization that has all of these qualities is not easy.
我真的很幸运找到工作。 我不仅得到了想要的工作(在Dexter上 ),而且我还找到了一个重视工程,学习和个人成长的组织,并且充满了有趣的人。 要找到具有所有这些素质的组织并不容易。
Let’s take Dexter’s senior designer, Michael Rado, for example. He worked through the freeCodeCamp challenges. He googled a lot, learned the docs like the back of his hand, and asked for help from some members of his team. As a result, he was able to build a chat bot based on a version of the classic DopeWars game for TI-83 and PalmPilot on our platform. Hopefully, he’ll have a blog post soon detailing some of the Phantom.js magic he used to dynamically generate images of a player’s score.
让我们以Dexter的高级设计师Michael Rado为例。 他解决了freeCodeCamp的挑战。 他在Google上搜索了很多东西,像手背一样学习了文档,并向团队中的一些成员寻求帮助。 结果,他能够在我们平台上基于经典DopeWars游戏版本(适用于TI-83和PalmPilot)构建聊天机器人。 希望他很快会在博客上发表文章,详细介绍他用来动态生成球员得分图像的Phantom.js魔术。
我发现了一些对我有用的东西并致力于 (I found something that worked for me and committed to it)
That something for me was freeCodeCamp. Working through difficult problems is the name of the game. Gradually raising the bar on those problems is what the curriculum at freeCodeCamp does best, while focusing on web development.
对我来说就是freeCodeCamp 。 解决难题是游戏的名称。 在专注于Web开发的同时,freeCodeCamp的课程最擅长逐步解决这些问题。
I spent a lot of time getting stuck and figuring out how to fix issues. I did it today at work — broke down a challenging task, fixed something that wasn’t working correctly, and built something that’s on the roadmap.
我花了很多时间陷入困境,并想出了解决问题的方法。 我今天在工作中做到了–分解了一项具有挑战性的任务,修复了无法正常工作的某些东西,并建立了计划中的目标。
The real value in freeCodeCamp is the projects. They’ll get you thinking and give you something to add to your resume. Code challenges in a web editor are valuable, but making something on your own is addictive and forces you to dig deep.
freeCodeCamp的真正价值在于项目。 他们会让您思考,并给您一些补充。 Web编辑器中的代码挑战很有价值,但是独自制作某些东西会让人上瘾,并迫使您深入研究。
While I haven’t finished the program just yet, I did pick up enough knowledge to get through multiple technical interviews with a bunch of companies and to land a job as a developer at Dexter, which was my goal.
尽管我还没有完成该程序,但我确实获得了足够的知识,可以通过与多家公司进行多次技术面试,并找到Dexter的开发人员职位,这是我的目标。
Bonus points for freeCodeCamp because it’s open source. I was able to get my first pull request merged, which was pretty fun. If you want to contribute, grab an open issue and sink your teeth into it. Or you can find another open source project that you’re interested in.
freeCodeCamp的奖励点是因为它是开源的。 我能够合并我的第一个拉取请求,这很有趣。 如果您想做出贡献,请抓住一个未解决的问题,然后全力以赴。 或者,您可以找到您感兴趣的另一个开源项目。
At the end of the day, you want to show folks the work that you did. Not some tutorial or book project. You want to be able to show them the problems that you solved. Working through projects does just that.
最后,您想向人们展示您所做的工作。 没有一些教程或书籍项目。 您希望能够向他们展示您解决的问题。 完成项目就是这样做的。
Another reason I’m a big fan of freeCodeCamp’s project selection is because their projects slowly increase in difficulty and scope. If you don’t know where to start, don’t worry — freeCodeCamp will guide you.
我非常喜欢freeCodeCamp的项目选择的另一个原因是,因为他们的项目难度和范围逐渐增加。 如果您不知道从哪里开始,请不要担心-freeCodeCamp将指导您。
The other resource I’m a fan of is a tool’s documentation. Tutorials are great, but documentation is even better for large open-source projects like React and Redux. Throughout the day I look at documentation.
我喜欢的另一个资源是工具的文档。 教程很棒,但是对于大型开源项目(例如React和Redux)来说,文档甚至更好。 我整天都在看文档。
我找到了一个对我的代码感兴趣的导师 (I found a mentor who was interested in my code)
For me that was my friend Chris Roth. I met him at the Recurse Center. Because I worked on his side project, I was able to review his codes while he spent his time doing more challenging things. I was able to see how someone who is more senior on the job works and sets up a project. Meanwhile, I just poked, picked, and learned. Additionally, once the product is out, it’s something I can put on my resume.
对我来说,那是我的朋友克里斯·罗斯 。 我在递归中心遇到了他。 因为我在他的辅助项目上工作,所以我可以在他花时间做更具挑战性的事情时查看他的代码。 我能够看到工作上更高级的人是如何工作的,并建立了一个项目。 同时,我只是戳,选和学习。 另外,一旦产品推出,我就可以在简历中放些东西。
Also, having a project you’re working on with someone else is a great talking point during interviews. The idea is to always play up that experience. I always want to be learning from other folks, regardless of how much time they’ve been programming. Folks with more experience can show you things you didn’t know or give you a new perspective on things. Folks who are newer will force you to really know what you’re talking about. By you explaining concepts to them, it will make you better understand and reinforce the knowledge you already have.
另外,在面试过程中,与他人合作开发一个项目是一个很好的话题。 想法是始终发挥这种经验。 我一直想向其他人学习,无论他们已经花了多少时间进行编程。 具有更多经验的人可以向您展示您不知道的事物,或者为您提供事物的新视角。 较新的人会迫使您真正了解您在说什么。 通过向他们解释概念,可以使您更好地理解和增强已经拥有的知识。
The more I can pick up from someone, the better. Stand on the shoulders of giants and your peers. You’ll have great stories about how you worked with others to get the job done. You know what you will be doing at your day job.
我可以从某人那里得到的东西越多越好。 站在巨人和同行的肩膀上。 您将拥有有关如何与他人合作完成工作的精彩故事。 您知道您的日常工作。
Also, knowing when to ask for help is a skill. Working with tools, libraries, and frameworks you aren’t familiar with and working with others, especially people who have more experience, is a solid learning path.
另外,知道何时寻求帮助是一种技能。 使用您不熟悉的工具,库和框架以及与其他人(尤其是经验丰富的人)合作是一条可靠的学习之路。
我发现了一个志同道合的人,他们的目标相同 (I found a network of like-minded people with the same goal)
That was a physical place for me. It was the Recurse Center. Before that, it was freeCodeCamp’s NYC Meetups. You’re not on this journey alone. Nor should you feel like you are.
对我来说,那是一个物理的地方。 它是递归中心 。 在此之前,它是免费的CodeCamp的NYC聚会。 您并不孤单。 您也不应该觉得自己是。
Recurse was particularly interesting because it did have a curriculum and a teacher was not present. You could work on whatever you wanted to and with whomever. It’s like a writer’s retreat for programmers.
递归特别有趣,因为它确实有课程并且没有老师在场。 您可以随心所欲地与任何人一起工作。 这就像是程序员对程序员的务虚会。
I chose to work on a combination of freeCodeCamp projects and my personal projects with other participants who were above my skill level. Finding projects you’re interested in is super important (and fun).
我选择将freeCodeCamp项目和我的个人项目与其他超出我的技能水平的参与者一起进行工作。 找到您感兴趣的项目非常重要(而且很有趣)。
我每天都写代码 (I wrote code every day)
I can’t stress this enough. Building momentum is huge. Doing something every day, no matter what it is, will help you get into a groove and gain momentum. It will help you grow.
我不能太强调这一点。 建设势头巨大。 无论是什么,每天都要做某事,将帮助您进入困境并获得动力。 它将帮助您成长。
Even if you don’t feel like you’re making progress, you are. Keep it up.
即使您不觉得自己在进步,也可以。 保持。
我真的挖了 (I really dug in)
Understand how the concepts you’re learning work, and why they’re important. In just about every interview I’ve had, I was asked about the prototype chain. This concept is only one of many that all JavaScript developers should know.
了解您正在学习的概念是如何工作的,以及为什么它们很重要。 在几乎每一次采访中,我都被问到了原型链。 这个概念只是所有JavaScript开发人员都应该知道的众多概念之一。
You don’t need to know everything. Having a solid grasp of key concepts and being able to talk about them are not only critical to the interviewing process, but also to doing the job. For example, if you don’t know you have a hammer, you’ll never use it.
您不需要了解所有内容。 扎实地掌握关键概念并能够谈论它们不仅对面试过程至关重要,而且对完成工作也至关重要。 例如,如果您不知道有锤子,那就永远不要使用它。
When you dig into a project, it shows. Figuring out a solution to a new problem (it doesn’t have to be something that’s non-trivial) is a great talking point during an interview. Again, it’s more about the journey.
当您深入研究项目时,它会显示出来。 找出一个新问题的解决方案(不一定非得琐碎)是面试中的重要话题。 同样,这更多地与旅程有关。
我本该拥有更强大的网络形象 (I should’ve had a stronger web presence)
This was an area that I really should have focused on more. Writing blog posts about what you’re learning, things you’ve built, and your takeaways from projects shows that you’re passionate about what you’re doing. It also shows that you can communicate online and that you are knowledgeable!
这是我确实应该重点关注的领域。 撰写有关您正在学习的内容,所构建的东西以及对项目的了解的博客文章表明您对所做的事情充满热情。 它还表明您可以在线交流,并且知识渊博!
Hiring directors look at your blog posts. So write them.
招聘主管会查看您的博客文章。 所以写他们。
我经常抛投 (I casted wide and often)
I submitted 91 job applications, and attended 4 job fairs and many Meetups inbetween. Before I even started to apply for jobs, I had a couple of people look over my resume and projects. While I had a bunch of .DS_STORE
files that I should have deleted, at that point, I felt I could apply to junior roles and be taken seriously.
我提交了91个工作申请,并参加了4个招聘会和之间的多次聚会。 甚至在我开始求职之前,我就有几个人查看我的简历和项目。 虽然我有一堆应该删除的.DS_STORE
文件,但是到那时,我觉得我可以申请担任初级职位,并且受到重视。
Applying for jobs takes time. I never tried to apply to more than 3 roles in a day. Go the extra mile when possible. If you can find the information of a hiring manager, reach out to him either via email or Linkedin. Show passion for the product and technology. Create an account, go through a demo, or ping the company about a bug you found (I did!).
申请工作需要时间。 我从未尝试过一天申请超过3个角色。 尽可能多走一英里。 如果您可以找到招聘经理的信息,请通过电子邮件或Linkedin与他联系。 对产品和技术表现出热情。 创建一个帐户,进行演示,或向公司发送有关您发现的错误的信息(我做到了!)。
Also, try to keep it short and sweet. They’re busy people too! My resume and cover letter are both about a page each. My cover letter is about 7 to 10 sentences long. You just need a quick intro. The hiring managers do not need to know your life story. Save that for your first interview :D.
另外,请尝试使其简短而甜美。 他们也是忙人! 我的简历和求职信都差不多一页。 我的求职信大约有7到10个句子。 您只需要快速介绍。 招聘经理不需要了解您的生活故事。 保存为您的第一次采访:D。
面试时 (When interviewing)
While knowing the run time of a specific algorithm is great, it’s not everything. Knowing the core concepts at a junior level is key, as I had touched upon earlier. Knowing the foundations of your tools well and being able to communicate and understand what’s going on within an application is expected.
虽然知道特定算法的运行时间很棒,但这还不是全部。 正如我之前提到的,在初级阶段了解核心概念是关键。 期望能够很好地了解工具的基础,并能够交流和理解应用程序中正在发生的事情。
Have a positive attitude. Being able to show your thought process for breaking down issues is the other part. What are you like when a challenge is thrown your way? This is basically what your day-to-day is going to be like. Show them that you not only enjoy being challenged, but that you’ll push yourself.
有积极的态度。 能够显示出解决问题的思维过程是另一部分。 挑战挑战如何? 这基本上就是您的日常工作。 向他们表明,您不仅乐于接受挑战,而且会自强不息。
Know when to ask for help and take direction. If you’re not willing to listen to other developers, you are wasting everyone’s time.
知道什么时候寻求帮助并指明方向。 如果您不愿意听其他开发人员的话,那是在浪费每个人的时间。
向前进 (Moving forward)
The Recurse Center’s motto is “never graduate.” Above all, that’s what I’ll be doing everyday at work and at home — learning something new.
递归中心的座右铭是“永远不要毕业”。 最重要的是,这就是我每天在工作和在家中要做的事情-学习新知识。
Here is a list of my current goals:
以下是我目前的目标:
- Stay active and commit to writing 1 blog post a month. I didn’t do a very good job of this while searching for work. I know the blog would’ve certainly helped with my job search. 保持活跃并承诺每月撰写1个博客文章。 我在找工作时做得不好。 我知道该博客肯定会对我的求职有所帮助。
- Set goals at the start of each month. This month I want to focus on improving my debugging skills. It’s a large part of my day job. Investing in getting better at it is a low-hanging fruit. Hopefully it is an easy win. 在每个月初确定目标。 本月,我将重点放在提高调试技能上。 这是我日常工作的很大一部分。 投资于改进它是一项不容易的事情。 希望这是一个轻松的胜利。
- Work on one large project that uses the skills that I picked up from work. 使用我从工作中获得的技能,进行一个大型项目。
- Look back at the end of the month to see if I’ve pushed the needle forward at all. I’m not sure exactly what my metrics of success are just yet, so this first month will be an experiment. 回顾月底,看看我是否完全向前推了针。 我不确定我的成功指标到底是什么,因此第一个月将是一个实验。
这是我找到工作之前完成的一些技术工作 (Here’s some technical stuff I accomplished leading up to the job search)
- Completed the freeCodeCamp Front End Certificate 完成了freeCodeCamp前端证书
- Read and did the homework up to chapter 7 for EloquentJS 阅读并完成EloquentJS的第7章的作业
Completed Coursera’s web development course with Angular.js
使用Angular.js完成Coursera的 Web开发课程
Completed a bunch of CodeWars problems
完成了一堆CodeWars问题
Completed up to week 10 of CS50x
毕业后第一份工作的工作总结