プログラマーは40歳を過ぎてどこへ行くのか





-もう45歳ですか? しかし、私たちのチームは非常に若いです。 私たちと一緒に仕事をしたいと思いますか?

-はい、もちろん! あなたの会社について多くのことを聞きました。 これは私の人生の夢です!

-それでは。 ここに簡単な質問があります。 文字LはSOLIDを表しますか?

-リスコフ代替原理。

-いいえ。 これがリスコフの代替可能性の原則であると書きました。

-しかし...!

-なし! 彼らは、彼らがインタビューの準備をしていなかったことは明らかであり、そう言って、議論さえするので、間違って答えました! あなたは紛争者ですか? さて、もう一度チャンスをあげます。 単一リンクリストを展開する方法は?

-単一リンクリストを1回のパスで展開しますか? はい、お願いします。 各ノードを通過し、次に記憶し、次にその中に前のノードへのポインターを挿入し、次に記憶された次のノードに移動します。 はい、もちろん、次の最初のノードにnullptrを挿入します。 ファジー説明? さて、私はより良く書きましょう。

「うーん... OK、十分。」 再帰的にできますか?

-はい、私も再帰的にできます。

-そして、モスクワにはいくつのガソリンスタンドがありますか?

-O-)???? !!! 1127!

-どうやって知っていますか???

-そして、私の父はルクオイルで働いていました。

「さて...クイックソートの最悪のケースを知っていますか?」 そのような最悪のケースがあります。 私は一枚の紙に書いています...

-はい、わかっています。

-しかし、若い専門家もこれを知っています。 なぜあなたに15%多く支払う必要があるのですか?

「しかし、私には家族、子供、住宅ローンがあります...はい、私は英語を知っています。」

-誰もが彼を知っています。 これで誰も驚かないでしょう。

「しかし、私は彼をとてもよく知っており、私も話すことができます。」 英語でいくつか質問したい場合は、大歓迎です。

-ハァッ!..これは私たちにとって重要ではありません。 なぜプログラマーは英語を話す必要があるのですか?

「しかし、私はフランス語も知っています。」 Si vous voulez parler francais ...

-十分です!!! プログラミングの浴場で誰があなたのフランス語をあきらめましたか?

「それではどうすればいいですか?」

-撃って! それは...そこに何が書かれているのですか?..私たちはあなたに電話をかけます。 このようなニーズがある場合。

インタビューでのほとんど架空の会話


私の年は成長しています。 120歳になります。

それではどこで働きますか? どうする

定年の引き上げに関連して


1996年にキャリアを始めたとき、私のキャリアが今後数十年にわたってどのように発展し、2017年に何をするかなど想像できませんでした。それがコンピューターと接続されると確信していました。具体的には-わからなかった。 プログラマーかシステム管理者になるかさえ、私には分かりませんでした。



私の周りにはいつも若い専門家がいましたが、年をとるにつれて若くなります... 2000年...若い専門家.... 2010年...若い専門家.... 2017年-その他の若い専門家。 驚くべきことに、あなたは20年間働いています-そしてあなたの周りには若い専門家がいます...そして専門家です。 はい、最近多くの女性プログラマーがいます。 以前、約15年前、同僚の割合で0〜5%でしたが、現在はすべて20%です。



さらに、私が仕事をすればするほど、若い専門家が増えました。 驚くべきことに、私自身が緑の若い専門家であり、誰もどこにも連れて行きたくなかったとき、「高齢の専門家」の会社にだけ、彼らの少なくとも最初の仕事でした。 私は成長し、強くなり、他の会社に異動しましたが、この奇妙な現象を説明できませんでした。 新しいスペシャリストと若いスペシャリストはどこから来て、古いスペシャリストはどこへ行くのですか? 彼らは成長し、「若い」ことをやめるように見えるべきですか? しかし、それらは常に存在し、増加する数で表示されます!



