Javaと仲良くなりたい入社1年目🤝

投稿日 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
投稿者 | なつこ | ||||||||||
【自己紹介】はじめまして。2024年度入社のなつこです。 MBTIはESFPです☆ (MBTI:性格診断 就活の自己分析と似ていますよね✔️) 理系出身で、大学では主に数学を勉強していました。 毎日おいしいご飯を食べることを楽しみに働いています️!!🤤
現在、第2ソリューション事業部第1システム部で株式・為替等の取引情報を配信するシステムの保守・運用の仕事に携わっています。
コムコにはOJT(On the Job Training)という配属後の新入社員教育(部門個別教育、実務研修)があります。OJTの一環として週に一度Javaを勉強する日があり、Java課題を用意して頂いています。
ちなみに、配属前の私とJavaの関係はこんな感じです。
このブログでは、Java課題について紹介したいと思います。
【課題について】コーディング技術向上のために基礎演習問題11問と応用問題演習問題1問が用意されています。 Java課題では、作成したプログラムを実行する際に、「Gradle」というJava向けのビルドツールを利用しています。(ビルドツールとは、プログラミング言語をコンピュータが理解できるように「0」と「1」だけのデータへの変換や、プログラムの実行に必要なもののインストールや作成、実行を自動で行ってくれるものです。) 1問プログラムが完成したらOJTパートナーの先輩からレビューを頂き修正をします。先輩からの合格が出るまで終わりません。ただ課題をこなせば良いというわけではなく、下記のルールを守らなければいけません。
ルール1:保守性を高くする 保守性とは、たとえば足し算の計算問題を出してくれるプログラムを作るとします。作成後に、足し算だけでなく、引き算や掛け算も追加したいとなったときに、機能の追加や修正を容易に行える特性を指します。
ルール2:コーディング規約を守る プログラミング言語を使ってソースコードを記述する際のルールをコーディング規約といいます。先ほど保守性の説明で、プログラムの変更や修正の話をしましたが、この作業はプログラムを書いた本人ではなく、別の人が行うこともあります。ソースコードの書き方は1つだけではないので、他の人が作ったプログラムを読むこと、理解することはとても難しいです。これを解消するために、コーディング規約があります。書き方のルールがあれば、だれが作成してもある程度同じものが作成できるため、プログラムの理解や修正作業がしやすくなります。
ルール3:可用性を高くする 可用性とは、システムを停止することなく継続稼働できることです。たとえば計算問題のプログラムで「1+1=?」という問題に対して、「あ」と入力すると、プログラムはエラーを起こしてしまいます。数字がくると想定していたのに、文字がきたからです。しかし、プログラムを作成する段階で、もしかしたら間違えて文字を入力してしまう人がいるかもしれないと考え、文字がきた場合には「もう一度入力しなおしてください」と表示させるように例外処理を用意することで、エラーの発生を防ぐことができます。
最初は実行できればいいやという考えだったので、先輩からの合格が出るまで大変でした。最初のころに作ったプログラムを見返すと成長を実感します!
ここで、特に大変だった問題を2つ紹介します。
課題紹介①:『硬貨管理プログラム』【要件】 ・500円、100円、50円、10円、5円、1円が、それぞれ何枚あるかを管理する。 ・5回硬貨の種類と枚数を入力し、その総額を表示する。
【実行写真】
【感想】 この課題は合格をもらうのに、20回くらい提出しました(ほかの課題は3~6回)。とても大変でした硬貨だけでなく紙幣も含むことや新たな種類の硬貨が追加されることを想定し、追加機能などの修正まで考慮して作成することが難しかったです。また、他の人が見てもわかりやすく、管理しやすいように作成することが大変でした。途中で何回もJavaが嫌いになりそうでしたが、最終的なソースコードは自分でも感動したくらい綺麗に作ることができました!
課題紹介②:『シーザー暗号プログラム』※シーザー暗号とは各文字をそれぞれ同じ文字数だけずらして作成する暗号 例)「YAKINIKU」をシフト値「5」で暗号化 → 「DFPNSNPZ」
【要件】 ・ユーザーからテキストとシフト値を入力として受け取り、そのシフト値に基づいてテキストを暗号化する。 ・ユーザーからテキストを入力として受け取り、全てのパターン(シフト値が1~25の時)で復号した文字列を出力する。 ・メニューを表示し、ユーザーが暗号化または復号化を選択できるようにする。
【補足】 ・アルファベット以外の文字はそのまま出力する。 ・大文字と小文字を区別して処理する。 ・シフト値の範囲は「1~25」の間とする。
【実行写真】
【感想】 この課題も15回くらい提出して合格をもらえたので、とても大変でした。この課題は、アルファベット以外の数字やひらがななどもシーザー暗号で処理したいと要件が追加された場合のことを考えて作成することが特に大変でした。今必要とされているものだけでなく、今後要件が追加されたときに、修正や機能の追加のしやすさまで考慮して開発しなければいけないということを学ぶことができました。
【最後に】ここまでで紹介した問題以外にも、パスワード自動生成プログラムや計算問題ゲームのプログラムを作成しました。回を重ねていくごとに、少しずつコーディング技術や保守性が身に付き、先輩に指摘される前に自分で気づくことが増えました。まだ、基礎演習問題の11問目(社員管理システム)の途中なので、引き続き取り組んでいきます。配属されたときは苦手で嫌いだったJavaですが、Java課題を通してうまく実行できた時の達成感や実際の業務で活かすことができたことから、ちょい好きになりました!まだまだ先輩方に教えてもらうことが多いですが、たくさん学びJavaの天才になれるように頑張りたいと思います👩💻 |
こんな社員がいる会社であなたも働きませんか?
タグ: OJT, 学生さんへ, 新人, 新人教育, 新入社員