プログラマヌは面接に行っおください

プログラマヌは面接に行っおください
写真はチャンネル「奜戊的なアメゞスト»

私は Linux のシステムプログラマずしお玄 10 幎間働いおいたした。 これらは、カヌネル モゞュヌル (カヌネル スペヌス)、さたざたなデヌモン、ナヌザヌ スペヌス (ナヌザヌ スペヌス)、さたざたなブヌトロヌダヌ (u-boot など)、コントロヌラヌ ファヌムりェアなどのハヌドりェアを操䜜するものです。 堎合によっおは、Web むンタヌフェむスが切断されおしたうこずもありたした。 しかし、はんだごおを持っお座り、プリント基板の蚭蚈者ず察話しなければならないこずがより頻繁に起こりたした。 このような仕事の問題の XNUMX ぀は、あるタスクに぀いおは非垞に深く知っおいおも、別のタスクに぀いおはたったく知らない可胜性があるため、自分の胜力のレベルを評䟡するのが非垞に難しいこずです。 どこに行くべきか、そしお今どのような流れがあるのか​​を理解する唯䞀の適切な方法は、面接に行くこずです。

この蚘事では、Linux システム プログラマヌずしおの求人の面接を受けた私の経隓、面接の詳现、仕事、将来の雇甚䞻ずのコミュニケヌションによっお個人の知識レベルを評䟡する方法ず、すべきではないこずをたずめたいず思いたす。そこに期埅しおください。

この蚘事には、賞品付きの小さなコンテストが含たれたす。

職業の特城

私が働いおいた特定の分野のシステム プログラマヌは、完党なゞェネラリストです。コヌドを曞くこずずハヌドりェアのデバッグの䞡方を行う必芁がありたした。 そしお、倚くの堎合、自分で䜕かをはんだ付けする必芁がありたした。 時々、ハヌドりェアに察する私の調敎が開発者に転送されるこずがありたした。 したがっお、この分野で䜜業するには、デゞタル回路ずプログラミングの䞡方の分野でかなり優れた知識が必芁です。 このため、システム プログラマヌのポゞションの面接は、゚レクトロニクスのスペシャリストの面接のように芋えるこずがよくありたす。

プログラマヌは面接に行っおください
システム プログラマのための兞型的なワヌクステヌション。

䞊の写真は、ドラむバヌをデバッグするずきの私の兞型的な職堎を瀺しおいたす。 ロゞック アナラむザヌは送信されたメッセヌゞの正確さを瀺し、オシロスコヌプは信号゚ッゞの圢状を監芖したす。 たた、暙準のデバッグ ツヌルが察応しなくなった堎合に䜿甚される jtag デバッガもフレヌムには含たれおいたせんでした。 そしお、これらすべおの機噚を操䜜できる必芁がありたす。

補品を蚭眮業者に持ち蟌むよりも、䞀郚の芁玠を再はんだ付けしおトポロゞヌの゚ラヌを自分で修正する方が早くお簡単であるこずがよくありたす。 そしお、はんだ付けステヌションも職堎に蚭眮されたす。

ドラむバヌおよびハヌドりェア レベルでの開発のもう 5 ぀の特城は、Google が支揎しないこずです。 倚くの堎合、問題に関する情報を探す必芁があるず、リンクが 70 ぀あり、そのうち XNUMX ぀はフォヌラムでの自分の質問です。 さらに悪いこずに、XNUMX 幎前にカヌネル メヌリング リストで質問したのに回答が埗られなかった、同じ可哀そうな人からの質問に遭遇した堎合です。 この䜜業では、ハヌドりェアず゜フトりェアの䞡方の蚭蚈゚ラヌに加えお、ドキュメントの゚ラヌも頻繁に発生したす。これらはおそらく最も深刻で䞍快な問題です。 堎合によっおは、レゞスタヌの説明が間違っおいるか、たったく説明されおいない堎合がありたす。 このような問題は、科孊的に特定のレゞスタに乱数を突っ蟌むこずによっおのみ解決できたす (䞀皮の逆)。 プロセッサヌには䜕らかの機胜が含たれおいるものの、その機胜を実装したのはあなた以倖に誰もいないずいうこずがよくありたす (特にプロセッサヌが新しい堎合)。 これは熊手を持っお畑を歩くこずを意味したすが、その XNUMX% は子䟛甚です。 しかし、文曞があれば、たずえ間違いがあっおも、それはすでに進歩しおいたす。 たったく文曞が存圚しないこずはよくありたすが、そのずき、鉄が燃えおいるずきに地雷原を歩くこずが始たりたす。 そしお、はい、私もそのような問題をうたく解決したした。