時が来て、私は「見習いからマスターに」切り替えて、最終的にプログラマーが40歳を過ぎた自分の肌で見つけました! 彼らは...撃ちます! 冗談だ! 実際、かつて「若い専門家」だった私の以前の同僚はすべて、海外に定住するか、国内のIT技術の限界に姿を消しました(Kaspersky、Abbyy、Parallels、および数百の小規模なIT技術を傷つけたくありません)規模ではありますが、おそらく霊の力でより美しいです)。 誰もいない! これが若い専門家の「堆積物」の出番です。 なぜ彼らの一人が「ビッグボス」、トップマネージャー、または別のリーダーにならなかったのですか? まあ、プログラマ、彼らはコードを書くのが好きで、彼らの職業を裏切りません。 そのため、キャリアの終わりに、そのような「高齢」の専門家は最高の企業に集中します(そして、他にどこで働くことができますか?)。



ある場所から別の場所にデータを転送しているため、20年しかやっていないと思ってしまいました。有名なジョークのオレンジの選別機のようなものです。 さて、アルゴリズムはありません。通常は前後にシフトします。 そして15年。 まあ、最大で、約10年前に大きな種類のファイルをマージしました。 それだけです。 ソートされ、目覚めます。



一般的に、私たちの職業は働いています。 仕事が大好きな手。 もちろん、脳もそれを必要とします。 Andrei Aksyonov(Sphinx検索エンジンの作者)がプログラマー、またはむしろ低レベルのオプティマイザープログラマーを「彼らのgiblets、gの騎士、そして蒸気を選ぶ配管工」と比較したのも不思議ではありません(低レベルC / C ++最適化に関するHighLoad 2010のレポート)。



ちなみに私の祖父は靴屋でした。 そして、普通の靴屋ではなく、モデルの靴屋です。 彼は劇場で働き、演技のために俳優を雇った。 彼はマネージャーではありませんでした。 靴屋がブートマネージャーを必要とするのはなぜですか? ですから、マネージャーはまったく別の職業だと思います。 コブラーはプログラマのようにブーツを縫い、実際の製品を生産し、マネージャーはブーツの製造プロセスを制御します。 しかし、劇場では、小さなスタートアップのようにソフトウェアの大量生産がないように、ブーツの大量生産はありません。



すべてのマネージャーが優秀なプログラマーであるというわけではないように、すべてのプログラマーがマネージャーに行くわけではありません。 しかし、マネージャーにとっては、奇妙なことに、これは最も重要なことではありません。 主なことは、あなたがいつでも相談できる有能な専門家を持つことです。



10年前にマネージャーに「前進」する機会を得たとき、私はこれの妥当性を疑っていました。 それは失格を意味するからです。 確かに、どのマスターにとっても、毎日機器を磨くことが非常に重要です。 バイオリニストにとっての主なことは、毎日の練習です。 アスリートの主なものは何ですか? 毎日のトレーニング。 私が本格的なマネージャーになった場合、メインで最も楽しいこと、つまりプログラムする能力を失っていたでしょう。 私は組織の問題に対処し、会議に参加し、悪名高い「若い専門家」をscり、称賛し、一般的に昨日の生徒たちを手で導く、つまりこの緑の若者を導く必要があります。 いや! 彼らは私なしで管理します。 自分が一番良くわかる場所でもっとうまくやる。



専門職の年齢で自分自身については、悪化することはありません。 しかし、プログラマーの職業内で、変更せずに無期限に開発する機会はありますか? もちろん、コンピュータサイエンスのすべてのトレンドとテクノロジーについていくことはできません。



80年代および90年代に、ITスペシャリストが原則としてコンピューターサイエンスに関連する包括的な知識を持つことができた場合、ITスペシャリストにとって、これは専門家であるように思えます。 コンピュータサイエンスの分野の数は指数関数的に増加しており、それらを研究する時間は限られているため、専門分野をより専門的に選択してください。



どういうわけか、1人の採用担当者または...採用担当者からlinkinでメッセージを受け取りました(今では多くの担当者がいますが、以前はまったくありませんでした。彼自身、すべて... FIDOを通して仕事を探す必要がありました)。 彼女は書いた:



「こんばんは:)宇宙の正義を取り戻すために、ジェダイ・オーダーはC ++ジェダイの偉大な戦士を仲間に募集しています。 アクションは、モスクワ銀河の中心部にある十分に保護された快適なYandex Planetで行われます!

