close
プログラミング クラウド Microsoft Azure 情報処理資格 基本情報技術者 IT基礎 応用情報技術者 開発・設計方法 オブジェクト指向 内定者・新人研修 プログラミング基礎 アルゴリズム コンピュータ数学 内定者研修 新人研修 ヒューマンスキル プロジェクトマネジメント プレゼンテーション リーダーシップ 組織マネジメント ネゴシエーション ロジカルシンキング Java UI/UX HTTP JavaScript基礎 情報処理資格 ネットワークスペシャリスト ネットワーク インターネットルーティング応用 IPアドレス データベース応用 SQL応用 パフォーマンスチューニング データベース設計 ER図 概念設計(データベース) 論理設計(データベース) IT資格 Linux基礎 OS・システム基盤 セキュリティ TCP/IP OSI参照モデル データベースセキュリティ ファイアウォール 標的型攻撃 SQLインジェクション ネットワーク基本設計 CCNA Cisco プロジェクトマネジメント資格 情報処理資格プロジェクトマネージャ 情報処理安全確保支援士 人事給与 財務会計 管理会計 簿記 生産管理 在庫管理 ERP バランススコアカード 情報処理資格 ITアーキテクト 情報処理資格 ITストラテジスト 情報処理資格 ITサービスマネジメント 情報処理資格 システム監査 PMBOK® PMP® プロジェクト計画 WBS リスクコントロール ITIL ITサービスマネジメント 要求定義 要件定義 見積手法 ビジネスインダストリ 業種・業界知識 業務知識 提案力 ソフトウェアテスト基礎 情報処理資格 データベーススペシャリスト ハードウェア基礎 外部設計(基本設計) 内部設計(詳細設計) データベース基礎 SQL基礎 RDBMS 物理設計(データベース) C++ Ruby MVC基礎 Webアプリケーション開発 JavaEE Javaプログラミング応用 フレームワーク MVC応用 Spring フレームワーク ソフトウェアテスト応用 テスト手法 Junit スマートフォンアプリ開発 Androidアプリ開発 C# 基礎 C# 応用 負荷テスト Javaプログラミング基礎 ソフトウェアテスト コーチング メンタリング HTML/CSS サーバー構築 仮想化技術 KVS (NoSQL) アジャイル スクラム ファシリテーション C言語 ITパスポート JSTQB データサイエンス 単体テスト ユニットテスト キャリアアップ インターネットルーティング基礎 パケット解析 LAN構築 データベース データサイエンティスト トレンド 障害対応 インフラ監視 HTTP/2.0 コンピュータサイエンス VPN ネットワーク物理設計 データベース障害 JavaScript モダンJS (Modern JavaScript) 応用 MVS応用 バックアップ/リカバリ 分散処理 Hadoop Hive Python AI 深層学習(DeepLearning) CentOS Linux応用 Zabbix シェルスクリプト Infrastructure as Code Windowsサーバー基礎 内部設計 Docker DevOps Windowsサーバー応用 NginX chef Ainsible ロジカルライティング R テスト自動化 Jenkins Git 継続的インテグレーション (CI) バージョン管理 Vagrant 要求分析 Redmine 継続的インテグレーション(CI) 継続的デリバリー (CD) ヒューマンリソース管理 Web API マイクロサービス コミュニケーション 業務知識/業界知識 マーケティング 語学 AWS 法務 IoT ビジネスマナー OJT 業務効率化 表計算ソフト オフィスソフト コンプライアンス フロントエンド Subversion PHP 関数型プログラミング Laravel モダンJS (Modern JavaScript) 基礎 Android Studio 機械学習 iOSアプリ開発 ぷプログラミング React 次世代高度IT人材 共創 IPA Raspberry Pi Xamarin スクリプト言語 GoF CUI VBA 資格 ビジネス文書 jQuery 研修参加レポート マネジメント OSPF テーブル設計 アンガーマネジメント クリティカル・シンキング PDU 経営改善 Pマーク 問題解決技法 サイバー攻撃 エンジニア 参加してみた エンゲージメントマネジメント 労働関連法 新人育成 ネットワーク構築 情報セキュリティマネジメント デザインパターン リファクタリング マルチスレッドプログラミング ベンダーコントロール Modern JavaScript 冗長化 VLAN インフラエンジニア チームビルディング テストケース リーダブルコード セキュリティ入門 ネットワーク入門 Node.js npm gulp ビルドツール Python入門 冗長化入門 インフラ実機演習

Javaで1日プログラミング特訓 | Java入門 研修コースに参加してみた

今回の研修参加レポートは↓です!

Javaで1日プログラミング特訓 | Java入門

