4月17日、Stepikプラットフォームでオンラインコース「Advanced Programming in C / C ++」を再開しました。 これは、C ++を知っており、C ++を産業開発で使用する方法を学びたい人向けのコースです。 モジュールへのアクセスが簡素化されているため、都合の良い時間にコースを修了して証明書を受け取ることができます。 しかし、まず最初に。
このコースの対象者は?
このコースは、言語のデザインを理解している上級生に適しています。 毎日C ++を使用し、業界の変化を監視する人々にとって有用であるとは考えられません。 しかし、コースは何かを見逃した人が資料を理解するのに役立ちます。
プログラム作成者のアレクセイ・ペトロフがコースについて語る
コース内容
C ++言語の側面
コースの3番目は、C ++言語の側面、つまり継承、コンストラクター、移動セマンティクス、仮想関数、および標準STLテンプレートライブラリに焦点を当てています。
産業図書館
Boostファミリのライブラリを知ることができます。 これらは、プログラミング言語とシステムコールのシェルです。 それらのおかげで、ネットワーク、フロー、コルーチン(コルーチン)、データ構造、日付などを扱うのに便利です。さらに、ユニットテストのフレームワークを提供します。
設計パターン
本「 ギャングオブフォー 」から古典的なパターンを学びます: ファクトリーメソッド 、 ビルダー 、 プロトタイプ 、 ローン (シングルトン)、 アダプター 、 デコレーター 、 ブリッジ 。 これらのアプローチは、プログラムの構築を容易にし、コードを安定かつ柔軟にします。 それらのおかげで、拡張可能なアプリケーションを簡単に書くことができます。
コース結果
3〜5,000行のコードを記述し、コースのテクノロジーを適用することにより、独自のプロジェクトを作成します。 興味のあるプロジェクトを考え出し、それを実現できるように、テクノロジースタックを制限しません。
この作業の結果は、従来のモバイルまたはデスクトップアプリケーションだけでなく、ウェアラブルエレクトロニクスやWebサイトのサーバー部分のソリューションにもなります。
たとえば、テクノパークの同様のコースで、学生はスマートホーム、パターン認識、コンソールメッセンジャー、UAVを使用して商品を配送するサービス、外国語を学習するポッドキャストプレーヤー、Androidの音楽アプリケーションを管理するためのアプリケーションを作成しました。 これらのプロジェクトの詳細はすべて、公共保護のビデオに含まれています。
テクノパークの学生による「Programming in C ++」のプロジェクトの保護
最後の打ち上げの結果
コースの最初の実行には3,000人がサインアップしました。 ただし、5%未満の応募者が最後まで到達できませんでした。 通常、コースの卒業生の数は約2倍です。 状況を分析し、課題を簡素化して、コースを受講する機会を増やしました。 変更はその内容に影響しませんでした。
モジュールを開く
コースは、それぞれ2週間の4つのモジュールに分かれています。 以前は、以前のモジュールで十分なポイントを獲得した場合にのみ、新しいモジュールにアクセスできました。 このアプローチはコースの学生にとって困難でした-20%だけが2番目のモジュールに入ることができました。
これで、前のモジュールでの成功に関係なく、新しいモジュールが開きます。 さらに、逃した課題のポイントを以前よりもゆっくりと失います。 これがあなたの都合の良いときにコースを完了するのに役立つことを願っています。
コースレビュー
参加者に意見を述べてもらいました。 ここにいくつかのレビューがあります。
POSIXおよびソフトウェア開発の品質標準に関する一般的な知識を得ました。 ほとんどすべてのアンケートに困難がありました。 正確には覚えていませんが、おそらくオプションを列挙していくつかの質問に答えなければなりませんでした:)。 コースのおかげで、必要なモチベーションが得られ、「強制的に」プロジェクトを作成し始めました。 その後の採点のために本のテキストを準備するプログラムを作成しました。
設計パート(技術仕様の開発)を開始し、UMLを学習し、図を実装し、プロジェクトのすべてのコーステクノロジ(設計パターン、ブースト、静的解析)をテストしました。 同時に、彼はLinuxをインストールすることを余儀なくされ、「タッチ」し始めました。さもなければ、すべての手が届きませんでした。 また、GitHubに登録し、Gitの使用を開始しました。
コースを完了するとすぐに、プロジェクトを停止しました。それを実装するのに十分な知識がないためです。 しかし、C ++標準のために成熟し、まさに読む必要があるものを実現しました。 コースのおかげで、私は延期したことをたくさんやりました。 私の現在の目標は、この知識をソフトウェア開発に適用するためにC ++プログラミングを習得することです。
コースの前に、私はUML、パターン、およびソフトウェア開発のアプローチについてほとんど知りませんでした。 私は完全に証明書を受け取る準備ができていました。 コードを書く前に、設計ツールを慎重に選択するたびに、拡張性と開発速度について考えました。 このコースは、私が望む以上のものを与えてくれました。
最も難しい部分はメモリ管理セクションでした。StackOverflowからコピーしないと、タスクの1つを完了できませんでした。 このコースは、理解しやすいコードを書くための道を開きました。これは主にコースと研究室にとって重要です。 コース中にSFMLでゲームを作成しましたが、締め切りによりQtのクライアントサーバーアプリケーションに追い込まれました。
現在、R&Dは有望な開発のベクトルであり、この方向に進んでいます。
コースの登録
C ++の学習とソフトウェアの開発を試すことにした場合は、 リンクをたどってください。 または、 残りのコースにサインアップしてください。