...(ジョブの説明は省略)...

ですから、あなたが偉大な戦士であるか、一人になる準備ができているなら、私は秘密の原稿(再開)を待っています。 私たちの銀河では、落胆と憧れの星を恐れていません!!」



手紙は、まだ偉大なジェダイのためではなく、彼らになろうとしている人々のためであるようです。なぜなら、受取人は秘密原稿が何であるかを推測する受取人の能力を疑うからです。



私はすぐにジェダイの戦士の精神で答えましたが、私自身がヒントなしに「原稿」について推測することはなかったようには見えません。



こんにちは。 ユーモラスなメッセージをありがとうございました。 私は笑った。 ジェダイ、グレートウォリアー、グル、センセイ、私はきっとなるでしょう。 特定のYandexの仕事を推薦してくれてありがとう。 私はすべてのプログラマーがすでにYandexで働いている人と夢を見る人に分かれているという格言が好きです。 私は後者のカテゴリに属していますが、私の多くの元同僚はすでにそこにいます。彼らは国の最高のテクノロジー企業で働く魅力を味わいました。 Yandexの最低限の「合格」レベルに達するには(私は自分の知識をしっかりと評価します)、2〜3年の集中的な準備が必要です。 Terverインスティテュートコースを思い出し、ロジックと迅速なウィットタスクを解決し、最新のライブラリの「内部」を詳細に研究し、C ++標準、グラフアルゴリズムなどの最新のファッション「きしみ」を研究する必要があります。講義には約50のタイトルが含まれます)。 そして、良心は私がそのような会社での面接のために「ボールに」行くことを許可しません(多分私は合格します)。 私はYandexoidsから無駄に時間を取ることができません。 私が2007年にYandexとのインタビューを最後に行ったのはおよそでした。 私はそれをとても楽しんでいました(無料でトレーニングされています:)それから、もちろんレベルを上げましたが、必要な最低限の知識にはまだ程遠いです。 「知識人」の話によると、インタビューは14時間以上続きます。 候補者にはさまざまな分野のタスクが与えられ、さまざまな方向のインタビュアーが候補者についてバランスの取れた意見を形成するために彼にインタビューします。 以前は単純でしたが、それほど激しくありませんでした。 インタビューは、レベルを向上させ、ワークショップで同僚とコミュニケーションを取り、やっと楽しい時間を過ごすことができる一種の趣味だと思う友人がいます。 私はこれをもっと真剣に受け止めているので、それに応じて準備しています。 私はあなたの注意を長い間保持しません。 これに別れを告げますが、連絡を維持することを提案します。」



それで聖杯のすばらしいニンフとの会話は終わりました。 Yandex!について 夢の杯! あなただけがデータをシフトするだけでなく、彼らと何か意味のあることをします。 たとえば、素晴らしい、自己記述、超最適化され、概念的に記述されたキャッチーなアルゴリズムを通過します。



プロの燃え尽き? 何言ってるの? すでに十数年前に私に来て、それが燃えたので、私はハブに関する記事を生まれて、ひどい力で本を読み始めました。 英語のプログラミングに関する本。 ところで、私たちはロシア語の翻訳よりも好きです。なぜなら私たちは意味を認識以上に歪めることができるからです。 オリジナルを取る方が良い。



miram.livejournal.com/630972.htmlおよびsharpc.livejournal.com/67583.htmlの自尊心のあるプログラマーの知識とスキルのリスト」プログラマーに、なんとなく衝撃を受けました。 完全な引用を引用するのが面倒ではありません:



プログラマーが知っておくべきことはすべて、40年後、ホームレスの人々がいるゴミに捨てられないようにすることです。

...約45歳で、脳の劣化が現れ始め、通常の循環的複雑性を持つコードを理解し、操作する能力に重大な問題をもたらします。 コードを書く能力の損失は、分析/合成のための訓練の欠如による能力不足と相まって、そこで保証された方法です。 一部の人々は、老年期に通常の循環的複雑さで動作する能力を保持していますが、それは若者の通常の指標よりも高い犠牲を払うだけです。 TopCoderでリスクがあるかどうかを確認できます。



