近几年 Python 非常热门,在学术界和产业界的使用率显著提高。Python 作为「胶水语言」很方便与其他语言衔接,简单易学,实现方便的优点也使它很适合作为新手入门的第一个编程语言,但也有着运行效率低等缺点。本文将主要针对产业界,说明要具备哪些能力才能获得一个满意的 Python 相关岗位 Offer。

一. Python 编程基础——倔强青铜

首先,要熟练掌握循环,条件等结构,各种数据类型,运算符的优先级,函数和类的调用和文件读写等等,这些最基础的知识就不多赘述了。稍微复杂一点的,要理解常见容器,如列表,集合,元组和字典。常见考点:为什么判断容器是否包含某元素,用集合比列表的效率高很多?什么情况该用列表,什么情况该用元组?

再进阶一步,因为程序运行过程中可能出现意料之外的情况,要掌握异常处理的 try-except 机制。除了常见的容器,还会使用 collection 模块下的容器,例我常用的 defaultdict 和 Counter,这会使得代码更为简洁高效。深度拷贝和浅拷贝的用途。

下面我提出几个易错点来供大家评估自己的水平,如果大家觉得自己不会出现这样的错误,那说明 Python 的基本功是比较扎实的。

1. 查找单词在句子中的首字母

sentence = "Hello, are you Jack?"

print(sentence[sentence.find("Jack")]) #结果为「J」,正确

print(sentence[sentence.find("jack")]) #结果为「?」,错误。

因为 sentence.find("jack")等于-1。字符串的方法 find 和 index 分别适合什么情况,当前问题应该怎么实现呢?

2. 删除列表中的数字零

number = [1, 2, 1, 2, -1, 0, 0]

for n in number:

if n == 0:

number.remove(n)

print("final:", number)

输出结果为「number: [1, 2, 1, 2, -1, 0]为什么最后一个「0」成为漏网之鱼?

二. 有面试资格了——秩序白银

掌握常见技能,包括正则表达式,数据结构,数据库,API 服务。

1. 数据结构

会分析算法的时间和空间复杂度,还包括但不限于链表,队列,哈希表,各种树的结构和使用,和排序,贪心,递归,分治以及动态规划等算法。

2. MySql 数据库的常见操作

例如连接,创建表,增删改等等。至少对数据库基础部分系统学习一下,虽然面试中一般不要求现场实现代码,但可能会问到数据库的设计规范和原则。

3. API 服务

由于微服务方案的广泛使用,很多功能子模块都是一个独立的 API 服务,不同 API 服务之间互相通信从而配合完成整个功能。所以,要求能搭建和调用一个 API 服务,常用 Post,Get 的请求方式,如果掌握 gRPC 和 REST 请求方式更好。大家不要觉得这个难度很大,其实借助有一些成熟的模块,例如 Django 或 Flask 框架,可以很方便地搭建一个 API 服务,并不比动态规划题目更复杂。

4. 正则表达式

许多数据处理和网页相关的工作都离不开通过正则表达式来高效地匹配和处理数据。

三. Offer 收割机,唯手熟而——荣耀黄金

