ゼファーネットのロゴ

データサイエンスコーディングのインタビューの質問に答える方法

日付:

データサイエンスコーディングのインタビューの質問に答える方法


 

データサイエンスコーディングの面接の質問にどのように答えるべきかについてのレシピはありません。 常に機能するアプローチはありません。 ただし、ほとんどの場合、コーディングの質問に適切に答えるのに役立ついくつかの指針があります。

これらのガイドラインは、インタビューに行き、コーディングの質問に答えた経験に基づいて作成されています。 これらのガイドラインをXNUMXつのセクションに分けました。 これらのガイドラインは、特に経験が浅い場合は、チェックリストとして使用できます。 データサイエンスコーディングインタビューの質問。 後で、もちろん、あなたはあなた自身のアプローチを見つけることができるでしょう、多分いくつかのポイントを無視するか、あるいはあなたのためによりよく働く何かを含めることさえできます。

しかし、あなたの経験に関係なく、このチェックリストに従えば、コーディングの質問に素晴らしい答えを与える可能性が高くなります。

XNUMX部構成のチェックリスト

 
このチェックリストのXNUMXつの部分は次のとおりです。

  1. 質問分析
  2. ソリューションへのアプローチ
  3. コードを書く
  4. コードを確認する

チェックリストの概要がわかったので、すべてのセクションを調べて、そこに含まれるチェックリストのポイントについて説明します。

1.質問分析

 
チェックリストの質問分析の部分では、数分かかり、今得た質問について徹底的に考えます。 実際のビジネス上の問題に対処するときにわかるように、最初に問題について考え、時間をかけて「失う」ことで、あらゆる観点から問題を確認することをお勧めします。 考えることは決して時間の無駄ではないことを忘れないでください!

これらの数分は後で報われるでしょう。 すぐにソリューションの作成に取り掛かる場合、アプローチが目的のソリューションにつながらないことに気付いたら、最初からやり直さなければならない可能性が高くなります。 または、コードを絶えず変更して書き直さなければならないということです。

問題について考える練習をするのに役立つポイントは次のとおりです。

  1. 質問を理解する
  2. 使用しているテーブルとデータを分析します
  3. コードの結果について考える

私。 質問を理解する

質問を確実に理解するには、質問を注意深く読む必要があります。 ゆっくり読んでください。 そして、それを2〜3回読んで、何も見逃していないことを確認してください。 これはすべてに適用されます データサイエンスのインタビューの質問、どんなに簡単でも難しいでも。 重要なのは、あなたが得た質問が難しいか簡単かわからないということです。 いくつかの質問は一見単純に見えるかもしれませんが、十分に徹底しておらず、表面的である傾向がある候補者を排除するために正確にそこにあるいくつかのキャッチがあります。

質問が書かれていない場合は、何かを捕まえなかった場合は、インタビュアーに繰り返してもらうこともできます。 この場合、質問を理解したら、インタビュアーにそれを繰り返すこともお勧めします。 そうすることで、問題がないことを確認し、面接官が必要な情報をすべて提供しなかった場合に備えて、面接官が自分自身を修正できるようにします。

ii。 使用しているテーブルとデータを分析します

質問を理解したら、次の論理的なステップは、与えられたテーブルを分析することです。 これは、テーブルがいくつあり、それらがどのように相互に接続されているか(外部キーと主キー)を分析する必要があることを意味します。

また、これらのテーブルにどのようなデータがあるかを確認する必要があります。 各テーブルにある列を意味します。 すべての列にどのような種類のデータがありますか。 コードは、文字列データ、整数、お金、またはその他の種類のデータを処理しているかどうかによって異なるため、これは重要です。 希望する結果を得るには、あるデータ型を別のデータ型に変換する必要があるかもしれません。

データ型に加えて、データがどのように編成、順序付け、および細分化されているかを理解することも重要です。 つまり、テーブルに重複する値がありますか? データは、たとえば、顧客レベル、トランザクションレベルなどで提示されていますか?

iii。 コード結果について考える

コーディングを開始する前に、結果をどのように表示するかを知っておく必要があります。 もちろん、これはあなたが答えたい質問にも依存します。

しかし、結果の文学的手段を考えると、それはXNUMX行にXNUMXつの値しかないのでしょうか、それとも複数の列を持つテーブルになりますか。 テーブルの場合は、データがどのように集計および順序付けされるか、表示する必要のある列の数などを再度検討する必要があります。

 
質問分析–例

