高三毕业生如何自学软件工程_经过四个月的自学,我如何获得软件工程实习生...

高三毕业生如何自学软件工程

I was a freshman and began self-studying programming around January - February. In May, I got my internship offer at a well-known company.

我还是一名新生,大约在一月至二月开始自学编程。 五月份,我在一家知名公司获得了实习机会。

What I can say is getting a software engineering internship is hard nowadays. You have to go through the whole process of applying, studying for technical interviews and getting ghosted over and over. I understand the struggle, as I applied to over 700 companies to get my offer.

我能说的是,如今很难获得软件工程实习机会。 您必须经历整个申请,学习技术面试以及一遍又一遍的过程。 我了解了这一挣扎,因为我向700多家公司申请了报价。

However, it is totally possible to get into the industry by self-study if you are rigorous and study the right way.

但是,如果您严格并且学习正确的方法,则完全有可能通过自学进入该行业。

Below is a rough step by step guideline with the important steps I have taken, and a walkthrough of what I did in particular.

以下是一个粗略的分步指南,其中包含我已采取的重要步骤,以及我特别做了的演练。

步骤1:学习基础 (Step 1: Learning the Basics)

freeCodeCamp and CodeCademy are the best resources if you are starting out, hands down.

如果您刚入门freeCodeCampCodeCademy是最好的资源。

They both offer explanations in the simplest way possible and teach you the absolute basics of what you have to know in order to break into the industry. I recommend starting out with CodeCademy to learn the syntax of the language of your choice.

他们俩都以最简单的方式提供了解释,并教会您进入该行业所需的绝对基础知识。 我建议从CodeCademy开始学习您选择的语言的语法。

Note: It is important to know which roles you want to apply to in order to study effectively. For example, if you are aiming for a front-end internship, the web development course on freeCodeCamp will be particularly useful. This guide will mainly focus on the front-end side.
注意:重要的是要知道要应用哪些角色才能有效学习。 例如,如果您打算进行前端实习,那么freeCodeCamp上的Web开发课程将特别有用。 本指南将主要侧重于前端。
我做了什么: (What I did:)

Personally, I have always been more interested to work on the front-end. For a front-end web developer, a deep knowledge of JavaScript, HTML, and CSS is arguably the most important thing.

就个人而言,我一直对在前端工作更感兴趣。 对于前端Web开发人员来说,对JavaScript,HTML和CSS的深入了解无疑是最重要的。

Hence, I started my first week of self-study by spending all my time on CodeCademy’s excellent Introduction to Javascript course. It is completely free with beginner-friendly explanations. To make my study even more effective, I regularly took notes on what I learned and what I did not understand. I would later review those notes to refresh my memory, which is crucial in order to not forget what I have learned.

因此,我将所有时间都花在CodeCademy出色的Java语言入门课程上,开始了自学的第一周。 它完全免费,提供对初学者友好的解释。 为了使我的学习更加有效,我定期记下我学到的知识和不了解的知识。 稍后我将回顾这些笔记以刷新我的记忆,这是至关重要的,以便不忘记我学到的东西。

HTML and CSS are relatively easier to learn. I moved on to freeCodeCamp’s complete course on web design. It is one of the best free resource available. If you get through the whole course, you would know more than the basics of web development.

HTML和CSS相对容易学习。 我继续阅读freeCodeCamp的网页设计完整课程 。 它是可用的最佳免费资源之一。 如果您完成了整个课程,您将不仅仅了解Web开发的基础知识。

When you feel like you know the basics, I highly recommend to keep learning with the Front-end developer’s handbook. It provides a complete list of resource for more advanced learners, both paid and free. It contains thousands of hours of reading and will teach you all the tricks a master web developer should know.

如果您想了解基础知识,强烈建议您继续阅读《 前端开发人员手册》 。 它为更高级的学习者提供了完整的资源清单,包括付费的和免费的。 它包含数千小时的阅读时间,将教您Web开发人员应该知道的所有技巧。

