【プログラミング未経験でもプログラマーになれるのか!?】 IT業界未経験者がプログラマーに転職する方法を解説!

この記事は約9分で読めます。

IT業界では働いているけどプログラミングはまだ勉強中だけど今後はプログラマーとして働きたい。

プログラマーとして働くにはどうすればいいかな?

IT業界での業務経験はまだないけどプログラミングを今後勉強してプログラマーとして働くことはできるかな?

このような疑問についてこの記事では解説します。

このブログを書いております私は、30歳の時に未経験からIT業界に転職をしました現役エンジニアです。

今回はプログラミング未経験の方がプログラマーとして就職や転職が可能なのか、私の経験から解説していきます。

Search

プログラマーという職業

プログラマーという職業に関してはみなさんご存知だと思います。プログラミングをしてシステムを作る人がプログラマーですよね。

プログラマーのお仕事としては、プログラミングして作ったシステムの品質をチェックする必要もあります。これをテストと言いますが、テストに関しては大小様々ありまして、このプログラマーが行うテストに関しては一番最初に行われる単体テストと呼ばれるテストを行うことになります。

プログラミングに関しては、興味がある方は勉強されていると思いますが、プログラミングの種類は様々ありますよね?

インターネット上でも稼げるプログラミング言語はどの言語なのか?みたいな記事もよく見かけたりします。

そのような話題が出るくらいプログラミング言語に関しては、

  • どのようなシステムなのか?
  • その時の流行り
  • 拡張性
  • 構築時間、コスト
  • 他のツールやミドルウェアの連携

上記のような影響により、人気の言語が変わってきます。

プログラミング言語はコンピューターを動かす手段になりますが、プログラミング言語によって得意なことや不得意なことがあるので、場合によっては複数のプログラミング言語を使えるようにならなくてはなりません。

プログラミング言語

プログラミング言語についてここでは少し触れておきます。

よく使われるプログラミング言語としてはjavascriptになるでしょう。javascriptは使用頻度が高いプログラミング言語のため、人気がありjavascriptが使えるプログラマーは年収が高いと言われています。

使用頻度が高い理由としては画面の存在しているWEBシステムには必ずjavascriptは使われていますjavascriptはクライアントサイドの言語ですが、node.jsというjavascriptのフレームワークを使うことでサーバーサイドのプログラムも書く事ができます。その為node.jsのフレームワークを学習することで画面の関係するクライアントサイドのコーディングからサーバーサイドのコーディングまでjavascriptでプログラミングできてしまいます。

このように実際のアプリケーションやシステムではフレームワークが使われることが一般的でして、このフレームワークの拡張性や使いやすさでもプログラミング言語の人気は変わってきます。

プログラミング言語には人気がそれぞれありますが、古い言語は使われなくなってくることもあります。

COBOLコボル)というプログラミング言語は最近使われなくなってきているということで有名ですね。

逆に新しいプログラミング言語としてはGo言語(Golang)が最近作られました。このGo言語はGoogleが開発しており社内のソフトウエアの開発に使われているようです。このようにプログラミング言語は時代によって変わりますので、プログラマーは都度新しいプログラミング言語をリサーチすることも必要でしょう。

フレームワーク

プログラミングの勉強って結構楽しいですよね、プロゲートなんかでも楽しくプログラミングを学ぶことができます。でもね実際のサービスで使われているプログラムはかなり複雑なんですよ。

Progate(プロゲート) | Learn to code, learn to be creative.
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

プロゲートで例えばjavaやrubyのプログラミング学習の項目とかあると思うのですが、このjavaやrubyだけでアプリケーションを作るというのは実際のWEBサービスですとあまりないです。

javaであればspringbootやStrutsなどのフレームワークを使って構築されることが多いです。javaは構築に時間がかかると言われておりフレームワークを使うことで時間の短縮が可能です。またjavaはサーバーサイドの言語ですので、htmlの画面にjavaのプログラムを表示する為にフレームワークをのテンプレートエンジンを使ってレンダリングのコードを入れて表示させるのが一般的です。

rubyであればこのruby単独だけで勉強するという方はまずいないと思うのですが、フレームワークとしてruby on railsがあります。rubyのフレームワークはこのrails一択なのでrubyのプログラミングを学習するということはruby on railsを勉強する必要があるということです。ruby on railsを使うことでアプリケーションに必要な構成がすぐに用意ができますので、開発がスムーズに進むことができます。

htmlと親和性の高いphpのフレームワークはlarabelやCakePHPが人気になっています。phpはフレームワークを使わないでもWordPress(ワードプレス)などに使われています。画面表示に関係するhtmlとの親和性が高いため、フレームワークを使わなくてもphpのプログラムでデータをやり取りして画面に表示することが可能なためです。

MVC 【 Model-View-Controller 】

MVCとは、ソフトウェアの設計モデルの一つで、機能を「Model」(モデル)、「View」(ビュー)、「Controller」(コントローラ)の三つの役割に分離して実装し、それらが連携して処理を進める方式。

Modelはデータの管理や手続きを扱い、Viewは他の二要素からの指示を受けて利用者への表示・出力(の変更)を行い、システムによっては利用者の操作・入力内容をControllerに伝達する。Controllerは利用者からの操作や入力を受け付けて解釈し、ModelやViewに対応する処理を行うようメッセージを発する。