チェックリストのこの最初のセクションをどのように適用するかを示すために、Dropboxコーディングの質問を使用します。 質問は次のようになります。

データサイエンスコーディングのインタビューの質問に答える方法


 

「マーケティング部門とエンジニアリング部門で見つかった最高の給与の差を計算するクエリを作成します。 給与の差だけを出力します。」

質問へのリンク: https://platform.stratascratch.com/coding/10308-salaries-differences

質問を注意深く読むと、最高の給料を見つける必要があることに気付くでしょう。 OKですが、すべての部門で最高の給与ではありませんが、マーケティングとエンジニアリングのXNUMXつの部門でのみです。 これらのXNUMXつの部門で最高の給与を見つけたら、それらの差を計算する必要があります。

質問を理解したので、テーブルとその中のデータを分析できます。 使用するテーブルはdb_employeeとdb_deptです。 テーブルdb_employeeには、会社の従業員に関するデータが含まれています。 XNUMXつの列があります。

id int型
ファーストネーム varchar
苗字 varchar
給与 int型
部門ID int型

ご覧のとおり、name列はvarcharデータ型ですが、salaryは整数です。 給与値に小数がないことを知っておくことが重要な場合があります。 ここで利用できるプレビューオプションを使用すると、このデータが一意であることがわかります。すべての従業員には、給与値がXNUMXつだけ割り当てられています。 また、知っておくべき重要なこと。 また、すべての従業員の何年にもわたる過去の給与をすべて把握できる履歴データである可能性もあります。 このテーブルをテーブルdb_deptにリンクする外部キーであるdepartment_id列があります。

id int型
部門 varchar

このテーブルにはXNUMXつの列のみがあります。 これは部門のリストであり、重複はなく、XNUMXつの部門が表に示されています。

よし、データを分析しました。 さて、質問に戻って、XNUMX番目の文を読んでください。 はい、これはソリューションがどうあるべきかについての指示です。 XNUMXつの列にある部門の最高給与を表示し、次にXNUMX番目の列に他の部門の最高給与を表示し、次にXNUMX番目の列にそれらの差額を表示する必要はありません。 いいえ、出力は違いのみになります。

データサイエンスコーディングのインタビューの質問に答える方法


 

この出力列の名前についての指示はありませんでした。 したがって、名前を付けても、まったく名前を付けなくても、間違いはありません。 重要なことは、この結果だけを取得することです。

これで、高品質のコードを作成するための基盤ができました。 今が戦略についての時折です:どのようにコードを書くのですか?
 

2.ソリューションへのアプローチ

 
コードを書き始める前に、コードがどのようになるかを明確に理解しておくことも重要です。 コーディングは、ソリューションの(明確な!)アイデアをプログラミング言語に翻訳することだけを目的としています。

ソリューションにどのようにアプローチするか(またはコードを書くか)を考えるときは、次のことを考慮してください。

データサイエンスコーディングのインタビューの質問に答える方法


 

  1. コードを書く方法はいくつかありますか?
  2. あなたの仮定を述べなさい
  3. ソリューションをステップに分解します
  4. コーディングを始める

私。 コードを書く方法はいくつかありますか?

解決策について考えるとき、最初に頭に浮かぶのは時々最良の解決策です。 そして時々そうではありません。 どうやって知ることができますか? 最初のアイデアを思いついたら、問題を解決する他の方法があるかどうかを考えるのがコツです。 の プログラミング言語、多くの場合、いくつかの可能な解決策があります。

これを覚えておいてください。 これが重要である理由はいくつかあります。 まず、長いコードで解決しようと考えていることを簡単に解決する簡単なトリックや関数がある可能性があります。たとえば、 ウィンドウ関数 または、無限のサブクエリを使用してコードを記述する代わりにCTEを使用します。

できるだけ少ないコード行で、常に書きやすいものを使用してください。 あなたが面接にいるとき、あなたはまたあなたの処分で時間を管理しなければなりません。 これは方法のXNUMXつです。
もちろん、多かれ少なかれ同じように複雑なソリューションがいくつかある場合は、コードがどのように実行されるかを考えてください。 大量のデータでは、異なるコードの実行に他のコードよりもはるかに多くの時間とメモリがかかる可能性があります。