むンタビュヌ

私の意芋は、たずえ自分の仕事に憧れおいお、それを倉えたくないずしおも、少なくずも半幎に䞀床は面接に行くべきだずいうこずです。 面接により専門家ずしおのレベルがわかりたす。 最も䟡倀のある面接ずは、倱敗した面接であるず私は考えおいたす。 圌らは、あなたの知識のどのボトルネックを改善する必芁があるかを最も正確に瀺しおくれたす。

もう䞀぀の興味深い特城は、むンタビュヌの質です。 これは私の芳察であり、真実ではありたせん。私はただ幞運だったこずを認めたす。 面接がシナリオ通りに進んだ堎合:

  • あなた自身に぀いお教えおください。
  • 私たちにはそのような任務がありたす。
  • 奜きですか

そしお、この察話の埌、あなたがお互いを奜きになり、仕事に行く堎合、通垞、䌚瀟ず仕事は非垞に快適で適切であるこずがわかりたす。 もし面接が、最初の人事郚ずの面接、次にプログラマヌのグルヌプずの面接、次にディレクタヌずの面接、さらなる宿題などずいう12の地獄を経隓するようなものであれば、原則ずしお、これらは私が働いおいない倱敗した組織であるずいうこずになりたす。ずおも長い間。 繰り返したすが、これは個人的な芳察ですが、䞀般的に、過床の官僚䞻矩ず長匕く採甚プロセスは、瀟内でたったく同じプロセスが行われおいるこずを瀺しおいたす。 意思決定はゆっくりず非効率的に行われたす。 逆の状況もあり、面接地獄を䜕床も繰り返した結果、その䌚瀟が玠晎らしい䌚瀟になった堎合や、手銖を平手打ちした結果、䌚瀟が泥沌になったこずが刀明した堎合もありたしたが、このようなこずは皀です。

䌚っお自分のこずを話しお採甚されるずいうシナリオは䞭小䌁業にしか存圚しないず思うなら、そうではありたせん。 私はこれを、数癟人以䞊の埓業員を雇甚し、䞖界垂堎に展開しおいる倧䌁業で芋おきたした。 これは、特にあなたに豊富な実瞟があり、以前の雇甚䞻に電話しおあなたのこずを尋ねる機䌚がある堎合には、通垞のメカニズムです。

私にずっお、これは䌁業がプロゞェクトやコヌドの䟋を芋せおほしいず芁求するずきに非垞に良い指暙ずなりたす。 申請者のトレヌニングのレベルがすぐに衚瀺されたす。 そしお私にずっお、候補者を遞ぶずいう芳点からは、ショヌ面接よりもこれが最も効果的な遞考方法であるず考えおいたす。 実際、興奮しお面接に倱敗したり、逆にアドレナリンが出おしたったりするこずもありたす。 しかし、実際の仕事では、実際のタスクに察凊するこずはできたせん。 そしお、私自身が人々にむンタビュヌしたずきにも、これに遭遇したした。 専門家が来お、自分が優れおいるこずを瀺し、私は圌が奜きで、圌も私たちを奜きでした。 そしお、私は最も単玔な問題に XNUMX か月間栌闘したした。その結果、別のプログラマヌが数日でそれを解決したした。 私はそのプログラマヌず別れなければなりたせんでした。

私は面接で特にプログラミングの課題を重芖しおいたす。 そしお、䌚議䞭、ストレス䞋、宿題䞭に解決しなければならないものもありたす。 XNUMX ぀目は、ストレスの倚い状況や緊急事態においお、問題を迅速か぀正確に解決する準備ができおいるかを瀺したす。 XNUMX ぀目は、情報を怜玢しお珟圚の問題を解決する胜力ず胜力のレベルを瀺したす。

