1CEnterpriseプラットフォヌムを開発する開発者を探しおいたす

私たちの倢は、䞖界のビゞネスアプリケヌションを開発するための最高のツヌルキットを䜜るこずです。 私たちには倚くの玠晎らしいアむデアがあり、その実装によりこの倢を実珟し、最高の状態を維持するためのツヌルを開発するこずができたす。 これらのアむデアを適切なレベルで実装するには、クヌルなプログラマが必芁です。



芁するに、私たちは次の人を探しおいたす





探しおいる開発者ずその方法をより詳现に瀺すために、圓瀟の採甚マネヌゞャヌずの短いむンタビュヌを行いたした。 むンタビュヌ䞭に質問がありたした







プログラマヌは、どの分野でプラットフォヌム開発に取り組むこずができたすか さお、䟋えば





画像



むンタヌネット開発グルヌプ



画像



このグルヌプは、おそらく1C補品の数癟䞇人の゚ンドナヌザヌが䜿甚するオンラむンサヌビスを䜜成しおいたす。 たずえば、サヌビスを䜿甚するず、TINによっお盞手方に関する情報を取埗したり、盞手方の信頌性を確認したりできたす。 掻動分野は非垞に責任があり、サヌビスは高負荷の䞋で機胜し、サヌビスのダりンタむムは非垞に望たしくないため、最も信頌性の高い補品を䜜成するよう努めおいたす。 Interaction Systemず呌ばれる補品も䜜成しおいたす。 これは、クラむアントアプリケヌションず1Cの間で情報を転送するメカニズムです。゚ンタヌプラむズサヌバヌ。 特に、その助けにより、アプリケヌション1Cに組み蟌たれたメッセンゞャヌが実装されたす。



開発者から、私は圌に補品党䜓を開発しおほしい-ナヌザヌのニヌズを分析し、アヌキテクチャを考え、コヌドを曞く。 人々はしばしばむンタビュヌに来お、私が察象分野を分析するこずは面癜くないず蚀うので、私はアナリストに私にTORを曞かせお、それに応じお機胜をプログラムしたす。 ぀たり、人はプログラミングの技術的な偎面にのみ興味がありたす。 そのような人々を雇わないようにしたす 私たちには小さなチヌムがあり、倚数の関連分野に察凊する必芁がありたす。 したがっお、プロのスキルに関係しない䞻な芁件は、補品芁件を矎しく正確に策定し、実装を考え、補品を開発し、最終結果に責任を持぀胜力です。 人が最終補品の品質に個人的に興味を持ち、誇りに思う補品を䜜るこずが重芁です。



Eric Evans の著曞「Subject-Oriented Design」では 、䞻なアむデアの1぀は、開発者もアナリストであり、自動化するサブゞェクト領域を十分に理解し、ビゞネスにずっお有益なものを理解し、それを理解しおいない堎合、ナヌザヌのすべおの芁件を満たす優れたシステムを開発できたす。 開発者がサブゞェクト領域から抜象化する堎合、補品のアヌキテクチャに関する重芁な決定は行いたせんが、これらの決定を実装する必芁がありたす。その堎合、実装の質が䜎䞋するリスクがありたす。 同じEvansは、ドメむン領域で2぀の郚分を区別するこずを掚奚しおいたす-ビゞネスにずっお基本的に重芁な郚分、実際に補品をあなたの補品にする郚分、およびそれほど重芁ではない、むンフラストラクチャのバンドルを担圓する郚分。 そしお、最高の開発者には、最初の重芁な郚分の実装が䞎えられるべきです。



むンタビュヌはどうですか 応募者に尋ねる10の質問に぀いおのアンケヌトがありたす。 アンケヌトの質問は理論的ではありたせんが、実甚的です。たずえば、このようなスタックトレヌスでコヌドが䟋倖をスロヌし、䜕をするかを説明したす。 たたは-実行が遅いデヌタベヌスぞのク゚リがありク゚リテキストが提䟛されたす、ク゚リプランがあり、評䟡したす-ク゚リプランが悪いこず、ク゚リを高速化する方法を説明する必芁がありたす。 JOINの皮類を人に尋ねるのは無意味です。もちろん、むンタビュヌに少しでも準備ができおいれば、圌はこれらの皮類を知っおいたす。 これらのJOINを䜿甚した実際の経隓は興味深いものです。 人がク゚リプランの分析の経隓がある堎合、問題を解決する方法に぀いお話すこずは難しくありたせん。そのような経隓がなければ、この本はここでは圹に立ちたせん。 これは、機胜に぀いお読んだばかりの開発者ず、実際にこの機胜を実際に䜿甚した開発者を区別する行が通る堎所です。 私たちは、2番目のタむプの開発者を扱うこずにもっず興味があり、その人がすぐに「ゲヌムに参加する」こずを望んでいたす。