つまり、コードの効率についてはXNUMXつの方法で考える必要があります。 XNUMXつは、個人の効率、つまりコードをどれだけ速く書くことができるかです。 XNUMXつ目は、コードの効率、つまりコードが必要な処理を実行する速度です。

ii。 あなたの仮定を述べなさい

あなたの仮定を述べることはいくつかの理由で重要です。 XNUMXつ目は、声に出して書くことです。これは、アプローチの潜在的な問題を確認するのに役立ちます。

XNUMXつ目の重要な理由は、面接官があなたとコミュニケーションを取り、通常は行うような支援を提供するように誘うことです。 彼らがあなたが何をしたいのか、そしてその理由を知らなければ、彼らはあなたを助けることができません。 すでに述べたように、通常、同じ結果を返すソリューションがいくつかあります。 あなたの仮定を伝えることで、インタビュアーはあなたが選んだアプローチに基づいてあなたを正しい方向に導くことができます。 または、ソリューションを台無しにする完全に間違った仮定からあなたを導きます。

XNUMX番目の理由は、質問が意図的に曖昧に設定される場合があることです。 これらの質問は、正しい解決策ではなく、あなたの考え方に関係しています。 したがって、あなたがあなたの仮定を述べるならば、それはあなたがどのように考えるかをインタビュアーに示します、彼らは通常非常に興味を持っています。

あなたの仮定を述べるXNUMX番目のそして最後の理由は、あなたが完全に間違った答えを得たとしても、あなたが述べた仮定の範囲内で正しい場合でも、あなたはまだそのためのいくつかのポイントを得る可能性があります。 この場合、考え方は次のようになります。OK、候補者は質問された内容を完全に誤解した可能性がありますが、解決策は実際には彼らが理解した内容の範囲内で正しいものです。

これはすべてにつながります 面接の質問に正しい答えを与えるようにしてください.

iii。 ソリューションをステップに分解する

これは、明確なソリューションのアイデアを持ち、後でクリーンなコードを記述しやすくするための便利なポイントでもあります。

この場合、分解することは書き留めることを意味します。 はい、ソリューションのすべての主要なステップと機能を書き留めます。 テーブルを結合する必要があるかどうか、テーブルの数、および使用する結合について考えてください。 サブクエリまたはCTEを作成する必要がありますか? あなたの選択を書き留めてください。 使用する必要のある集計関数、データ型を変換する必要があるかどうか、データを特定の方法で並べ替える必要があるかどうか、データをフィルタリングしてグループ化する必要があるかどうかなどを検討してください。

これらはすべて別個のステップであるため、すべてのステップで使用する主なキーワードと同様に、それらを書き留めてください。

iv。 コーディングを開始する

これはある意味で緊急のポイントです。 ソリューションへのアプローチについて考えたが、目の前に完全なソリューションが表示されない場合は、コードの記述を開始する必要があります。

この背後にある考え方は、不完全なソリューションを提供したとしても、XNUMX行のコードを記述しないよりも確かに価値があります。 また、いくつかの質問は非常に難しい場合があり、経験豊富な人でもソリューション全体をすぐに確認することは困難です。 コーディングを開始すると、途中でアイデアが浮かぶ可能性があります。 そうでない場合でも、少なくとも何かを示す必要があります。

あなたが心に留めておくべきもう一つの理由:いくつかの質問は答えられることさえ意図されていません。 それらのいくつかは、面接で与えられた時間内に解決するのが単純に(そして意図的に!)難しすぎます。 誰もそれらを完全に解決しません。 部分的な解決策は、誰もが得る最高のものです。 したがって、他の不完全なソリューションと比較して、どれだけ遠くまで到達したかが示されます。

 
ソリューションへのアプローチ–例

ソリューションアプローチについてどのように考えるべきかがわかったので、XNUMXつのインタビューの質問を使用して、それが実際にどのように機能するかを示しましょう。 Amazonコーディングインタビューの質問を使用します。

データサイエンスコーディングのインタビューの質問に答える方法


 

「各顧客の注文の総コストを見つけます。 顧客のID、名、および合計注文コストを出力します。 顧客の名でアルファベット順にレコードを注文します。」

質問へのリンク: https://platform.stratascratch.com/coding/10183-total-cost-of-orders

