获得第一份开发工作比较困难,但不管你的背景如何,你都可以做到。
我曾亲自聘请了前调酒师,私人教练和非STEM毕业生,我还聘请了机械工程师,你的教育经历并不重要。
人们偶尔会问我如何获得他们的第一份工作,以下就是我告诉他们的。
这里的App指的是web网站、手机程序或其他。
一个公开的作品集证明你可以编写软件。相比之下,如果没有作品集,面试官就不知道你到底能做什么——展示给他们看。
理想情况下,你的作品集不仅仅包含来自编码训练营的项目。训练营没有什么错,但是自己创建一些东西可以让你在同学中脱颖而出,也可以展示他们的训练营应用程序。
我雇佣的候选人大多都有自己的作品集。
软件工程师的招聘要求是出了名的夸张。
我曾见过招聘的工作描述里要求在某一特定语言方面拥有多年经验甚至超过该语言的年龄。不要申请那些公司!
工作描述是为一个假设的完美候选人而编写的,这种完美的候选人很少会被聘用。就我个人而言,我从未满足过我所雇用的工作的所有要求。
忽略学士学位的教育要求,甚至连谷歌和Facebook也会雇佣没有学位的工程师。
如果你没有经验,可以申请要求少于两年工作经验的职位。公司很少承认他们雇佣没有经验的候选人。但是每年都有新的开发人员找到工作,所以不要把工作描述太当回事。
如果你满足了一些主要的技术要求,那就申请吧。是否面试由公司来决定。
为自己的项目编写代码显示了你对软件开发的真正兴趣。就像对一件工艺品的热情可适用任何人。
但是,如果一个人在一年前完成了训练营,之后就再也没有写过任何代码,情况就会相反了。
从事自己的业余项目将使你在五年内成为一个更好的开发人员。
我不能夸大这一点——不要停止编码。
(如果你想在Facebook,Amazon或Google工作,请忽略此建议)
了解数据结构很重要,编写高效的代码也是如此。学习基本的大O符号。理解多重循环是性能不好的,以及数组与哈希表的优点,这就够了。
不要花几个月的时间在LeetCode和HackerRank上做算法问题。除非当你真的打算申请Facebook时才这样做。
在大多数初创公司,你只会遇到几个算法问题。他们通常不会要求太苛刻,你可以在面试官的帮助下挣扎着通过。
我在面试中更多的时间是浏览你在自己的项目中编写的代码。
不要让这些知识白白浪费,用它们创造一些东西。
我因为告诉人们去构建、构建、构建而受到批评——但这就是我们作为软件开发者所做的。这是学习和展示所学知识的最佳方式。
在线证书在简历中微不足道,任何人都可以参加课程。我曾在简历上看到太多上过哈佛CS50课程的人不会写代码,别做这样的人。
在线课程非常适合学习,学习并应用。
如果你正在用你的应用创建一个初创公司,保持私有是可以接受的。否则,将代码公开。
没有比评审别人的代码更好的方法来判断技术专长了。
它不需要非常复杂,但面试官可以从中了解到许多:你是否遵循了框架的约定?它能防止SQL注入吗?代码干净吗?这些都有助于让他们对开发人员有一种直觉。
希望你能通读你的代码并解释它是做什么的——不是在底层,而是在框架的层次上。
乍一看,产品的外观就是产品本身。
不管公平与否,一个干净的应用程序和闪亮的用户界面会让面试官对你的印象更加深刻。没人需要知道你花了好几个星期才完成!
对于资源有限的初创公司来说,能够进行完整的开发也会让你更有价值。
我发现教前端开发人员编写后端代码要比教后端开发人员欣赏UI/UX更容易。
如果你是非技术人员,请扮演任何允许你接触代码或数据的角色。
有机会从事数据分析、商业智能或分析方面的工作?你将了解数据类型和可视化。
提供了一份你不喜欢的语言的工作?使用两种语言,你会成为更好的开发人员。
觉得不适合这个角色吗?我们都有过这种感觉。
任何朝着代码和数据方向的事情都是进步。你会学到一些东西,在面试中,你可以把你的经历作为一个故事来讲述。
有一种观点认为关键词可以帮助你通过人工智能筛选工具。有趣的是,我认为这种说法有些言过其实,而且主要适用于大型非科技公司。
但是,大量的语言,框架和库列表是新开发人员简历上的一个危险信号。熟练掌握一项技能需要花费数年时间,因此我对只列出几种技术的简历充满信心。
我更想看看你使用的一些技术。如果你被要求描述你是如何使用它的,你也会更加自信。
每个人都会气馁。但你有理由抱有希望。
截止2019年,世界上有2300万软件开发者。大多数人没有计算机科学学位。
我也保证他们不都是天才。我也不是。
如果很多人都能做到,你也可以。失败的唯一途径就是放弃。
这是基于一个人的轶事经验,我想这些要点是你的坚实起点。
尽一切努力,创建自己的行动计划。
吸收有用的东西,丢弃无用的东西,并添加你自己的东西。 — Bruce Lee
获得你的第一份写代码的工作是困难的,但是你可以做到 — 不要放弃!