struts2面试_我如何以文学学位2个Struts进入数据科学领域来应对面试

struts2面试

From late 2017 to early 2018, I prepared and interviewed for my current data science role. Now, I get paid to train and deploy machine learning models (yay!) and use my combined statistics/econometrics and programming skills to create impact. In this 2-part article, I share my approach that I think contributed the most to entering the field straight out of school, updated with real observations on the job.

从2017年末到2018年初,我为我目前的数据科学角色做准备并接受了采访。 现在,我获得报酬来训练和部署机器学习模型(是的!),并利用我的统计/计量经济学和编程技能相结合来产生影响。 在这个由两部分组成的文章中,我分享了我认为对直接进入学校领域贡献最大的方法,并结合了对工作的真实观察。

Now, whether you are a fresh grad, seasoned data scientist, or looking to transition from another career, I hope this article can shed some light into what goes into a data science job search. Despite having been on the other side of the table now, as an interviewer, I still learn a lot from fellow data scientists’ experiences. My goal is for this article to be like an online coffee chat with you; there were so many people that shared their knowledge to me during my job search, and I’d like to pass it on!

现在,无论您是应届毕业生,经验丰富的数据科学家,还是正在寻求其他职业的过渡,我希望本文能够为您了解数据科学工作寻找的内容提供一些帮助。 尽管现在已经走到桌子的另一端,但作为一名访问者,我仍然从其他数据科学家的经验中学到很多东西。 我的目标是使本文像与您进行在线咖啡聊天; 在求职过程中,有太多人向我分享了他们的知识,我希望继续传下去!

This post was previously only available to newsletter subscribers, but I’ve taken the opportunity to update it with plenty of extra content, which ended up having 2 parts! I also encourage you to check out Serena’s excellent article about her data scientist job search approach, which inspired me to write one of my own. In addition, for those from academia (e.g. PhDs), check out Amir’s comprehensive LinkedIn article.

该帖子以前仅对新闻订阅者开放,但我借此机会用大量额外的内容对其进行了更新,最终分为两部分! 我也鼓励您阅读Serena关于她的数据科学家求职方法的出色文章 ,这启发了我写自己的一篇。 此外,对于来自学术界的人(例如博士),请查看Amir的LinkedIn综合文章

数据科学技能的两大Struts (Two pillars of data science skills)

My opinion is that data science requires expertise in both statistics and programming. I do feel eventually more pillars enter the mix such as product, or systems design, but since this article focuses on my experience entering the field, I focus on these two pillars.

我的观点是,数据科学需要统计和编程方面的专业知识。 我的确感到最终会有更多的Struts加入产品或系统设计之类的组合,但是由于本文重点介绍了我进入该领域的经验,因此我重点介绍了这两个Struts。

For simplicity, I use the term “statistics” to refer to machine learning theory, in particular, the mathematical understanding of how algorithms work, from logistic regression to natural language processing (NLP) techniques. Similarly, I will use the term “programming” to refer to general coding, building data pipelines, and software development (including version control, terminal, etc. if the role requires).

为简单起见,我使用“统计”一词来指代机器学习理论,尤其是对从逻辑回归到自然语言处理(NLP)技术的算法工作原理的数学理解。 同样,我将使用术语“编程”来指代通用编码,构建数据管道和软件开发(如果角色需要,包括版本控制,终端等)。

It is actually a tall ask to build expertise in both statistics and programming — oftentimes, schooling can only prepare one for so much. It could be that someone with a statistics background does not have the programming experience, and vice versa. For entry levels, my opinion is that one does not need to be a master at both statistics and programming at the time of the interview. However, you absolutely should not be a “zero” at either one of them.

建立统计和程序设计方面的专业知识实际上是一个高要求–通常,学校只能为此做好很多准备。 可能是具有统计背景的人没有编程经验,反之亦然。 对于入门级别,我认为在面试时不必同时掌握统计学和编程知识。 但是,你绝对应该是“零”,在其中一方。