步骤2:建立专案 (Step 2: Creating Projects)

After a few weeks, you should be ready to commit to creating a small project. Projects are huge on your resume when you don’t have a lot of experience. Again, freeCodeCamp offers very good project ideas. Start with something small.

几周后,您应该准备致力于创建一个小项目。 如果您没有很多经验,那么简历上的项目就很大。 再次, freeCodeCamp提供了非常好的项目构想。 从小事情开始。

If you are struggling on finding project ideas, you can Google “100 project ideas in X language” and it usually does the trick. Also, take a look at other GitHub repos and learn from their code.

如果您在努力寻找项目构想,可以使用Google“用X语言编写100个项目构想”,它通常可以解决问题。 另外,请查看其他GitHub存储库,并从其代码中学习。

When you are done, test it and put the source code on Github. This is crucial, as it is the only way companies can validate your skills without prior work experience. Put good quality code with documentation when you can.

完成后,对其进行测试,然后将源代码放在Github上。 这至关重要,因为这是公司无需事先工作经验即可验证您的技能的唯一方法。 如果可以,请在文档中放入高质量的代码。

我做了什么: (What I did:)

When I got my offer, I had made 4 - 5 projects. I started with a small typing game web app forked from another student’s GitHub and learned a lot from their code, then added my own. I gradually moved towards more complicated projects. Here is a list of all the projects I made before getting my internship, their descriptions and the stacks I used:

收到报价后,我提出了4-5个项目。 我从一个从另一个学生的GitHub派生的小型打字游戏网络应用程序开始,并从他们的代码中学到了很多,然后添加了自己的代码。 我逐渐转向更复杂的项目。 这是我获得实习之前所做的所有项目的列表,它们的描述以及我使用的堆栈:

  1. Various other small games like Minesweeper, all made with React and styled with CSS.

    其他各种小型游戏,例如Minesweeper,都由React制作并由CSS设置样式。
  2. A map to visualize over half a million traffic data points made with Javascript and Mapbox.

    该地图可可视化用Javascript和Mapbox制作的超过一百万个交通数据点。
  3. A working React Native app to let users showcase their best pictures, with the backend implemented in Node.js and Mongoose, hosted on Heroku.

    一个可正常运行的React Native应用程序,可让用户展示自己的最佳照片,并在Heroku上通过Node.js和Mongoose实现了后端。

步骤3:申请工作 (Step 3: Applying for Jobs)

I have the most experience in this area as I have applied to so many jobs. The best tips I have, regarding the job search and interview process, are:

