软件工程的7步骤_获得第一份软件工程工作的7个关键步骤

软件工程的7步骤

by Stella Chung

钟丽萍(Stella Chung)

获得第一份软件工程工作的7个关键步骤 (7 key steps to getting your first software engineering job)

I graduated from a web development bootcamp in 2017. I had no experience working as a software engineer or in the tech industry. I started applying for jobs in October and began working full-time as a Front End Engineer in December.

我于2017年从Web开发训练营毕业。我没有担任软件工程师或技术行业的经验。 我从10月开始申请工作,并于12月开始担任前端工程师的全职工作。

The job hunting process was a short but stressful 5 weeks for me. There were things that I wish I had known, and other things that paid off way more than I expected. To save you a lot of time and stress, I’ve distilled what I’ve learned into seven key things I did to secure my first job.

求职过程对我来说是短短但压力很大的五个星期。 我希望我已经知道了一些事情,而其他事情却取得了超出我预期的回 。 为了节省您的时间和压力,我将自己学到的东西精简为确保获得第一份工作的七项关键工作。

1.制作一些杰出项目的作品集 (1. Make a portfolio of a few standout projects)

I’ve reviewed the resumes of other bootcamp grads where they only listed one or two partially completed projects. They don’t have to be perfect (my glitchy Phaser.js game isn’t), but they should show the progress you’ve made as a software engineer.

我查看了其他训练营毕业生的简历,他们只列出了一个或两个部分完成的项目。 它们不一定是完美的(我的故障Phaser.js游戏不是),但是它们应该显示出您作为软件工程师所取得的进步。

This means if you say you know React, you should have at least one React app in your portfolio. If you don’t have work experience as a developer, a portfolio of at least three projects is critical. These also shouldn’t be tutorials — get creative! The more fun the project is to you, the more work you’ll put into it. And the more passionate you’ll sound when you describe it to your interviewer. (Bonus points if you make your own portfolio website too!).

这意味着如果您说自己知道React,那么您的投资组合中应该至少有一个React应用。 如果您没有开发人员的工作经验, 那么至少三个项目的投资组合至关重要 。 这些也不应该是教程-发挥创意吧! 项目给您带来的乐趣越多,您将投入的工作就越多。 当您向面试官描述它时,您会听起来更加热情。 (如果您也创建自己的投资组合 站,则可获得奖励积分!)。

You should also be ready to discuss your project’s strengths and weaknesses with an interviewer. Several of my interviewers pulled up my Github and asked me to walk through my code with them. I definitely fumbled the first time this happened, since it had been weeks since I had looked at the code! Preparation is key.

您还应该准备与面试官讨论您项目的优缺点 。 我的几个面试官拉起我的Github,并要求我与他们一起检查我的代码。 我肯定第一次碰到这种情况,因为距查看代码已经过去了好几周! 准备是关键

Afterwards, I made sure I could navigate around my projects on Github and could talk about one tough challenge I solved in each project.

之后,我确保可以在Github上浏览我的项目,并且可以谈论在每个项目中解决的一个艰巨挑战。

On the topic of Git, all my interviewers were impressed that I had experience using Git for version control and collaboration. I recommend familiarizing yourself with Git + Github. If you’ve never used Git for team collaboration, I would definitely recommend making your first PR to an open-source project. Good Git habits also go a long way. One of my interviewers just stepped through my commit history to see how I “think,” and I was very glad it was a project with good commit messages.

在Git主题上,我所有的采访者都对我有使用Git进行版本控制和协作的经验印象深刻。 我建议您熟悉Git + Github 。 如果您从未使用过Git进行团队协作,那么我绝对建议您为开源项目做第一个PR 。 良好的Git习惯也有很大帮助。 我的一名访问者刚刚浏览了我的提交历史,以了解我的“想法”,我很高兴这是一个包含良好提交信息的项目。

2.准备技术面试 (2. Prepare for the technical interview)

There are lots of problems with the way tech interviews are done, but the fact is that for many companies white-boarding is here to stay. There are tons of great resources out there to practice this (Pramp, InterviewCake, and of course Cracking the Coding Interview to name a few).