The reason I say this, is that there are many, many flavors of data scientists. It all depends on the team, the projects that the role works on, tech stack of the company, and many other factors. There are data scientists that use their statistics expertise at 70% capacity in their day to day, but 30% of their programming skills. Other team members could be more focused on MLOps (productionalizing, CI/CD…) and require much less statistics in their day to day, but should still be familiar with the algorithms they deploy.

我之所以这样说,是因为数据科学家有许多种风格。 这完全取决于团队,该角色所从事的项目,公司的技术堆栈以及许多其他因素。 有数据科学家在日常工作中以70%的能力使用其统计专业知识,但在编程技能中却使用了30%。 其他团队成员可能更专注于MLOps(生产化,CI / CD等),并且日常所需的统计数据要少得多,但仍应熟悉他们部署的算法。

Hence, I’d prefer to look at qualifications of a candidate from their skills in both pillars, the requirements of which vary a lot in roles all titled “Data Scientist”. The point being, it’s possible that, for an entry role, one doesn’t need to have 100% in both pillars, but rather a holistic combination of them.

因此,我更希望从候选人在两个方面的技能上来考察他们的资格,这两个职位的要求差异很大,都被称为“数据科学家”。 关键是,对于入门角色来说,可能不需要两个Struts都具有100%的比例,而是它们的整体组合。

If you are looking to enter the field and notice that you have built less expertise in one of the pillars, for example, only a slight understanding of statistics (e.g. 1/10, only took an introductory course in undergrad), but a lot of experience in programming (e.g. 8/10), focus on raising the statistics pillar to a 3/10.

例如,如果您希望进入该领域,并且发现自己在其中一个Struts上的专业知识较少,那么,对统计数据的了解就很少(例如1/10,只在本科生中学习过入门课程),但是很多有编程经验(例如8/10),着重于将统计Struts提高到3/10。

我如何根据两个方面来量身定制面试准备 (How I tailored my interview prep with the two pillars)

My personal educational background was in Economics, which heavily focused on inferential or predictive modelling, using data such as financial markets, pricing, household earnings, and so on. Sounds quite a lot like data science in industry, doesn’t it?

我的个人教育背景是经济学,经济学重点是使用金融市场,定价,家庭收入等数据进行推论或预测建模。 听起来很像行业中的数据科学,不是吗?

Econometrics gave me a solid understanding of the “statistics” pillar, since the upper year courses require a lot of calculus and matrix algebra, which were invaluable when I started self-learning about more machine learning algorithms. But, there was a catch — I only learned statistical programming through a proprietary software called Stata, not the languages common in industry, such as Python or R.

计量经济学使我对“统计”这一Struts有了深入的了解,因为高年级课程需要大量的微积分和矩阵代数,这在我开始自学更多机器学习算法时是非常宝贵的。 但是,有一个陷阱-我只通过称为Stata的专有软件学习了统计编程,而不是像Python或R这样的行业通用语言。

To those unfamiliar with Stata, it is still terrific for doing quick linear modelling or time series, and is commonly used in the economist profession, for example, government or related institutions that make recommendations to policy makers (those people that are quoted in the news!). However, when I was applying to (non-government, non-research) industry roles, I quickly noticed that Python and R were much more common requirements, with Python being mentioned the most during my job search.

对于不熟悉Stata的人来说,进行快速线性建模或时间序列仍然很棒,并且通常在经济学家行业中使用,例如向决策者提供建议的政府或相关机构(新闻中引用的那些人) !)。 但是,当我申请(非政府,非研究)行业职位时,我很快注意到Python和R是更常见的要求,在我的求职过程中,Python被最多提及。

Formal education wise, I would have put my Python skills at a 1/10, since I only took one elective computer science course. Note: a 10 here not being a 10 in industry overall, but my impression, whether realistic or not, of the expectation for a very competitive entry level candidate.

正规教育是明智的,因为我只参加一门选修计算机科学课程,所以我的Python技能应该是1/10。 注意:这里的10分并不是整个行业的10分,而是我对非常有竞争力的入门级候选人的期望的印象,无论是否现实。

