新卒社員・新入社員のためのC++,C#研修(週3レッスン、全36コマ)
新卒社員・新入社員のためのC++,C#研修(週3レッスン、全36コマ)
こちらの研修をベースとして貴社向けのカスタマイズも可能です。
まずはお気軽に問い合わせください。
受講対象
エンジニア
課題感
- プログラミング経験、指定の言語の経験がない新入社員が入社する
- 理系だけでなく文系社員もいる
- 社内で教えるリソースや教材がない
研修のゴール
- 新卒・新入社員がC++、C#の基礎を理解し、コードが読めるようになる
- C++およびC#を用いた開発に関して、一連の流れの概要を理解する
カリキュラム
Windows アプリケーション開発分野における C++ 言語の代表的な開発環境である Visual Studio について、その環境構築を行いながら開発に必要な最低限の機能に触れる。
手本に倣ってプログラムを記述する実習を通して、簡単な C++ プログラムを実行するまでの概略を理解する。
環境・時間上可能であれば、Visual Studio を用いない開発の例として、C++ 言語のコマンドライン上での実行(gcc もしくは g++ コマンドの利用)を経る。
環境構築と導入
Windows アプリケーション開発分野における C++ 言語の代表的な開発環境である Visual Studio について、その環境構築を行いながら開発に必要な最低限の機能に触れ、手本に倣ってプログラムを記述する実習を通して、簡単な C++ プログラムを実行するまでの概略を理解する。
また環境・時間上可能であれば、Visual Studio を用いない開発の例として、C++ 言語のコマンドライン上での実行(gcc もしくは g++ コマンドの利用)を経る。
プログラムの構築に欠かせない基本的な概念の 1 つである「変数」について、C++ 言語でよく利用されるデータ型を中心に理解を深める。
実際に変数の計算や簡単な処理を行うプログラムを記述しながら、数値・真偽値・文字列などの扱いに習熟する。
(条件分岐と繰り返し)
条件分岐(if 文・switch-case 文)・繰り返し(while 文・for 文)といった論理的な構造を示すプログラムについて、その実例に触れながら理解を深める。
入力されたデータを用いて条件分岐 / 繰り返し処理を行うプログラムの実装を通し、簡単な論理構造をプログラムに落とし込むための土台を構築する。
複数のデータを効率的に扱う構造である「配列」の概念を学び、繰り返し構文と組み合わせることで効率的なプログラムの記述方法を理解する。
また、配列のメモリ上における構造と「メモリアドレス」という概念について考えながら、C++ 言語において習得が必須となる「ポインタ」の概念についても学習する。
プログラムを「関数」と呼ばれる小さな処理の単位に分割し、分割した関数を用いて同一の処理を効率的に実行させる仕組みを学ぶ。
長いプログラムを適切な関数単位に分割し、可読性を向上させることについても取り扱う。
オブジェクト指向プログラミング
C++ における「クラス」の概念を起点として、オブジェクトを 1 単位として多数のオブジェクトからプログラムを構成する、という基本的な「オブジェクト指向」の考え方を学習する。
「クラスの継承」「カプセル化」「多態性」などをキーワードとして、効率的なプログラムの記述のために必要なオブジェクト指向の仕組みについて、実際のプログラムの記述を通して学習する。
Windows アプリケーション開発
ここまでに学習した C++ の基本文法をベースとして、C++ において GUI を伴う Windows アプリケーションを開発するための環境(MFC, C++/CLR もしくは Win32API のいずれか)を活用し、簡単なアプリケーションを開発するための手法を学習する。
なお、学習対象は C# への接続を前提として C++/CLR が望ましいものと思われるが、本項目については MFC や Win32API についても対応が可能である。
受講生が研修受講後、実際の社内業務で活用するプラットフォームに基づき選定することを前提としている。
より汎用性の高いプログラミングにおいて求められる「テンプレート」と呼ばれる仕組み、そして C++ における STL(Standard Template Library)の活用方法について学習する。
これにより、動的配列(vector)や連想配列(map)、スタック・キュー(stack / queue)といった、アルゴリズムを構築する上で重要なデータ構造を容易に扱えるようになる。
業務アプリケーションの開発において必要な文字列処理・ファイル入出力処理などの内容について、サンプルプログラムを実際に記述する取り組みを通じて学習する。
これらの処理を実現するために必要な関数についての知識を得ることが主目的となる。
プログラミング言語 C# における基本的な文法を、C++ との差分の理解を中心に、基礎事項が網羅されたテキストを通して学習する。
まずは最低限の C# のアプリケーションの例としてサンプルベースの CUI アプリケーション・簡単な課題ベースの CUI アプリケーションを構築していき、必要に応じ GUI(フォーム)のアプリケーションにも反映する形を想定しているが、状況次第で内容を絞ることも可能である。
各コントロールに関する知識・技術の習得
C# での Windows アプリケーション開発において用いるさまざまなツールの利用方法について、C++ の学習をベースとした差分を中心に学習を行う。
.NET Framework ベースの C# 環境において、Windows フォームアプリケーションの基盤上で制作したい Windows アプリケーションの GUI 部分を適切に実装できるようになることが、本項の目的となる。
ラベル、ボタン、テキストボックスなどの基本コントロール、描画を行う特定のコントロールを中心に、それぞれのコントロールがどのようなプロパティを有するか、作りたい形のフォームを得るにはどのようなコントロールの配置を行えば良いか、ということについての知識・技術を、実際の操作と関連付けながら学習していく。
.NET 標準ライブラリの活用
“実際の業務で活用できるような高度な開発の場においては、これまでに概観しているような基礎的な事項、入門書における解説内容だけでは不十分となるケースも少なくない。
特に GUI を活用した(フォーム上で何らかの操作を行わせる)アプリケーションの開発、外部データベースとの連携を行うための開発については、書籍等には明文化されていない、Web 上の情報としてまとまっている / 当該分野の開発者がクローズドに保有するテクニックとなるような項目が多く存在する。
Web 上の Tips や、必要に応じ応用的なプログラミングの技法書に記載されている内容、インストラクターの知見等を活用し、C# 言語と Windows フォーム開発、また必要に応じその他の実践技術を交えた応用的な開発手法を習得する。”
技術の変遷について
動きの激しい IT 業界においては、技術的に「変わらない」部分が多くありながら、その時々のトレンドとして「変わっていく部分」もまた存在する。
しかし、その「変わっていく」部分の表層だけを見ていては、真にどのような場面でも通用する技術力や審美眼を養うことはできない。
「変わっていく」ように見える部分の内側にある「真に変わらない技術要素」を探求し、その重要性を学習する / 表層的なトレンドだけを追うような(技術力のない、偽物の)技術者を見破る目、一時の表層的なトレンドに惑わされない目を養うことが本項の重要な目的となる。
習得スキル
C#,C++