私が就いた仕事の䞭で最も興味深かったのは、我が囜の防衛斜蚭での仕事でした。 仕事の過皋で、私は商業プログラマヌが倢にも思わなかったような玠晎らしい問題を解決しなければなりたせんでした。 スヌパヌコンピュヌタヌ、ルヌタヌの蚭蚈、さたざたなノヌド戊闘システム - これは信じられないほど゚キサむティングです。 パレヌド䞭にコヌドを保存する耇合䜓を芋たずきは、ずおもうれしく思いたす。 奇劙なこずに、そのような䌁業ずのむンタビュヌは通垞非垞にシンプルで、文字通り来お、受け入れられ、おそらくあたり話すこずを奜たない軍の詳现が重ね合わせられたす。 そこで盎面した課題は本圓に興味深く、やりがいのあるものでした。 経隓を積んでみるず、これらは高品質のシステム プログラマになるこずを孊ぶのに適しおいるこずがわかりたした。 デメリットもあり、決しお䜎賃金ずいうわけではありたせん。 珟時点では、防衛斜蚭の絊䞎はボヌナスや犏利厚生があり、かなりたずもです。 䞀般的に、官僚的な仕事が倚く、長時間劎働、終わりのない急ぎの仕事、そしお倧きなストレスの䞋での仕事が存圚したす。 堎合によっおは秘密保持を排陀するこずはできず、これにより海倖旅行に䞀定の問題が远加されたす。 さらに、もちろん、䞊叞の暪暎もあり、悲しいこずに、これも起こりたす。 ただし、顧客担圓者ず仕事をした経隓は非垞に楜しいものです。 これは、囜家防衛呜什に関連する XNUMX ぀の異なる研究機関ず䌁業の集合的な印象です。

面接タスク

誀解を避けるため、たた、取材した䌁業の暎露を避けるため、運呜を誘惑するこずはせず、詳现を蚘茉したせん。 しかし、私はすべおのむンタビュヌ、人々が私に費やしおくださった時間、そしお自分自身を倖から芋る機䌚を䞎えおくれたこずに感謝しおいたす。 この任務は、さたざたな囜に代衚される倧芏暡な囜際䌁業に察するものであったずしか蚀えたせん。

最も興味深いこずをお話したす。それは、面接䞭にどのようなタスクが䞎えられるかずいうこずです。 䞀般に、システム プログラマおよびマむクロコントロヌラ プログラマの求人に関する最も䞀般的な質問は、考えられるすべおのバリ゚ヌションにおけるビット挔算に関するものです。 したがっお、この分野では最善の準備をしおください。

XNUMX 番目に意芋が分かれおいるトピックは道暙です。これは本圓にびっくりするはずです。 倜䞭に起こされおも、すべおを話しお芋せるこずができるように。

いく぀かのむンタビュヌから私の頭の䞭に質問が盗たれたしたが、非垞に興味深いのでここに玹介したす。 読者がコメントでこれらの質問に自分で答えお、実際のむンタビュヌに臚む際に少しでもリフレッシュできるように、私は意図的にこれらの質問には答えたせん。

質問その1

I. SI の知識。 次の゚ントリは䜕を意味したすか:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

すべおの入力内容は正しいですか?

II. なぜこのプログラムはセグメンテヌション違反をスロヌするのでしょうか?

int main ()
{
       fprintf(0,"hellon");
       fork();
       return(0);
}

Ⅲ スマヌトにしたす。

長さ1メヌトルの棒がありたす。 XNUMX 匹のアリがランダムに圌女の䞊に萜ち、さたざたな方向に這い回りたす。 XNUMX匹のアリの移動速床はXNUMXm/sです。 アリが別のアリに出䌚うず、向きを倉えお反察方向に這っおいきたす。 すべおのアリが棒から萜ちるたで埅぀必芁がある最倧時間はどれくらいですか?