It turned out that I was in luck — I had been coding since my 3rd year to build video game prototypes, which should have raised the programming pillar up to, say, 4/10. But I was in for a shock — in the job descriptions, Python packages such as NumPy and pandas, were mentioned again and again. However, I had never heard of them! In game development, I never needed to use those packages at all. I had some serious catching up to do. So I mentally filed my "programming" at a 1/10, because of my inexperience with "Python for data science", and not with "Python in general".

原来,我很幸运—从我三年级开始就一直在编写代码,以构建视频游戏原型,这应该使编程Struts提高到例如4/10。 但是我感到震惊-在工作说明中,一再提到NumPypandas等Python软件包。 但是,我从未听说过它们! 在游戏开发中,我根本不需要使用那些软件包。 我有一些认真的追赶要做。 因此,由于我对“ Python for Data Science”(而不是“ Python Python”)的经验不足,因此我以1/10的比例提出了“编程”建议。

I mention my experience in detail, because, if I hadn’t done that self-assessment of skills on both pillars, I wouldn’t have caught onto what my strengths were for data science roles. I might have been scared of applying to any data science roles because my degree wasn’t in “pure” statistics or computer science. I also wouldn’t have figured out areas to improve, so that both pillars were at a 4/10 at the minimum. To achieve that goal, I spent a lot of time learning NumPy and pandas with small projects, such as replicating assignments I did in Stata. In my data science side project article, I walk through more detail on how to build a portfolio; for additional information, I recommend the "Proof of work" section of Serena's article.

我会详细提及我的经验,因为如果我没有在两个Struts上都进行过自我评估,那么我就不会掌握我在数据科学领域的优势。 我可能不敢申请任何数据科学职位,因为我的学位不是“纯”统计学或计算机科学。 我也不会想出需要改进的地方,因此两个Struts的最小值都为4/10。 为了实现该目标,我花了很多时间通过一些小型项目来学习NumPypandas ,例如复制在Stata中所做的作业。 在我的数据科学方面的项目文章中 ,我详细介绍了如何构建投资组合。 有关其他信息,我建议Serena文章的“工作量证明”部分。

当心工作描述诱发的冒名顶替综合症 (Beware job description induced impostor syndrome)

I have had coffee chats with folks who mention job descriptions that ask for, say, a PhD in computer science, even if it’s clearly an entry level position. In that case, ignore the requirement and apply, even if you don’t have a PhD in said discipline. Chances are, the other applicants are also folks that are fresh grads or new to data science.

我曾与人们进行咖啡聊天,他们提到职位描述,要求获得计算机科学博士学位,即使这显然是入门级职位。 在这种情况下,即使您没有上述学科的博士学位,也可以忽略要求并申请。 其他申请人也有可能是应届毕业生或数据科学新手。

Impostor syndrome is something I would really like to warn my younger self about. Don’t avoid applying to something because you think all the applicants are going to be “more qualified” than you already. The truth is, you literally don’t know who the other applicants are! So, that thought is just not true and is impostor syndrome talking.

我真的很想警告年轻的自我,Impostor综合症。 不要回避申请某些东西,因为您认为所有申请人都将比您已经“更有资格”。 事实是,您实际上不知道其他申请人是谁! 因此,这种想法是不正确的,是冒名顶替综合症。

根据个人优势处理数据科学面试准备 (Tackle data science interview preparation based on personal strengths)

Just to recap: after self-assessing my skills on the two pillars, statistics and programming, I immediately came up with a list of action items designed to bring my skills on both pillars to a satisfactory minimum. My programming in Python for data science was weak at the time, so I spent a lot of time learning NumPy and pandas, and replicating past projects (written in Stata) with those packages, and statsmodels.

回顾一下:在对我在两个Struts,统计和编程上的技能进行自我评估之后,我立即想出了一系列旨在使我在两个Struts上的技能达到令人满意的最低要求的行动项目清单。 当时我在Python上进行数据科学编程的能力很弱,因此我花了很多时间学习NumPypandas ,并使用这些软件包和statsmodels复制了以前的项目(用Stata编写)。