自分で追加します。 TopCoderは、体調を整えるのに最適な場所です。 私たちはそこから問題を解決し、調子を維持します(または課題に参加し、他の人と競争し、お金を稼ぎます)。 それで、あなたがゴミに捨てられないように何を知る必要がありますか?



•C ++、標準、コモー、1TBS、ストラウストラップ/ D&E /ジョサティス/ヴァンダーウッド、デューハースト/マイヤーズ/サッター、RAII /コピーアンドスワップ/例外安全性、ルール5、アレクサンドレスク/アブラハムス-グルトバ、タイプ消去、CRTP、NVI 、SFINAE、Koenigルックアップ、Duffのデバイス、Boost、Sick-Lamsdane / Karlsson、C ++パフォーマンスのTR、Stepanovテスト、転送問題/移動セマンティクス、SPECS、GotW、Meyerのシングルトン、cppgm

•C ++コンパイラ、標準の実装機能、実装制限、組み込み関数、標準ライブラリ(コンテナ、rand)の違い、ABI、仮想関数の実装、仮想継承、例外、RTTI、スイッチ、関数およびメソッドへのポインタ。 最適化、コピー省略(RVO、NRVO)、さまざまなプラットフォームでのsizeof、コンパイラーおよび環境定義、__ declspec、コンパイラーキー、空ベース最適化、静的および動的リンク、マングリング、分散コンパイル、プリコンパイル済みヘッダー、単一コンパイル単位、(厳密)エイリアス/制限、インライン/ _forceinline、揮発性、レバインによるビットハック、リンカー、ローダーによる数学関数の迅速な計算

•マルチトレッド、食事哲学者、デッドロック/ライブロック/競合状態/飢star、原子性、ロックプロセッサ命令、メモリモデル/バリア/注文、CASまたはLL / SC、待機/ロック/障害物なし、ABA問題、ロックフリーコンテナの作成、スピンロック、TLS /スレッドごとのデータ、アムダールの法則、OpenMP、MPI、map-reduce、クリティカルセクション/ミューテックス/セマフォ/条件変数、WaitForSingleObject / WaitForMultipleObjects、グリーンスレッド/コルーチン、pthreads、future / deferred / promise、アクターモデル、パラメータサーバー、RDD(スパークで見られる)、豪雨SGD、待機なし、スタックフルvsスタックレス

•アセンブリ言語、Zubkov / Hyde / Draper / Kaspersky / Fog / Abrash、x86、FPU / MMX / SSEn / AVX、AT&TおよびIntel構文、masm32、マクロ、スタック、ヒープ/ヒープマネージャー、呼び出し規約、16進コード、マシンデータ表現、IEEE754、リトル/ビッグエンディアン、SIMD、ハードウェア例外、割り込み、仮想メモリ、リバース、スタックおよびヒープ障害、リターン指向プログラミング、英数字シェルコード、L1 / L2 / RAM /ページフォールトとそのタイミング、ARMアセンブリ言語

•ハードウェア、Horowitz Hill / Titz-Schenk /物理学からpanchulからCへ、半導体エレクトロニクス/スピントロニクス/フォトニクス、トランジスタ、トリガー、回路、マイクロコード、プロセッサテクノロジー、ロジック合成、静的タイミング解析、FPGA、Verilog / VHDL / SystemC、SISAL、Arduino、メモリデバイス(ROM→EEPROM、RAM、SSD、HDD、DVD)、RISC / CISC、フリンの分類([SM] I [SM] D)、プリンストンおよびハーバードアプローチ、プロセッサアーキテクチャ、x86アーキテクチャVID / PID

•プロセッサ、パイプライン処理、ハイパースレッディング、トーマスロアルゴリズム、投機的実行、静的/動的分岐予測、プリフェッチ、複数連想キャッシュ、キャッシュライン/キャッシュミス、クロックサイクル、保護リング、マルチプロセッサシステムのメモリ(SMP / NUMA)、メモリタイミング、インテルの最適化マニュアル、パフォーマンスカウンター