SEカレッジでは3時間で学ぶコースが多いのですが、昨年から集中的に学んだほうがよいものは1日でやるコースが出来ました。

この特訓コースは、Javaプログラミングのサンプルを用意して、

  • 概念やコードの解説->動作確認->改造

これを1日で最大30本やるというものです。

プログラミング言語を学ぶときはサンプルをもとに 写経 を行いますが、書籍やテキストによってはこのサンプルが少なく、またプログラミング初心者では 改造のアイデアが湧かない ときが結構あります。

このコースでは30本のサンプルそれぞれに改造のお題があるので、とっっっっってもありがたいものでした!!! (はぁ、いま学んでる言語でも欲しい…)

では、コース内容をレポートします!!

 

想定する受講者

  • パソコンの基本操作ができること

 

受講目標

  • Javaの基本構文とオブジェクト指向に関する構文をマスターする

 

講師紹介

講師はお馴染みの 矢沢 久雄 さんです。
プログラミング歴は40年(!!) とのことでした。40年前、1970年代後半にあったプログラミング言語はどんなものがあったのでしょうか。
矢沢さんは色々なパラダイムシフトをご経験されているのですね。

 

皆さんの自己紹介

  • プログラミング経験
    • ほとんどはじめてという方が大半でした
  • Java経験
    • ほとんどはじめてという方が大半でした

 

 

講座内容

今日の進め方を紹介していただいたのですが、とにかく学習の最初からプログラムを作れるようにはならないので、改造してやってみることを繰り返すうちに出来るようになるとのことでした。

 

プログラミングをマスターするコツ

また以前の Javaプログラミング入門(1) プログラミングの基礎を知る 研修コースに参加してみた でも触れたプログラミングをマスターするコツを教えていただきました。

 

  • ソースコードを音読する(言語ですから)
  • エラーを嫌がらない (解決する喜び)
  • こうなるはずだ、と予測してから実行する (ヤタ! or え~っ!)
    • エラーはエラーになる原因がある
  • サンプルを自分のアイデアで改造する (自分の考えを表現する練習です)

 

実際に 「こうなるはずだ」というのは、このあとのサンプルを動かすときにも実演されていて、改造して実行するときはとてもドキドキするようになりました!

 

Hello World!! でプログラミングのお作法を知る

では、実習に入る前に、 Hello World のプログラムを通じて、実習環境の確認とプログラミングのお作法を解説いただきました。

 

まずは動作確認

  • プログラミングを始める前に動作確認してみることが重要です
  • そのためにプログラミング言語のサンプルには Hello World というのが用意されています
  • コンパイルすると .class ファイルが作成されます
    • Windows用の .exe ではなく、Javaの場合、どこでも実行できるように .class を使います
  • 動かすときに class を動かすというイメージが重要です

 

改造する

  • 文章を変えてみよう
  • 文章を加えてみよう

 

また、エラーに慣れるよう ; を外して、エラーを起こしてみました。

 

ソースコードを読むときの注意点

続いて、ソースコードを読む上で、注意点も挙げていただきました。

  • 大文字小文字をどう使い分けるのか理解しましょう
    • 基本はすべて小文字で書きます
    • クラス名だけは先頭を大文字にします
    • String も実はクラス
    • System も実はクラス
    • 複数の言葉をつなぐときは区切りの文字を大文字にします
      • キャメル(らくだ)形式といいます
    • 定数はすべて大文字にします
    • 変数は数値が変わるものだけど、決まっているのが定数
  • 英語の意味は調べるようになりましょう
    • void は空っぽとかそういう意味
    • args はargumentsの略で引数という意味
    • printlnln はlineの略

 

こういった約束がわかると、なんとなく読めるようになるので不思議です。

 

このあとの進め方

 

演習を始める前に、進め方を解説いただきましたが、知識や経験にあわせて次の課題にどんどん行けるのが良いですね。ドリルのようです。

 

取り組んだサンプルプログラムの一覧

30本用意されたサンプルは、大きく4つのパートに分かれていて、プログラミングの基本からJavaの基本、オブジェクト指向と順を追って身につけられるようになっていました。
リンクを辿るとそれぞれサンプルが見れるようになっていますので、独学で写経するだけでもオススメです。

(改造のお題を知りたい方はコースに参加してください!!)

 

Javaの基本構文1 (データ型、演算子など)

 

Javaの基本構文2 (分岐、繰り返し、例外処理、など)

 

Javaによるオブジェクト指向プログラミング1 (クラスの定義、インスタンスの生成、など)

 

Javaによるオブジェクト指向プログラミング2 (継承、カプセル化、多態性、など)

 

