こんにちは。ブロガーのmiraiです。
今回はプログラミングについて記事を書きます。
今からプログラミングを始めたいという初心者にとって、最初戸惑うことは、どの言語から勉強すれば良いの?ということです。
プログラミングとネットで検索をすると、いろいろなプログラミング言語の情報が出てきてしまい、どれから学んでよいかわからないですよね。
僕もプログラミングを始めた時は、聞いたこともない横文字の連続に戸惑い、苦労したことを覚えています。
プログラミング初心者にJavaをお勧めできない理由を5つ解説します。
プログラミングについて調べていくと、必ずJavaという言語が出てくると思います。
Javaは国内でも開発案件が多く、数あるプログラミング言語の中でも人気の言語ですが、プログラミングを始めたばかりの初心者にはあまりおすすめできません。
今回はプログラミング初心者にJavaをお勧めできない理由を5つ解説します。
Javaはプログラミング初心者が挫折しやすい
Jsvaという言語はオブジェクト指向型のプログラミング言語と言われ、初心者が学習する言語としてはハードル・難易度が高めです。
また学習していく上で、専門用語(クラス・メソッド・インスタンス化・インターフェイス等)が頻出し、覚えることがたくさんあるため、学習するにつれて難しくなっていきます。
僕が初めて触れたプログラミング言語はJavaでしたが、学び始めた当時を思い出すと、自分の飲み込みの悪さに絶望した記憶があります。
Javaは開発環境を整えるだけでも大変
JavaをPCで動かすためには、開発環境を構築しなければいけません。
この開発環境を構築する作業で、何人も初心者が挫折しているのが現状です。
せっかくプログラミングを学習しても、開発環境が出来ていないから、何もできない・何も始められないということです。
僕は開発環境がなかなか構築できずに、1週間ぐらい時間を無駄にしてしまったことがあります。あの時間は無駄だったなと今でも思います。
僕の過去の仕事でのエピソード
僕は昔Java案件の開発のために、客先常駐という形でとある会社に出向していました。
その現場では、Javaを使って開発を行うのですが、開発に入る前の開発環境構築にえらい時間がかかった記憶があります。
先輩などに聞いても、開発環境を構築するのが苦手な方が多く、とても困りました。
また現場によって開発環境の構築手順が変わってくるため、現場が変わったら都度構築しなければいけません。
実際の現場だと、独自のJavaフレームワークを使用しているケースがある
プログラミング初心者がやっとの思いでJavaを学習して、いざ現場に入ってみたら、現場独自のフレームワークを使用していたというケースはよくあります。
Springなどの定番Javaフレームワークではなく、ベンダー会社が開発した独自のフレームワークのため、そのフレームワークについて学習したくても、現場のマニュアルを読み込むしかないのです。
またその現場でしか使われていないフレームワークのため、他の現場などで経験が生かせることはありません(Javaの案件を担当したという実績はつきますが・・・)
Java初心者は良い案件に携われないかもしれない
Javaを学習して3ヵ月ぐらいの初心者に、いきなりゴリゴリの開発案件を依頼するケースは少ないと思います。
つまり、Java初心者が最初に紹介される案件というのは、エンジニアでなくても誰でもできるようなテスト作業が多いです。
よく業界ではテスターと呼ばれます。
最初はテストをこなして、徐々に開発案件にシフトできれば良いのですが、そんなキャリアを保障してくれるかは分からないですよね。
ちなみに当時僕の先輩だった40代ぐらいの方は、10年ほど同じ現場で働き、テスト作業やマニュアル整備の仕事しか振られなかったそうです。
当然その先輩にJavaの技術について質問をしても、「普段プログラミングをしていないから分からない」と言われました。まさに運に左右されるということです。
Javaはコードの記述量が多い
Javaという言語は、コーディングする際の記述量が多い言語です。
例えばRubyで書くと1行で済むコードが、Javaで書くと5行になることがあります。
プログラミングは、一文字誤りがあるだけで上手く動作しないため、初心者の方がいきなりJavaを書くとエラーが多く出てしまうと思います。
エラーをすぐ解決できれば良いのですが、Javaのエラー解決についても、初心者の方にとっては大きな壁となるでしょう。
まとめ:プログラミング初心者は自分のレベルに合った言語を選ぼう
せっかくプログラミングを学習したのに、難解すぎて途中で辞めてしまったという人は多いと思います。
そうならないためにも、自分が理解できるプログラミング言語を学習することをお勧めします。
自分が無理のない範囲で、プログラミング学習を進めていきましょう!
ではまた^
コメント