我在这方面的经验最多,因为我已经申请了很多工作。 关于求职和面试过程,我拥有的最佳建议是:

  1. LinkedIn, Glassdoor and Indeed Easy Apply are not your friends. With those type of postings, the recruiter receives so many applications they usually use an ATS (Application Tracking System) to filter out all the resumes. If you don’t have any previous experience or impressive projects, the chances that you will get through the filter are very slim.

    LinkedIn,Glassdoor和确实便捷申请不是您的朋友。 通过这些类型的发布,招聘人员收到了如此多的申请,他们通常使用ATS(应用跟踪系统)来过滤掉所有简历。 如果您以前没有任何经验或令人印象深刻的项目,那么通过筛选的机会就非常渺茫。
  2. A cover letter is a double-edged sword. When done right, it can really differentiate you from the rest of the candidates. However, when done wrong, it can worsen your situation. My advice if you were to write one is to tailor, tailor, tailor it. Target your cover letter specifically to the company you are applying for. DO NOT send the same generic cover letter to every company, as recruiters know you have sent 100 of them already. Lastly, please make sure there are no grammatical errors. One typo is enough for the recruiter to reject you.

    求职信是一把双刃剑。 如果做得正确,它可以使您与其他候选人真正区分开。 但是,如果做错了,可能会使您的处境恶化。 如果您要写一个,我的建议是裁缝,裁缝,裁缝。 将求职信专门针对您要申请的公司。 请勿向每家公司发送相同的通用求职信,因为招聘人员知道您已经发送了其中的100个。 最后,请确保没有语法错误。 一招打错就足以使招聘人员拒绝您。
  3. I had the most success either applying directly on the company’s website or through cold emailing recruiters (or even the CEO if the company is rather small). If the company does not have a public e-mail, you can usually guess as it is almost always in the form hello at companyname dot com. They have a MUCH higher chance of looking at your resume than if you submitted it via Indeed/Glassdoor. You can have a template and change slightly the wording for different companies.

    我获得了最大的成功,无论是直接在公司网站上进行申请,还是通过给招聘人员发电子邮件(如果公司规模很小,甚至可以是首席执行官)都可以。 如果公司没有公开电子邮件,通常可以猜到,因为它几乎总是hello at companyname dot com的形式hello at companyname dot com 。 与您通过Indeed / Glassdoor提交简历相比,他们查看您的简历的可能性要高得多。 您可以有一个模板,并略微更改不同公司的措词。

  4. Have thick skin. Companies reject you for all sort of random reasons and recruiters ghost you all the time. It is normal. If you have a less attractive resume, you stand a smaller chance of getting an interview. Keep applying and do not give up. It is never over until you stop trying.

    皮肤厚实。 公司出于各种随机原因拒绝您,而招聘人员一直在骗您。 这是正常的。 如果您的简历不太吸引人,那么您面试的机会就较小。 继续申请,不要放弃。 除非您停止尝试,否则它永远不会结束。

步骤4:面试 (Step 4: Interviewing)

When you finally land that sweet Interview, be sure to prepare for it. There are numerous resources online teaching you how to ace a technical interview. If you haven’t read it already, Cracking the Coding Interview is a very good read.

当您最终获得那份甜蜜的采访时,请务必做好准备。 在线上有许多资源教您如何进行技术面试。 如果您还没有读过它,那么阅读《 破解编码面试》将是一本很好的书。

Technical interviews are very stressful. There’s no workaround for them - you have to grind algorithm questions. Leetcode offers tons of good questions for practice.

技术面试压力很大。 他们没有解决方法-您必须研究算法问题。 Leetcode为实践提供了很多很好的问题。

However, since they are so widely known, it is very unlikely you will get the exact same question you practiced on an interview. The interviewer usually has a bank of random questions that are not posted online. Still, the basic idea remains the same. For instance, it is always good to know your data structures and Big O thoroughly.

但是,由于它们广为人知,因此您不太可能会得到与面试中练习过的完全相同的问题。 面试官通常会有大量随机问题,这些问题不在网上发布。 仍然,基本思想保持不变。 例如,最好彻底了解您的数据结构和BigO。

Another thing to note: companies I interviewed with often brought up my projects and asked me technical questions about the implementation. It is their way of testing if you have lied on your projects, so be prepared for it.

需要注意的另一件事:我采访过的公司经常提出我的项目,并问我有关实施的技术问题。 如果您对项目撒谎,这是他们的测试方式,因此请为此做好准备。

我做了什么(What I did:)

To start off: it is ok to suck at interviews. I completely messed up my first ones. It is embarrassing to remember.

首先,可以接受采访。 我完全弄乱了我的第一个。 令人难忘。

I realized I was not prepared enough for the technical questions. I started doing Leetcode 2 - 3 hours a day. The most important thing is not to spend too long on a single problem. You do not have unlimited time on your interview. Instead, put a timer, say 10 minutes for an easy question and 20 minutes for a medium one (you mostly won’t get Leetcode hard questions on your interviews if you are applying for an entry-level position or an internship).

我意识到我对技术问题的准备不足。 我开始每天进行2至3个小时的Leetcode。 最重要的是不要在单个问题上花费太长时间。 您的面试时间不受限制。 相反,放一个计时器,一个简单的问题说10分钟,一个中等问题说20分钟(如果您要申请入门级职位或实习,通常不会在面试中遇到Leetcode硬性问题)。

