プログラマー初心者blog

当ブログにようこそ!!!

【新入社員日記】IT業界のしんどいこと

みなさんこんばんは!

私は今の会社に入社して約半年が経ちます。

時が流れるのは早いですねえ...早く自分の会社を立ち上げたい...

頑張るのみですね!!

入社して自分が辛いと感じたことについて説明していければと思います。

感じたことは、

  1. 業務中あまり喋らない
  2. 書類多い
  3. 眠たい

この3つが代表的なしんどいことと言えます。

1.業務中あまり喋らない

IT業界はPCと向かい合うことが1日のほとんどです。

新入社員なのでよく上司に質問をすることがありますが、

その時以外は喋っても「これからサーバー再起動するよー」ぐらいの会話。

チームでも朝の会議ぐらいで5分くらい連絡事項を伝え合い、

それから、1言も喋らない方もいます。

IT業界では証拠といった記録を残すことが重要になってくるので、

目の前にいても直接伝えず、チャットで伝えることも度々あり

喋るのが好きな人からしたらあまり向いていないのかと思ってしまいます。

自分自身も、もっと喋りながら業務をしたいのですがそのような雰囲気ではなく、

結構きつい思いをしています。

なので、喋るのが好きな方はあまり向かないかもと思います。

資料が多い

入社して感じたのは資料(ドキュメント)がとても多いということです。

すべて1台のPCで業務を行うので、

そこに会社の資料が存在していたり、複数の作業を行ったりと莫大な数のものが存在します。

そのため、どこに何の資料があるのか見つけられず苦戦することが多々ありました。

日頃からの整理ってとても大事なものなのだなと痛感しました。

1つの業務でもExcelやWordの資料だけでなく、プログラムが書いてあるものなどとても多くの資料があり、最初は頭がこんがらがってわけもわかっていませんでした。

もともとIT系の知識があればこれはこのような資料と見当がつくのかもしれませんが

慣れるまでかなり苦しかった記憶があります

正直これに関してはどの業種でもあるとは思いますが、特にIT系の会社は多すぎる...

明日整理しよ笑

3.眠たい

これに関してはシンプルに眠すぎます

前日の2時や3時に寝てしまったらもう次の日の業務は地獄です。

いろいろ対策法をネットで調べて試すのですが、どれも僕の睡魔には勝てません

外に空気を吸いに行ったり、目薬を指したり、ツボを押したり、

コーヒーを飲んでカフェインを摂ったり、ガムを噛んだりいろんなことを試してきました。しかし、どれを試してもだめでした。

1の会話が少しでも増えれば楽なんでしょうけど、

難しいことに直面して考え事をしているときが1番眠たくなります。

昼休憩が始まった瞬間に眠りについて起きたら40分くらいが

経過していることも少なくありません。

唯一、目が冷めたのはコーヒー飲みすぎて気持ち悪くなったときくらいです。

自分の体調を崩すのが1番の解決策なのか...

どなたか目が覚めるいい方法があれば教えていただければ幸いです,,,

私はIT業界に向いているのでしょうか...とても不安です笑

それでは明日寝ないように早く寝ようと思います。

それではおやすみなさい(-_-)zzz

【JavaSilver合格記】絶対合格できる勉強法

みなさんお久しぶりです!

これだけ投稿が空いてしまったのはJavaSilverの試験勉強に専念していました。

結果は無事合格でした。合格ラインは63%で私の得点は84%でした

Javaを触り始めて5ヶ月程度でもすぐ合格することができました。

もっと前から勉強していたら3ヶ月で取れるくらいの難易度かもしれません。

簡単に合格する方法

私がなぜ余裕を持って合格することができたのか、

それは、JavaSilver黒本のおかげです。

【新品】Java SE 11 Silver問題集〈1Z0-815〉対応 試験番号1Z0-815 志賀澄人/著 ソキウス・ジャパン/編

価格:3,740円
(2021/9/7 23:22時点)
感想(0件)

この本1冊あれば誰でも合格することができるでしょう。

私はこの本を4周程度やりましたが、理解が早い人でしたら2周くらいでいけるかも

なぜ、この本が良いのか説明します。

  • 試験と同じ問題が出題される
  • 解説が丁寧なのでわかりやすい

この2つが私がとても助かった部分です。

試験と同じ問題が出題される

私は試験前日に模擬問題が2つこの本には用意されていて、

その模擬問題を解いたら58%と不合格の位置づけでした。