技术面试的方式存在很多问题 ,但事实是,对于许多公司而言,白板将继续存在。 有大量的丰富资源可以实践这一点( Pramp , InterviewCake ,当然还有Cracking the Coding Interview等等)。

I have to confess that I struggle with this a LOT — my mind tends to go blank under pressure. But the most important thing is that you practice thinking out loud. Complete awkward silence during an interview is the last thing you want, and the more you think out loud, the more the interviewer will know how far you’ve gotten (and be more able to help you, if they’re so inclined!).

我不得不承认,我为此付出了很多努力–我的心在压力下趋于空白。 但最重要的是,您要练习大声思考 在面试过程中要保持完全尴尬的沉默是您想要的最后一件事,而您大声思考的次数越多,面试官就越会知道您已经走了多远(如果他们很愿意的话,也能够为您提供帮助!) 。

I also just bought a whiteboard and dry erase marker so that I got used to working without a code editor (trust me, it’s jarring going from coding with the aid of a linter to a blank wall!).

Not all companies will ask you to whiteboard — but almost all will ask you some basic technical questions, which I call “trivia” for lack of a better term. For the positions I applied for, these questions usually focused on HTML, CSS, JavaScript, and web performance. There are also lots of online resources out there with lists of common questions — I just made a bunch of flashcards and practiced!

并非所有公司都会要求您加入白板–但几乎所有公司都会问您一些基本的技术问题,由于缺乏更好的用语,因此我将其称为“琐事”。 对于我申请的职位,这些问题通常集中在HTML,CSS,JavaScript和 络性能上。 那里也有很多在线资源 ,其中包含一些常见问题-我只是做了很多抽认卡并进行了练习!

There are few topics with which any front-end or full-stack web developer should be comfortable. These include the event loop in JS, promises and async/await, the CSS box-model, CSS specificity weights, and ways to speed up the loading times of a web page. I’ve been asked questions about all of these more than once.

任何前端或全栈Web开发人员都应该适应的主题很少。 其中包括JS中的事件循环 , promise和async / await , CSS框模型 ,CSS 特异性权重以及加快 页加载时间的方法。 我不止一次被问到关于所有这些的问题。

3.定义您想要什么样的公司或角色 (3. Define what kind of company or role you want)

In the beginning of my job search, I made the mistake of casting a very broad net, with a “beggars-can’t-be-choosers” mindset. But no matter where you land, you’re going to be devoting the majority of your time to work. What’s the point if you can barely muster any excitement about going to the office, or worse, dread it/p>

在求职之初,我犯了一个以“乞of不能选择”的心态来铸造一个非常广阔的 络的错误。 但是,无论您身在何处,都将花费大部分时间在工作上。 如果您几乎不敢去办公室上班,更糟的是害怕,那有什么意义呢

Making a list of priorities for your new job will help you a TON in staying in charge of the job-hunt, instead of letting the job-hunt run you. My top priorities were:

列出新工作的优先级列表将帮助您TON负责找工作,而不是让找工作让您忙。 我的首要任务是:

  • Opportunities to solve challenging problems that interest me 解决我感兴趣的挑战性问题的机会
  • Good work/life balance 良好的工作/生活平衡
  • Opportunities to work with a modern tech stack 与现代技术堆栈合作的机会

These priorities led me to focus on jobs at companies where there was a healthy work culture (no working nights and weekends). I also wanted to used modern frameworks (sorry jQuery). They also had to have interesting missions that I could get behind (no thank you soulless corporations).

这些优先事项使我专注于工作文化良好(没有晚上和周末工作)的公司的工作。 我还想使用现代框架(对不起jQuery)。 他们还必须执行一些我可以落后的有趣任务(不,谢谢那些没有灵魂的公司)。

Also, remember that interviews are not just a time for the company to evaluate you. Often you’ll be able to find warning signs if the company is toxic or not a good fit. I encountered one company that issued a long coding challenge before even talking with candidates. Another company was working on a fascinating product, but my interviewers bristled when I brought up work/life balance. I could go on and on about all the warning signs I experienced.