•離散数学、K2、ポストの定理、スキーム、有限オートマトン(DKAおよびNDKA)、カラシニコフオートマトン、セルラーオートマトン

•計算可能性、チューリングマシン、通常のマルコフアルゴリズム、ポストマシン、マティアセビッチディオファントイン方程式、チャーチラムダ関数、Kleene部分再帰関数、Brainfuck組み合わせプログラミング、チューリング泥沼等価、停止および自己適用性問題、多くの計算可能関数の可算性、RAM 、Tarskiアルゴリズム、SAT / SMTソルバー、形式システムの理論、インタラクティブな証明、レビン-クックの定理、3SAT、PSPACE = NPSPACE、#P

•プログラミング言語、文法、Chomsky階層、Mayhill-Neroud定理、pump lemmaおよびOgden lemma、Kleene代数、NDKA→DKA、形式言語のアルゴリズム的に解決不可能な問題、Dragonbook、Friedl、正規表現とその複雑さ、PCRE、BNF、Boost。 Spirit + Karma + Qi / Ragel、LL、LR / SLR / LALR / GLR、PEG / packrat、yacc / bison / flex / antlr、静的コード分析、コンパイル/デコンパイル/難読化/難読化解除、Clang / LLVM / XMLVM / Emscripten、 GCCXML、OpenC ++、仮想マシンの構築、JiT / AoT / GC、DSL / DSEL、オンスタック置換、型チェック/型推論アルゴリズム、CYKパーサー、Muchnickによる高度なコンパイラ設計と実装

•アルゴリズムと組み合わせ最適化、Kormen / Skiena / Sedgwick / Knut / Aho-Hopcroft-Ulman / Papadimitriou / Shriver-Goldberg / Preparata-Sheymos / e-maxx.ru、データ構造、アルゴリズム、複雑さ、Landauシンボル、Acra-Buzzy定理、時空間トレードオフ、複雑度クラス、NP完全問題、ILC、グラフおよびツリー、ネットワークフロー、キルヒホッフ行列、検索ツリー(特にRBツリーおよびBツリー)、オクルージョン検出、ヒープ、ハッシュテーブルおよび完全ハッシュ、ペトリネット、ロシア農民アルゴリズム、カラツバ法、およびビノグラード・ストラッセンの行列乗算、ソート、貪欲アルゴリズム、m アトロイド、ダイナミックプログラミング、線形プログラミング、diffアルゴリズム、ランダム化アルゴリズムとファジー検索アルゴリズム、疑似乱数、ファジーロジック、gusfield(サフィックスツリー、文字列アライメント)、モチーフ検索、スキャンライン、キャッシュ忘却、ファンネルソート、VEBレイアウト、ルート最適化、動的グラフのアルゴリズム、

計算モデル(RAMマシン/ポインタマシン/決定木など)、メモリ階層のアルゴリズム/ストリーミングアルゴリズム、タイムフォワード処理、範囲とランク、LSMツリー、バッファリングされたabツリー、特木、永続的な構造、簡潔な構造、損失の多い構造(ブルーム/ブルームフィルター、誤検知のあるハッシュテーブル)、局所性に敏感なハッシュ、ハッシュテーブルの時空間トレードオフ、スケジューリング戦略

•数値的手法、二分法/ニュートン法、内挿および外挿、スプライン、ガウス/ヤコビ/ザイデル法、QRおよびLU分解、SVD、OLS、ルンゲクッタ法、アダムス法、ニュートンコートの公式、リッツ法、方法Bubnova-Galerkin、有限差分/要素法、FFT / STFT、収束と安定性、l-bfgsおよびその他の準ニュートン法、adagrad、PARAFAC、ヒクイドリ、内点法、ベイズ推定の変分法、nesterov、自動微分、最小二乗法の交互化、すべてのコンピューター科学者が、Goldberg、Nocedal&Wright / Boyd&Vandenbergheによる浮動小数点演算について知っておくべきこと