しかし、前日にそこで間違えた問題を洗い出して、

もう一度解くといったことをしていました。

しかし、もう一度解いたところで理解はできてはいませんでした。

この問題の場合はこのような答えだなという浅い理解はしている程度だったのですが、

試験に挑んだらこの問題見たことあるな、このパターンはここを確認して

「答えはこれだ」という感じであまり理解していない問題でも解くことができました

文章問題でも問題、選択肢もほとんど同じでとても解きやすかったことを覚えてます。

そのため、黒本の模擬問題をしっかり解くということが重要になってくると思います。

解説問題が丁寧

なんといっても解説が丁寧です。黒本の半分以上が解説してくれていると思います。

なかなか難しい問題でも解説を読めば大抵のものは理解できます。

私はちなみにモジュールシステムは全くの無知でしたが、

試験1週間前でも試験問題は解けるようになるレベルになることができました。

また、わからない部分は黒本の著者が出しているyoutubeチャンネルを見たりして、理解を深めるようにしていました。

youtubeのチャンネルURLはってます。

javasilverを受けない人でもとても勉強になるのでおすすめです。

www.youtube.com

 

試験注意事項

この黒本を勉強したみなさんならもう合格する能力はお持ちでしょう。

その皆さんに注意していただきたい点は2点あります

  • 問題のフォントが見にくい

問題を開始するを押して試験問題を見た瞬間、私は頭が真っ白になるくらい

問題のフォントが見にくく解きにくかったです。

しかし、問題を解いていくうちにそのフォントにもなれてきました。

そのため、最初はその問題を解くのに苦労するため、

見直しをきちんとすることをおすすめします。

  • 引っ掛け問題対策

なんといってもjavasilverはひっかけ問題が多いです。

その問題を落としてしまう方も少なくないのではと思います。

そのため、試験の事前に以下のものを見直すことをおすすめします。

qiita.com

これを私は試験前に見て自分にこの系統の問題が出たら注意して解くことと

暗示していました。

そのため、引っ掛け問題にも惑わされず解くことができました。

これからjavasilverを受ける方、黒本は必須のものだと思います。

ご購入をおすすめします。

それでは明日も頑張りましょう!!

おやすみなさい!!

【JavaSilver】難題(多次元配列)

皆さんこんばんは!

連休の始まりだー!!!

最近業務にもなれてきたのですが、座りっぱなしということもあり

足がだるくなってしまいます。

何かいい方法があれば教えていただきたいです🙇‍♂

多次元配列

JavaSilverの問題を解いている中でイメージができなく、

解答ミスばかりしてしまった多次元配列について話していければと思います。

多次元配列とは

配列の要素に別の配列の要素を格納しているものを多次元配列と呼びます。

2層の配列で成り立っているものを「二次元配列」といいます。

また、2層目の配列の中に別の配列の要素を格納しているものを「3次元配列」といいます。

二次元配列のインスタンス生成

これから紹介する方法はどちらも順序は違いますが同じインスタンスを生成します。

① int[ ][ ] array = new int[3][3];

このように記述すると1次元目と2次元目の配列インスタンスが同時に生成されます。

このコードは次の順序で動作します。

  1. 3つの要素を持った1次元目の配列インスタンスが作られる。
  2. 3つの要素を持った2次元目の配列インスタンスが3つ作られる。
  3. 1次元目の要素として、3つの2次元目の配列インスタンスへの参照が代入される。

1次元目と2次元目の配列インスタンスを同時に生成せず、

1次元目の配列インスタンスを生成し、あとから2次元インスタンスを生成する場合

②int [ ][ ] array = new int [3][ ];

 array[0] = new int[3];

 array[1] = new int[3];

 array[2] = new int[3];

このように1次元目と2次元目を別々のタイミングで生成することができます。

このとき、1次元目の要素を指定せずに2次元目の要素数を指定することはできません。

1次元目の要素数を省略するとコンパイルエラーが発生します。

また、今回の例では2次元配列の要素をすべて3に合わせていますが

それぞれ異なる要素数を持つ配列への参照を持つことも可能である。

多次元配列の初期化

多次元配列に値を直接代入する方法です。

int[ ][ ] array = { {2,3}, {4,5} } ;

これで直接値を入れることができます!!

 

なかなかイメージがしにくい多次元配列ですが、三次元配列であっても

一つ一つ切り分けて考えるとわかりやすいと気づきました。