另外,请记住,面试不仅仅是公司评估您的时间。 如果公司有毒或不合适,通常您会发现警告标志。 我遇到一家公司,甚至在与求职者交谈之前就曾发出过长时间的编码挑战。 另一家公司正在开发一种引人入胜的产品,但是当我调高工作与生活的平衡时,我的面试官就生气了。 我可以继续经历所有的警告信 。

Always, always ask questions during interviews. It shows that you are serious and interested, but can also help you detect these warning signs.

总是, 在面试中总是问问题 它表明您是认真且感兴趣的,但也可以帮助您检测到这些警告信 。

4.保持井井有条并跟踪一切 (4. Stay organized and track everything)

You have some killer projects under your belt, prepped for the technical interview, and have a target company in mind. Now it’s time to start applying for jobs. But holy moly, keeping track of dozens of applications can be a nightmare! I used to keep applications in folders on my computer, but it got unwieldy and cumbersome.

您有一些杀手级项目,准备进行技术面试,并考虑到目标公司。 现在是时候开始申请工作了。 但天哪,跟踪数十个应用程序可能是一场噩梦! 我曾经将应用程序保存在计算机上的文件夹中,但是它笨拙且麻烦。

I ended up using Airtable instead to track all my applications. I used it to track the job listings, cover letters, any email or written communications, salary ranges, contacts, meeting logs, and more.

我最终使用Airtable来跟踪所有应用程序。 我用它来追踪 职位清单,求职信,任何电子邮件或书面通讯,薪资范围,联系方式,会议记录等等。

Here is a link to the template I used. (For all non-spreadsheet nerds out there, Airtable is like the love child of an Excel spreadsheet and a relational database.) One thing I love about Airtable is the ability to link between records in different tables. This allowed me to keep a thorough list of company contacts and individuals on the “People” page, and companies on another.

这是我使用的模板链接 。 (对于外面的所有非电子表格书呆子,Airtable就像是Excel电子表格和关系数据库的挚爱之子。)我喜欢Airtable的一件事是能够链接不同表中的记录。 这使我可以在“人员”页面上保留公司联系人和个人的完整列表,并在另一个页面上保留公司。

But why bother staying this organized Besides satisfying my love of spreadsheets, it makes it a lot easier to pinpoint strengths and weaknesses in your job search strategy.

但是,为什么要保持这种有条理呢除了满足我对电子表格的热爱, 它还使查找工作策略中的优点和缺点变得容易得多。

For example, here is a breakdown of the state of my job applications after I had gotten the job:

例如,这是我获得工作后工作申请状态的明细:

Out of the 40 applications I sent, I received no response from ~50%, and job offers from 20%. Not bad considering the shot-gun approach I had for sending out applications. But, still not as high as I would have liked.

在我发送的40份申请中,约50%没有答复,而20%的工作机会。 考虑到我用于发送应用程序的快枪方法,这还不错。 但是,仍然没有我想要的那么高。

But if we take a look at the jobs that I had an opportunity to interview for:

但是,如果我们看一下我有机会面试过的工作:

Things look a lot better. I have a 50% offer rate. For a quarter of the jobs I interviewed for, I was still between rounds of interviews when I accepted my job offer. So they also might have turned into offers if I continued interviewing with them. I was only rejected by one company after interviewing (and that was likely because I laughed when I found out their average workweek was 60+ hours — a rather awkward interview!).

情况看起来好多了我的 价率为50%。 在接受面试的工作的四分之一中,当我接受我的工作机会时,我仍然处于两轮面试之间。 因此,如果我继续采访他们,他们也可能已经变成了要约。 面试后我才被一家公司拒绝(这很可能是因为当我发现他们的每周平均工作时间为60个小时以上时,我笑了起来–一次相当尴尬的面试!)。

Thanks to my meticulous spreadsheet, I realized that as soon as I talked to an actual person at the company, my odds of getting an offer went way up. My interview game was mostly on-point, but my ability to get that interview was not so great. If my job search had lasted a few more months, I would have definitely switched up my strategy. I would have spent less time writing a ton of cover letters and applications, and more time networking and cultivating referrals.

多亏了我细致的电子表格,我才意识到,与公司的实际人员交谈后,我获得 价的几率就大大提高了。 我的采访游戏大多是即时的,但是我获得采访的能力不是很好。 如果我的求职持续了几个月,我肯定会改变我的策略。 我本可以花费更少的时间来编写大量的求职信和应用程序,而将更多的时间用于 络化和培养推荐人。

