“写代码时,每次都要告诉自己:最后负责维护代码的,会是一个知道你住在哪的变态暴力狂。” ——约翰·伍德(John Woods)

拿下第一份编程工作需要付出更多努力,但是如果采纳下面的建议,应该不会有太大问题。幸运地是,只要你得到了第一份工作且积累了经验,在寻找新的工作机会时,招聘者会主动接触你。

选择方向

应聘编程岗位时,根据岗位所处的领域不同,企业会要求你了解一系列技术。在学习编程时各个领域都有涉猎是没有问题的,而且也有更多机会找到有相关要求的岗位。但是,我的建议是专注某一个感兴趣的编程领域,成为该领域内的专家。专注一个编程方向会使得求职更容易。

Web开发和移动开发是两个非常流行的编程方向,各自包含两个细分领域:前端和后端。应用的前端是用户可见的部分,如Web应用的图形界面;后端是用户看不见的地方,是向前端提供数据的部分。市场上招聘的岗位名称大多类似“Python后端开发”,意味着公司寻找的是负责网站后端开发且熟悉Python的程序员。岗位描述中会列出理想的候选人应该熟悉的技术,以及其他需要掌握的能力。

有些公司将开发团队划分为前端和后端两个团队。有的公司则只招聘全栈程序员,即前后端均掌握的程序员,但是这只适用于开发网站或移动应用的公司。

我们还可以从事许多其他编程领域,如安全、平台开发和数据科学。在招聘程序员的网站上查看岗位职责,可以方便了解不同编程领域的要求。Python官网提供了一个Python工作列表:https://www.python.org/jobs,可以先从这里找起。先查看几个岗位的要求以及所使用的技术,了解需要学习哪些内容才能成功竞争该岗位。

积累初期经验

在成功应聘上第一个编程工作前,你需要积累经验。但是如果没有公司愿意在你没有经验的情况下雇佣你,怎么积累经验呢?有几个解决办法。首先,你可以参与开源项目,自己启动一个开源项目或向GitHub上的其他开源项目提交代码。

另一个方式是做外包。在Upwork等类似网站创建账号,试着申请规模较小的编程工作。我建议去找确实有编程外包需求的朋友,让他们在Upwork等网站注册账号,然后正式雇用你完成任务。这样后续可以给你很不错的评价。其他人看到你至少成功完成了一项工作之后,被雇佣的概率就会提高,因为你已经成功建立了可信度。

拿到面试机会

通过开源项目获外部工作成功积累编程经验后,可以开始寻找面试机会。我发现一个有效地获取面试机会的方法,就是通过LinkdedIn。如果你还没有LinkedIn账号,建议创建账号并试着与潜在雇主进行沟通。在个人档案中留下自我描述,突出自己的编程能力。例如,很多人会在档案上这样写,“编程语言:Python、JavaScript”,会吸引来不少关注这些关键词的招聘者。务必将自己的开源项目或外包经验列为近期的工作。

完善个人档案后,可以开始与技术招聘人联系。LinkedIn上有许多技术招聘人,他们一直在寻找新的人才,也会乐意与你沟通。他们在接受你的邀请后,你要主动联系并询问有没有招聘的岗位。

面试

如果招聘者认为你适合他们的岗位,则会在LinkedIn上发消息请求发起电话面试。电话面试是与招聘者进行的,所以通常不涉及技术问题,但是我也在第一轮面试中被问过技术问题。面试内容为你熟悉的技术,之前的工作经验,并判断能否适应公司的文化等。

如果面试效果不错,将进入第二轮技术电话面试,与技术团队成员进行交流。他们可能会问与第一轮面试中相似的问题,但是这轮中的问题会新增一个技术测试。负责面试的工程师会提供一个网址,上面有已经准备好的编程问题,需要你来解决。

如果顺利通过第二轮,通常还会有第三轮面试。第三轮面试一般会在公司当面进行。和前两次面试一样,你会见到团队中的其他成员。他们会询问你的能力和经验情况,要求完成更多的技术测试。有时候可能要留下来一起吃午饭,观察与团队成员的契合度。第三轮中会有著名的白板编程测试。如果你面试的公司有这个传统,面试者会要求你通过这种方式解决多个编程问题。我建议买一块白板提前练习,因为在白板上解决编程问题比在计算机上解决问题要难得多。

面试技巧

大部分编程面试聚焦两个主题:数据结构和算法。要想顺利通过编程面试,你需要精通这两个领域。这也会帮助你成为一名更优秀的程序员。

你还可以从面试官的角度来思考,将可能涉及的问题范围进一步缩小。有人说,软件从来无法完成,对于面试官来说也是如此。他很可能手头上有许多工作,不想花太多时间面试。他们会花宝贵的时间来自己列编程问题吗?很可能不回。他们会去搜索“编程面试问题”,挑选其中某一个提问。这就导致不断地出现同样的面试问题,因此网络上积累了诸多宝贵的资源,帮助大家练习如何回答。我强烈建议使用LeetCode网站练习,因为我发现别人在面试中问的问题,在这个网站上都可以找到答案。