フレームワークはこのMVCの構造を持っています。

Viewは画面の表示に関するパーツになっており、表示に関してはhtmlを表示しますが、データベースの情報などもhtm上で読み込み動的に表示内容を変えています。

Model部分ではControllerからの指示により、データベースの書き込みや更新、削除といった内部的な処理を行います。

Controllerでは

  • Viewからの入力情報や操作情報を受け取る
  • ブラウザからのリクエスト情報やクエリ情報を受け取る
  • 表示するhtmlをリクエストにより出し分ける(ログイン画面のURLならログイン画面のhtmlを表示など)
  • Viewからの入力情報や操作情報を元にModelに処理を渡す
  • Modelに処理を渡して帰ってきたデータをViewに渡す

というような事を行っています。Controllerは忙しいです。

これを見ていただければわかると思いますが、データベースが存在するアプリケーションの構築にはこのような処理が行われているということがわかりますね。

フレームワークはMVCの構造を使って、これらの処理を別々に切り出して実装を行うことで、管理しやすくしています。またフレームワークを利用することで、標準のセキュリティ対策もデフォルトで実装されていることも多いですので、一からプログラミングをしていくよりも安全です。

フレームワークのデメリット

フレームワークのデメリットとしてはプログラミング言語とは別にフレームワークの学習が別途必要になるということと、自由度がなくなるということと言われています。

それともう一つ別途環境構築が必要になるということですね。

個人的には自由度がなくなるということに関しては、不自由に感じるレベルまで極められていないので、実感は湧きませんが、フレームワークの学習に関しては、覚えたり、知っておかなくてはならないことが一気に増えますので、学習コストが増えるのは間違いないでしょう。

フレームワークの中でもrubyのruby on railsに関しては環境構築さえしてしまえば、コマンド一つで先ほどのMVC構造を持ったプロジェクトが作れてしまうので、様々なフレームワークの中でも素早くアプリ開発に取り組めます。

プログラミング初心者の方で、rubyを勉強した方がいいというのはこのruby on railsがこのような特徴を持っているからだと思われます。

ベンチャー企業やスタートアップの企業等ではこのrailsが素早くWEBアプリケーションが作れるということから積極的に採用をしているようです。

プログラミング初心者はrubyのフレームワークであるruby on railsを学習することでプログラマーとして就職する近道になるかもしれません。

ただしruby on railsでも苦手な分野はあります。

例えばアンドロイドアプリやiPhoneのアプリなどは別の言語で作られますし、今注目を浴びているAIに関しても、Pythonというプログラミング言語が使われており。これからさらにAIの技術が進んでくる事を考えますとこれからプログラマーを目指す方はPythonを学習してプログラマーを目指すのも良いかもしれません。

プログラマーとして働くにには

プログラマーとして働くには当然プログラミング言語が使えなくてはいけません。プログラムを読むだけではなく、プログラミングをコーディングできる力が必要になります。プログラミング言語は種類はありますが、共通部分も多いので、一つのプログラミング言語をマスターすることができれば、他のプログラミング言語であっても、理解ができます。

ただフレームワークの知識に関してはそれぞれ使い方が変わりますので得意なフレームワークを集中的に学習することが重要でしょう。

これまでの解説の内容のまとめになりますが、

プログラマーを職業とするためには

  • 需要のあるプログラミング言語を集中的に学習する
  • フレームワークについて学習する
  • MVCについて学習する
  • テストについて学習する

ということが必要です。

テストについては、単体テストになりますが、プログラマーはテストコードを書く事もあります。その為テストコードの書き方も学習する必要もあるでしょう。そしてテストコードなどを使わず手動で動作確認する場合は場合、テスターの方に実施してもらうということもあると思いますが、その場合はプログラムの仕様がわかっているプログラマーがテスト仕様書を作成することになるでしょう。

このようなことからプログラムをただ作るということだけでなく、作ったプログラムが正しく動くかどうかを判断できる知識や技術も必要になるということになります。

この記事のまとめ

プログラマーとして働くためにはどのような知識や技術が必要か?

ということについて解説してきました。プログラマーはプログラミングを行うだけでなく品質にもこだわる必要があります。バグは人間が作っている以上必ず出てしまいますが、重大なバグはテストを行うことで、事前に修正することができます。

その為、作っているプログラムがただ動くだけではなくイレギュラーな想定も見越してプログラミングを行う必要があります。エラーハンドリングなどと言われたりしますが、想定外の操作や、ネットワーク上のエラー、サーバーのエラーなど様々な状況でエラーを制御するプログラミングを書くのもプログラマーのお仕事になります。もちろんセキュリティ対策も行わないといけません。

これらは一から学ぶと相当大変ですので、IT知識がゼロの状態からこれらを独学で学習しようとした場合は、挫折する可能性が非常に高いです。

IT業界未経験の方や、プログラミングについて知識がない方でしたら、プログラミングスクールを利用してプログラミングについて学習し、プログラマーに転職するということが現実的です。

IT未経験の方におすすめのプログラミングスクールに関しては以下の記事にてまとめていますので確認してください。

No tags for this post.

コメント 記事に関するご意見・ご感想・ご質問などお気軽にどうぞ!※メールアドレスは非公開です

タイトルとURLをコピーしました