JavaSilverの問題でも出てくるので抑えておきましょう。

それでは(つ∀-)オヤスミー

【Javasilver】難題学習(DateTimeFormatterクラス)

皆さんこんばんは!

本日はかなり暑かったですね^^;

熱中症や脱水症状には気をつけてくださいね。

それでは昨日の復習です。

LocalDateクラスやLocalDateTimeクラスで使用する

parseメソッドではどんな文字列にするかを指定するフォーマッターを

引数に受け取るものでした。

使用例:LocalDate.parse("2021-01-01",DateTimeFormatter.ISO_DATE)

ここで使用するDateTimeFormatterクラスについて本日学習していきます。

ofPatternメソッド

ofPatternメソッドを使用して任意のデータに変えることができます

LocalDate.parse("2021-01-01",DateTimeFormatter.ofPattern("yyyy/MM/dd");

とすることで2021-01-01という文字列

2021/01/01という形に変換することができます。

定数

先程のofPatternメソッドで自ら作成した("yyyy/MM/dd")と毎回定義するのは大変です。変わりにDateTimeFormatterではパターン文字の書式を毎回作らなくてもいいように

定数が定義されています。それの定数を紹介していこうと思います。

代表的な定数(JavaSilver)              

・BASIC_ISO_DATE    例:20210101

・ISO_ZONED_DATE_TIME  例:2021-01-01 T00:00:00+09:00[Asia/Tokyo]

・ISO_INSTANT           例:2021-01-01 T01:00:00Z

・ISO_DATE_TIME      例:2021-01-01 T00:00:00

・DATE_TIME                      例:06:00:00.123

など複数あります。

BASIC_ISO_DATEは日付の区切り記号がない年月日を表す書式になっています。

ISO_ZONE_TIME、ISO_INSTANTはゾーン付きで時刻を表したいときに使用できます。

ISO_DATE_TIMEは年月日に追加して時刻を表すことができ、

DATE_TIMEは時刻を表す書式となっています

これらの使用方法は、先程紹介した("yyyy/MM/dd")などの箇所に

DatetimeFormatter.ISO_DATE_TIMEなどの書式で入れると

自動的に変換してくれます。

しかし、年月日までしか文字列として用意していないのに

時刻までを指定するものを定義すると例外がスローされるので

形を合わせるように工夫していきましょう。

 

それでは、みなさん金曜日頑張りましょう!!

(つ∀-)オヤスミー

【Javasilver】難題学習(LocalDate)

皆さんこんばんは!

本日はJavasilverの問題を解いてきて難しかった問題などを自分の学習を含めて

共有しようと思います。

私はちなみにjava歴は4ヶ月で勉強したのは

「スッキリわかるjava入門第3版」の1冊のみで基礎的な知識はほとんど身につきます。

以下のリンクからどうぞ。

 

スッキリわかるJava入門第3版 [ 中山清喬 ]

価格:2,860円
(2021/8/4 23:41時点)
感想(6件)

 

そして、この本を勉強し尽くしてきた私が解けなかった問題をご紹介し、

一緒にjavasilverの合格を目指しましょう。

LocalDateクラス

LocalDateは、日付(年-月-日として表示されることが多い)を表す不変の日付/時間オブジェクトです。他の日付フィールド(「年の日」、曜日、「年の週番号」など)にもアクセスできます。たとえば、「2007年10月2日」という値をLocalDateに格納できます。 ※引用JAVA Platform SE 8

 そしてよく問題に出てきていたのがLocalDateクラスの

  • nowメソッド
  • ofメソッド
  • parseメソッド

でした。

nowメソッド

こちらのメソッドではデフォルトのタイムゾーンのシステムクロックより

現在の日付を取得することができます。

取得できる形【yyyy-MM-dd】という形です。

Localdate.now()とすることで

現在の日付を取得することができます。

ofメソッド

ofメソッドでは年、月、日の3つの引数を渡して指定した日付を表すインスタンスを生成するためのメソッドです。

こちらは、nowメソッドと同じく、【yyyy-MM-dd】の形で取得することができます。

本日の日付の取得を行うとすると、

LocalDate(2021,8,4)とすれば日付を現すインスタンスを取得することができます。

parseメソッド

parseメソッドは文字列からLocalDateのインスタンスを生成するメソッドです。

parse( 文字列の日付 , 書式-DateTimeFormatterクラスの定数)で使用します。

使用例

LocalDate.parse("2021-8-4",DateTimeFormatter.ofPattern(yyyy/MM/dd)

とすると【2021/8/4】という形に変換され、戻り値として返ってきます。

 

これさえ覚えればLocalDateTimeクラスについてはクリアでしょう。

parseメソッドで使用していたDateTimeFormatterクラスで割と躓いていたので

明日はそれに触れていこうと思います。

それでは(つ∀-)オヤスミー

Javasilver対策を完璧にしたいと思います。

【新人日記】List,Set,Mapの使い分け

皆さんこんばんは!

先程、野球日本代表がアメリカに勝利していてとても鳥肌が立ちました!!

でもまだ月曜日ですね^^;

今週頑張れば休日は三連休!!

そしてお盆という楽しみが待っているので頑張っていきましょう😎

それでは、私が本日学んだものは

  • Listインターフェース
  • Setインターフェース
  • Mapインターフェース

これらは複数の値を収納できるのですが、使い分け方をわかりやすく教えてもらったので皆さんに共有しようと思います。

まず、これらのクラス図で大まかにイメージを掴んでいただきたいので

f:id:PGma-kun-blog:20210802231835p:plain

引用:CodeChallenge

URL:shimapuku.com/programming/java-basic/list-set-map-difference#toc1

Listインターフェース

Listは知られている方も多いと思います。

可変長の配列であり、複数のデータを入れることができます。

ListのインターフェースよりArrayListLinkedListを実装することができます。

LinkedListは実装したことがありませんがArrayListとほとんど同じものだそうです。

しかし、処理能力に差があり、

LinkedList要素の追加、削除に優れており

ArrayList要素の検索に優れています。

Setインターフェース

setインターフェースは可変長配列の1種なのですが、

Listと少し違うところがあります。

それは同じ要素を入れることができません

これでパラメータの制御をすることができます。

そして、

SetインターフェースよりHashSet,TreeSetを実装することできます。

この2つの特徴としては、

HashSetは、要素の順番は保証されませんが、

TreeSetは、要素の順番は並び替えられます。(アルファベット順など)

しかし、処理が高速なHashSetが基本的には使用されるそうです。

Mapインターフェース

Mapはキーを使って値を取得するようにできます。

主キーを使うだけで値を取得できるようなイメージです。

これでもHashMap,TreeMapを実装することができ、

Hashmapでは、一般的に使用されるものですが、並び替えがすることができません

TreeMapはそのような欠点を補うことができます。

 

それぞれの特性を活かして配列マスターになりましょう😎

それではおやすみなさい👍

【新人日記14】ユニットテスト spyBean

みなさんこんばんは!

今週もお疲れさまでした😎

最近はコロナ第5波が来て大変な状況になってきてますね^^;

手洗い・マスク・ディスタンスの感染症予防の基本を思い出して

みなさんで対策をしていきましょう!!

それでは私が本日学んだことをご紹介していきます。

spyBean

本日私が制作していたテストはコントローラクラスのものでした。

既存のテストはコントローラからSQLまでを一クラスで行っているものであり、

それにMockでコントローラクラスのみをテストするものを付け加えていくという

ことを行いました。

最初はMockBeanを使ってサービスクラスをMock化していたのですが、

これでは既存のものが動かなくなってしまいます。

既存のものはSQLまでをテストしていたのに、サービスクラスが使えなくなってしまうので当たり前といえば当たり前の話ですが、私は当然のようにミスしてしまいました笑

既存のものはそのまま動かして追加するものに対してはMock化を行う

どうするのか?

それはspyBeanを使用するということで解決します。

spyBeanは私の認識ですが、一部のクラスをMock化できるものであります。

これだけMock化したいけど他には影響を与えたくないというときは

@spyBeanを使いましょう。

コロナワクチン接種

最近コロナワクチン1回目の接種をしました。感想を先にいうと思ったよりも痛くないと思いました。周りのワクチンを接種した方はよく腕が上がらない位痛いみたいなことを言われていて正直怖がっていました。

自分はどのくらい痛くなるのだろうと怯えつつ接種を受けたのですが

想像以上に痛くなかったです。若干筋肉痛のようないい民はありますが、

腕も上がるし生活にはまったく支障はありません。

そのため、ワクチン接種を迷っている方がいましたら受けることをおすすめします。

一人一人が対策をすることでコロナに勝ちましょう。

本日は短いですがおやすみなさい😊