•機械学習、Tibshirani / Bishop、AIモデリングアプローチ、再訓練/交差検証、ベイジアンネットワーク、ニューラルネットワーク、Kohonenネットワーク、制限付きボルツマンマシン、勾配降下/ヒルクライミング、確率的最適化(モンテカルロ法、アニーリング法、遺伝的アルゴリズム、antアルゴリズム)、SVM、勾配ブースティング、クラスター分析、主成分分析、LSH、強化学習、MDP、情報検索/データマイニング/自然言語処理、マシンビジョン、Szeliski、OpenCV、画像処理、OCR、Sobelフィルター、Haarカスケード、Viola-Jonesフレームワーク、SURF、視覚の心理生理学入門、IPython / pandas / scikit-lear n、(ME)HMM、CRF、ラベルバイアス問題、スタックNN、LeToR、因数分解マシン、オートエンコーダー、RNN / CNN、個別のタスクはNLPよりも優れています(言語モデリング、相互参照検出、テキストチャンキング、POSタグ付け、確率的解析、統計的機械翻訳、スペルミス修正、質問応答、NER、コロケーション検出、テキスト要約、音声認識、事実抽出、センチメント分析)、効率的なソフトマックス計算、機能エンジニアリング/選択、品質評価、マニング/ジュラフスキー/マッカラム/ケーン、潜在トピック(LDA、中国料理レストラン、pLSI)、並列座標、vowpal wabbit、NLTK、構造化学習、EMアルゴリズム、対比発散、最適な脳手術、信念の伝播、半教師あり学習、帰納的vsトランスダクティブ学習、カーネルトリック、判別/生成ペア(NgとJordanが見る)、シーケンスからシーケンスへの学習、バギング、ソーシャルグラフの分析、p 協調フィルタリング、マルチモーダル学習

•情報理論、圧縮、ハフマン、RLE、BWT、LZ、エラー訂正コード、非可逆圧縮(画像、音声、ビデオ)、情報エントロピー、シャノンの式、コルモゴロフ複雑度、最大エントロピー問題、カルバックリーブラー発散、エリアス/シャノン-エリアスエンコーディング

•暗号化、Schneier / Yaschenko、Kirkhoffs原理、対称(DES、AES)、非対称(RSA)、PRSP品質、Diffie-Hellmanアルゴリズム、楕円曲線、ハッシュ(MD5、SHA、CRCn)、DHT、暗号強度、暗号攻撃(総攻撃)、WEP / WPA / WPA2とそれらへの攻撃、デジタル署名と証明書、PKI、HTTPS / SSL、ゼロ開示証明、しきい値スキーム、murmurhash / cityhash、DKIM

•数学、Knut-Graham-Patashnik / Zorich / Winberg、Spivak / Dummit-Foote、matan、linal、compan、funk、diffgem、数論、diffury / intury / urchpa /変分計算/最適制御、生成関数、シリーズ、組み合わせ論、定理/ matstat / slop /キューイング理論、マルコフ連鎖、積分変換(Fourier、Laplace、ウェーブレット)、NZQRCHOS、matpack(Mathematica、Maple)、カテゴリ理論

•物理学、キルヒホッフルール、ジュールレンツの法則、複素抵抗、光の速度と周波数、マクスウェル方程式、ラグランジアンとハミルトニアン、

量子トンネル/ホットエレクトロン注入:)

•化学、化学量論、シリコン化学:)

•コードのアーキテクチャとスタイル、McConnell / Fowler / Leblanc / Gamma / Alexandrescu-Sutter / Butch、ディフェンシブプログラミング、パターン、SOLID / GRASP / KISS DRY SPOT / YAGNI、UML、OOP(Smalltalk)、OOD / OOA、コードメトリック、叔父ボブ

•開発方法論、ウォーターフォール/ RUP /アジャイル/スクラム/カンバン/ XP、TDD / BDD、CASE

•テスト、単体テスト、機能、負荷、統合テスト、UIテスト、モック/スタブ/スパイ、フィクスチャ、匂い、パターンテスト(Osherove / Meszaros)