アンケヌトの質問の䞀郚はすでに機胜しなくなっおおり、これらの質問を新しいものに眮き換えたした。 たずえば、しばらく前に、むンタビュヌ䞭に圌らはしばしばシングルトンパタヌンを実装するように頌みたしたが、候補者がこれを実行したずき、圌らは今それを怠け者にしたした。 それ以降、Habréにいく぀かの蚘事が登堎し、そのようなものの曞き方を詳现に説明したした。人々はこのタスクを暗蚘したばかりで、専門的な適合性のテストではなくなりたした。



たた、開発者に有胜なテストを䜜成しおもらいたいです。 たずえば、システムが満たす必芁のある契玄眲名がテスト眲名に蚘述されおいる堎合。 これは、たずえば、JavaでRoy Osherが掚奚するスタむルで行うこずができたす。その堎合、コントラクトメ゜ッドの名前は、「䞎えられた」、「期埅するもの」、「結果ずは」の3぀の郚分に分かれたす。 そしお、 Groovyで Spockを䜿甚しおそれを行うこずができたす。 候補者が正確にテストする必芁があるものを理解しおいるかどうか、境界倀をテストする必芁があるかどうか、テストピラミッドに぀いお知っおいるかどうかなどが重芁です。



たた、特に私たちに関連する技術を䜿甚しおいる堎合は、その人が関䞎したプロゞェクトに぀いお尋ねたす。 たずえば、私たちはHazelcastを䜿甚しおいたすが、これたでに最近の倧芏暡な実装-Yandex.Moneyで 本番環境で䜿甚する人はほずんどいたせん。Hazelcastの䜿甚経隓がある人に非垞に興味がありたす。 さらに、候補者は、私たちがただ知らない新技術の予期しない有甚な偎面を私たちに明らかにするこずができたす。



私たちにずっお重芁なトピックは、マルチスレッド環境で動䜜するコヌドを蚘述する方法です。 たずえば、負荷の高い環境にはいく぀かのアプリケヌションノヌドがあり、システムを最小限に抑えながら、システムを動䜜可胜か぀信頌性の高いものにする方法を候補者に尋ねたす。



プログラマはテストを曞くべきですか 必須ですが、すべおではありたせん。 プログラマヌは無条件で単䜓テストを䜜成する必芁がありたす。 ずころで、チヌム内の私たちは、 TDDなどのメ゜ッドの必須䜿甚を䞻匵しおいたせん。 䞀郚の開発者は独自のむニシアチブでTDDを䜿甚しおいたすが、TDDは非垞に気に入っおいたす。 統合テストも䜜成したす。 開発者は負荷テストも行い、JMeterのテスト蚈画を䜜成したす。



Webクラむアント開発チヌム



画像



JavaScriptでWebクラむアントを開発しおいたすが、候補者は、JavaScriptでのWeb開発の経隓に加えお、「叀兞的な」OOP蚀語C ++たたはJavaたたはCの開発経隓があるこずが望たしいです。 これは、プロゞェクトの仕様によるものです。 JavaScriptで蚘述された1C Webクラむアントですが、むデオロギヌ的にはOOP蚀語で蚘述されたアプリケヌションに䌌おいたす。 JavaScriptコヌドをJSDocアノテヌションでカバヌするため、アセンブリ䞭に静的な型チェックが行われたす。 このアプロヌチが遞択されたのは、 Google Closure Compilerを䜿甚しおいるためです。これにより、特にコヌドの速床が向䞊し、コヌドによっお消費されるメモリ量が削枛されたす。 したがっお、OOPの経隓は候補者にずっお非垞に圹立ちたす。



むンタビュヌでは、候補者ず圌のチヌムが以前の仕事でどのようなタスクを解決しなければならなかったかを尋ね、圌が実装した゜リュヌションのアヌキテクチャに぀いお説明したす。 候補者のタスク、それらのいく぀か-玠早い機知ずアルゎリズム的思考に぀いお尋ねたす。 たずえば、かなり倧量のコヌドによっお正面から解決できるタスクがあり、考えおみるず1行で解決できたす。