本文部分内容经授权节选自《Python编程无师自通专业程序员的养成》

《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章 下一步

这样的一本书是不是应该放到你的书单里?

识别下方二维码或者点击阅读原文即可购买

怎样能拿到第一份编程工作?这里告诉你答案 | 码书相关推荐

  1. 编程的第一步都要使能时钟吗_在您的第一份编程工作中要做的11件事

    编程的第一步都要使能时钟吗 Firsts are exciting but can also be overwhelming. When I started my first programming ...

  2. 你是如何找到自己的第一份测试工作的?

    作为一个测试新人,面对自己职场的第一份测试工作,在入职之前都会有点迷茫,去了新公司要如何展开测试工作?会不会有专人带?会不会有培训? 该如何处理好跟新同事之间的关系? 如何搭建测试环境等等一系列问题, ...

  3. p2020开发_10个使您在2020年获得第一份开发工作的项目

    p2020开发 For those of you looking to break into the world of web development with your first dev job, ...

  4. 50年代黄岩师专_300多位30、40和50年代获得第一份技术工作的开发人员的故事

    50年代黄岩师专 Over the weekend, I built a list of 300 developers who got their first tech job in their 30 ...

  5. 产品新人如何才能找到第一份产品工作?

    在校学生毕业如何找到一份产品经理的工作?设计师,程序员,运营转产品经理应该做哪些准备?怎样才能找到第一份产品工作?新人转行产品经理简历怎么写? 最近遇到很多新人,想转行产品经理却不知道怎么入门以及怎么 ...

  6. 别了,我的第一份正式工作!!

    别了,我的第一份正式工作!! 武汉火热的7月,我第一次真正的走出了校园,不过走得也不远,离学校也就10-20分钟的路程.在学校边租了个民房,过起了每天早出晚归的上班族生活.第一次上班,把一切都和学校里 ...

  7. 在没有专业经验的情况下获得第一份软件工作

    I've had a few friends recently ask me about breaking into the software industry. Most have been loo ...

  8. 我的第一份实习工作结束了!!!

    2018年8月6日-2018年12月8日 四个月的实习时间结束了,由于某些原因,不得不离职回到学校,四个月的时间让我感受很多. 我现在大四,即将面临的是毕业进入社会,在这之前我找了一份实习工作,距离学 ...

  9. 失业三星期:我寻找第二份编程工作之路

    全文共3630字,预计学习时长10分钟 图源:unsplash 我在现在的公司已经待了8年多,并不符合人们普遍认为的"两年必跳槽"定律.在很长一段时间里,我以为能干到退休.但在过去 ...

最新文章

  1. android原理揭秘系列之VacantCell缓存
  2. UART 和 USART 的区别 == 通用异步收发传输器 通用同步/异步串行接收/发送器
  3. mybatis-spring 项目简介
  4. Spring-Cloud中常见的服务组件
  5. flashback table肯定会造成rowid跟着修改
  6. HDR 成像技术学习(一)
  7. Chapter1-1_Speech_Recognition(Overview)
  8. Essentials of Deep Learning: Visualizing Convolutional Neural Networks in Python
  9. Mysql查询为空赋值为0
  10. CTR介绍,数据集往往为表格形式,训练集使用历史的日志数据,然后进行特征归一化、离散化和特征哈希等操作,最终一条训练集为一行多列的二分类任务。
  11. 计算机更换桌面图片,桌面图片高清怎么换?桌面图片怎么美化?
  12. 计算机程序设计流程图循环,流程图循环画法_流程图用什么办公软件
  13. 数字图像处理第三次试验:图像复原、图像分割
  14. 谷歌搜索技巧大全,google高级搜索语法指令怎么用
  15. 计算机视觉基础(五)——图像分割/二值化
  16. 企业自建私有云-openstack-介绍
  17. 第三方支付接口有哪些?怎么申请?
  18. Handler内存泄漏-解决:使用静态类和弱引用
  19. 如何查询自己的个人征信报告
  20. Activity在全屏属性情况下,WebView会出现输入法软键盘遮挡输入框(界面无法自动上调)问题

热门文章

  1. XP与Windows 7(Win7)等操作系统Ghost备份
  2. HDOJ2569 ( 彼岸 ) 【递推公式】
  3. sql语句动态创建连接服务器
  4. 37、C++ Primer 4th笔记,特殊工具与技术,类成员指针
  5. 在SpringBoot启动类上添加ComponentScan出现springbootapplication already applies given @ComponentScan
  6. js实现表格动态数据展示在其他页面上
  7. android听书功能实现,基于Android的喜马拉雅听书的实现.docx
  8. 自动驾驶软件工程之局部规划
  9. Ubuntu实时监测系统性能工具
  10. SQL Server (MSSQLSERVER) 服务因 2148081668 服务性错误而停止。