•開発ツール、IDE、IntelliSense、デバッガー(VS / Olly / WinDbg / kdb / gdb)およびトレーサー(strace / ltrace)、DWARFデバッグ情報フォ​​ーマット、逆アセンブラーおよび逆コンパイラー(IDA / HexRays / Reflector)、バージョン管理システム(SVN 、GIT)、マージ/ブランチ/トランク、ファイルおよびブランチネーミングシステム、継続的統合、ant、コードカバレッジ、静的分析(lint、cppcheck)、動的分析(valgrind、ファジング)、ソフトウェア検証および検証(Frama-C、RAISE) (RSL)、Coq)、プロファイリング、バグトラッカー、コードド​​キュメント、ビルドシステム(CMake)、パッケージマネージャー(NuGet)

•フレームワーク、Qt、mocおよびメタ情報、スロット信号の概念、Summerfield Blanchet / Schlee、 PoCo、産業ライブラリ:GMP、i18n、lapack、fftw、pcre

•オペレーティングシステム、Silberschatz / Richter / Solomon-Russinovich / Robachevsky / Wahalia / Stevens / Tanenbaum / Love / Linux Kernel Internals、メモリマネージャー、ヒープマネージャーとそのデバイス(LAL / LFH /スラブ)、デバイスマネージャー、プロセスマネージャー、コンテキストスイッチ、リアルモードおよびプロテクトモード、実行可能ファイル(PE / ELF / Mach)、カーネルオブジェクト、デバッグメカニズム(strace / ptrace / dtrace / pydbg、デバッグAPI)およびミニダンプ、bash、ネットワークスタックおよび高性能サーバー、netgraph、CR0、IPC、ウィンドウサブシステム、セキュリティシステム:ACE / ACLおよびアクセス権、仮想化テクノロジー、RTOS(QNX)、ドライバープログラミング、IRQL、IRP、ファイルシステム、BigTable、NDIS /ミニポート/ FSドライバー/フィルタードライバー、Mm-、Io-、Ldr関数、DKOMおよびルートキット、GDT / IDT / SDT、カーネルWindows / Linux / BSD、POSIX、TRIM

•コンポーネント指向モデル、ロジャーソン/タバレス、COM / OLE / ActiveX / COM + / DCOM RPC、ATL、アパートメント、モニカー、MIDL、XPCOM、CORBA、TAO、D-Bus

•ネットワーク、スティーブンス、OSIモデル/インターネットモデル、イーサネット、TCP / IP、TCPウィンドウ、Neilアルゴリズム、ソケット、プロトコルバッファー/ Thrift / Avro / ASN.1、AMQP、ICMP、ルーティング/ BGP / OSPF、ARP、Mitnik攻撃、synフラッド、HTTP / FTP、P2P / DHT、 DHCP、SMB / NBNS、IRC / XMPP、POP3 / SMTP / ESMTP / IMAP、DNS、WiFi / WiMax / GSM / CDMA / EDGE / Bluetooth / GPS、ACE、Wireshark

•グラフィックスとGPGPU、ブレゼンハムアルゴリズム、カラーモデル、レイトレーシングvsポリゴングラフィックス、OpenGL / GLSL / Open Inventor、DirectX / DirectShow / DirectAudio / HLSL、ステンシル/デプス/アルファテスト、DirectX 11のグラフィックスパイプライン、シェーダー、照明モデル(Fong)、帯域幅、フィルレート、OpenCL / CUDA / AMP、風景、lod、シャドウ、遅延シェーディング、テクスチャリングとフィルタリング、アンチエイリアス、HDR、トーンマッピング、仮想/拡張現実

•形式、XML / XSLT / XPath / XMLStarlet / DOM / SAX、RTF / ODF、JSON / BSON / bencode、YAML、JPEG / PNG / WebP、AVI / MPEG / RIFF / WAV / MP3 / OGG / WebM、SVG、Unicode、シングルバイトエンコーディング/ UTF-8 / UTF-16 / UCS-2 / UTF-32、Unicode文字列の長さと比較の問題、base64、マークダウン