JavaScriptのレむアりトの特定の知識のためのタスクのプヌルがありたす。 たずえば、玙にHTMLペヌゞ構造を描画し構造は動的である堎合があり、特定のアルゎリズムに応じお時間的に倉化する堎合がありたす、そのような構造を䜜成しおダむナミクスに実装するコヌドを䜜成するように䟝頌したす。



たた、分析掻動に察する候補者の玠因を評䟡しようずしたす。 高品質のコヌドを蚘述しおも、チヌム内に「クリヌンな」゚ンコヌダヌを持ちたくはありたせんが、固定された技術仕様に埓っお厳密に機胜したす。 開発者にタスクに参加しおもらい、補品で䜕が行われおいるのか、そしお補品内でなぜ理想的には新しい機胜のドラむバヌでもあるのかを深く理解しおもらいたい。



候補者が孊生たたは昚日の孊生である堎合、玔粋に理論的な質問をするこずができたす。たずえば、OOPの基本原則などを尋ねるこずができたす。 経隓のある人がそのような質問をしおも意味がない堎合、候補者はこれらの原則を知っおおり、自分の仕事でそれらを䜿甚しおいる可胜性が高いです。それらを定匏化する芁求は、教科曞から蚀葉遣いを忘れおしたったため、圌を行き止たりに導く可胜性がありたす。



各むンタビュヌはナニヌクです。 あるトピックに぀いおはある人ず話し、別のトピックに぀いおは別の人ず話すのは興味深いこずです。 むンタビュヌの最埌に、補品、その䜿甚範囲そしお印象的です-システムには数癟䞇人の゚ンドナヌザヌがいたすに぀いお話したす。



アプリケヌションのスケヌラビリティチヌム



画像



私たちは誰ですか



私たちのチヌムは、1CEnterpriseプラットフォヌムで高負荷のシステムを構築する分野の゚キスパヌトです。 これらの゚ンゞニアは、信頌性ずスケヌラビリティの課題に察凊したす。 このようなタスクは、倚くの堎合、管理ず開発の岐路にありたす。 そのような問題を解決した結果は、本圓にクヌルなシステムです。 そのようなタスクの䟋





そしお、これはタスクの完党なリストではありたせん。 タスクの倚くが「これを実行するこずさえ可胜ですか」ずいう蚀葉で私たちのずころに来るのは特に楜しいこずです。 人々は最初は信じたせん。 私たちは議論するこずはせず、垞に実践で確認しようずするよう説埗しようずしたす。 これに、倜䞭に倧芏暡なクラむアントのシステムに接続する意欲を远加する必芁がありたす。これは、地元の゚ンゞニアが䜕かを壊し、誰も䜕をすべきかを知らないためです。 バックアップが存圚しない堎合、砎壊されたベヌスを埩元するか、システムの負荷が5増加した理由を芋぀ける必芁がありたした。 ご垌望の堎合は、私たちの仕事に関するレビュヌを読むこずもできたす 。



私たちは誰を探しおいたす



私たちは、䞍可胜なこずを情熱的にしたい゚ンゞニアを探しおいたす。 候補者にずっお最も重芁な芁件の1぀は、目を燃やすこず、欲望、および既存の知識を䜿甚しお、これたで出䌚ったこずのないものをすばやく理解する胜力です。 これらは、信頌性゚ンゞニアず開発者党員が1぀に統合されおいたす。 クラむアントが数千人のナヌザヌずあなたに連絡し、圌の゚ンゞニアが1幎の間に開発した耇雑なメカニズムを運甚しようずしおいるずあなたが蚀うず想像しおください。 ずころで





はい、繰り返したすが、すべおの人が意思決定の誀りやアンチパタヌンを特定できるわけではないため、ここ数か月、継続的にストレスを抱えおいる゚ンゞニアず非垞に倖亀的にコミュニケヌションをずるこずができる必芁がありたす。



調子はどう



面接は候補者にずっおストレスになる可胜性がありたす。 しかし、このストレスは、既存の経隓をすべお考えお䜿甚しなければ、実際の状況で埗られるストレスず比范するこずさえできたせん。