この質問では、XNUMXつのテーブル、テーブルの顧客、およびテーブルの注文からのデータを使用する必要があります。 この問題を解決するために、サブクエリを使用してコードを記述できます。 ただし、クエリとサブクエリが複数のテーブルのデータを使用している場合は、JOINを使用してソリューションを作成することもできます。 できるだけ少ないコード行を書くというアドバイスを念頭に置いて、JOINを使用することをお勧めします。

このソリューションの前提は何ですか? XNUMXつの仮定は、注文がゼロの顧客がいる可能性があるということです。 これは、テーブルの注文に表示されない顧客がテーブルの顧客に存在する可能性があることを意味します。 XNUMX番目の仮定は、質問に明示的に記載されていないため、注文がゼロの顧客を表示しないことです。

さて、これはすでにソリューションの内訳につながります。 既存のXNUMXつの列を出力する必要があるため、必ずSELECTを使用します。 各顧客の注文の合計を見つける必要があります。 SUM()集計関数を使用して合計する必要があります。 OK、テーブルを結合する必要があります。 これは、JOINキーワードを使用して行います。 他の人が参加してみませんか? 私たちの仮定が言うので、私たちは少なくともXNUMXつの注文がある顧客だけを望んでいます。 JOINを使用すると、正確に次のことがわかります。XNUMXつのテーブルを結合し、両方のテーブルにある値(顧客)のみを検索します。 次は何? 集計関数を使用したので、GROUPBYを使用する必要があります。 結果はアルファベット順に並べる必要があるため、ORDERBYとASCを使用します。

結果として生じるソリューションの内訳は、次のようになります。

  • SELECT
  • SUM(total_order_cost)
  • 登録
  • グループ化
  • ASCによる注文

あなたの場合、すべてを理解しているのでこれは緊急事態ではないので、次のチェックリストセクションに進むことができます。 または、最も一般的なものを見つけることもできます SQLJOINインタビューの質問はこちら.

3.コードを書く

 
質問を評価し、コードの戦略を立てたら、それを書き始めます。

データサイエンスコーディングのインタビューの質問に答える方法


 

  1. 選択した方言に固執する
  2. コーディング時にXNUMX行ずつ移動する
  3. コーディングしながら話す
  4. 読みやすくする
  5. 選択した規則と一致している

私。 選ばれた方言に固執する

これは、SQLコーディングのインタビューに参加している場合に特に重要です。 すでにご存知のように、ANSI / ISO SQL標準があり、多くのSQL方言があります。 事実上すべてのRDBMSは独自のSQLダイアレクトを使用します。 もちろん、すべてを知ることはできません。 そして、あなたがインタビューしている会社は、おそらくそれらの方言のXNUMXつを使用しています。

インタビュアーがどの方言を使用するかを気にしない場合は、最も使いやすい方言を選択してください。 インタビュアーが使用するSQLダイアレクトを選択してアピー​​ルしようとしないでください。そのダイアレクトでのコーディングがあまり得意ではない場合は、 よく知っている方言を選んで問題を解決する方が、確信が持てない他の方言を使うよりはましです。 後者を選択した場合、必要以上に緊張する可能性があります。 また、特定のSQLダイアレクトに精通していないと、ソリューションが混乱する可能性があります。

SQL方言を選択したら、それに固執します。 たとえば、PostgreSQLで作成する場合は、T-SQLと混同しないでください。

ii。 行ごとに移動

明確なソリューションの内訳があると、この点をほとんど気付かれずに確認するのに役立ちます。 コードの機能とセクションの概要がすでにわかっているので、落ち着いて、ソリューションの概要に従って体系的にコードを作成する必要があります。 コードはあなたの考えのプログラミング言語バージョンにすぎません。 考えとソリューションの概要が明確であれば、コードも明確になります。

ある行から別の行にジャンプし始めると、自分自身とインタビュアーが混乱することになります。 これはおそらく正しいコードを書かないことにつながるでしょう。

iii。 コードとして話す

コードをXNUMX行ずつ書くときは、自分が何をしているのかについても話す必要があります。 これは重要です。なぜなら、自分がしていることを大声で言うとき、自分が間違ったことをしているのかどうかを確認しやすいからです。 すべてがあなたの頭の中で素晴らしい音になるかもしれません。 しかし、あなたがそれを声に出すとき、それほど素晴らしいアイデアは本当に突き出ません! これにより、作業中にコードを修正する機会が得られます。 そうしないと、何か間違ったことをしたことに気付かずに、コードを完成させることができます。

