查看: 2448|回复: 9
收起左侧

[学Python/Perl] Python刷题的弊端

|只看干货
本楼: 👍   100% (5)
 
 
0% (0)   👎
全局: 👍   94% (260)
 
 
5% (14)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
面试的第一步是选择用哪个语言进行准备和面试。发这个贴的目的给正在纠结用什么语言的朋友们提供一些我的经历作为参考,也欢迎大家提供任何建议。
楼主5YOE, 最近一年用python在市场上面了20+家公司,面的主要是大厂和中厂。选择用python是因为它的代码简短。但是在准备面试的过程中发现使用python面试的几个问题:
  • 常规coding轮:python标准库没有提供类似java treeset/treemap数据结构。如果不需要现场compile and run tests (例如Amazon, Dropbox), 面试官是可以接受类似sortedContainer 这样的第三方库。但是如果要求现场compile and run tests (例如大多数使用code signal 或hackrank 作为coding面试平台的公司),我还真不知道怎么处理。因为这些平台上并不能直接安装相关package然后使用。万幸我碰到需要treeset/treemap的面试都是不需要现场编译的。
  • 多线程Concurrency轮:Infra 或者senior+岗位有可能有Concurrency面试(例如Microsoft azure, Conflunt, Databricks). 而python因为GIL的限制, 并不能真正的利用多个cpu cores.  但是基本的multithreading api 例如lock和conditional variable,python都有提供。实际的production里面,如果非得用python, 都是依靠multiprocess 来克服GIL的问题。所以用python实现multithreading, 依旧可以向面试官展现自己的思路,但是会暴露自己并没有solid multithreading开发的经验。
  • OOD (面向对象设计)轮:python做ood开发问题不大,唯一的劣势可能是网上找到的可以直接参考的例子没有java多


基于以上几点原因,楼主考虑重新捡起Java作为自己的主面试语言。以上三个问题在java面前都不是问题,java的唯一问题就是在coding轮面试时语法太啰嗦。也许你会说coing轮主要得思路流畅,实际写代码占不了太多时间。但是碰到面试时写出bug需要现场调试的最后几分钟,繁琐的语句也可能会让人很奔溃。

评分

参与人数 4大米 +17 收起 理由
生蚝来十个 + 1 赞一个
ivyandme + 10 欢迎分享你知道的情况,会给更多积分奖励!
14417335 + 5 给你点个赞!
wxy666 + 1 赞一个

查看全部评分


上一篇:求问问刷题大拿们有什么刷题技巧
下一篇:请教一个编程的问题
绛珠玄 2022-7-29 03:17:41 | 显示全部楼层
本楼: 👍   100% (6)
 
 
0% (0)   👎
全局: 👍   96% (108)
 
 
3% (4)    👎
面了15-20个公司 明确说了python是为了快
你要考我算法我就用python 如果是concurrency multithreading那我用java
只有netflix要求写concurrency 涉及到java的condition reentrantlock实际的把代码写出来
其他的 若有考量thread safety的时候一般会先写一个不需要threadsafe的版本 然后再问你thread safety 然后不需要写
如果是leetcode之类的题 不要想java什么的 python大法好 我有一次就写了十几行的解法 真的是观感特别优美
有一家公司涉及到了treemap 面试官知道python没有这个 就让我手写treemap 那我就手写一个 省去一些找successor rebalance之类的复杂function 只要说出他们的大概意思就好
好的面试官都懂的 知道如何问到他想问的问题
刷leetcode不要多想 python大法好python大法好python大法好

评分

参与人数 1大米 +2 收起 理由
14417335 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

dorota 2022-7-29 03:07:55 来自APP | 显示全部楼层
本楼: 👍   100% (5)
 
 
0% (0)   👎
全局: 👍   92% (355)
 
 
7% (28)    👎
不想刷题223 发表于 2022-07-28 11:02:43
第二个不是很赞同,几乎很少有公司考手写concurrency和多线程吧,这是5年+senior才有的吧,正常谁要求面试时候手写这些,咋不考手写aws呢
可是我们每个人都有5年YOE那一天啊😂

评分

参与人数 1大米 +1 收起 理由
shallnever + 1 赞一个

查看全部评分

回复

使用道具 举报

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   97% (1361)
 
 
2% (37)    👎
Treemap感觉是小问题, 如果不是OA,很少有onsite面试会需要跑大数据量的测试吧, 和面试官说一声然后用普通map就行了?

所以结论是coding用python, multithreading和ood用java呗?
回复

使用道具 举报

wxy666 2022-7-29 01:26:25 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (209)
 
 
1% (3)    👎
谢谢楼主分享 有参考价值
回复

使用道具 举报

不想刷题223 2022-7-29 02:02:43 | 显示全部楼层
本楼: 👍   33% (1)
 
 
66% (2)   👎
全局: 👍   81% (685)
 
 
18% (158)    👎
第二个不是很赞同,几乎很少有公司考手写concurrency和多线程吧,这是5年+senior才有的吧,正常谁要求面试时候手写这些,咋不考手写aws呢
回复

使用道具 举报

本楼: 👍   50% (1)
 
 
50% (1)   👎
全局: 👍   92% (78)
 
 
7% (6)    👎
同感,之前python面zoom 被鄙视了…… 我简历全java。 也打算重新捡起java。
回复

使用道具 举报

brtt13 2022-7-29 02:59:26 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (1500)
 
 
7% (116)    👎
编程语言不重要这句话听听就行了……最适合刷题的就是java。即便cc也在heap情况下容易用错
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (79)
 
 
0% (0)    👎
Python multithreading那个asyncio蛮好用的,可以让代码更好看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表