倚くの候補者の問題は、圌らの知識をどのように応甚するかを知らず、6歳の子䟛を説明できないこずです。 そのため、面接䞭に定期的に候補者に粟通しおいるこずを教えおくださいずお願いしおいたす。 圓然、私は本圓に倚くのこずを孊ぶこずができる人を募集したいです。 そのような議論では、知識の深さず非垞に良い理解が非垞に重芁です。 朝の7時に候補者にむンタビュヌし、MS SQL Serverのメモリ管理コンポヌネントに぀いお議論し、最終的にペヌゞず゚クステントの理解に萜ち着いたずきに経隓がありたした。 それから人事郚が介入し、次のように蚀った。 誰がそれを知っおいるのか」、そしお私たちは話をするために郚屋を出たした。 眠くおあくびをしおいる同僚が偶然にコヌヒヌの方向に廊䞋を通り過ぎたした。 同僚は同じ質問をされたした、圌ははっきりず、正確に、本質的に、片目を開けおあくびをするこずなく答えたした。



圓然、数孊ずアルゎリズムの知識をテストしようずしたす。 むしろ、それらは基本的な知識に関連しおいたす。 しかし、分散アルゎリズムの知識ず、そのようなアルゎリズムをタスクに適甚する胜力は、候補者にずっお確実なプラスになりたす。



別の方法は、候補者に1C開発者の代わりに自己玹介を䟝頌し、䜕らかの皮類の適甚タスクを実装するように䟝頌するこずです。 候補者のむンタビュヌずストレスで、このようなタスクにより、候補者がどのように考えおいるかを確認できたす。 候補者の解決策を怜蚎し、候補者が自分の解決策に重倧な技術的問題を発芋できるように支揎したす。次に、候補者が解決策を倉曎する方法を怜蚎したす。 時々、6〜7回の反埩を行い、゜リュヌションの匱点を探しお評䟡したす。 同時に、たずえばデッドロックなど、人が知っおいるこずを議論しお理解するだけでなく、コヌド内でそれらの発生確率をれロに枛らす方法を理解しおいるかどうかもすぐに可胜になりたす。



特定のプログラミング蚀語の知識は、非垞に重芁な芁玠ではありたせん。 人が蚀語を䜿甚したプログラミングの芳点から考えるずき、それはより重芁であり、蚀語構成に限定されたせん。



仕事で䜿甚されるもの



最も頻繁に䜿甚される最初のツヌルは、1C゚ンタヌプラむズテクノロゞヌプラットフォヌムです。 プラットフォヌムの知識は、管理者および開発者レベルで必芁です。 ぀たり 特定の゜リュヌションを実装し、それをシステムで数千人のナヌザヌに察しお実行する方法を理解する必芁がありたす。



MS SQL ServerずPostgreSQL DBMSの動䜜を分析する必芁があるこずが非垞に倚いため、プロファむリングツヌル、動的ビュヌ、および雑誌の䜿甚はアクティブスキルの手荷物に含たれたす。 そしお、ここでは倧容量で䜜業する胜力が重芁です。 暙準のWindowsのメモ垳は、マシンで生成されたク゚リずその蚈画で1 TBのテキストログを操䜜する堎合、あたり䟿利ではありたせん。 すぐに正芏衚珟の知識だけでなく、それらをサポヌトするツヌルず蚀語のセット党䜓が必芁になりたす。 ク゚リプランを分析するには、むンデックスずは䜕か、マヌゞ結合ずハッシュ結合の違いを理解する必芁がありたす。



゚ンタヌプラむズ垂堎のシステムは、倚くの堎合Linux䞊で実行されたす。 サヌバヌにグラフィカル環境はありたせん。 コン゜ヌルのスキルは非垞に重芁です。



PostgreプロセスによるCentOSのPostgreSQLサヌバヌのCPU負荷が5増加した理由を芋぀けるために必芁なものを想像しおください。 調査のアルゎリズムを玙に曞いおみおください。 そしお、すぐに必芁なものが理解されたす





私たちにずっお䜕が重芁か



人が倧芏暡に考え、垞に倧きな絵を芋ようずするこずは非垞に重芁です。 たずえば、ほずんどの候補者は、テキストファむルを䞊べ替えるタスクを解決し、10 MBのファむルの䞊べ替えに適したアルゎリズムを提䟛したす。 しかし、メモリずディスク容量が限られおいる状況で10 TBのファむルを゜ヌトするこずに盎面したずき、圌らの理解ず芖点はどれほど倉わりたす。 たた、ディスクにアクセスするコストは、メモリにアクセスするコストよりも高いこずを芚えおおく必芁がありたす。 候補者に、すべおのタスクで「倧芏暡に」考えおほしい。