That brings us to my next few points…

这将我们带到接下来的几点……

5.写一份有意义的简历和求职信 (5. Write a meaningful resume and cover letter)

Instead of writing lots of low-quality applications, spend more time writing highly-tailored applications. After all, a resume or cover letter with typos or grammatical errors will get rejected immediately. Resumes that are over one page, more often than not, get rejected immediately.

与其编写大量低质量的应用程序,不如花更多的时间编写高度定制的应用程序。 毕竟,带有错别字或语法错误的简历或求职信将立即被拒绝。 一页以上的简历通常会立即被拒绝。

Generic cover letters might not get rejected immediately. However, in a sea of job applications, they really don’t do anything for you. Take a few minutes to visit the company website, and come up with a genuine reason why you’d like to work for that specific company. If you can’t, well, maybe that’s a sign it’s not the right company for you.

通用求职信可能不会立即被拒绝。 但是,在大量的求职申请中,他们实际上并没有为您做任何事情。 请花几分钟时间访问公司 站,并为您想为该特定公司工作的真实理由 。 如果不能,那么也许这表明它不是适合您的公司。

Either way, you should tailor your responses as much as possible. Avoid copying and pasting any templates you find online (hiring managers will Google it, I promise).

无论哪种方式,您都应尽可能调整自己的回答。 避免复制和粘贴您在 上找到的任何模板(我保证,招聘经理会对其进行Google搜索)。

I could write a whole article on resumes alone. But in general, you should highlight the most relevant technical aspects of your previous jobs. For example, I used to work in nonprofit development and fundraising — nothing about the job title screams “web developer.” HOWEVER, I made sure to highlight my work on migrating data and managing fundraising software. In addition, I placed my top three most relevant portfolio projects at the top of my resume. Thus, my technical ability was demonstrated BEFORE my work history.

我可以只写一份关于简历的文章。 但总的来说,您应该强调以前工作中最相关的技术方面。 例如,我曾经从事非营利组织的开发和筹款工作,而职位名称却没有让“ Web开发人员”尖叫。 但是,我确保突出显示我在迁移数据和管理筹款软件方面的工作。 此外,我将我最重要的三个投资组合项目放在简历顶部。 因此,在我的工作经历之前,我的技术能力得到了证明。

6. 络! (6. Network!)

So, I am TERRIBLE at networking. I’m a shy introvert and find it hard to mingle in large-group settings. But even for me, it was possible. I dragged myself to local meetups, and sometimes I even had fun chatting with other techies.

所以,我在 络方面很糟糕。 我是一个内向的害羞的人,发现在大型团体中很难相处。 但是即使对我来说,这也是可能的。 我将自己拖到当地的聚会上,有时甚至和其他技术人员聊天很开心。

The vast majority of the meetups didn’t result in any job leads, honestly, but the handful that did really paid off. In fact, the job that I have now is one that I learned about through someone I met at a meetup!

老实说,绝大多数聚会并未带来任何工作机会,但确实取得了回 。 实际上,我现在的工作是我通过聚会上认识的某个人学到的!

So I really, really encourage you to put yourself out there and attend meetups, lectures, and Slack groups for tech professionals. Even connecting with people/companies online via social media is helpful. The best jobs are often never even posted, so it’s important to try and build your professional network even as a newcomer to the industry.

因此,我真的非常鼓励您投入自己的精力,参加技术专家的聚会,演讲和Slack小组。 甚至通过 交媒体在线与人/公司联系也很有帮助。 最好的工作通常甚至都不会发布,因此,即使是该行业的新手,也要尝试建立自己的专业 络,这一点很重要。

And remember — this is a mutually beneficial exchange! Many companies offer referral bonuses to employees, so it is often in their interest to lend a helping hand too.

请记住-这是互惠互利的交流! 许多公司向员工提供推荐奖金,因此伸出援手通常也符合他们的利益。

7.避免花更少的钱来解决,而要谈判,谈判,谈判 (7. Avoid settling for less, and negotiate, negotiate, negotiate)

