5月15日(金)Webアプリケーション・セキュリティ技術研修(3日目)~サーブレットとJSPの連携、番外編:PHP発表会~
皆様、こんにちは。
本日は「Webアプリケーション・セキュリティ技術研修(8日間)」の
3日目になりました。
6日間研修の折り返し地点で、今日が山場です!
昨日の日報では、こんなコメントがありました。
(プログラミング初心者の方)
「本日学習した単元は自分にとって理解しづらく、
一度聞いただけでは理解できなかった。
そのため、すきま時間を利用して教科書を何回か読み込んだ。
その結果、読む回数が増えるごとに、理解度が上がっていくのを実感した。
今後も一度では理解できない内容でも、
あきらめず何度も挑戦することで理解度を上げたい。」
素晴らしい気づきを得ていらっしゃいました。
毎日、受講者の方と一人一人、面談しておりますが、
Javaは理解できたものの、「この単元はついていくのが難しい」といった声を
聞くことが増えてきたように思います。
サーブレットやJSPは、今週前半まで学んでいたJavaの基本を
習得していないと理解に苦しむ内容です。
内容が難しくて何度も繰り返し、確認してしまうということは、
知識が定着していないことと同義です。
ぜひ「覚える」ための時間も作ってほしいと思います。
本日の講義内容では、実際の開発現場でも活用されている、
Webアプリケーションの模範的な開発手法「MVC」モデルについて学びました。
処理を行うモデル、レスポンスを返すビュー、リクエストを受けるコントローラ、
のことを指しており、どの開発にも通じる概念です。
昨日までにサーブレットクラスとJSPファイルについて学習しましたが、
通常のWebアプリケーションでは、この2つを連携させて
開発することがほとんどです。
午後の内容も、とにかくコードに慣れよう、ということで、
テキストのサンプルコードを打ち込んで、
挙動を確認するワークが多くなっています。
グループワークでも、思った通りの動きになっているか確認していますが、
余裕のある経験者の方は、他のコードの書き方も試して
自分なりのアレンジに挑戦しているようでした。
講師は、参考サイトなどを情報提供することで、
講義に飽きさせない工夫もしています。
余裕のあるなしにかかわらず、どんどん情報を自分から取りに来てくださいね。
今週も、早くも金曜日です。
4月下旬以降、5日間研修を受講するのは久しぶりだったと思いますので、
少しばかり疲れがたまっているかもしれません。
週末は、ぜひしっかりリフレッシュしてください。
本日も一日、お疲れさまでした!
~番外編~
本日、新人IT研修のもう一つのプログラムである、
「新人IT研修(PHP)コース」の発表会がありました。
こちらも24日間の全日程をオンラインで実施し、
最終的な成果物として、商品を購入するECサイトを構築していただきました。
各個人が持っている課題意識をテーマに、
自由に企画設計~プログラミングまで行っています。
一人で完成させたとは思えないほど、工夫が凝らされた素晴らしいサイトばかりで
昨年のOGとして、大変感銘を受けました。
発表会もオンラインでの実施でしたが、
発表した受講者にOJT担当者から暖かい慰労の言葉をかけたり、
ご参加企業同士での意見交換があったりと、とてもハートフルな場になりました。
受講者からは、
「設計を行い、事前に計画を立てて進めることの大切さを実感した」
「自力で解決できないエラーについて相談をするときには、
エラーが出るときの条件や、
それに対する調査・検証状況を細かく伝えることが重要だった」
という学びの振り返りがありました。
こちらの受講者の皆さんは来週からは現場配属になりますが、
ぜひ、研修で得たものを武器として生かして、業務に携わってほしいと思います。
5月14日(木)Webアプリケーション・セキュリティ技術研修(2日目)~サーブレット、JSPの基本~
皆様、こんにちは。
「Webアプリケーション・セキュリティ技術研修(8日間)」の2日目です。
昨日の日報では、HTMLの復習をして気づいたことについての意見が
多くありました。
(プログラミング初心者の方)
「ある程度自由に作れるという条件で作ることに、
とても面白みを感じることができた。
もっと多くのWebページを作ってみたい」
(プログラミング初心者の方)
「自由に自分のプロフィールページを作成することは、楽しい反面、
実現するためにどうプログラミングをするのかを把握しなければならない。
ほかの受講者のコードを見て学ぶことが多くあったので、
より多く吸収していきたい」
といった振り返りをしていました。
できる限り、簡潔で効率的なプログラムを作ることは、
エンジニアの使命といっても過言ではありません。
時間の許す限り知識を吸収して、様々な技術を使いこなせる
エンジニアになってほしいと思います。
本日は、サーブレットクラスやJSPについて、詳しく学びました。
講義では、まず、サーブレットの基本的な使い方を習得しました。
テキストに沿ってサーブレットクラスのサンプルコードを打ち込んだり、
演習問題に取り組んでもらったりしています。
演習問題は、グループワークになって答え合わせをしました。
グループワークで出た質問について、講師が丁寧に答えます。
「文字コードはUTF-8で送信されているはずですが、
ブラウザで表示して文字化けしているときは、
ブラウザはどの文字コードとして解釈して表示しているのでしょうか」
「通信されている内容については、
ディベロッパーツールの『Network』から参照できますよ」
経験者の方は、鋭い質問を投げかけており、
講師も調べながら回答をする場面もありました。
サーブレットクラスでHTMLを出力する方法を学んだあと、
JSPで、簡単に出力する方法も学びました。
サーブレットクラスで書いた演習問題をJSPファイルに書き換えて実行し、
挙動についても確認してもらっています。
サーブレットクラスで一つ一つ出力していた「pinrtln ()」を書く必要がなくなり、
速く、楽に書くことができましたね。
午後は、昨日のフォームを作成する演習に関連して、
フォームデータ送信の仕組み、GET/POSTといった
リクエストメソッドを学習しましたね。
2つにどのような違いがあるのか、グループで解釈を考えてもらいました。
全体共有をしたときには、下記のようなキーワードが出ていました。
「GETは情報を取得する場合、
POSTは機密情報などの重要情報を隠して、
共有する場合に活用すると認識しています!」
「GETは検索フォームやブックマークに使われる、
POSTは日報を書いて送るフォーム、サイトのログイン情報に使われる」
という意見が出ていました。
オンライン研修の場合は、常にPCが手元にある状態なので、
気になったことを調べながら、ディスカッションできます。
この点も、議論が活発になる要因のようですね。
検索をうまく使うスキルも、少しずつ身についているようです!
グループで出た意見のほかにも、自分の解釈を述べる人が次第に増えてきました。
研修終盤の課題では、自分なりの工夫を加えて、
さらなるグレードアップをしてもらいました。
あるグループでは、受講者の中で、強烈な個性と技術をもった方がおり、
その方を中心にグループワークでコードの共有をしていました。
※HTMLの<marquee>タグを使って、七色に光る流れ文字を表現しています。
「GETとPOSTを使い分けて、こんなに幅広い表現ができるんですね!
いや~、感動です!」
「サイトのデザインセンスは、とても同じ世代とは思えないですよ(笑)」
「いやいや、同世代ですよ!?(笑)」
というように、盛り上がっていました。
※他の受講者の方も、毎度○○さんが作ったWebページを
心なしか楽しみにしているようです。
土台となるJSP、HTMLを組んだうえで、
ぜひCSSなどにも挑戦してほしいと思います。
本日も一日、お疲れさまでした!
5月13日(水)Webアプリケーション・セキュリティ技術研修(1日目)~HTML実践編~
皆様、こんにちは。
本日から、新しい単元に入りました。
「Webアプリケーション・セキュリティ技術研修(8日間)」の初日です。
この単元では、Webアプリケーションの基本構造を理解し、
データベースと連携したWebアプリケーションを作成できるようになることを
目指しています。
本日から、昨日までサブ講師としてサポートしていた講師が、
メイン講師を担当します。
講師業のほか、開発実務にも長く従事しており、
マニアックな技術を共有することが好きな講師ですので、
技術面もどしどし質問してくださいね。
皆さんの昨日の日報を見ていると、確認テストでの間違いを振り返って、
「問題文をきちんと読まずに、見切り発車でコードを書き始めて間違えてしまった」
「思い込んで間違えてしまった問題があった」
と書いている人が多く見受けられました。
思い込んで、間違いを起こすことは、誰にでもあることですが、
自分を過信せずに、丁寧に確認する癖をつけるよう注意しましょうね!
※昨日のテストが、明らかな凡ミス率が一番高かったです!(笑)
テキストの内容に入る前に、まずは、テキストエディタのeclipseの設定を行いました。
設定の際に度々エラーが出ることもありますが、
サブ講師が徹底してフォローしています。
設定を終えたところで、これから構成するHTMLの復習も兼ねて、
HTMLで簡易的な自己紹介のページを作っていただきました。
インターネットに公開はしませんが、念のため、
個人情報を含まないよう注意したうえで、
テーブルを書いてもらったり、CSSを自分の好みに書き換えていただいたり、
好きなように作っていただきました。
グループワークでは、「成果物について、工夫したこと、
あいまいに記憶していたところ」を共有してもらいました。
「ゲームを紹介するので、ゲーム独特の言葉でも、すぐ調べられるように
URLを埋め込みました!」
「画像を埋め込むところで、フォルダを作って画像を入れても
Eclipseと同期できていなかったのですが、
Eclipse上でフォルダを作ったらうまくパスが反映されました」
「私も画像を入れるところで詰まってました~!やってみます!」
「画像サイズの調整に『width=”auto”』と入れたら、
うまい具合に画像サイズが調整されましたよ!」
「元の画像サイズに合わせているんじゃないかな?
CSSで別で指定していしなくていいなら、場合によっては便利に使えますよね!」
と思い出したり、調べたりしながら、知識を深めていった様子でした。
自己紹介で好きなゲームについて紹介し、趣味が似ています!と
盛り上がっているグループもありました。
午後は、引き続き、HTML/CSSの復習で、タグや属性などを学びなおしました。
「HTML/CSS/JavaScript基礎研修(4月21日~4月24日)」
の際は、テキストに沿ってコードを打ち込んで挙動を確認していましたが、
今日はテーマを決めて、自己紹介ページに、追加でフォームを作ってもらっています。
自分の好きなことを、調べながら自由に試せるからか、
とても楽しそうに課題に取り組んでいました。
終盤は、サーバに成果物をアップした後、Webを支えている、
通信の仕組みについて改めて学びました。
Javaなどとは違い、HTMLは間違ったままの構文でも
ブラウザが補完してくれるので、
コンパイルエラーが出ず、適用されてしまうこともあります。
エンジニアが意識しない部分で、
ブラウザなどが自動で処理しているプロセスもありますが、
知識として知っておくべき重要情報が数多くありますので、
どのようなデータがやり取りされて、Webアプリケーションが実行されるのかを
把握しておきましょう。
明日は、サーブレットクラスや、JSPについて本格的に学んでいきます!
今週もあと2日、頑張りましょう!
今日もお疲れさまでした!
5月12日(火)プログラミング(Java)基礎研修(最終日)~例外処理、確認テスト~
皆様、こんにちは。
本日は、「プログラミング基礎研修(Java)(8日間)」の最終日です。
総まとめとして、本日の夕方には確認テストを行う予定です。
昨日の日報では、こんなコメントが印象的でした。
(プログラミング初心者の方)
「最初の復習の時間に、演習問題を解いた。学んでから少し経っているのに、
テキストなどを何も見ずに解くことが出来た。
学んだことが身についていることに気づいた。」
(プログラミング初心者の方)
「明日の最終日の確認テストでは
自分の理解が不足しているところが分かると思いますので、
楽しみに待っていたいと思います。」
少しずつ、実力が追いついてきていることを実感できているようですね!
「自分を試すのが楽しみだ」といえるのは、自信がついてきている証拠だと思います。
テスト範囲の学習内容を気にかけながらも、
今日の講義内容も、しっかり押さえていきましょう。
午前中は、講義と演習問題をメインに、「例外処理」について学びました。
実践的な内容になると、なおのこと、覚える単語や概念が多いので、
忘れてしまうもこともあるかもしれません。
説明を聞いて、すぐ理解できなかったとしても、
まずは「こんな使い方を勉強したな」という記憶だけでも、頭の中にとどめておいて、
あいまいな部分を後から調べられるように、できるといいですね。
グループワークでも、演習課題について、不明点を解消し合いました。
午後になっても、まったく集中を切らさず、画面に向かっています。
「うーん、エラー消えないなぁ…」という心の声が聞こえてきそうです(笑)
個々人に差はありますが、問題を解くペースも早くなり、
「まったく解けない」という人は見受けられなくなったように思います。
テスト前には、プログラムを「読める」ことをテーマに単元の振り返りをしました。
個人で振り返りをしてもらっている時間でも、
「こういったコードの書き方をしたのですが、それ以外の書き方はありますか?」
「自分で他の書き方を試したら、うまくいったのですが、
果たして正しいのでしょうか?」
といったような、不具合を解消すること以外の質問が、
講師宛てにどしどし寄せられていました。
オンライン研修だと、良くも悪くも「人に頼る」ことが難しい環境なので、
「もっと深く知りたい」「ここが分からない」と発信するのも、自分次第。
その分抱え込んでしまうこともあるかもしれませんが、
すぐに人に頼るのではなく、自己解消に努めることも、
エンジニアとしての大切なスキルです。
そして、迎えた確認テストの時間。
8日間という長期間の内容のテストでしたが、結果は…?
比較的難易度の高い問題でしたが、半数の方が8割以上という結果になりました。
例年と比較しても、やはり高得点の結果が出ています。
明日からは、「WEBアプリケーション・セキュリティ研修(6日間)」が始まり、
今までに学習したHTMLやJavaScript、Javaを統合的に使用して、
WEBアプリケーションを構築していきます。
よく理解できなかった部分の復習はもちろんですが、
予習をすることでより講義がすんなり頭に入ってくるようになるので、
学ぶことを怠らず、今週も引き続き頑張っていきましょう!
今日も一日、お疲れさまでした!
5月11日(月)プログラミング(Java)基礎研修(7日目)~クラスライブラリ、正規表現~
皆様、こんにちは。
週末が明けました。本日は最高気温が29℃と、外は真夏のような蒸し暑さです。
新人ITオンライン研修が始まってから1か月が経過しました。
早いもので、「プログラミング基礎研修(Java)(8日間)」も7日目を迎えました。
講義内容も難易度が上がっているなか、受講者の方の日報に、
こんなコメントがありました。
(プログラミング初心者の方)
「日々学習内容の難易度が上がることを実感している。
その一方で研修初日に比べ、とても長いコードまで書けるようになったことは
自信にもなった。」
「余裕があれば、作成したプログラムをさらに効率的に動くよう
改善できるポイントが無いかを考える。」
(プログラミング経験者の方)
「気になったことはすぐにコードを書き換えて確認するようにした。
どのような時にエラーが起きるのか、ほかの書き方はないか自分でも考えた。」
グループリーダーを担当している方は、
「演習問題を解く時間は、進捗管理表を確認し、15分以上、
解答が止まっているようなら声をかけてみる」
と具体的な施策を考え、他者にはたらきかけようとする姿勢も見られます。
グループワークでも、それぞれが試行錯誤している様子が分かりますが、
自分のために、そして一緒に学ぶグループメンバーのために、
「努力しよう、配慮しよう」という心がけは、研修開始当時にはなかったものですね。
皆さんが着実に成長されているのを、頼もしく思う限りです。
講義では、先週までの基礎的な内容を終え、
より効率的にプログラミングをするための「クラスライブラリ」の利用などについて、
学んでいきます。
ライブラリを利用することで、第三者があらかじめ作っておいたプログラムを
活用できます。
このような便利なツールを使いこなすことが、Java習得の一つのカギになりますよ。
扱うファイル、クラスの数も増えてきますので、
これまでのように、コメントをつけて、
分かりやすくプログラミングすることが重要ですね。
そして、文字列のパターンをまとめて表現するときに使う「正規表現」や、
想定していないことが起きて、処理を継続できない場合の「例外処理」についても、
学びました。
このあたりは、覚えるのが大変ですが、開発には欠かせない内容になります。
明日が単元最終日ということもあり、研修後半はグループワークで振り返りました。
Javaのプログラミング経験者がいないグループをのぞいてみました。
「intやdouble型以外の変数の型って、案外、使用頻度低いですよね。」
「よく使っていたのは、double型だよね」
「一番よく分からなかったのは、Calendar型かなあ」
「『年』をインクリメントにすると正しい挙動になるけど、
『+1』」と、『++』は何が違うのかな…。」
と、確認テストに出るであろう問題を予想しつつ、
変数の型について熱く議論していました。
8日間と、これまでになく広い範囲から出題されるテストになりますので、
より、普段からどれだけ復習しているか、試されます。
分からなかった部分を重点的に復習して、明日に臨みましょう。
今日も一日、お疲れさまでした!
5月8日(金)プログラミング(Java)基礎研修(6日目)+オンライン講師面談
皆様、こんにちは。
本日は、「プログラミング基礎研修(Java)(8日間)」の5日目です。
早速、いつも通りグループに分かれて、学習内容の振り返りをしました。
「昨日までの内容、難しかった?」と聞いてみると
「そんなに?」と首をかしげる人と、すごい勢いで頷く人と、
かなり反応が分かれていました(笑)
やはり、一回聞いてすべて飲み込めるほど、
そんなにプログラミングは簡単ではありませんよね。
分からないことに対して、四苦八苦してもがいているかと思いますが、
エンジニアとして、これから成長していくなかでは必ず糧になりますので、
ここはあきらめずに、頑張りましょう。
午前中は、演習問題に取り組んでいただきました。
まずは、個人ワークで30分程度、集中できる時間を確保しました。
眉間にしわを寄せて、画面に向かっている人もいますが、
課題に取り組む姿は、皆さん真剣そのもの。
スペルミスやエラーを解消しながら、試行錯誤して問題を解いているようです。
ある程度のところで区切りをつけて、グループワークに入ります。
ゴールとして「グループ全員が問題を解けるようになること」を設定しているのみで、
ゴールまでの道のりは、各グループにおまかせしています。
自分たちの最適解はなにかを考えて取り組むことは、
社会人としての重要なスキルになりますね。
本日の講義では、修飾子やアクセス制御について講義を進めています。
変数のように、プログラムに大きく影響を与える要素については、
もし万が一、外部から値を書き換えられてしまった場合、
意図していないトラブルなどが起こる可能性もあります。
「private修飾子」を使うことで、他者が知る必要のない情報を
隠して制御するという考え方を知り、
プログラムの安全性を保つことの重要性を実感してもらいました。
午後には、セキュリティに関連して、標的型攻撃メールを題材として、
グループで怪しいところを思いつくままに話していただきました。
「添付ファイル、URLも不信感があるし、署名がないのは明らかに怪しい」
「利用者の登録をすすめているのは、おかしい」
「『就労者各位』と書いてあって、担当者の名前を知らないのは怪しい」
みなさん、鋭い視点で指摘をされていました。
研修の序盤でも、「コンピューターの仕組みを知ることで危険を回避できる」ことを
学びましたが、さらにITを学んで、危険を回避するすべを
身につけていってほしいですね。
研修の中盤を迎えましたので、休憩時間や補講の一部を利用して、
講師との1対1面談の時間も設けております。
ここまでで不安に感じた点や悩みがないか、ざっくばらんにお話をしました。
リアルな声を拾い上げることができるので、
講師、受講者の双方にとって、とても有意義な時間になっています。
受講者の方からはこんな本音を聞けました。
受講者「カタカナを覚えるのが苦手で、テキストを見ないと、
人に説明ができないんです」
講師 「人に伝えるのは難しいですよね。自分の言葉で、
人に説明することをイメージして、言葉を整理してみましょうか。」
講師 「グループワークをして、良かったことや不安なことはある?」
受講者「プログラムを全員がレビューしてくれたので、
悩んでいたことが30秒で解決しました!」
オンライン研修だからこそ、少しでも密に話せる時間を作り、
受講者の不安解消に努めることができればと考え、企画しております。
今週は2日間だけでしたが、来週からは通常通り、5日間の受講に戻ります。
土日を挟みますが、しっかり休んで、後半戦に向けてエネルギーを溜めてくださいね。
今週も、お疲れさまでした!
~番外編~
ちなみに、休憩時間中、みんなでZoomの機能を試してみよう!という
トライアルを行いました。
画面共有の「ホワイトボード」の機能を使って、話した内容の議事録を作ったり、
スタンプを押して重要なポイントを示してみたり、
試してみるといろいろなことができて、かなり勉強になりますね。
5月7日(木)プログラミング(Java)基礎研修(5日目)~継承~ +オンライン研修見学会
皆様、こんにちは。
大型連休が明け、新人IT研修も折り返し地点に差し掛かっています。
皆さん、連休中はゆっくり休めましたか?
聞いてみると、
刺繍にチャレンジしたり、
ひたすら引きこもっていたり、
映画を見たり、
思い思いに楽しんでいた様子でした。
(※余談ですが、筆者は太極拳を始めました。笑)
本日は、「プログラミング基礎研修(Java)(8日間)」の5日目です。
早速、いつも通りグループに分かれて、
連休中に復習をしてもらった内容の振り返りをしました。
グループをのぞいてみましたが、
研修中の理解度を問わず、皆さんしっかり復習をされていたようです。
真面目にコツコツ、取り組む姿勢はエンジニアには欠かせない素質だと思います。
今日からは、より現場で使うものに近い内容になりますので、
この調子で頑張っていきましょう!
午前中のグループワークでは、経験者がリーダーとして進行しており、
こんなやり取りがありました。
「今回解くのは面積を比べて、大きいほうを出力するメソッドですね…。」
「引数はなんになるのでしょうか?」
「面積1と面積2を比べる処理だから、面積1を入れておくんですかね?」
「そうですね、それでいいと思います!」
迷いながらも考えを言葉に出していくことで、
メンバー同士で解決することが増えてきたようです。
ここからは、Javaの醍醐味、「継承」を学んでいきます。
これ以降は全部を一度に理解するのが難しくなりますが、
まずはソースコードを「読める」ようになることを最優先して、
学んでもらっています。
スーパークラス、Objectクラス、サブクラスとは何か?基本的な考え方を知りました。
午後は、各社の人事ご担当者様や、OJT担当者の方に研修を見学していただく、
「オンライン見学会」を実施いたしました。
各社併せて10名弱の方にご参加いただきました!
(ご参加くださった皆様、ありがとうございます。)
講義内容や、グループワークの様子を見ていただきましたが、
受講者の皆さんも、普段と変わらない様子で、意見交換をしておりました。
見学会後は、各社のご担当者様と、個別面談を行い、
受講者一人ひとりの理解度や、グループワーク時の様子について、
細やかにお話をしました。
お客様にとっても、受講者の社会人としてのふるまいなど、
気になっている点を解消でき、「有意義な時間になった」と
ご好評をいただいております。
受講者の皆さんも、大人数の方が見学されていたこともあってか、
緊張感をもって講義に参加されていたようです。
この「プログラミング基礎研修(Java)」も、残りあと3日。
初心者の方には理解が難しい部分もあると思いますが、
分からないところは、経験者の方をうまく頼って、頑張って学んでいきましょう!