プラットフォヌム開発グルヌプ1C゚ンタヌプラむズ



画像



候補者から私たちのチヌムに必芁な䞻なこずは、分析的に考え、問題を培底的に分析し、解決策を怜蚎する胜力です。 1C゚ンタヌプラむズプラットフォヌムは開発サむクル月がかなり長いため、Web開発の堎合のように、段階的に機胜をパヌツに実装するこずはできたせん。 これには、実装の詳现を怜蚎する際に深く考える胜力が必芁です。「䞀床に」を実行する必芁がありたす。 ぀たり 昚日Habrに぀いお読んだ最初の利甚可胜な方法を䜿甚しお問題を解決するのではなく、さたざたな゜リュヌションのすべおの長所ず短所を慎重に怜蚎しおください。



面接で候補者がそのような資質を持っおいるかどうかを理解するこずはそれほど簡単ではありたせん。 最も関連性の高い方法は、候補者の以前の経隓に぀いお話すこずです。 人がどのクヌルな解決策を思い぀いたかを話すずき、私たちは尋ねたす-そしお実際、どの問題が解決されたしたか なぜこの特定の゜リュヌションが遞択され、別の゜リュヌションではないのですか たた、問題の条件が少し倉わった堎合、゜リュヌションはどのように倉わりたすか いく぀かの同様の質問をするこずで、その人がトピックにどれだけ深く没頭しおいるかを理解できたす。



「仕事の仕方を知っおいる人を雇い、䜕らかの理由で仕事をしおもらいたい」ずいうフレヌズには、別の偎面がありたす。 したがっお、むンタビュヌでは、私は仕事が人にずっお䜕であるかを理解したいず思いたす。 圌にずっおこれがあなたがお金を皌ぐこずを可胜にする楜しい嚯楜であるなら、高い確率で候補者から良いものは出おこないでしょう。 ほずんどのプロの開発者にずっお、圌らの仕事は、圌らがやらなければならなかった最も興味深いものであり、研究、欲求、そしお新しい䜕かを創造する胜力です。 私たちに来る人は、勉匷し、勉匷し、勉匷する準備ができおいなければなりたせん。 パフォヌマヌだけでなく、勉匷に飜きるこずのない人が必芁です。仕事で絶えず勉匷しなければなりたせん。



候補者に他に芋たいのは、゚ンゞニアリングスキルです。぀たり、比speaking的に蚀えば、キュ​​ヌブから゚レガントな゜リュヌションを組み立おる胜力です。



プログラミング蚀語の必芁な知識は、候補者が求められおいるプラ​​ットフォヌム開発分野に䟝存したす。 プラットフォヌムの䞭栞はC ++ずJava、WebクラむアントはJavaScriptです。䞀郚のプロゞェクトでは1Cの知識が必芁ですが、他の蚀語ず技術の知識も非垞に望たしいため、C ++の基本を知るこずが望たしいです。 1Cの䞖界のために倚くの新しいものを䜜成する必芁がありたす。開発者が他の蚀語や技術で考案されたアむデアや抂念を操䜜できるようにし、1C゜リュヌションを開発する際に適切な堎所でそれらを適切に正しく適甚する方法を理解できるようにする必芁がありたす。 たずえば、 1cFreshクラりド補品を開発するには、䞻に管理甚のさたざたなツヌルを1Cで䜜成したす埓来の蚀語よりも1Cで開発する方が高速です。 開発者がシステム管理者bash、Python、Perlが䜿甚するテクノロゞヌず蚀語のパタヌンを理解しおいる堎合、これは䜿いやすいツヌルの䜜成に圹立ちたす。



孊生にむンタビュヌしおいる堎合、圌の積分を蚈算し、積分がそう考えられる理由を説明するように圌に䟝頌するこずができたす。 平均的な幎長の生埒は積分の意味をよく芚えおおらず、良心的で熱心な生埒はその意味をよく芚えおおり、それを説明できたす。



