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 つながる工場 モチベーション

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オブジェクト指向ソフトウェアテストJavaScriptマネジメントデータベースSQL応用ネットワーク入門ファイアウォールRDBMS仮想化技術ネットワークトレンドコーチングテスト自動化テーブル設計DockerIoTCCNA情報処理資格アルゴリズム資格Linux応用Javaプログラミング応用マルチスレッドプログラミングビジネス文書インフラ実機演習ビジネスマナーjQueryデータベース設計Raspberry Piエンジニア障害対応ヒューマンスキルパケット解析ER図C# 基礎プレゼンテーションOSPFデータサイエンスPMBOK®コンテナ単体テストJavaプログラミング基礎新人研修シェルスクリプトアジャイルTCP/IPクラウドUI/UX経営改善ロジカルライティングデータベース基礎LAN構築デザインパターン簿記JavaEEHTML/CSSPマークデータベースセキュリティVLANJavaScript基礎問題解決技法インフラエンジニア要求定義SQLインジェクション物理設計(データベース)ロジカルシンキングアンガーマネジメントネットワーク構築テストケース見える化ソフトウェアテスト基礎業務効率化品質管理スクラムCiscoActive Directory冗長化ITILITパスポートデータベース応用CentOSセキュリティ入門マーケティング次世代高度IT人材ロジカルコミュニケーション工数見積リファクタリングDeep Learningデータベース障害データサイエンティスト内定者研修DBA中級パフォーマンスチューニング新人育成Zabbix非エンジニア向け関数型プログラミング法律知識ベンダーコントロール要件定義WBSインターネットルーティング応用応用情報技術者プロジェクト管理Modern JavaScriptUX情報セキュリティマネジメントIPアドレスBGPWebアプリケーション開発機械学習PMOOSI参照モデルプロジェクト失敗事例表計算ソフトJunitIT人材GoFエンゲージメントマネジメントセルフマネジメント仮想通過VPNUIITサービスマネジメント片付け術AWS犯罪心理学サーバー構築CCENT情報漏えい正規化理論IPAインデックス設計IT基礎LVSプロトコルインターネットルーティング基礎SEカレッジ導入事例Haskell超上流工程4BizMVC基礎ロードバランサーモダンJS (Modern JavaScript) 基礎データマイニングクリティカル・シンキング失敗から学ぶchefgulpテスト手法財務アセンブラInfrastructure as Codeリスクコントロールタイムマネジメント会社規模 (100~300名)スクリプト言語DNSリーダブルコード業務知識/業界知識負荷分散統計学インフラ監視Microsoft Azureビルドツール基本設計IT資格コンピュータ基礎Windowsサーバー基礎GO言語CentOS7OpenStackExcelネットワーク管理HTTPやり直し数学PDCAプロダクトマネジメントPython入門フロントエンドFinTech内部設計IT研修制度を聞いてみたシンギュラリティC-CENT労働関連法共創RDBプログラミング入門継続的インテグレーション (CI)プロダクトマネージャ冗長化入門PHPC# 応用ネゴシエーションMachine LearningトラブルシューティングOS・システム基盤フレームワーク開発環境構築Selenideプロジェクト計画サーバーダウンNode.jsつながる工場サイバー攻撃チームビルディング継続的インテグレーション(CI)Go言語 (golang)並列処理Windowsサーバー応用ソフトウェアテスト応用数字力プライベートクラウドサーバーnpm

過去の記事