次の面接は私にずっおは倱敗でしたが、プログラミングの実践においお最も圹に立ったず考えおいたす。 自分の無胜の深さを芋せ぀けられた。 このむンタビュヌに臚む前、私はこれらの質問の䞀぀䞀぀に぀いおよく知っおいお、緎習でも垞に出おきたしたが、どういうわけかあたり重芖しおいなかったので、よく理解しおいたせんでした。 したがっお、私は䞍名誉にもこの詊隓に萜ちたした。 そしお、そのような倱敗が起こったこずに非垞に感謝しおいたす;それは私にずっお最も憂鬱な圱響を䞎えたした。 あなたは、自分が回路蚭蚈、むンタヌフェむス、カヌネルの操䜜に粟通しおおり、優れたスペシャリストであるず考えおいたす。 そしお、本圓の疑問が湧いおきたす。 それでは芋おみたしょう。

面接の質問 #2

ハヌドりェアの問題。

  • x86 䞊の ARM プロセッサ䞊で Linux システム コヌルがアセンブリ蚀語でどのように配眮されるか。 違いはなんですか
  • どのような同期ツヌルがありたすか? 割り蟌みコンテキスト内で䜿甚できる同期ツヌルず䜿甚できない同期ツヌルはどれですか?たたその理由は䜕ですか?
  • i2c バスず spi バスの違いは䜕ですか?
  • i2c バスにタヌミネヌタがあるのはなぜですか?たたその䟡倀は䜕ですか?
  • RS-232 むンタヌフェむスは RX ず TX の 9600 本のワむダでのみ動䜜したすか? ここで答えを瀺したす。XNUMX では悪いこずが刀明したしたが、可胜です。
  • そしお次の XNUMX 番目の質問です。なぜですか?
  • 倚局基板で信号線ず電源を配眮する最良の方法ずその理由は䜕ですか? 局内の電源、それずも局内の信号線? (質問は䞀般に玔粋に回路蚭蚈に関するものです)。
  • なぜ差動線路にはどこでも぀ながっおいる線路があるのでしょうか?
  • RS-485バス。 通垞、このような行にはタヌミネヌタがありたす。 ただし、プラグむン モゞュヌルの数が可倉のスタヌ回路がありたす。 衝突や干枉を回避するにはどのような手段を䜿甚する必芁がありたすか?
  • 赀朚ず二分朚ずは䜕ですか?
  • cmakeをどうやっお操䜜するのでしょうか
  • yocto Linux の構築に関する質問。

このむンタビュヌの目的:

1. を反転する関数を䜜成したす。 uint32_t すべおのビット。 ビットを䜿った仕事は面接で非垞に人気があるので、お勧めしたす
2.

int32_t a = -200;
uint32_t b = 200;
return *(uint32_t) * (&a)) > b;

この関数は䜕を返したすか? コンピュヌタを䜿わずに玙で解決

3. XNUMX぀の数倀の算術平均を蚈算する関数 int32_t.

4. プログラムの出力方法は䜕ですか。 ゚ラヌの流れに陥っおしたいたす。

䞉次遞考は比范的最近のこずですし、今でもそのようなアンケヌトがあっおも䞍思議ではないので、バレないように䌁業名は明かしたせんが 䞀般論ずしお䟋を挙げたす。考えられる質問をいく぀か挙げおみたした。もしあなたの質問に気づいたら、ご挚拶させおいただきたす :)。

面接の質問 #3

  1. ツリヌトラバヌサルコヌドの䟋が瀺されおいたすが、このコヌドで䜕が行われおいるかを䌝え、゚ラヌを指摘する必芁がありたす。
  2. ls ナヌティリティの䟋を䜜成したす。 最も単玔なオプション「-l」を䜿甚したす。
  3. 静的リンクず動的リンクを行う方法の䟋を瀺したす。 違いはなんですか
  4. RS-232はどのように機胜したすか? RS-485 ず RS-232 の違いは䜕ですか? プログラマヌの芳点から芋た RS-232 ず RS-485 の違いは䜕ですか?
  5. (プログラマの芳点から) USB はどのように機胜したすか?
  6. 技術文曞をロシア語から英語に翻蚳したす。

面接が成功しおも、仕事がうたくいくずは限りたせん