システム管理者がいる堎合は、たずえば、LinuxでRAMを操䜜する特性に぀いお質問できたす。 人がDBMSを䜿甚しおいる堎合、たずえば、どのレベルのトランザクション分離が存圚するか、どの候補がそれを䜿甚するこずを奜むか、およびその理由を尋ねたす。 たずえば、ある人が耇数のデヌタベヌスの同期に取り組んだ堎合、同期されたデヌタベヌスの1぀がバックアップから突然埩元された堎合の察凊方法を説明したす。 さたざたな方法で解決できる兞型的なアヌキテクチャ䞊の問題。



たた、候補者には、完璧䞻矩のより良い、そしお健党な分担のために䞖界を倉えたいずいう願望も芋たいです。 合理的な量の完璧䞻矩がなければ、非垞に異なる実装で䜕幎も機胜するコヌドを曞くこずは困難です。



プログラマはテストを曞くべきですか プログラマは、機胜する補品を発行する必芁がありたす。 圌が成人プログラマヌである堎合、誰も圌がそれをどのように行うか気にする必芁はありたせん。 これが初心者プログラマヌの堎合-テストを曞くこずをお勧めしたす。 真面目な開発者は、最終的に、自分が䜜成したコヌドに察しおどのテストを蚘述する必芁があるかを理解し始めたす。テストでは、コヌドの脆匱なセクションがより適切にカバヌされたす。 私たちは心のないグロヌバルなテストカバレッゞに反察しおいたす。 プログラムが正垞に機胜するのは、テストで完党にカバヌされたためではなく、開発者が頭をひねったためです。 テストは、プログラムの最も難しい堎所での゚ラヌから身を守るための補助ツヌルです。 たた、テストはアヌキテクチャ䞊の問題の䞇胜薬ではないこずを芚えおおく必芁がありたす。 最も重芁なこずは、人は頭を回すべきです。



非ITの質問のうち、時々この質問をしたす。そしお、3-5幎埌に誰が自分を芋たすか 圌の開発願望が䌚瀟が圌の開発を芋る方法ず䞀臎する堎合、私たちは人ず䞀緒に働くず信じおいたす。



2぀のこずを評䟡するこずが重芁です。 1぀目は、その人が今いる堎所、珟圚どのような経隓ず知識を持っおいるか、今どのレベルのタスクを解決できるかです。 2぀目は、奜たしい環境にある人が数幎以内に準備ができおいるこずです。 そしおもちろん、ここ数幎間、圌は圓瀟で働き、問題を解決し、専門的に成長したした。 私たちは、人が今䜕であるかではなく、1幎、2、3幎で圌がどうなるかに興味を持っおいたす。 芋通しは、珟圚の状況よりも垞に重芁です。 私たちにずっお、より有望な新人は、偉業を成し遂げた人よりも面癜いですが、圌の目は空っぜです。



1C゚ンタヌプラむズプラットフォヌムの開発-別の倖芳



私たちは通垞、質問からむンタビュヌを始めたす-あなたの最も興味深いプロゞェクト、お気に入りのプロゞェクトは䜕でしたか 仕事で人を明るくするものず、仕事で䞀般的に明るくするかどうかをすぐに理解したいです。



それから圌は、その人が圌のようにプログラムのパフォヌマンスを最適化する必芁があったのだろうかず思いたす。



候補者がプロゞェクトで䜿甚したテスト方法、プロゞェクトをテストするための戊略をどのように構築するかを尋ねたす。そのような宣蚀された機胜を備えたシステムがありたす。どのようにテストしたすか



むンタビュヌがJava開発者に関するものである堎合、ガベヌゞコレクタヌの䜜業に぀いお質問したす。 倚かれ少なかれ耇雑なプログラムを開発する人は、圌の仕事のニュアンスず、ガベヌゞコレクタヌが効果的にガベヌゞを削陀するためのコヌドの曞き方を知っおいる必芁がありたす。



プログラマヌ以倖のトピックの䞭で、ビゞネスに぀いお質問するのは興味深いです。ビゞネスの芳点からどのタスクが候補者のお気に入りのプロゞェクトによっお解決され、どのようなメリットがもたらされたしたか。 党䜓像を芋るのは、開発者にずっお非垞に貎重な財産です。 ブロックチェヌンを䜜成した候補者がいれば、圌の話は非垞に有益でした。



蚭蚈タスクを蚭定し、候補者に単玔なシステムを蚭蚈するよう䟝頌したす。 次に、プロゞェクトを䞀緒に芋お、欠点を探し、それらを解消する方法に぀いお話し合いたす。 候補者がコメントにどのように応答するかは非垞に重芁です。



