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言語 プロダクトマネジメント プロダクトマネージャ LVS ロードバランサー 負荷分散 仮想通過 犯罪心理学 情報漏えい SEカレッジ導入事例 IT研修を聞いてみた 会社規模 (100~300名) IT研修制度を聞いてみた CentOS7 開発環境構築 数学力 数字力 財務 IT人材 UI Machine Learning Go言語 (golang) データマイニング 統計学 新人教育 やり直し数学 RDB つながる工場 モチベーション WebSocket WebWorker HTML5 CSS3 Bootstrap 微分・積分 システム設計 決断力 LAMP環境 トレ担 教育研修担当者向け ルーティング Linux入門 図解術 目標設定 試験対策 インタビュー技法 Vue.js ブロックチェーン 会社規模 (~50名) DHCP 仕掛け学 BSC 財務諸表 自己分析

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基礎Pythonコミュニケーションプログラミングプログラミング基礎AIネットワークマネジメント仮想化技術テーブル設計SQL応用データベースJavaScriptソフトウェアテストファイアウォールLinux応用RDBMSIoTトレンドネットワーク入門ビジネス文書jQueryテスト自動化C# 基礎ヒューマンスキルデータサイエンスDockerコンテナ障害対応PMBOK®コーチングデータベース設計要求定義Javaプログラミング応用ER図CCNA情報処理資格資格アルゴリズムビジネスマナープレゼンテーションシェルスクリプトマルチスレッドプログラミングパケット解析インフラ実機演習エンジニアHTML/CSSOSPF単体テストJavaプログラミング基礎問題解決技法アンガーマネジメントRaspberry Piロジカルライティングデータベース基礎LAN構築新人研修SQLインジェクション経営改善UI/UXデータサイエンティストTCP/IPデザインパターンロジカルコミュニケーションPマークVLAN物理設計(データベース)リファクタリングアジャイル簿記インフラエンジニアJavaScript基礎データベースセキュリティ新人育成ITILパフォーマンスチューニング非エンジニア向けLVSロジカルシンキングネットワーク構築クラウドJavaEECentOS機械学習見える化Modern JavaScript財務UX品質管理Active Directory次世代高度IT人材サーバー構築データベース障害冗長化要件定義セキュリティ入門ZabbixWBSデータベース応用Cisco関数型プログラミング工数見積Deep Learningプログラミング入門ソフトウェアテスト基礎IT基礎業務効率化DBA中級Webアプリケーション開発内定者研修正規化理論スクラムインデックス設計サイバー攻撃教育研修担当者向け法律知識ベンダーコントロール応用情報技術者OS・システム基盤テストケースマーケティングITパスポートロードバランサープロジェクト管理インターネットルーティング応用VPNルーティング情報セキュリティマネジメントAWSGoFBGPIPアドレス統計学PMOプロジェクト失敗事例PHPC# 応用IT人材セルフマネジメントCentOS7Excelエンゲージメントマネジメント仮想通過PDCAUIOSI参照モデル決断力片付け術IT研修制度を聞いてみたインターネットルーティング基礎MVC基礎犯罪心理学IPAプロダクトマネージャMachine LearningCCENT情報漏えいクリティカル・シンキング表計算ソフトJunitプロトコルWindowsサーバー基礎ITサービスマネジメントSEカレッジ導入事例データマイニングPDU失敗から学ぶタイムマネジメントgulpフロントエンド微分・積分アセンブラ内部設計Microsoft Azureリーダブルコード会社規模 (100~300名)WebSocketプロジェクト計画会社規模 (~50名)DNS負荷分散Linux入門継続的インテグレーション (CI)GO言語ビルドツール基本設計システム設計コンピュータ基礎フレームワークOpenStack概念設計(データベース)WebWorkerネットワーク管理共創やり直し数学図解術継続的インテグレーション(CI)プロダクトマネジメントPython入門HTTPFinTechWindowsサーバー応用ビジネスインダストリソフトウェアテスト応用シンギュラリティIT資格HTML5C-CENT労働関連法リスクコントロールコンピュータ数学RDB目標設定冗長化入門LaravelトラブルシューティングLAMP環境chefサーバーダウンNode.jsテスト手法ネゴシエーション開発環境構築CSS3SelenideInfrastructure as Code業務知識/業界知識つながる工場試験対策チームビルディングモダンJS (Modern JavaScript) 基礎Go言語 (golang)並列処理インフラ監視サーバーnpm数字力BootstrapプライベートクラウドHaskellスクリプト言語モチベーション超上流工程PMP®インタビュー技法4Biz

過去の記事