「秩序白银」阶段可以让你接到面试通知,要想拿到满意的 Offer 是避不开「刷题」的。建议大家刷一下 LeetCode (https://leetcode-cn.com/problemset/algorithms/),按照题目难度分为简单,中等和困难,主要是评测对数据结构的掌握程度和分析能力。如果你的目标不是 BAT,京东和今日头条等大厂,对于简单和中等难度的题目都没有问题,困难题目(如动态规划)至少能读懂示例代码就足够了。

线上考试当然是机考,这是大家比较习惯的方式。但现场面试时大多数会采用手写代码的方式。手写代码,就不能通过编译和运行来检验自己的代码,而且反复修改也不美观,所以一定要先确定思路再下笔。建议大家多和面试官沟通,先明确题目的要求(比如是否区分大小写,函数的输入和输出形式,这其实也是考察工程师在明确需求方面的能力),然后可以说出自己的思路,或许遇上心地善良的会直接帮你指出潜在的问题,避免走弯路。最后,即使是手写代码也要自测,关注易出错的边界条件。不要觉得自测显得没自信,会自测的码农才能让领导放心。

Tip1:LeetCode 上面的题目太多了,做不完怎么办?

和你人生中的无数次考试一样,以历史原题为主,以你不熟练,易错的题目为主。

Tip2:是不是把这些题目都记下来就万事大吉?

很多公司都是会准备新题的,只是题型接近。所以仅仅记下来是不行的,还需要理解消化,才能举一反三。

Tip3:面试时发现题目肯定可以用动态规划实现,但写不出来,心态崩了啊!

有些题目你没有把握能用最低的复杂度实现,也以放宽一些,但最好不要用穷举法。

四. 脱颖而出——尊贵铂金

如果想在茫茫求职者脱颖而出,获得更优质的工作机会,建议针对某一个方向深造。下表列举了几个岗位对不同基础技能的要求程度,数值越大则要求越高,1 代表基本清楚,5 代表全面掌握。

上表中只列出了部分岗位对于基本技能的掌握情况,还有各岗位对应的专业技能没有列出,例如测试工程师要掌握软件测试理论,爬虫工程师要掌握爬虫与反爬虫技术,运维要补充网络和 DevOps 方面的技能,数据分析要使用 pandas,numpy 和 sklearn 等模块,就不详细展开了。如果你想成为算法工程师,又有几个细分的算法方向,那可以报名一个培训班(如贪心学院)进行系统地学习。

五. 拒绝白菜价——永恒钻石

在待遇问题上取得更多谈资的前提是具备足够的竞争力。新人的最大弱点是缺乏经验,那么如何快速涨经验呢?

1. 参加比赛

现在有很多的比赛,如果能完整地参加下来对自己的能力和信息都是一个不小的提高。但是想要在大型比赛中名列前茅也并非易事,如果比赛名次不佳又不好写在简历上。

2. 实习或参加项目

如果能够完整地参加一个项目周期(提出需求,需求评审和排期,进度追踪,测试和优化迭代和发布上线),会使得大家受益匪浅。一般面试官会围绕你的论文或项目深入地去讨论一些细节,所以尽量围绕项目做好充分的准备。

六. 结语

工作中常用的数据库和 API 服务在面试中出现的比例并不高,而面试常客的算法编程题却在工作中不常见,即使遇到也可以先问问度娘再照搬。因为面试官要通过这种灵活性大的算法编程题来综合考察知识体系,思维和沟通能力。一方面,工作多年的老手和成绩优异的应届生在这方面的优势并不明显,仍然需要用心准备;另一方面,也给了想转行计算机的门外汉更多的机会,只要付出一定有回报。

面试阶段可以先找几个自己不在乎的企业练练手,每次面试后不断总结,热身后再向自己心仪的 Offer 发起冲刺。还可以通过学长学姐,牛客网等资源寻找内推的途径,但也要与自身实力相当才行。欢迎转发给需要的人。

亲,有志者事竟成,后面还有至尊星耀,最强王者在等着你。

学好python薪水有多少笔画_Python学到什么程度可以面试工作?相关推荐

  1. 学好python薪水有多少笔画_Python 获得汉字笔画

    通过unihan的文件来实现. 只要是unihan中有kTotalStrokes字段,获取起笔画数. Hash也是非常简单清楚的,但想到这些unicode其实会有一个分布规律,就记录了一下, 利用此性 ...

  2. python培训多久能入职_Python学到什么程度可以面试工作?

    单就python而言,要有方向的去学习,盲目刷题效率太低. 看到一些答案罗列了几百个python面试题,从语法到网络编程.从后端到运维.从web到机器学习,等你全部掌握,刷完所有题,可能调头去学Jav ...

  3. python学到什么程度可以面试工作_Python学到什么程度可以面试工作(解答一)

    本文整理了 26 个 Python 有用的技巧,将按照首字母从 A~Z 的顺序分享其中一些内容. all 或 any 人们经常开玩笑说 Python 是"可执行的伪代码",但是当你 ...

  4. 迷思:Python学到什么程度可以面试工作?

    迷思:Python学到什么程度可以面试工作? Python学习者越来越多,现在中国对Python的使用量已经跃居全球首位,越来越多的高手都使用 Python来编写框架.制作工具.完成功能,那么开发功能 ...

  5. C++学到什么程度可以面试工作?

    链接:https://www.zhihu.com/question/400543720 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 至少需要哪些知识?需要掌握到什么程度呢? 作者:inval ...

  6. C++编程学到什么程度可以面试工作?

    一般来说想要成为C++开发工程师,不仅需要不断学习C++技术,同时还需要做好面试工作.那么C++编程需要学到什么程度才能面试工作呢? C++编程学到什么程度可以面试工作? 简单说,如果仅仅学C/C++ ...

  7. 自学python到什么程度就可以工作-Python学到什么程度可以面试工作?

    先看:Python工程师在企业里面的定位是什么? /> 四个重要的定位:验证算法.快速开发.测试运维.数据分析. 1.验证算法:就是对我们公司一些常见设计算法或者公式的验证,公式代码化. 2.快 ...

  8. 30岁、高中学历、零基础、能不能自学Python?要多久?学到什么程度可以找到工作?

    前言 零基础自学三个月 足够找到工作的了.如果你是全职学的话,学习300个小时 就足够在北上广 找到一份 6000左右的入门工作了(2020年待遇水平). 我发现很多人有个误区,认为转行 软件开发 一 ...

  9. 学python可以做什么知乎-Python学到什么程度可以面试工作?

    0710更新: 不多说,上干货!!!最近得到了一张比较全面的Python图谱,直接分享给你们!!!(我看过,知识点还是很全面的,基础知识.数据分析.爬虫实战.后台开发实战以及人工智能实战项目,都包含了 ...

最新文章

  1. Ajax异步调用Web服务的例子
  2. Wannafly挑战赛22 C 多项式(大数,多项式极限)
  3. BZOJ1085: [SCOI2005]骑士精神
  4. (转)MVC模式参数传递的探究
  5. 本地算术验证码识别教程
  6. mysqlbinlog日志查看
  7. 【更新汇总】FastReport系列更新|附下载
  8. 当使用tensorflow时出现“the requested device apperas to be a GPU, but CUDA is not enabled”的解决办法
  9. java mp3 信息_如何用Java读取MP3文件的Tag信息
  10. oracle中字符串连接
  11. gettext实现多语言html中怎么处理,详解基于webpackgettext的前端多语言方案
  12. 腾讯X5WebView集成使用
  13. mtk2503 GPS/操作系统/主板设计方式资料大全
  14. P1957 口算练习题[c++版]
  15. 小学生必背古诗70首
  16. Mysql报错1055
  17. zerg发出了第一个报文,纪念一下!!!
  18. 《全球通史》读书笔记2
  19. unable to create jaxbcontext 最终解决办法
  20. 无心剑英译紫穗穗《熵》

热门文章

  1. Ubuntu Vmwaretools安装说明
  2. 本科学计算机研究生读哲学,计算机专业本科生创新思维培养及其哲学思考
  3. Python常用模块之logging模块
  4. Python 5种方法实现单例模式
  5. python3函数中lambda/filter/map/reduce的用法
  6. python 并集union, 交集intersection, 差集difference, 对称差集symmetric_difference
  7. 计算机网络试卷模板,用Word制作真实试卷模板(下)
  8. matlab surf 坐标,Matlab SURF指向像素坐标
  9. C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)
  10. arm linux c++编译警告:ISO C++ forbids converting a string constant to ‘char*’(需要把const char*转换成char*)