In addition, and this was mostly luck — I had just started enforcing version control for my game development processes, because without it, my projects were becoming a mess when scaling up (I elaborate more on the game development experience in this article). So, I got a lot of practice using git from the terminal (aka command line). This existing knowledge turned out to help immensely on the job, and was asked about during my interviews, but if I didn't happen to have the experience, I would definitely put in additional effort to brush up on it.

另外,这主要是运气–我刚刚开始为我的游戏开发过程强制执行版本控制,因为没有它,我的项目在扩大规模时会变得一团糟(我将在本文中详细介绍游戏开发经验)。 因此,我从终端(又名命令行)使用git了很多练习。 这些现有的知识在面试中被问到了对工作有很大帮助的信息,但是如果我没有这个经验,我肯定会付出更多的努力来完善它。

I also spent a lot of time understanding the most common machine learning algorithms — logistic regression, some clustering techniques, etc., and their mathematical derivations. My econometrics background saved me a lot of time here, as the core intuition of iteratively minimizing loss was quite clear already after semesters of coursework. However, as with most coursework, by the time I was applying for jobs, most details had faded from memory, so I had to review the concepts to a point where I felt comfortable explaining it out loud to an interviewer.

我还花了很多时间来了解最常见的机器学习算法-Logistic回归,一些聚类技术等,以及它们的数学推导。 我的计量经济学背景为我节省了很多时间,因为学期结束后,迭代式最小化损失的核心直觉已经很清楚了。 但是,与大多数课程一样,到我申请工作时,大多数细节已经从记忆中消失了,所以我不得不对概念进行复习,以至于我很乐意向面试官大声解释。

联网以学习职位描述中缺少的信息 (Networking to learn information missing from job descriptions)

Networking, as part of a job search, is mentioned a lot as an essential step. In university, I heard a lot about how important networking is, but back then, I never understood what the term really meant. There was a false impression of going to events and mixers with free drinks and pizza, and randomly wandering around until bumping into someone that will employ you. My point being, the term “networking” is super confusing.

作为求职过程的一部分,网络化是很多必不可少的步骤。 在大学里,我听到很多有关网络重要性的信息,但是那时,我从未真正理解过该术语的真正含义。 给人以参加活动和带免费饮料和比萨饼的搅拌器的印象,并随意游荡直到碰到会雇用你的人。 我的意思是,“网络”一词非常令人困惑。

However, now that I am in the industry, I look back and, like those before me, say that networking is important. Here’s why, in my opinion. During grad school, I attended conferences and local Meetups. I was in the interview process for two large companies at the time, and I met people in both the hiring teams in separate events — even several of my future interviewers!

但是,现在我从事这个行业,我回头看,就像我之前的那些人一样,说到建立网络很重要。 我认为这就是原因。 在读研究生期间,我参加了会议和当地的聚会。 当时,我正在接受两家大型公司的面试过程,在两个单独的活动中,我遇到了两个招聘团队中的人,甚至还有我未来的几位面试官!

So, attending events certainly helped, while also being a matter of luck — when I spoke to those people at the Meetups I had no idea they would be directly interviewing me, and I doubt that they knew either. In addition, chatting to many people at events gives a better idea of what a typical role in the industry would look like — oftentimes a job description alone is nowhere close to capturing the day to day work.

因此,参加活动当然有所帮助,但同时也很幸运–当我在聚会上与这些人交谈时,我不知道他们会直接采访我,而且我怀疑他们是否也知道我。 此外,在活动中与许多人聊天可以更好地了解行业中的典型角色-通常仅是一份职位描述就无法捕捉到日常工作。

This is also a great time to learn how much of each pillar the team uses: do they rely more on their statistics knowledge in their day to day, or are they more programming focused? It is jarring to learn about this after accepting the role; after all, you can make more informed decisions about an offer if it is in line with your long term career goals!

这也是学习团队使用每个Struts的多少的好时机:他们在日常工作中是否更多地依赖于统计知识,还是他们更注重编程? 接受角色后了解这一点真是令人讨厌; 毕竟,如果报价符合您的长期职业目标,您就可以做出更明智的决定!

