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入門 冗長化入門 インフラ実機演習 プロジェクト管理 Active Directory ネットワーク管理 コンテナ 正規化理論 Haskell 品質管理 OpenStack シンギュラリティ DBA中級 プロトコル UX 基本設計 FinTech トラブルシューティング 並列処理 見える化 PMO ロジカルコミュニケーション Deep Learning 実機演習 インデックス設計 超上流工程 BGP Excel C-CENT Selenide プライベートクラウド アセンブラ コンピュータ基礎 工数見積 CCENT 法律知識 失敗から学ぶ プロジェクト失敗事例 PDCA プログラミング入門 非エンジニア向け 4Biz DNS セルフマネジメント 片付け術 サーバーダウン サーバー タイムマネジメント GO言語

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基礎プログラミング基礎セキュリティプログラミングコミュニケーションSQL基礎ネットワーク入門オブジェクト指向SQL応用ソフトウェアテストマネジメントファイアウォールPythonAIコーチングテスト自動化データベースLinux応用情報処理資格インフラ実機演習Javaプログラミング応用アルゴリズムRDBMSネットワーク障害対応データベース設計新人研修CCNA資格マルチスレッドプログラミングビジネス文書Docker単体テストIoTRaspberry Pi仮想化技術エンジニアJavaScriptJavaプログラミング基礎トレンドビジネスマナーアジャイルSQLインジェクション物理設計(データベース)ロジカルシンキング経営改善パケット解析デザインパターンVLANヒューマンスキルOSPFLAN構築UI/UX問題解決技法インフラエンジニアテーブル設計C# 基礎プレゼンテーションjQueryネットワーク構築JavaScript基礎要求定義シェルスクリプトActive Directory冗長化WBS業務効率化スクラムセキュリティ入門TCP/IPロジカルライティングソフトウェアテスト基礎リファクタリングCiscoマーケティングデータベース基礎クラウドITILデータサイエンスデータベース応用新人育成簿記JavaEEデータベース障害アンガーマネジメント関数型プログラミングZabbixPMBOK®テストケースパフォーマンスチューニング内定者研修品質管理IT基礎PMOプロジェクト失敗事例要件定義GoFインターネットルーティング応用エンゲージメントマネジメント次世代高度IT人材ロジカルコミュニケーションPマーク工数見積表計算ソフトJunitIPアドレスCentOSWebアプリケーション開発コンテナVPNOSI参照モデルDBA中級AWS正規化理論IPAサーバー構築インデックス設計データベースセキュリティ法律知識ベンダーコントロールITサービスマネジメントプロトコル見える化Modern JavaScriptプロジェクト管理UXインターネットルーティング基礎情報セキュリティマネジメントスクリプト言語BGPDNSリーダブルコード機械学習chef基本設計コンピュータ基礎Infrastructure as Codeビルドツールテスト手法OpenStackExcelセルフマネジメント業務知識/業界知識MVC基礎応用情報技術者ネットワーク管理インフラ監視PDCAFinTechER図Windowsサーバー基礎リスクコントロールPython入門シンギュラリティITパスポートC-CENT労働関連法片付け術共創HTML/CSSDeep Learningプログラミング入門トラブルシューティングIT資格CCENT内部設計冗長化入門フロントエンドSelenideNode.jsHTTPサイバー攻撃非エンジニア向けチームビルディング継続的インテグレーション (CI)C# 応用並列処理データサイエンティストプライベートクラウドnpmHaskell超上流工程4Biz継続的インテグレーション(CI)モダンJS (Modern JavaScript) 基礎ネゴシエーションクリティカル・シンキングOS・システム基盤失敗から学ぶWindowsサーバー応用アセンブラプロジェクト計画gulpソフトウェアテスト応用

過去の記事