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 財務諸表 自己分析 RIP スタティックルート バッファオーバーフロー DoS攻撃 システム開発 会社規模 (~99名) Wireshark パケットキャプチャ 管理職研修 部下育成 ワークあり 文章力 情報システム部門向け プロジェクトリーダー プロジェクトマネージャ 塗り絵 リスク管理 法改定 会社の仕組み Chainer AI人材 会話術 会社規模 (~25名) テスト技法 組織規模 51名~99名 組織規模:~199名 [組織規模]199名まで 組織規模 199名まで 組織規模199名まで 会社規模199名まで 会社規模49名まで 会社規模99名まで アプリ開発 サーバサイドJava 営業知識 Cloud 栄養学 基本コマンド ウォーターフォールモデル

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基礎Pythonプログラミングオブジェクト指向コミュニケーションプログラミング基礎AISQL基礎ネットワークマネジメントヒューマンスキルJavaScriptテーブル設計ソフトウェアテストデータベースファイアウォールビジネスマナー資格ビジネス文書C# 基礎SQL応用エンジニア仮想化技術IoTPMBOK®jQueryパケット解析アルゴリズムネットワーク入門RDBMSLinux応用トレンドDockerデータベース設計障害対応情報処理資格教育研修担当者向けコーチングデータベース基礎プレゼンテーションコンテナ問題解決技法データサイエンステスト自動化ロジカルシンキングデザインパターンシェルスクリプトER図PマークCCNALAN構築要求定義マルチスレッドプログラミングIT研修制度を聞いてみたJavaプログラミング応用Raspberry Piインフラ実機演習新人研修Javaプログラミング基礎SEカレッジ導入事例アジャイルOSPFSQLインジェクションVLAN財務リファクタリングHTML/CSSアンガーマネジメント工数見積ロジカルライティング新人育成JavaScript基礎単体テスト簿記ITILActive Directory経営改善エンゲージメントマネジメントロジカルコミュニケーションUI/UXTCP/IPインフラエンジニアJavaEEDeep LearningIT基礎プログラミング入門サイバー攻撃CentOSWBSベンダーコントロールC# 応用データサイエンティストデータベースセキュリティネットワーク構築応用情報技術者非エンジニア向けクラウド物理設計(データベース)LVSプロジェクト管理機械学習パフォーマンスチューニングModern JavaScript品質管理GoFZabbix次世代高度IT人材冗長化ソフトウェアテスト基礎試験対策セキュリティ入門プロジェクトマネージャWebアプリケーション開発スクラムPython入門関数型プログラミングITパスポート統計学データベース応用Cisco業務効率化会社の仕組みDBA中級要件定義マーケティング正規化理論内定者研修サーバー構築クリティカル・シンキングVPNプロトコルテストケースAWSインデックス設計図解術見える化データベース障害法律知識UX情報セキュリティマネジメントOS・システム基盤MVC基礎ロードバランサーPMOPHPインターネットルーティング応用CSS3テスト手法CentOS7BGPITサービスマネジメントプロジェクト失敗事例IPアドレスインタビュー技法セルフマネジメントJunit塗り絵会社規模49名までExcel仮想通過IPAルーティングPDCA会社規模199名までIT人材トラブルシューティングHTTP/2.0Vue.js片付け術HTTPOSI参照モデルWindowsサーバー基礎犯罪心理学リスク管理Linux入門プロダクトマネージャ会社規模99名までUICCENT表計算ソフトフレームワーク情報漏えいMachine Learning決断力自己分析法改定HTML5インターネットルーティング基礎Wireshark営業知識Go言語 (golang)LAMP環境失敗から学ぶ継続的インテグレーション(CI)RIPタイムマネジメントビルドツール会話術数字力基本設計アセンブラWindowsサーバー応用DNSOpenStackつながる工場パケットキャプチャ負荷分散ネットワーク管理共創CloudデータマイニングPMP®スタティックルートGO言語テスト技法FinTechインフラ監視Bootstrapコンピュータ基礎chefOJTシンギュラリティモチベーション労働関連法Infrastructure as Code業務知識/業界知識管理職研修概念設計(データベース)栄養学プロジェクト計画バッファオーバーフロープロダクトマネジメント冗長化入門Laravel微分・積分コンピュータ数学Node.jsWebSocketC-CENTチームビルディングリーダーシップアプリ開発IT資格基本コマンド新人教育DoS攻撃モダンJS (Modern JavaScript) 基礎並列処理財務会計システム設計財務諸表サーバーダウンnpmChainer開発環境構築WebWorkerSelenide内部設計見積手法ネゴシエーション情報システム部門向けHaskellスクリプト言語ウォーターフォールモデルやり直し数学リスクコントロールシステム開発サーバサイドJavaPDU継続的インテグレーション (CI)サーバーgulpフロントエンドAI人材プライベートクラウドビジネスインダストリ目標設定4Bizリーダブルコードソフトウェアテスト応用プロジェクトリーダーRDB超上流工程Microsoft Azure

過去の記事