Another factor is that people you get along with are often happy to help — many friends I met through undergrad, mostly through my volunteer work, have always been supportive of my career, even though back when we met, job search was far from our minds.

另一个因素是,与您相处的人经常很乐意提供帮助-我通过本科生结识的许多朋友(主要是通过我的志愿工作)一直支持着我的职业,即使回到我们遇到时,找工作就离我们很远。

Apart from these serendipitous encounters and existing friendships, I also reached out to alumni of my grad program. The advice they gave me on job search was often invaluable, since their background is similar; a lot of online articles had good insights, but due to having different educational backgrounds, could not answer specific questions I had. I tried to get a holistic view of the job search — there were alumni I reached out to ask questions about their workplace in particular, whereas for some I asked about how they built their skills, regardless of company.

除了这些偶然的相遇和现有的友谊外,我还接触了我的研究生课程的校友。 他们给我的求职建议通常是无价的,因为他们的背景相似。 很多在线文章都有很好的见识,但是由于受过不同的教育背景,无法回答我的特定问题。 我试图从整体上看待求职者-我曾与一些校友联系,特别是询问他们的工作场所问题,而对于一些校友,我问他们如何培养自己的技能,而不论公司如何。

The above is my experience with networking, which might still be vague, so here are some major points to help you with your first steps:

以上是我在网络方面的经验,可能仍然含糊不清,因此这里有一些要点可帮助您迈出第一步:

  • When reaching out to someone for a coffee chat or phone call, do not expect them to tell you a magic, one size fits all solution “checklist”. If someone asked me exactly how I “got a job”, I wouldn’t be able to give a perfect answer, but rather, my retroactive guesses (“hindsight is 20/20”). Just listen to their career journey — often it’s more non-linear than expected!

    当与某人打咖啡聊天或打电话时,不要指望他们告诉您一种神奇的方法,一个大小适合所有解决方案的“清单”。 如果有人确切地问我如何“找到工作”,我将无法给出一个完美的答案,而是我的追溯性猜测(“后见之明是20/20”)。 只需听听他们的职业历程-通常它比预期的更非线性!
  • Attend local or online Meetups. Actually learn about people and their teams, which can be much more valuable than reading a job description. I had the chance to meet a lot of people I ended up working with, and it was a strong draw to me to accept an offer, because I already got along with them (or so I like to think)! However, I only met them when I was already halfway through the interview process, so there was some luck involved there.

    参加本地或在线聚会。 实际了解人员及其团队,这比阅读职务说明更有价值。 我有机会结识了很多最终与我一起工作的人,这对我来说是一个很吸引人的提议,因为我已经与他们相处了(或者我想思考)! 但是,我是在采访过程中途才遇到他们的,所以那里有些运气。

行动项目开始 (Action items to get started)

  1. Assess your skills on the two pillars for data science, statistics and programming, and create an action plan to brush up on both your strengths and weaknesses

    评估您在数据科学,统计和编程这两个Struts上的技能,并制定行动计划以弥补自己的长处和短处
  2. Reach out to people, whether in person or online, to hear about their career experience, and seek holistic coverage (e.g. reach out to some to learn about their company or role, and some for educational experience, etc.)

    与人们(无论是面对面的还是在线的)接触,以了解他们的职业经历,并寻求全面的报道(例如,与某些人联系以了解他们的公司或角色,以及一些人获得教育经验等)

In the next part of this article (to be updated), I will go through what to expect in each round of the data science interview process, as well as how I prepared back then. Hope this was helpful!

在本文的下一部分(待更新)中,我将介绍数据科学采访过程中每一轮的期望以及当时的准备工作。 希望这对您有所帮助!

Originally published at https://www.susanshu.com on March 18, 2020.

最初于 2020年3月18日 https://www.susanshu.com 发布

翻译自: https://towardsdatascience.com/how-i-entered-the-data-science-field-with-an-arts-degree-2-pillars-to-tackle-interview-ddde055360db

struts2面试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值