At nearly every position I interviewed for, at some point, I was asked what my target salary was. This was frustrating, as in general, the first one to name a number is in a weaker position for negotiations. At the same time, you don’t want to waste your time interviewing at a company that falls far below your desired salary.

在几乎我面试过的每个职位上,有时都被问到我的目标工资是多少。 总的来说,这令人感到沮丧,因为第一个提到数字的人在谈判中处于较弱的位置。 同时,您不想浪费时间去远远低于您期望薪水的公司面试。

After fumbling with this question a few times, I finally got my act together and conducted some salary research. I looked up salary estimates for developers with my level of experience in my city on websites like Payscale, as well as a salary survey from my local tech meetup. At larger companies, you can also look up salaries on Glassdoor, so you can be surer that your range more or less aligns with theirs.

在摸索了几次这个问题之后,我终于团结起来,进行了薪酬研究。 我在Payscale等 站上查看了我在城市中的经验水平,从而针对开发人员查找了薪资估算,并通过我的本地技术聚会获得了薪资调查。 在较大的公司中,您还可以在Glassdoor上查询薪水,因此可以确保您的薪资范围或多或少与他们的薪资范围保持一致。

So whenever I was asked what my salary requirements were, I said: “My target salary range is $X to $X. However, money is not the most important thing. I’m really looking for a company where I can continue to grow and contribute to the team.” This was basically my way of stating my target salary in the politest way I knew how. I stated a range to express my flexibility but made sure that the bottom of the range was something that I would be 100% happy with.

因此,每当被问到我的薪水要求是什么时,我都会说:“我的目标薪水范围是$ X到$ X。 但是,金钱不是最重要的。 我真的在寻找一家可以继续发展并为团队做出贡献的公司。” 基本上,这就是我以我所知道的最谨慎的方式陈述目标薪水的方式。 我说了一个范围来表达自己的灵活性,但要确保范围的底部是我会百分百满意的。

And once you do get an offer, never be afraid to negotiate. It never ever hurts to ask! You can also negotiate on other things besides salary. These can include vacation days, delaying your start-date, and sign-on bonuses, which can be more flexible than base-pay.

一旦收到 价,就不要害怕谈判。 询问从来没有伤害! 除了薪水,您还可以就其他事项进行谈判。 其中可能包括休假日,延迟您的开始日期和登录奖金,这些奖金可能比基本工资更灵活。

结论 (Conclusion)

Thank you to all of you who made it this far! I hope that you found this helpful in your job search. My last piece of advice is this: don’t worry about just getting a job. There is a ton of demand out there for software engineers, even outside of the major tech hubs. If you’ve studied and prepared, you WILL be able to get a job.

谢谢所有做到这一点的人! 我希望您发现这对您的求职很有帮助。 我的最后一条建议是:不要担心仅仅找到一份工作。 即使在主要的技术中心之外,对软件工程师的需求仍然很大。 如果您已经学习并做好准备,那么您将能够找到工作。

Focus on getting the right job — a role that involves working in technologies that you love, at a company that treats its employees well. It might not always be possible to get both at your first tech job, but once you get your foot in the door, pursuing the next opportunity will get a lot easier. It only gets better from here.

专注于找到合适的工作-在一家对待员工的公司中,该职位涉及您喜欢的技术的工作。 可能并非总是都能兼得起您的第一份技术工作,但是一旦您踏上了大门,寻求下一个机会将变得容易得多。 从这里开始只会变得更好。

Be kind to yourself, and take care. Good luck!

对自己好一点,并要小心。 祝好运!

P.S. If you’d like to hear a bit more about my personal interview experiences, as well as where I finally ended up, check out my article Interviewing as a Software Engineer at Niche.

PS:如果您想更多地了解我的个人访谈经历以及我最终的收获,请查看我的文章《 Niche的软件工程师访谈》 。

翻译自: https://www.freecodecamp.org/news/7-key-steps-to-getting-your-first-software-engineering-job-6ef80543cad9/

软件工程的7步骤

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92564 人正在系统学习中 相关资源:专用的软件解决集墨棉使用寿命已尽-专业指导工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月19日
下一篇 2020年6月19日

相关推荐