こんにちは 株式会社Nucoの某エンジニアです
1日目の記事でも紹介されている通り、弊社は主に機械学習に取り組んでいる会社です
業務の中ではPythonゴリゴリ書いているのですが、「好きに書いていい」とのことだったのでタイトル通りにJavaの話をしようと思います
私自身はエンジニアになる際にJavaを選びました
その時は何か理由があったわけではなく、とりあえずよく聞く名前の言語だから、って感じだったと思います
エンジニアになった後、Javaを使った業務アプリの開発を最初に経験し、MVCフレームワークだとかの概念を勉強しつつ仕事をしてました
最近までで「Javaをやっててよかったわー」って感じたことを苦し紛れに書いていこうかと思います
そんなに技術的な話題でもなさげな感じがしてどうも申し訳
・おしながき
- ネットで参照できるページ・記事が豊富
- ライブラリが豊富
- データの型を配慮する「クセ」
- Java経験からのAndroid開発
- Java経験からの他言語開発
### 1. ネットで参照できるページ・記事が豊富
個人のブログも含め情報がたくさん見つかります 特にJavaはあっとうてきだとおもいました(小並感)
スタック〇ーバーフ〇ーで英文のやり取りを頑張って解読しなくても、日本語でググるだけでもだいたい解決の糸口は見つかることが多いです
(でも英語が使えないとこの先しんどいのでそっちの勉強も頑張ろうね☆)
自分では結構限定的だと感じるような問題でも、同じような問題にぶつかった先人のノウハウが見つかることが多いので解決不可能な状態に陥りにくいと思います(Javaは特にそんな気がします)
まぁ
「Qiita」や「はて〇」含め、情報発信がかなり自由になった今では他の言語でも記事がそれなりに見つかるので、Java「だけ」のいいところ、ってわけでもないですけど…
2. ライブラリが豊富
「こういう処理があったらいいのにな」って思うような処理が使えるライブラリに出会える可能性がかなり高いです
自分で一から実装するよりも信頼性が高いことと、コードの量の削減→可読性の向上にもつながります
インポートしてその関数呼び出してやるだけで実装したい処理を実現できるのです しかも無料です 先人たちの知恵に感謝しつつありがたく使わせてもらいましょう
…楽をすることは、別に悪いことではないですから
Java始めて間もない方は"java stringutils"とググることから始めてみましょう きっと幸せになれます
3. データの型を配慮する「クセ」
Javaは処理を書いていて、メソッドからの戻り値を代入する変数の型を間違えていると即IDEがコンパイルエラーを吐いてくるので
いやってほどに「今の処理でどういう型のデータを扱っているのか」に気を遣う必要があります
最近の開発現場で「javac叩いて手動コンパイルする」なんてのはなかなかないだろうし、今やIDE先輩のお許しを得ないとRunさせてもらえません
型推論なんてものもデフォルトでは存在しないですし
小さい子供に矯正用のお箸を使わせて訓練するようなものです
正しい型を意識しながらコーディングする癖をつけること
他の言語に移ったときも必ず役にたつはずです
4. Java経験からのAndroid開発
まさに言語はJavaを使っているので、Android開発への道も開けるというものです
Android開発=スマホアプリ開発、だけではないというのを知っているのことも大事です
組み込み系の開発でもAndroidを採用している現場が多いので、Java単体のみを扱っている場合に比べて仕事の幅がぐっと広がります
過去に1年程そういう現場にいましたが、Androidの知識だけでなく実際のハードウェアをこねくりまわしながら開発をしていたのは楽しかったです
5. Java経験からの他言語開発
データ型の配慮の項目でもちょいと書いた話ですけど
Javaはとにかく「ルールにうるさい」言語です
あいまいな書き方をすると即座にエラーになります
「よしなに」「いい感じに」してくれることなんて期待してはいけません
hello worldをするまでのハードルの高さは皆さんご存知かと思います
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World !!");
}
}
↑1行出力するだけのためにこんなに宣言をしなければなりません
「プログラミング言語」が如何に複雑にできているかがわかります
最初は「おまじないだと思ってね」なんて言われることもありますが、決して「おまじない」なんかではありません
この5行の中に、Javaを使いこなすための基本的かつ、重要なエッセンスが凝縮されていると言っても過言ではありません
だからこそ最初に頑張って習得するだけの価値はあると思います
ちなみにPython↓
print('Hello World !!') # Simple is the best, huh?
最後に
つらつらと書いてきました
私のエンジニアとしてのキャリアの、その根底にはJavaがあります
1つの言語をある程度頑張って勉強すれば、他の言語を学習するハードルも下がります
そのハードルの下げ幅を一番大きくしてくれるのは、何よりもJavaだと思っています
縁あってこの記事を読んでくださっている方の周りにJavaで苦戦している人がもしいたら、優しく声をかけてあげてほしいです
「Javaを勉強しておくときっといいことがある」
ありがとうございました。