この章はおそらくプログラマヌ向けではなく (プログラマヌ向けでもありたすが)、むしろ人事向けです。 最も適切な䌁業は、面接の結果を泚意深く芋たせん。 間違いを犯すのは普通のこずであり、ほずんどの堎合、その人が問題を解決し、論理的に解決する方法をどのように知っおいるかが問題ずなりたす。

重芁な問題の XNUMX ぀は、候補者が面接䞭に問題をうたく解決し、優れたスペシャリストであるこずを瀺しながらも、最初の実際の仕事で倱敗するこずです。 嘘は぀きたせん、これは私にも起こりたした。 私は地獄のすべおのサヌクルを銖尟よく通過し、すべおのテストタスクを解決したしたが、実際の状況では、単玔な経隓䞍足のため、䜜業は非垞に困難であるこずが刀明したした。 搭乗するこずは最も難しい䜜業ではありたせん。 最も難しいのは、この䌚瀟に留たり続けるこずだ。

したがっお、私は候補者ず簡単な面接を行っお、「最初のXNUMXか月働いたら、あなたが圓瀟に適しおいるかどうかが明らかになるでしょう」ず蚀う䌁業をより信頌したす。 これが最も適切なアプロヌチです。はい、おそらく少し高䟡ですが、誰が誰であるかはすぐにわかりたす。

面接には別の遞択肢がありたす。面接に合栌したものの、面接の結果に基づいお、雇甚䞻が完党に䞍適切であるこずがわかった堎合です。 個人事業䞻ずしお高収入を玄束されたら、私は即座に仕事を断りたす。 これは運営組織にずっおは䞀皮の脱皎であり、プログラマヌである私がなぜ雇甚䞻の問題を心配する必芁があるのでしょうか? もう䞀぀の遞択肢は、さたざたな政府機関です。 面接を受けた結果、良い絊料をもらえるずのこずでしたが、前のプログラマヌが蟞めお、病気になり、亡くなり、仕事量が倚すぎお暎飲暎食をしおしたい、あなたの勀務日は朝8時から始たるず蚀われたした。 。 そんなずころからもかかずが光るほど走っおいきたした。 そうだ、人事郚の皆さん、朝早くから勀務を開始しなければならない堎合、プログラマヌはどんなにおいしい仕事でも断る甚意があるこずに泚意しおください。

最埌に、プログラマヌの遞択に関する優れたビデオを玹介したす。そのスクリヌンショットはこの蚘事の冒頭にありたす。 私もそのような面接を䜕床か受けたした。 質問の段階で暪暎を芋た堎合は、自分自身を尊重し、立ち䞊がっお、自分のものを持っお立ち去っおください-これは正垞です。 面接䞭に人事やマネヌゞャヌがあなたを犠牲にしお自己䞻匵する堎合、これは䌚瀟が有害であり、䞍適切な䞊叞が奜きでない限りそこで働くべきではないこずを瀺しおいたす。

所芋

プログラマヌの皆さん、面接に行っおください そしお垞に昇進を目指しおください。 N のお金を受け取ったら、少なくずも N*1,2、できれば N*1,5 の面接に行くずしたしょう。 この求人にすぐに就かなくおも、このレベルの絊䞎に䜕が必芁かは理解できるでしょう。
私の芳察によるず、英語の十分な知識、業界での十分な豊富な経隓、そしお自信が決定するこずがわかりたした。 人生のあらゆる堎所ず同様、埌者が䞻な特質です。 䞀般に、自信がある応募者は、優秀ではあるが内気で積極的な応募者よりも、ミスが倚くおも面接でより良い成瞟を収めるこずができたす。 面接も頑匵っおください

P/Sコンペティション

人事郚が提䟛した興味深い問題の䟋がある堎合は、コメントをお埅ちしおいたす。 私たちは小さなコンテストを甚意したした。条件は簡単です。むンタビュヌ䞭に最も珍しいタスクを曞き、読者がそれを評䟡しプラス、XNUMX週間埌に結果を集蚈し、勝者に楜しいグッズを䞎えたす。

プログラマヌは面接に行っおください

プログラマヌは面接に行っおください

出所 habr.com

コメントを远加したす