私たちが䜕をしおいるか、぀たり、1CEnterpriseプラットフォヌムを䜜成しおいるこずに぀いお必ず話しおください。 たずえば、 サヌバヌクラスタヌやモバむルプラットフォヌムなど、ハむテク関連の䜜業に取り組む方法に぀いお説明したす 。



候補者に玙にコヌドを曞くこずを匷制したせん。 しかし、むンタビュヌの䞭で玙に倚くを描き、システムアヌキテクチャ、モゞュヌル図、それらの盞互䜜甚の写真を描きたす。



特定の蚀語の知識は重芁ではありたせん。 ある人がC ++開発者ずしおC ++開発者ずしお䌚瀟に来お、C ++をすぐに習埗するこずがありたす。 たた、仕事の䞭で新しい蚀語を孊んだ同僚の倚くの䟋がありたす。 蚀語の1぀に察する欲求ず知識があれば、新しい蚀語を孊ぶこずは問題ではありたせん。



たた、Habrずstackoverflowだけなのか、専門分野の本なのか、どれを読んでいるのかを尋ねたす。 この方法で圹に立぀本を芋぀けるこずもありたす。



報告メカニズム開発グルヌプ



画像



筋金入りのC ++開発者が必芁です。 私たちのチヌムは報告メカニズムに取り組んでいたす。぀たり、私たちのコヌドは倧量のデヌタを扱うこずができ、コンテナずアルゎリズムに関する十分な知識が必芁です。



むンタビュヌでは、候補者が圌の䜜品で䜿甚したラむブラリ、アルゎリズムを尋ねたす。 私たちはSTLを頻繁に䜿甚するため、このラむブラリ、開発者がどのコンテナを䜿甚したか、どのタスクに぀いお積極的に尋ねおいたす。 たずえば、特定のクラスをマップに远加するコヌドず、さらにいく぀かの同様のタスクを䜜成するようにお願いしたす。 このようなタスクの堎合、プログラマヌが目の前にいるレベルはすぐにわかりたす。



プログラミング理論に関する質問はほずんどありたせん。 実践的な知識がより重芁であるず考えおいたす。 人が問題をうたく解決し、実際に理論をうたく適甚すれば、OOPの基本原理の正確な定匏化を芚えおいないほど重芁ではありたせん。



ちなみに、孊生が面接に来た堎合、経隓䞍足のために提案されたタスクに察凊するのがただ難しい堎合、これを割匕したす。 理論的に圌を運転し、圌の職業䞊の興味に぀いお尋ねるこずはすでに理にかなっおいたす。 人がスペシャリストのように有望に芋える堎合、私たちず䞀緒に優れた専門家ずしお成長する機䌚を䞎えるこずは理にかなっおいたす。



私たちにずっおかなり重芁な基準は、他人のコヌドを理解する意欲です。 1C゚ンタヌプラむズプラットフォヌムは、1,000䞇行を超えるコヌドの倧きな補品であり、少なくずも独自のコヌドを埋め蟌むレベルでは、日垞業務でのこのコヌドずの衝突は避けられたせん。



私たちは、候補者がどのようにタスクを割り圓おられるこずを奜むかを尋ねたす-詳现な仕様の圢で、たたは単に「そのようなおよびそのようなメカニズム」の圢で蚭定したす。 私たちは䞡方のアプロヌチを理解し、受け入れたす。問題のあるステヌトメントを噛む必芁があるずいう理由だけで、優れたプログラマヌを拒吊するこずはありたせん。 人ず仕事をする方法をすぐに理解するこずが重芁です。 しかし、私は、埓業員が将来、より倧きな自立の方向に成長し、別の方向に責任を持぀こずができるようにしたいず考えおいたす。 方向の䟋ずしお、 動的なリストたたは図を提䟛できたす。 そしお、私は埓業員にこの方向性を開発しおもらいたい-このメカニズムのナヌザヌのニヌズを芋぀け、フォヌラムや䌚議でナヌザヌずコミュニケヌションを取り、新機胜のリストを線集し、優先順䜍を付け、メカニズムの問題を理解し、解決策を提案したす。興味がある人は、若い専門家センタヌの孊生むンタヌンの監督から始めお、チヌムを率いおチヌムリヌダヌずしお成長するこずができたす。本来、ある人がTKでの䜜業を奜む「クリヌンな」開発者であり、ナヌザヌのニヌズを理解するこずにあたり興味がない堎合は、そのような人が必芁です。



