はじめに
はじめまして!2022年4月よりIT企業に入社した新卒の者です。
今回私の初投稿ということで、入社して初めてプログラミングに触れた私が苦労したことや行った対処方法について、プログラミング未経験者(言語Java)の目線でご紹介していきたいと思います。
簡単な自己紹介
- 年齢:23歳
- 大学での専攻:国際政策学、ソーシャルビジネス
- プログラミング経験:ほぼ皆無(コンピュータ演習の授業で少しだけHTMLを学びました)
- 趣味:一人旅、キングダムにハマってます(アニメも漫画も両方!)
- 得意なこと:外国語(英語・ロシア語)、運動全般、ペン回し、タイピング
入社してから
実は、私自身何か新しいことに挑戦することが好きだったのでIT企業に入社直後、私の心境としては、「全くITに関することは分からないけれど、何か面白そう!」という感じで、とにかく新鮮でワクワクした感情が強かったです。上記の自己紹介にも記載いたしましたが、大学時代は「国際政策学」というITと全く関係のない分野を学んでいたので、完全にゼロスタートでした(笑)
実際に技術研修が始まり、言語はJavaを中心に学んでおりました。いざ学んでみるととにかく専門用語だらけで、「自分の理解」と「講義のスピード」が全く追い付かず苦労しました、、、「変数と引数の違いって?」「型?」「コンソール?」「コンパイル?」「デバッグ?」「リポジトリ?」などなど。挙げたらキリがありません。まさに「ナニソレオイシイノ」状態でした。特に「引数」に関しては最初「(いんすう)」と読んでいたレベルです(笑)
しかし、一番私が苦しめられたのが「エラーメッセージ」でした。実際にどうやってエラーメッセージと向き合っていったかについて詳しく紹介していきたいと思います。
Error messages really got on my nerves,,,(とにかくエラー文にイライラしてた、、、)
エラーメッセージの多さには本当に苦労しました。「こんなにエラー出てくるのか~、、」と(笑)。エラー処理をしていく中で、特にエラー解消の妨げとなったことはエラー文の英語が読めてしまったことでした(海外経験もあったので英語は得意な方です)。
「え?何言ってんの?英語読めたら有利じゃん!」って思われるかもしれませんが、意味が全てわかってしまうからこそ、最初から最後までエラー文を読んでしまい時間がかかってしまったり、英語を直訳して余計意味が分からなくなってしまったりといったことがありました。特に研修期間中はあまりにイライラしすぎてPCの電源を切りたくなった時もありました(笑)。
自分なりに行った対処法
ものすごく基本的なことかもしれませんが、実際に普段行っているエラーの対処法を以下にまとめました。
〇 まずエラーステータスを確認する
400か403か404か500か?(よく起こしがちなエラーステータス)
〇 小さな仮説を立てる
例)「not present」って書かれてるから、書き漏れがあるのでは?
〇 Caused by 以下の文をコピペ→検索
だいたい似たようなエラーを起こした人の記事を読み、参考にする
〇 人に聞く
最後はもうこれに尽きます。臆せず聞きましょう!
(私の場合、15~20分悩んでダメだったら質問するようにしています)
振り返ってみて気づいたこと
1. 何度も同じエラーを起こす
特に私が起こしたエラーをご紹介します。以下3つです。
- 単純なタイプミス(変数名など)
- 引数が間違っている
- 型が違う
私はタイプミスが非常に多く、単純なタイプミスだけでなく「余計な半角スペースがあった」「大文字小文字」などが原因で、よくエラーを起こしていました。
引数や型については概念の理解が甘く、「それっぽくテキトー」に書いてしまっていたことがありました。このとき改めて、概念理解の重要性を痛感させられました。。。
2. 質問の仕方が何より重要
分からないことが多い中、自分で調べて解決できたことが私自身あまり多くありませんでした。自分で解決できないと発覚した際に、「これはもう誰かに質問するしかない!」となったのですが、最初のころ、私の質問の仕方はかなりBadでした。。。例えば、「エラー出てしまったのですが、どうしたらいいですか?」や「対処法がわかりません、教えてください。」などなど。まさに丸投げ状態でした。
では、どんな質問ならgoodなのか?自分なりに改善したのが、「○○をしたくて、今ここのコードを触っていてエラーが発生しました。」「Caused by にエラー文がこう書かれているので、対処法はこの箇所を修正すべきでしょうか?」などとより具体的に質問し、『自分がどこまでわかっているのか』を明確にすることで、質問された相手も答えやすいはずだ!ということに気づきました。
3. ある程度、言語の概念を理解しておいた方がいい
お恥ずかしながら、研修中に講義の理解が追い付かなかったときは「○○を行うときは、こういうものなんだ!」という風に、かなり暗記に近い状態になっていました。
Java SE Bronze(1Z0-818-JPN)の資格取得に向けて勉強してから、研修では理解できていなかった部分やフワっとした理解で終わっていた部分を所々発見できました。例えば、「継承とインターフェースの違い」「オーバーロードとオーバーライドの使い分け」「コンストラクタのルール」などなど。(つい先日私もJava SE Bronze(1Z0-818-JPN)を受験し、得点率85%(合格基準60%)取れました!!Yay!)資格取得によって、自信がつくだけでなく言語の根本的な理解につながるので、資格勉強はぜひオススメです。
最後に
今回は、プログラミング経験ゼロスタートの私がエラー処理の向き合い方についてまとめました。だいぶエラー処理が一人でこなせるようになってきました。しかしながら、まだまだ悪戦苦闘中の身で、できないことも多いので他の方にヘルプをお願いすることもあります。予期せぬエラーが起こっても、しっかりと向き合い冷静に対処し、自らのスキルアップに向けて努力していこうと思います。この記事が多くの方に、特に私と同じようにプログラミング初心者の方にとって参考になれば幸いです。長々とした私の投稿を最後まで読んでくださりありがとうございました。