If you cannot solve it in time, that’s completely ok. Look at the solution and try to understand it. Mark the question you cannot solve and try again in a week.

如果您不能及时解决,那完全可以。 查看解决方案并尝试理解它。 标记您无法解决的问题,并在一周后重试。

Since interviews also test your communication skills, you can prepare by saying your thoughts out loud when you do practice questions. Trust me, it may sound weird at first but it makes a huge difference in interviews when you are used to speaking up.

由于面试还会考验您的沟通技巧,因此您可以在练习问题时大声说出自己的想法进行准备。 相信我,乍一看听起来很奇怪,但是当您习惯说话时,它在面试中会产生很大的不同。

资源:在哪里可以找到入门级的工作和实习 (Resources: where to find entry-level jobs and internships)

What I used to find internships (besides Glassdoor, Indeed, and Linkedin) include Breakout List and AngelList.

我用来寻找实习机会(除了Glassdoor,Indeed和Linkedin)包括Breakout ListAngelList

My 2 cents: I realized how dreadful it was to try and find internships openings. There’s no easy and fast way to find a complete list of companies with their internship listings. freeCodeCamp’s community is awesome and helped me a lot during my job, and I’d like to contribute back.

我的2分钱 :我意识到尝试找到实习机会是多么可怕。 没有简单快捷的方法来找到包含其实习职位的公司的完整列表。 freeCodeCamp的社区很棒,在我的工作中为我提供了很多帮助,我想为此做出贡献。

I came up with this app after my internship as my side project, to compile a list of companies and their internships/entry level jobs, filterable by location, tags, school term, etc. I will elaborate on it in the next section.

在实习之后,我提出了这个应用程序作为我的附带项目,以编译公司及其实习/入门级工作的列表,可以按位置,标签,学期等进行过滤。我将在下一部分中对其进行详细说明。

结论 (Conclusion)

Finding your first job/internship can be a long, frustrating and tedious process. However, the experience you gain from the actual workplace makes it totally worth it.

找到您的第一份工作/实习可能是一个漫长,令人沮丧且乏味的过程。 但是,您从实际工作场所获得的经验使其完全值得。

Here is a comparison of the project I made after my internship and one of my first projects ever.

这是我实习后所做的项目与我有史以来的第一个项目的比较。

Quite a difference, right?

完全不同,对吗?

This is why I think the time spent during my internship was totally worth it. I would never have been able to make my last project without all the guidance and experience I gained at my internship. The project is a platform and a job board to discover internships and entry level positions for students, self-taught developers and new grads. You can view it here.

这就是为什么我认为在实习期间花费的时间完全值得的原因。 没有我在实习期间获得的所有指导和经验,我将永远无法完成我的最后一个项目。 该项目是一个平台和工作委员会,可为学生,自学成才的开发人员和应届毕业生提供实习和入门级职位。 您可以在这里查看

I strive to improve, and any feedback is welcome. I’d like to write my next article as a step-by-step guide on how I designed and structured the app, so let me know if you are interested. I’d also love to help others that are just starting out, as I understand the struggle. If you have any questions, do not hesitate to send me a message (you can highlight this and click the message icon on the popup).

我努力改善,欢迎任何反馈。 我想写我的下一篇文章,作为有关如何设计和构建应用程序的逐步指南,所以请告诉我您是否有兴趣。 据我所知,我也很乐意帮助刚刚起步的其他人。 如有任何疑问,请随时向我发送消息(您可以突出显示该消息,然后单击弹出窗口上的消息图标)。

Good luck everyone!

大家好运!

翻译自: https://www.freecodecamp.org/news/how-i-got-my-software-engineering-internship-after-4-months-of-self-study-5b5c4836bd6f/

高三毕业生如何自学软件工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值