最初のベータセットですべてのアイデアと教育プロセスを実行したので、再びコースを繰り返すことにしました。 募集はすでに本格的です。6月26日月曜日までお申し込みいただけます。 何を、どのように、誰が教えるのか-私たちは内部で伝えます。
彼らは何を教えていますか?
UNIGINE C ++ Schoolは、パフォーマンスを絞るのが好きですが、Stepanov、Aleksandrescu、EAではなく、C ++の方法と練習を既に知っている人向けのコースです。 そして、彼の最初のSTLはまだ書かれていません。
「高度」と呼びましたが、実際には「詳細」と呼ぶ価値がありました。 一般に、このコースは、プログラムの速度と重要なブラックボックスの内部構造の詳細にすでに関心を持つ人を対象としています。 時々プログラムを高速化する方法を知りたい場合、十分に低いレベルのコードとそのハードウェアとの接続に興味がある場合、そして時々ミリ秒を数える場合でも、このコースはおそらく役に立つでしょう。
トレーニングプログラムの詳細
レッスン#1。
世界の定数。
CPU / RAM / HDDの運用コスト、デバイスパーツC ++ランタイム、結果の最適化について。
レッスン#2。
すべての「既知の」基本。
配列、ベクトル、バグ。 そして、適切にベンチマークする方法。
レッスン#3。
すべての品種のリスト。
それらが実際に必要とされる時期と理由。 インタビューのためのパズル。 時間があれば、並べ替えと検索もできます。
レッスン#4。
ハッシュなど。
テーブル自体、機能、衝突、および最もブルームフィルター。 時間があれば、もう少しKV構造体も。
レッスン#5。
複合構造。
調べたばかりの文字B、C、Xから必要な単語を追加します。
レッスン#6。
木とヒープ。
ダム配列に「複雑な」構造を配置します。
レッスン#7。
難解なデータ構造の概要。
ダムの循環バッファから地獄のようなHyperLogLogまで。
レッスン#8。
ボーナス:デバイスの3Dグラフィックスのレビュー。
ベクトルおよび行列(解析付き)から最新のレンダリング技術(詳細な解析なし)まで。
世界の定数。
CPU / RAM / HDDの運用コスト、デバイスパーツC ++ランタイム、結果の最適化について。
レッスン#2。
すべての「既知の」基本。
配列、ベクトル、バグ。 そして、適切にベンチマークする方法。
レッスン#3。
すべての品種のリスト。
それらが実際に必要とされる時期と理由。 インタビューのためのパズル。 時間があれば、並べ替えと検索もできます。
レッスン#4。
ハッシュなど。
テーブル自体、機能、衝突、および最もブルームフィルター。 時間があれば、もう少しKV構造体も。
レッスン#5。
複合構造。
調べたばかりの文字B、C、Xから必要な単語を追加します。
レッスン#6。
木とヒープ。
ダム配列に「複雑な」構造を配置します。
レッスン#7。
難解なデータ構造の概要。
ダムの循環バッファから地獄のようなHyperLogLogまで。
レッスン#8。
ボーナス:デバイスの3Dグラフィックスのレビュー。
ベクトルおよび行列(解析付き)から最新のレンダリング技術(詳細な解析なし)まで。
すべてはどうですか?
合計で、初年度には8つの講義、7つの実践的なクラス、宿題があります。 最初の経験によると、研究は非常に激しいものになりますが、効果は対応しています。
誰がリード?
Andrei Aksyonovはコースを考案し、クラスを指揮します。また、彼はShodanであり、 3DエンジンUNIGINEチームの主要な開発者であり、たとえばHabrを実行するSphinx検索エンジンの著者でもあります。
最初のセットの参加者からのフィードバック
Shodanが最初のタスクで示した最適化の魔法は印象的でした。 どの場所でstdを追い越すことができるか、そしてこれは少量の血液で行われることがわかりました。 ハッシュテーブルデバイスについて初めて聞いたとき。 コンパイラーがすべてを最適化しないようにコードをベンチマークする方法を学びました。 本や記事の情報を見るのではなく、自分で確認してください。時間がたつと、多くの変更が行われ、以前はゆっくりと動作していたものが、すぐに実装できるようになります。
アンノ・タラソフ、ノボシビルスク
さらに、私が長い間明らかにして実験に近づいたと考えていた分野では、多くの新しいことがありました。
-STLを使用する機能について。 再び彼は、より批判的なアプローチで、彼の内部構造を大騒ぎしました。 「彼の何が悪いの?」という質問で。
-プログラムの最適化に関する多くの新しいチップ。 私はそれらのいくつかを聞いた-しかし、「によって」、適用されませんでした。 シリーズのブラウザにあるこれらすべての無限のブックマークと同様に、「時間があります-わかります」。
-いくつかのことは私にとって完全に新しいものでした。 たとえば、トライツリー。 私もそのようなことを聞いたことがありません。 宇宙をひっくり返したわけではありませんが、それは明確であり、確かに重宝すると言われました。
モスクワ、セルゲイ・コプテフ(LLC PF Logos)
何を新しく学びましたか? そのSTLは実際に1桁も実行でき、思ったより簡単です。 明確な最適化のためには、私が今知っている以上のことを知る必要があるということです。
レナト・ドゥサエフ、トムスク
何を学びましたか? 実際、たくさんあります。 私は、C ++がいかにクールで「マルチレベル」であるかを実感しました。 テーマギズモ(たとえば、例のあるぼやけた木のキー)。 Skypeで既に選択されているリンク。 たとえば、非分岐コードの精神におけるBithakについて。
アレクサンダー・バラノフ、クラスノヤルスク
STLコンテナの実際の速度を測定しようとしたことは一度もなかったので、彼は普通だと思いました。 コース中にこれを行うことを余儀なくされ、自分の手で自分のハードウェアで必要な結果を得ました。 STLの一部のビューが変更されました。
オブジェクトとメモリ割り当てのためのmallocを初期化するインプレースメントの新しいアプローチを評価しました。 以前は常に新しいものを使用していましたが、明らかに、そのような範囲で何かを最適化する必要はまったくありませんでした。
イゴール、トムスク
ブルームフィルター、エキゾチックな複合データ構造について学びました。 複雑な構造を線形配列にコンパクトに積み重ねるなどの小さなトリック。 彼は頭を整理し、体系化された知識を身につけました。 あなたがそれがどのように機能するかを知っていると思った瞬間があり、それから洞察が生じました。 自分の自転車を組み立てることはそれほど明白ではありませんでした。
パベル・ナカズネンコ、クラスノヤルスク
私は何をすべきかを学びたいですか?
このコースは無料ですが、基本的なスキルがあることを前提としています。 したがって、入学試験の結果に基づいて士官候補生に登録します。 6月26日月曜日まで、学校のウェブサイトで入学試験を申請して受験できます。
重要な更新:
私たちの多くは、Linuxの下で仕事を受け入れるように頼まれました。 これで、Windows MSVC 2013とLinux gcc 5.4.0の両方で入場の入学試験をコンパイルできます。
そしてさらに-あなたのためにそれを行います。 割り当てを受け取ると、コードはコンパイルの自動チェックを受け、プログラムが私たちの側に集まったことを確認するためにレポートが送信されます。 すべてがうまくいけば、コードはShodanによって手動でチェックされます。 そうでない場合、試行回数に制限はありません!
そして、おやつには、新しいシーズンのティーザーです。