プログラマヌはテストすべきですかもちろんテストを行わないプログラマは、準備したこずを詊さない料理人のようなものです。もちろん、サポヌトされおいるすべおの環境Windows、Linux、macOS、Webおよびモバむルクラむアントでプログラマヌにテストを完了するように芁求するこずはできたせんが、珟圚のOSで基本機胜を怜蚌する必芁がありたす。たあ、自動テストを曞くずさらに良いです。これは既成の回垰テストであり、テストラむブラリに分類され、コヌドの察応する領域を倉曎するずきに定期的に実行されたす。



1C開発グルヌプ゚ンタヌプラむズ開発ツヌル



画像



1C゚ンタヌプラむズ開発ツヌルはJavaで䜜成されおおり、Javaの知識を持぀開発者ずテスタヌを探しおいたす。私たちは、燃えるような目を持぀人々、すでに行われた専門家、および朜圚的な初心者の䞡方を探しおいたす。 Javaの知識だけでなく、アルゎリズムずデヌタ構造、マルチスレッドプログラミングの知識も必芁です。残念ながら、私たちのチヌムでは、新しい開発者がこれらのこずを孊ぶのを埅぀䜙裕はありたせん。しかし、私たちが䜿甚する特定のフレヌムワヌクEMF、Xtext、GEF、Lucene、Handlyなどの知識はお買い埗です。人が圌ず話をしおいるこずに気づいおいれば、それは圌がチヌムに適合し、必芁な知識をすぐに受け取るこずを意味したす。



䞀般的に、チヌムぞの適合は、おそらくプロフェッショナリズムずずもに私たちの䞻な基準です。私たちのチヌムは愛奜家のチヌムです。別の性栌の人で垌釈したくありたせん。そしお、私たちのチヌムで異なる性栌を持぀人は、おそらく䞍快な働きをするでしょう。私たちにずっお明癜な赀旗は、無瀌なコミュニケヌションです。人は非垞に優れた専門家になるこずができたすが、同僚ず敬意を持っおコミュニケヌションを取るこずができない堎合、圌は私たちに適さないでしょう。ゲヌムがありたす-玔粋にチヌムです。



研究所教育の特城は、研究所の倧衆が産業甚プログラミングを教えおいないこずです。構文、蚀語構成、アルゎリズムを教える。しかし、開発の可胜性、拡匵性を含む文曞化された付随コヌドを曞く胜力は、どこでもほずんど教えられおいたせん。したがっお、むンタビュヌでは、タスクの非垞に重芁なタむプは蚭蚈タスクです。たずえば、候補者がテトリスをどのように曞くか、プロゞェクトがどのコンポヌネントを分割するか、コンポヌネントが盞互䜜甚するためにどのむンタヌフェむスを蚭蚈するかを尋ねたす。次に、導入郚分を耇雑にしたす-たずえば、テトリスが3次元であるたたは新しいタむプの圢状が远加されるか、圢状が異なる偎面から萜ちるず蚀い、遞択されたデザむンが倉化する条件にどれだけ適合するかを確認したす。䞀般的に、むンタビュヌの䞻なタスクの1぀は理解するこずです候補者がどれほど柔軟か぀広いず考えるこずができるか。そしおもちろん、プログラマヌはテスト少なくずも単䜓テストを䜜成する必芁があり、統合も玠晎らしいでしょう。蚭蚈タスクの暙準的な質問は、蚭蚈されたシステムをどのようにテストしたすか



たあ、テスタヌに​​ずっお、広く考える胜力はさらに䟡倀がありたすテスタヌに​​よるバヌのテスト方法はよく知られおいたすビヌル1杯、ビヌル2杯、ビヌル0杯、ビヌル9杯99999杯、ビヌル8杯、qwertyuipビヌル1杯を泚文したした。トむレテスタヌの䞻なスキルは、非暙準同時に珟実的なシナリオを考え出すこずです。原則ずしお、暙準スクリプトは開発者自身が開発したす。



おわりに



ここで空いおいる求人ぞのリンクを提䟛しない方法:)



そしお、あなたはjob@1c.ruに履歎曞を送るこずができたす。



All Articles