全文共3840字,预计学习时长11分钟
来源:Pexels
作为一名曾经在旧金山湾区(Bay Area)和纽约市(NYC)一些最热门的科技初创公司工作过的技术招聘人员,我亲眼目睹了公司在软件工程、机器学习、数据科学、技术管理、董事职位等领域寻找候选人的过程。
也许,我能带领许多自学成才的求职者找到工作。
坦白讲:我本人就正在自学编程。
一些自学成才的求职者喜欢咨询的问题:
· 怎样才能进入这家公司呢?
· 面试官喜欢在简历上看到什么?
· 我有什么可以改进之处?
事实上,每家公司都是不同的。每个公司都有一套不同的要求。有些公司偏好名牌大学毕业生,而有些公司有学位要求,有些公司则不喜欢训练营,甚至还有一些公司不想把宝押在一个自学成才的年轻人身上。
别让这些条条框框吓着你。
来源:Pexels
当我招聘时,我总是对自学成才的程序员和获得学位的人一视同仁,甚至认为他们可能比有学位的人更胜一筹。我对这些候选人很尊重,这也是为什么即使公司并不认同这种心态,我却总是在招聘时极力争取他们的原因。
自学成才需要有足够的毅力、时间管理、专注、智慧和动力。我相信招聘经理们将开始意识到这将会改变未来招聘工程师的标准。
下面将分享一些技巧和技巧,帮助你在任何公司、招聘人员或招聘经理前脱颖而出。
为成功蓄力
· 磨练自己
· 冒名顶替综合征
· 制作自己的作品集
· 有针对性的方法
· 完善简历
· 打造自己的品牌
· 研究,研究,再研究
· 为面试做准备
磨练自己
在开始找工作之前,你必须衡量自己的技术能力。如果了解自己的技能,就可以申请与之匹配的工作。一旦知道了你的技能是什么,你要做的就是向雇主证明你清楚你的简历上写了什么。
对于自学成才的程序员来说,你的项目通常等同于潜在雇主眼中的学位。理解创建每一个项目的过程及原因,并准备好流利的表达。
击垮冒名顶替者综合症
在某些时候,也许在面试中,在一家公司工作,或者在课程进行到一半时,你会问自己是否属于这里。脑海里的声音可能告诉你,你不适合做这个。但事实是,不管是自学成才的程序员还是其他人都会有这样的想法。你必须学会控制这种症状和想法。永远不要忘记,你和拥有学位的人一样都是开发人员。
制作自己的作品集
如果之前没有工作经验,向雇主证明你有编程能力的最好方法就是创建一个包含最好项目的作品集,让雇主了解你已经完成的项目。活跃的Github简介会给雇主留下很好的第一印象。
每一次学习新技术的时候,你都可以通过建立一个项目来巩固你所学到的东西。
如果你申请的职位与技能相匹配,那么在整个面试过程中,你可以用你的项目作为例子,说明你是如何成功利用该项技能的。
有些雇主希望看到你的代码,有些则希望看到成品。确保这两项都包含在作品集里,将它们放到自己的网站和简历上。
当创建项目时,请记住以下几点:
要解决的问题是什么?怎么解决的?是否有回顾解决方案的复杂性或效率?遇到了什么问题?
有针对性的方法
我能提供的最好的建议是,在建立作品集时,不要只是罗列作品集中的所有项目,而是要突出与你感兴趣的公司或领域相关的项目。换句话说,采取有针对性的策略。
如果你已经锁定了几个不同的雇主,或者已经选定了一个领域,那么就选择一个量身定制的项目来打动他们。
例如:曾经我为一家加密货币公司招聘时,该公司为数字资产公司提供了一个代币销售的平台。有一个应聘者在自己的项目中为加密货币建立了一个技术分析和算法交易平台。他在面试时展示了他的工作成果。这不仅展示了他的编程能力,还展示了他对加密货币领域的理解,以及对该公司的浓厚兴趣。因此他得到了那份工作!
完善简历
把简历当作一种营销工具。招聘人员正在寻找符合职位描述的候选人,帮助解决他们的问题或需求。他们没有时间仔细研究你的简历,搞清楚你是谁,所以你需要帮他们把这些记忆点连起来。
注意事项
· 不要在简历上撒谎。
· 不要给每个雇主都投去相同的简历。
· 弄清楚雇主真正想要的是什么,然后在简历中反映出这些能力。
· 一定要花时间写一份能立即引起他们注意的摘要,准确有力地把你描述成能解决他们问题的方案。
· 不要仅仅列出工作职责,而是要列出你已经完成的工作
· 在简历中加入LinkedIn,确保简历和LinkedIn匹配。
· 一定要包括你的Github。
· 一定要有创造性,简历应当包括你参加过的任何开发人员培训,以及无论是在网上参加的课程还是你自己获得的任何证书。
· 列出精通的语言和目前正在学习的语言。
· 列出你的项目——功能,目的和构建方式,以及你使用的技术。
优秀简历示例:
打造自己品牌
为了脱颖而出,你必须在这个行业显示权威,证明你确实属于这里。最好的方法就是把你自己和你的内容展示给世界。
如果你喜欢写作,那么可以尝试在Medium、Hackernoon、Dev Community等网站上开始写博客。如果你喜欢在镜头前,建立一个YouTube频道或在Instagram上发布资讯也是不错的选择。如果你喜欢聊天,那就开始创建自己的播客。在社交媒体上增加你的受众,而不必成为这些领域的专家。作为一个程序员,你只需要向世界和招聘经理展示你的履历和能力。这也为你的面试提供了很好的谈资,同时也可以写进你的简历里。
每个人都喜欢一个好故事,你永远不知道它会影响谁甚至启发谁:
你必须乐于表现自己,表现出脆弱的一面,表明你在认真对待所做的事情,对自己的能力有信心。
研究,研究,再研究
不知有多少次我看到应聘者搞砸了面试,是因为他们没有研究过这家公司,也无法向面试官解释他们对这家公司了解多少,公司做了什么。找出你所应聘的公司的所有信息,并根据你的发现来调整你的申请。
以下是一些你可以研究准备的事情:
· 公司看重的技能和经验。
· 公司的关键人物——在LinkedIn上搜索他们。
· 公司的新闻、成就和最近的事件——关注他们的博客或社交媒体。
· 公司的文化、使命和价值观——可以在其网站上找到。
· 他们的任何客户、产品和服务。
· 了解公司内部细节——通过Glassdoor了解面试问题、招聘流程、评估等细节。
· 调查每一个面试你的人。
准备技术面试
来源:Pexels
上文所述将帮助你为任何一家公司的面试做准备。本节将深入讨论技术方面。
这是一个程序员典型的技术面试的流程(或多或少):
· 第一阶段:技术电话/屏幕面试。如果你已经成功进入了第一阶段,这证明公司喜欢你的简历,并且想和你谈谈。这个阶段的目的是看看你是否有足够的资格/热情进入下一个阶段。
· 第二阶段:远程编码面试/任务。有些公司会让你在参加现场会议之前用一个挑战来测试编程技能。这可能通过电话,视频电话,或作业来传达。为了保持新鲜感,你应该尽可能多地练习编码挑战。
· 第三个也是最后一个阶段:现场面试/白板挑战。这个阶段通常包括一个面对面的面试,你必须在面试官面前的白板上完成编码挑战。
以下是一些你在面试前需要研究的事情,你可以巩固它们来提升自己。
数据结构
数据结构是一个核心的编程概念,因此所有程序员都必须了解基本的数据结构。你必须能够自如地使用您喜欢的编程语言中的列表和字典,以及它们之间的优缺点。
算法
你应该知道如何实现和应用不同的算法:树遍历算法、图搜索算法、搜索和排序算法。
时空复杂度
你应该养成在设计算法时考虑时间和空间复杂性的习惯。这应该成为第二天性,使你立即看到各种算法的优势和潜在的性能问题。
操作系统
每个程序员都至少应该了解计算机操作系统的底层机制。
数据库
任何组织研发任何一款应用程序和软件都需要数据库做支撑。你应该了解如何使用数据库。
非技术性因素
准备好展示你的领导能力、团队合作能力、解决问题的能力和沟通技巧。
准备面试相关资源
· 破解编程面试Cracking the Code Interview (书)
· Interviewing.io (与工程师一起模拟面试)
· 行为面试 (视频)
· HackerRank or TripleByte (代码实践)
· 建立专业有效的人际关系
长期以来的统计数据表明,最有关系的人往往是最成功的人。当你在人际关系上投资时——无论是专业的还是私人的——你都能最大限度地发掘自己的潜力。
来源:Pexels
无论再怎么强调离开你的舒适区和人们面对面的重要性也不为过。参加聚会,参加会议,认识新朋友,在LinkedIn上关注他们。你会惊讶地发现,机遇和善意会经常为你打开大门。
恰当的员工推荐可以增加找到好工作的机会。LinkedIn上的专业人脉可以帮助你和想要进入的行业进行联系,并为你指明方向。好好利用这一点!
人脉资源
· Meetup
· 开发人员活动和会议
来源:Pexels
上文的所有建议都可以归结为一句话:程序员的职业就是不断学习。
自学让你成为一名程序员,继续前进与否取决于你的努力程度。在这个过程中享受编程的乐趣,而不是眼高手低。
希望你能从错误中吸取教训,继续编写代码,找到前进的方向!
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)