実際の演習 ~サンプル1

では、取り組んだサンプルのうち、どのように演習したのか再現してみます。

 

  • サンプル1

必要な知識を解説

ソースコードの解説だけでなく、コードを読むのに必要な知識を解説いただきます。

 

Javaの特長

まずはJavaの特長を紹介いただきました。

  • 矢沢さんが10年くらい前に見た資料で、Javaには最初から用意されているクラスライブラリの数が4000種類ぐらいありました (いまはもっとあります)
  • 4000種類以上もあると大変なので、パッケージという単位で分けています
  • 覚えられないので、とにかくググりましょう
    • ex. “java キーボード入力” のように “java (したいこと)” で調べる習慣を身につけましょう
  • この ドキュメント も参考にするとよいでしょう

 

Javaのプログラムの基本的な書き方

  • ライブラリの宣言
    • import は輸入するという意味ではなく使うぞ、という意味で考えると良いです
    • 書き方は パッケージ名.クラス名 で書きます
    • String とか Sytem とかはいらないの?
    • java.lang のクラスは宣言なしに使って良いんです。(わかりにくい。。)
  • 変数の宣言
    • データ型 double 小数点 と int (integer)  整数 があります
    • 書き方は データ型 変数名; で書きます
  • コメントを書いておくと読みやすくなります
  • 演算子について
    • a = scn nextDouble= は代入するという意味
    • + は 数値なら加算、文字列なら連結します

 

動作確認

このように必要な知識とソースコードを解説頂いた上で、次は動作確認です。

  1. javac (file_name).java
  2. java (file_name)

 

改造に取り組む

その上で、改造内容と、どのような結果が得られるとよいのか、お題に取り組みます。

 

さらに例えばの改造例として、「出力結果を小数点以下1位だけにする」のようなものも紹介していただきました。

実際に改造してみると、ソースコードに書いている内容がわかり、また実行結果まで例示されているので、非常に試しやすいものでした。

プログラミングに慣れるには、とても良い方法だと実感できました!!

 

まとめ

1日通してJavaプログラミング特訓をしてみました。

プログラミングをマスターする手順として、

  1. サンプルを書く (講座では割愛)
  2. 実行してみる
  3. 改造する

 

これが近道であることを体験できました!!

コースに参加するだけでなく、帰ってからも改造に取り組めるので、プログラムを書きたい方にはとてもオススメのコースです!!

 


 

SEカレッジが気になった方はこちらからお気軽にお問合わせください!!

お問い合わせフォーム

SEカレッジの詳細をご覧になりたい方はこちら!!

SEカレッジ

特集・キャンペーン

よくある質問集

タグ一覧

参加してみた研修参加レポート基本情報技術者Javaセキュリティプログラミングプログラミング基礎オブジェクト指向プロジェクトマネジメントアルゴリズム情報処理資格Linux基礎新人研修IoTコミュニケーションエンジニアPythonコーチングJavaプログラミング応用デザインパターンロジカルシンキングマネジメントSQL応用ファイアウォールテーブル設計Javaプログラミング基礎ビジネス文書JavaScriptSQL基礎内定者研修Raspberry Pi要求定義C# 基礎リファクタリングOSPFUI/UX新人育成テスト自動化データベース設計データベース基礎JavaScript基礎ソフトウェアテストCCNAjQueryデータサイエンスITILトレンド単体テストRDBMS経営改善エンゲージメントマネジメントGoF要件定義Pマークロジカルライティング資格問題解決技法マルチスレッドプログラミングSQLインジェクションWebアプリケーション開発アンガーマネジメントネットワーク構築プレゼンテーションJavaEEシェルスクリプトIPAネットワーク表計算ソフトNode.js内部設計冗長化AIインターネットルーティング応用関数型プログラミングHTML/CSS障害対応インフラ実機演習マーケティング簿記パケット解析npmDocker物理設計(データベース)IT基礎VLANCentOSモダンJS (Modern JavaScript) 基礎仮想化技術VPNPMBOK®C# 応用労働関連法LAN構築ヒューマンスキルgulpMVC基礎リーダブルコードLinux応用パフォーマンスチューニング次世代高度IT人材ソフトウェアテスト基礎アジャイルデータベース障害ビジネスマナーWBSデータベースビルドツールITパスポートセキュリティ入門Zabbix共創サイバー攻撃ベンダーコントロール業務効率化リスクコントロールデータサイエンティストPython入門ネットワーク入門ER図Modern JavaScriptクリティカル・シンキング情報セキュリティマネジメントネゴシエーション冗長化入門業務知識/業界知識Cisco

過去の記事