書くときにすべての行を説明することが重要である理由のXNUMXつは、インタビュアーをソリューションに参加させることです。 それは彼らがあなたがしていることを理解し、あなたにいくつかのヒントを与えることを可能にします。 コードを書いて、自分がしていることを自分自身に留めておくと、インタビュアーもおそらくシャットダウンし、コードが完了するのを待って、自分がどのように行ったかを知らせます。

iv。 読みやすくする

適切に構造化されたコードを持つことは、美的観点から単純に見ることができる喜びです。 それだけでなく、あなたとインタビュアーがあなたのコードを読みやすくします。

コードを読みやすくする主な点は、上記のポイントのXNUMXつに記載されています。可能な限り単純に記述してください。 ただし、一部のソリューションは単純ではありません。 また、数行のコードでも、読みやすくする努力をしなければ、読むのは悪夢になる可能性があります。

覚えておくべきヒントのXNUMXつは、スペース、タブ、および入力を使用することです。 そしてそれをたくさん使ってください! これらのキーは、コードをセクションに分割するためにあり、コードの機能を理解しやすくします。 あなたが言うことや書くことのようにそれを考えてください。 スペース、タブ、Enterを押すと、コードにコンマ、文、段落が含まれるようになります。

可能であれば、テーブルのエイリアスを使用してください。 しかし、それらを自明にするようにしてください。 XNUMX文字のエイリアスの使用は避けてください。また、エイリアスを冗長で説明的なものにしないでください。 変数名についても同じことが言えます。

SQLでは大文字と小文字は区別されませんが、SQLキーワードは大文字で記述することをお勧めします。 これにより、特にすべての列名とテーブル名が小文字で記述されている場合は、コード内でそれらが目立つようになります。

私たちの投稿をチェックしてくださいSQLクエリを作成するためのベストプラクティス:コードを構造化する方法」では、特にパフォーマンスと読みやすさに関して、SQLクエリをどのように改善できるかに焦点を当てています。

v。選択された規則と一致している

大文字または小文字で書くようにする規則はありません。 規定された命名規則はないので、それはあなたとあなたがそれをどのように好むか次第です。 しかし、あなたが何をするにしても、それと一致してください。

すべての新しい列名を小文字で区切り、単語をアンダースコアで区切る場合は、そのようにしてそのままにしてください。 列にsalary_per_employeeという名前を付けると、かなり見栄えがします。 ただし、XNUMXつの列にsalary_per_employee、もうXNUMXつの列にSalaryPerDepartment、XNUMX番目の列に「TotalSalary」、XNUMX番目の列にMAX_sALAryPerdeparmentという名前を付けないようにしてください。 特に最後のコードでコードを読み込もうとすると、自分を傷つけることになります。

テーブル名を書き込んだり、エイリアスを使用したりする場合も同様です。一貫性を保つことで、コードの可読性も向上します。

一貫性について言えば、このチェックリストセクションが実際にどのように機能するかを示します。

 
コードの記述–例

Facebookによるコーディングの質問は次のとおりです。

データサイエンスコーディングのインタビューの質問に答える方法


 

「ユーザーがプラットフォームに2FA(2要素認証)してログインしようとすると、FacebookはSMSテキストを送信します。2FAを正常に実行するには、SMSテキストメッセージを受信したことを確認する必要があります。 確認テキストは、送信された日付にのみ有効です。 残念ながら、データベースにETLの問題があり、フレンドリクエストと無効な確認レコードがログに挿入されました。ログは「fb_sms_sends」テーブルに保存されます。 これらのメッセージタイプはテーブルに含めないでください。 幸い、「fb_confirmers」テーブルには有効な確認レコードが含まれているため、このテーブルを使用して、ユーザーによって確認されたSMSテキストメッセージを識別できます。

4年2020月XNUMX日の確認済みSMSテキストの割合を計算します。」

質問へのリンク: https://platform.stratascratch.com/coding/10291-sms-confirmations-from-users

このようなコードを書くと、このチェックリストのセクションで述べたすべてがカバーされます。

SELECT cust_id, SUM(total_order_cost) AS revenue
FROM orders
WHERE EXTRACT('MONTH' FROM order_date :: TIMESTAMP) = 3 AND EXTRACT('YEAR' FROM order_date :: TIMESTAMP) = 2019
GROUP BY cust_id
ORDER BY revenue DESC