•データベース/分散システム、Gruber /日付、ANSI SQL、T-SQL、ODBC、MySQL / PostgreSQL / MS SQL / BDB / SQLite / Sphinx、ストアドプロシージャ、トリガー、Codd / A代数、チュートリアルD、標準形式、最適化クエリの実行、インデックスデータ構造、トランザクションとACID、BrewerのCAP定理、グラフDB、ドキュメントストア、ワイドカラムストア、キーバリューストレージ、分散システム理論、CRDT、ネット分割問題、コンセンサスプロトコル、シャーディング/レプリケーション理論、 ORM(C ++ ODB)、ERD、OLAP、セマンティックネットワーク、triplestore、RDF / Turtle、SPARQL、OWL、Semanticscience Integrated Ontology、reasoner、DBpedia、ビッグテーブル/ hbase vs. dynamodb / cassandra / riak、2 / 3PC、ぽっちゃり/動物園の番人、リーダー選挙(paxos / raft)、hdfs / gfs / glusterfs、重複排除の問題、因果関係検出(ベクトルクロック/スタンプ)、R / Wクォーラム、負荷分散、デバイス検索エンジンのインデックスイベントソーシング、CRDT、プロトコル設計、および通信原理、進化、拡張性、信頼性、プログラムインターフェイス設計(API)の観点から

•アプリケーションプログラミング、C#/ F#、Shildt / Troelsen / Richter、ジェネリック、yield、linq / plinq、反射、AST、WCF、WinForms / WPF / Silverlight、AOP、ロギングフレームワーク、.NETアセンブリ、Scala、Horstmann / Odersky、パターンマッチング、マクロ/準クォート

•量子コンピューティング、ショアアルゴリズム、量子暗号

•関数型プログラミング、Haskell / Ocaml / Scheme / Alice or Oz、SICP / TaPL / YAHT / Purely Functional Data Structures / Harrison Field、HOF(map / fold / filter )、Hindley-Milner型システム、モナド、型クラス、ADT、依存型、遅延/エネルギー、論理プログラミング(PrologまたはMercury)、競合プログラミング(ErlangまたはO z)

•Webプログラミングおよびスクリプト言語、Flanagan / Zend PHP5認定コース+学習ガイド、Apache / nginx、CGI / FastCGI、PHP / Zend Framework / ReactPHP / Zend Engine / DoctrineまたはPropel / CodeIgniterまたはSymphonyまたはYii、Python / Django / Twisted、Ruby / RoR、ASP.NET MV *、JavaScript / jQuery / React / Google Closure / ExtJS / node.js、JavaScriptのOOP、HTML5、CSS3 /テーブルおよびブロックレイアウト、RSS、キャンバス/ WebGL、Ajax / WebSockets、セキュリティの問題(XSS、SQLインジェクション、CSRF)、高負荷、C10kの問題、SWIG、CDN、シャドウDOM、ブラウザー調整、リアルタイム入札/取引、異常検出、単一ページアプリアーキテクチャ、Webクローラーデバイス、Web /ソーシャルグラフランダムwalk、asm.js、jsでのコンパイル、v8 / spidermonkey内部、PaaS / IaaS、SPDY

•GUIの設計と情報の表示、Ruskin / Tufts、ユーザビリティ、設計とタイポグラフィの基本、Fittsの法則、レイアウトの基本、LaTeX、データ視覚化アルゴリズム(d3に見られる)、サブピクセルレンダリング



40年強、そうでしょうか。または、あなたも仕事が必要な場合、たくさんですか?確かに、それを勉強するとき、あなたが仕事をする必要がある場合は?暇なときに?そして、私はこのリストの半分さえ知りません。そして、私は四半期を知りません。唐葉はまだその方法を習得していない。シリコン化学は、マックスウェル方程式のように、おそらく長い箱に送らなければならないでしょう。より優先度の高いトピックがあります。



しかし、引退年齢の将来の増加を考慮して、結局、私は少なくともあと40年間働かなければなりません-私は自分の自由時間の残りの半分を認めます。そして、これらすべてを見つけたらどうなりますか?このリストのすべてを知っている天才はどうなりますか?彼らは彼をゴミ箱に捨てないだけでなく、彼の人生の終わりに聖杯であるYandex(そして若い専門家の給与+ 15%)が彼を待っていると確信しています。そこで彼は平和を見つけるでしょう。アーメン



All Articles