“写代码时,每次都要告诉自己:最后负责维护代码的,会是一个知道你住在哪的变态暴力狂。” ——约翰·伍德(John Woods)
拿下第一份编程工作需要付出更多努力,但是如果采纳下面的建议,应该不会有太大问题。幸运地是,只要你得到了第一份工作且积累了经验,在寻找新的工作机会时,招聘者会主动接触你。
选择方向
应聘编程岗位时,根据岗位所处的领域不同,企业会要求你了解一系列技术。在学习编程时各个领域都有涉猎是没有问题的,而且也有更多机会找到有相关要求的岗位。但是,我的建议是专注某一个感兴趣的编程领域,成为该领域内的专家。专注一个编程方向会使得求职更容易。
Web开发和移动开发是两个非常流行的编程方向,各自包含两个细分领域:前端和后端。应用的前端是用户可见的部分,如Web应用的图形界面;后端是用户看不见的地方,是向前端提供数据的部分。市场上招聘的岗位名称大多类似“Python后端开发”,意味着公司寻找的是负责网站后端开发且熟悉Python的程序员。岗位描述中会列出理想的候选人应该熟悉的技术,以及其他需要掌握的能力。
有些公司将开发团队划分为前端和后端两个团队。有的公司则只招聘全栈程序员,即前后端均掌握的程序员,但是这只适用于开发网站或移动应用的公司。
我们还可以从事许多其他编程领域,如安全、平台开发和数据科学。在招聘程序员的网站上查看岗位职责,可以方便了解不同编程领域的要求。Python官网提供了一个Python工作列表:https://www.python.org/jobs,可以先从这里找起。先查看几个岗位的要求以及所使用的技术,了解需要学习哪些内容才能成功竞争该岗位。
积累初期经验
在成功应聘上第一个编程工作前,你需要积累经验。但是如果没有公司愿意在你没有经验的情况下雇佣你,怎么积累经验呢?有几个解决办法。首先,你可以参与开源项目,自己启动一个开源项目或向GitHub上的其他开源项目提交代码。
另一个方式是做外包。在Upwork等类似网站创建账号,试着申请规模较小的编程工作。我建议去找确实有编程外包需求的朋友,让他们在Upwork等网站注册账号,然后正式雇用你完成任务。这样后续可以给你很不错的评价。其他人看到你至少成功完成了一项工作之后,被雇佣的概率就会提高,因为你已经成功建立了可信度。
拿到面试机会
通过开源项目获外部工作成功积累编程经验后,可以开始寻找面试机会。我发现一个有效地获取面试机会的方法,就是通过LinkdedIn。如果你还没有LinkedIn账号,建议创建账号并试着与潜在雇主进行沟通。在个人档案中留下自我描述,突出自己的编程能力。例如,很多人会在档案上这样写,“编程语言:Python、JavaScript”,会吸引来不少关注这些关键词的招聘者。务必将自己的开源项目或外包经验列为近期的工作。
完善个人档案后,可以开始与技术招聘人联系。LinkedIn上有许多技术招聘人,他们一直在寻找新的人才,也会乐意与你沟通。他们在接受你的邀请后,你要主动联系并询问有没有招聘的岗位。
面试
如果招聘者认为你适合他们的岗位,则会在LinkedIn上发消息请求发起电话面试。电话面试是与招聘者进行的,所以通常不涉及技术问题,但是我也在第一轮面试中被问过技术问题。面试内容为你熟悉的技术,之前的工作经验,并判断能否适应公司的文化等。
如果面试效果不错,将进入第二轮技术电话面试,与技术团队成员进行交流。他们可能会问与第一轮面试中相似的问题,但是这轮中的问题会新增一个技术测试。负责面试的工程师会提供一个网址,上面有已经准备好的编程问题,需要你来解决。
如果顺利通过第二轮,通常还会有第三轮面试。第三轮面试一般会在公司当面进行。和前两次面试一样,你会见到团队中的其他成员。他们会询问你的能力和经验情况,要求完成更多的技术测试。有时候可能要留下来一起吃午饭,观察与团队成员的契合度。第三轮中会有著名的白板编程测试。如果你面试的公司有这个传统,面试者会要求你通过这种方式解决多个编程问题。我建议买一块白板提前练习,因为在白板上解决编程问题比在计算机上解决问题要难得多。
面试技巧
大部分编程面试聚焦两个主题:数据结构和算法。要想顺利通过编程面试,你需要精通这两个领域。这也会帮助你成为一名更优秀的程序员。
你还可以从面试官的角度来思考,将可能涉及的问题范围进一步缩小。有人说,软件从来无法完成,对于面试官来说也是如此。他很可能手头上有许多工作,不想花太多时间面试。他们会花宝贵的时间来自己列编程问题吗?很可能不回。他们会去搜索“编程面试问题”,挑选其中某一个提问。这就导致不断地出现同样的面试问题,因此网络上积累了诸多宝贵的资源,帮助大家练习如何回答。我强烈建议使用LeetCode网站练习,因为我发现别人在面试中问的问题,在这个网站上都可以找到答案。
本文部分内容经授权节选自《Python编程无师自通专业程序员的养成》
![640?wx_fmt=jpeg](https://i-blog.csdnimg.cn/blog_migrate/a36a5748e7c58a5bff3f55be5ad76c0f.jpeg)
《Python编程无师自通——专业程序员的养成》
作者:[美] 科里•奥尔索夫(Cory Althoff)
在美国亚马逊,这是一本书的影响力超高的Python入门书,Kindle版本在美国亚马逊网站的计算机软件、软件开发分类中排行均为第一,超越了众多实力派Python书,众多五星好评。这些也许你有所耳闻。
《Python编程无师自通——专业程序员的养成》作者是一名自学成才的程序员,作为一名文科生他通过自学编程,掌握了编程技能并在eBay找到了一份软件工程师的工作。这本书是作者结合个人经验写作而成,旨在帮助读者从外行成长为一名专业的Python程序员。
这本书可以满足几乎所有想要学习编程的初学者。
目录一览
第1章 概述
第2章 起步
第3章 编程概论
第4章 函数
第5章 容器
第6章 字符串操作
第7章 循环
第8章 模块
第9章 文件
第10章 综合练习
第11章 练习
第二部分 面对对象编程简介
第12章 编程范式
第13章 面向对象编程的四大支柱
第14章 深入面向对象编程
第15章 综合练习
第三部分 编程工具简介
第16章 Bash
第17章 正则表达式
第18章 包管理器
第19章 版本控制
第20章 融会贯通
第四部分 计算机科学简介
第21章 数据结构
第22章 算法
第五部分 找到工作
第23章 最佳编程实践
第24章 第一份编程工作
第25章 团队协作
第26章 更多学习资料
第27章 下一步
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/5f848a8db4cb47005f8c26de114c26fb.png)
这样的一本书是不是应该放到你的书单里?
识别下方二维码或者点击阅读原文即可购买