FacebookがSQLServerを使用していると想像してみてください。ただし、コードを記述するSQLダイアレクトはユーザーに任されています。T-SQLに精通していないため、PostgreSQLで記述することにします。

たとえば、EXTRACT()とダブルコロン(::)は、PostgreSQLで一般的な関数です。 XNUMXつ目は、日時データ型から日付の一部を抽出します。 T-SQLには存在しません! したがって、T-SQLで記述しているインタビュアーにこの関数を使用すると言った場合、間違いを犯すことになります。 T-SQLでは、DATEPART()関数を使用する必要があります。 また、PostgreSQLのこの関数はDATE_PART()と呼ばれることを知っておく必要があります。 XNUMXつのアンダースコアは、コードが機能する場合と機能しない場合の違いを意味する場合があります。

同様に、PostgreSQLのダブルコロン(::)はデータ型変換に使用されます。 T-SQLでは機能しません。 CAST()またはCONVERT()のいずれかを使用する必要があります。

このコードのソリューションの内訳があると、行ごとに簡単に記述できます。 実際、それは簡単です。 まず、テーブルからいくつかのデータを選択し、フィルタリングし、グループ化し、最後に順序付けする必要があります。 最初にWHERE句を記述してから、SELECTステートメントに移動し、次にデータ型変換またはその他の奇妙な方法でコードにアプローチしないでください。

コードを記述すると、次のようにインタビュアーと話すことができます。SUM()関数を使用して列cust_idを選択し、テーブル注文からの収益を計算しています。 次に、WHERE句を使用して、order_date列の月と年に基づいてデータをフィルタリングしています。 その後、顧客レベルでデータをグループ化し、結果を降順で並べ替えます。

このコードにはインデントがあり、コードの主要部分ごとに新しい行があり、命名規則に一貫性があることがわかります。 これに従わなかった場合にコードがどのように見えるかを確認しますか? ここにあります:

SELECT cust_id、SUM(total_order_cost)AS REVENUE FROM ORDERS WHERE EXTRACT( 'MONTH' FROM order_date :: TIMESTAMP)= 3 AND EXTRACT( 'YEAR' FROM order_date :: TIMESTAMP)= 2019 GROUP BY cust_id order BY Revenue DESC

それを読んで頑張ってください!

4.コードを確認する

 
コードを記述したら、最終的な答えになる前にコードを確認します。 これまでにチェックリストのすべての項目を実行していれば、簡単に確認できます。

コードをレビューすることは、ある意味で、チェックリストのいくつかのポイントに対してコードをチェックすることです。

  1. 残り時間を確認してください
  2. 必要な出力と照合してください
  3. 記載されている仮定に照らして確認してください
  4. 読みやすさを確認してください
  5. ソリューションを通じてインタビュアーを導きます
  6. コードを最適化する

私。 残り時間を確認してください

チェックリストのこの部分の他のすべてのポイントは、これに依存します。 時間がない場合は何もできません。 あなたはあなたがしたことをしました、そしてあなたのコードはあなたが得た答えです、それが好きかどうかは関係ありません。

時間管理は重要なので、コードを確認するために意図的に時間を残しておく必要があります。 理想的には、次のXNUMXつのチェックを実行する時間があります。

ii。 必要な出力に対してコードを確認する

質問に戻って、コードが本当に必要なものを返すかどうかを確認する必要があります。 必要な列をいくつか含めるのを忘れましたか? あなたは本当にそれが要求されたように結果を注文しましたか? それらと他の同様の質問はあなた自身に尋ねるべきです。

時間がある場合は、間違いを訂正してください。 時間がない場合は、コードをそのままにしておきますが、間違ったことを書き留めます。

iii。 記載されている仮定に照らしてコードを確認する

あなたはいくつかの仮定に基づいてコードを書きました。 仮定リストに戻り、それに従ったかどうかを確認します。

あなたがそうしたらそれは完璧でしょう。 しかし、より複雑なコードを書くときは、いくつかの仮定を破棄したり、新しい仮定を導入したりする可能性があります。 それも書き留めてください。 すべての仮定に従わなかったが、そうすべきであり、コードを変更する時間があると思われる場合は、それを実行してください。 そうでない場合は、そのままにしておきます。

iv。 コードの可読性を確認する

ここで、今書いたことを理解しているかどうかを確認する必要があります。 コードに戻り、構文とロジックについてすべての行をもう一度確認します。 行ごとに、コードの可読性を改善できるかどうかを評価します。 命名規則に一貫性がありましたか? あなたのエイリアスは理解しやすいですか? あいまいさはありますか? コードは論理的な方法で論理的な部分に構造化されていますか?

繰り返しになりますが、時間があれば、コードの可読性を向上させてください。 時間がない場合は、書き留めるか、もっと上手くできたことを思い出してみてください。

v。ソリューションを通じてインタビュアーをリードする

上記のすべての手順を実行した場合、これは自然に実行されるはずです。 最も重要なことは、コードを説明するときに正直であることです。

コードを確認するときにコードで見つけた間違いが何であれ、それらを明示的に述べてください。 面接官が彼らに気づかないことを期待しないでください。 それらを隠そうとしないでください。 あなたの過ちを所有し、あなたが何を間違えたかを知っていることを示してください。 誰もが間違いを犯しますが、誰もが間違いを犯したことに気づき、認めることができるわけではありません。 間違えたとしても、自分が何をしているのかを知っていることを示しています。 間違いといえば、 これは、データサイエンスのインタビューで人々が行う最も一般的なものです.

出力に不要な列を含めた場合は、そのように言って、出力の説明を続けてください。 あなたは最初の仮定から逸脱しましたか、それとも新しい仮定を含めましたか? そう言って、その理由を説明してください。 誤ってそれを行った場合は、それが意図的ではなかったと言いますが、ソリューションにはいくつかの追加の仮定が含まれている必要があります。 コードが機能するためにそれらがどうあるべきかを述べてください。 同じことが読みやすさにも当てはまります。コードを改善できると思われる場合は、その方法を説明してください。

これらすべてを行うことで、コーディング能力だけでなく、説明責任があり正直であると考える速さも示されます。 これらはすべて、すべての企業から非常に高く評価されている特性です。

vi。 コードを最適化する

コーディングインタビューの最後の質問は、通常、コードを最適化するように求める質問です。 そうすれば、インタビュアーはSQL理論の知識をテストします。 たとえば、JOINが計算に時間がかかる可能性があることを知っている場合はどうでしょうか。 JOINまたはサブクエリを削除する方法があるかどうかを確認するように求められます。 たとえば、最大値を見つけようとする場合は、通常、ランキング関数などの関数を使用してWHERE句のサブクエリを削除できます。

または、特定のデータ型で操作が実行される速度がわかっている場合。 たとえば、文字列の比較は整数の比較よりも遅いので、文字列データに対してそれを行う方法があるのではないでしょうか。

まとめ

 
これはすべてこれに要約されます:あなたがあなたのアプローチをうまく構成するならば、コードを書くことはほとんど技術的であるべきです。 アクセントは思考にあり、コーディングにはありません。 そして、コードを書くことは非常に組織化された方法で行われるべきです。

質問、目の前にあるデータ、考えられる解決策、仮定、および必要な機能について検討する必要があります。 その後、コーディングを開始する必要があります。 コーディングを開始したら、インタビュアーを実行内容に含めて、実行するすべてのステップをインタビュアーに知らせることができるはずです。 実際の生活と同様に、本番環境で使用を開始する前に、コードを確認して最適化する必要があります。 このインタビューはあなたの作品です。 ソリューションを確認できるように時間を管理します。

これらはあなたがしなければならないことです。 私たちの投稿には、さらに多くの準備のヒントがあります: データサイエンスの面接に備えるための5つのヒント.

これはすべて簡単ではありません。 それには経験と実践が必要です。 誰もこれを偽造することはできません。 しかし、このチェックリストに従うことで、経験に関係なく、思考と面接のパフォーマンスに確かな構造が確実に追加されます。 それはあなたのパフォーマンスを向上させるだけです。

 
 
ネイト・ロシディ データサイエンティストであり、製品戦略に携わっています。 彼はまた、分析を教える非常勤教授であり、 ストラタスクラッチ、データサイエンティストがトップ企業からの実際の面接の質問で面接の準備をするのを支援するプラットフォーム。 彼とつながる Twitter:StrataScratch or LinkedIn.

元の。 許可を得て転載。

出典:https://www.kdnuggets.com/2022/01/answer-data-science-coding-interview-questions.html

スポット画像

最新のインテリジェンス

スポット画像

私たちとチャット

やあ! どんな御用でしょうか?