転職のためにプログラミングを勉強したときにやった5つのこと

プログラミング

はじめに

どうも。halmudaです。

私は転職のためにプログラミングを勉強して、約4ヶ月程度でWEB系の自社開発をやっている会社さんに行くことができました。

そのときに実施したことをまとめましたので、エンジニアやプログラミングに興味を持っている方は参考にしてみてください!

【STEP1】プログラミングを勉強する目的設定

私の場合、実際に勉強する前に、「プログラミングを習得して何がしたいのか」ということを考えるようにしました。

元々プログラミング自体は少し触ったことがあったのですが、当時は特に目的とか決まっておらず、だらだらと勉強し始めてしまっていました。そのため、モチベーションが上がらず、業務でも使わなくなった結果、**全くプログラミングをしない数年間を経験しました。

このように、何となく目的がないまま初めてしまうと、「いつまで勉強すればいいんだろう?」「これをやって何の役に立つんだろう?」といった疑問が生じてしまい、何かを作り出す経験をする前に私のようにプログラミングそのものをやめてしまう危険性がある**からです。

無論、こうした目標を設定しなくてもどんどん勉強が進むタイプもいると思います。しかし、こうした動機や目的がなければ途中で挫折してしまうことも多いのも事実です。期限や目的を自分なりに設定しておくと、効率よく学ぶこともできますので、一旦立ち止まって考えてみると良いでしょう。

ちなみに、私の場合はWEB開発業界に転職することを目的としていたため、オリジナルのWEBアプリケーションを1人で作ることのできるレベルになるという目標を設定しました。
他にも、もっとシンプルにTwitterやFacebookのようなSNSのWEBサービスを作ってみたい、ゲームアプリを作成してみたい、ロボットを作ってみたい、AIを作り出してみたい、などといった具体的にプログラミングで○○を作りたい!というのでも十分な理由だと思います。

【STEP2】プログラミング言語の選択

目的が設定できたので、次はプログラミング言語の選択をしました。言語を選択する上でのポイントを簡単に紹介します。

●プログラミング言語毎の特徴
どんなものを作りたいのかイメージできている場合は、それを実現するために適切な言語は何か?を調べると良いです。例えば、スマホのアプリで計算機作ってみたい!とかなら、iOS向けならSwiftだね!とかWEB系のサービス作るならPHPやRubyがよく使われる、など言語によってそれぞれ特徴があります。

以下にざっくりですが言語とその特徴を簡単にまとめました。

言語 特徴 難易度 情報量 利用サービス例
PHP Webサービスで利用される 簡単 多い WordPress、Zabbix
Ruby Webサービスで利用される 普通 特に多い Cookpad、モンスト
Python 機械学習につよい。Webサービスも可。 若干難しい 多い Youtube、インスタ
Swift iOSアプリ専任。Macでのみ開発可能。 普通 普通 iOSアプリ全般
Java Webサービス、Androidアプリ 難しい 多い Twitter、eclipse
Javascript HTMLのアニメーションなど 簡単 多い Webサービス全般

●プログラミング言語別の年収

プログラミング言語別年収中央値を発表、求人検索エンジン「スタンバイ」調べ
株式会社ビズリーチが運営する求人検索エンジン「スタンバイ」は、「プログラミング言語別年収ランキング2018」を発表しました。このランキングは、スタンバイに掲載されている正社員の求人情報約324万件を対象に、各プログラミング言語名が含まれる求人情報の提示年収の中央値を集計したものです。

1つの指標として、言語別の年収も公開されています。1位の「Go」は、2位の「Scala」は、3位の「Python」という結果のようです。難易度が高く、エンジニアが少ないような言語は年収が高くなる傾向にあります。

私の場合は、WEBサービスを作りたかったことと、英語が苦手なことから、日本語のコミュニティが活発でチュートリアルなども充実しているという理由から「Ruby」を選択しました。最初に習得する言語としては、PHPやJavaなんかもオススメの言語です。

【STEP3】基礎構文の勉強

作りたいものも決まり、言語も見えてきたところで、実際に勉強の準備を初めてみましょう。

とはいえ、いきなり作りたいものを作るのも難しいので、最初の最初に基礎を学ぶ際に有効なサービスとして、Progateドットインストールなどをオススメします。

Progate(プロゲート) | Learn to code, learn to be creative.
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。
ドットインストール - 3分動画でマスターできるプログラミング学習サービス
HTML, CSS, JavaScript, PHP, Rubyをはじめ、iPhoneやAndroidアプリの作り方も学べます。豊富な3分動画を見ることで、はじめての人でも無理なくスキルを身につけていくことができるプログラミング学習サービスです。

両方とも、有名なオンラインのプログラミング学習サービスです。教材としても非常に優秀ですし、難しい環境設定は必要なく、インターネットにさえ繋がっていれば無料で受講することが可能なのも魅力です。

また、有名な言語はもちろん、開発時に利用することの多いツール(GitやDockerなど)も取り扱っているため、最初の一歩であれば、有効なサービスです。

ただ、注意して欲しいのはProgateやドットインストールだけを極めても、就職したり仕事をするのは難しいという点です。これらのサービスは、未経験者や初めて勉強する場合や、初めてチャレンジする言語の基礎構文を知るためには有効ですが、これだけでサービスを作ったり、転職で重宝されるようなスキルを身につけられるものではありません。

あくまで基礎学習の教材と割り切って活用すると良いかと思います。

【STEP4】模擬アプリの作成

現在実在するアプリ(TwitterやInstagramなど)を実際にコードを書いて作ってみるという方法です。この方法は実際にプログラミングスクールの教材としても使われることもあるぐらい効果の高い手法です。

実際に動くものが作ることができる点や、完成図のイメージを最初から持てることから、モチベーションを保って学習ができるという利点があり、1つのアプリケーションを作る上で必要な要素も詰まっています。

実際に私はこの方法で成果物を作成するところまでは、実践することができました。
下の記事では実際に作成した時の感想を書いていますので参考までに。

Railsチュートリアルを1ヶ月かけて1週目を終えた感想とまとめ
Railsチュートリアルとは?Ruby on RailsというRubyの有名なフレームワークを使って、Twitterアプリを作成する手順を掲載しているRuby on Railsのチュートリアルサイトです。私がWEBエンジニアに転職する際...

(参考)プログラミングスクールに通うべき?
私は利用したことがありませんが、プログラミングスクールに通うという選択肢もあると思います。

上記のような独学を続けることが苦手な方や、わからないことがあった時は人に聞いて解決したいという方には、とても有効な手段です。

また、現役のエンジニアに直接質問ができたり、同じ目標や考え方を持った仲間にも会えるなど、独学では決して得られないような経験ができるのは、スクールに通わなければ得られないので非常に大きな利点かと思います。

しかし、1番のハードルとしてお金と時間がかかる点は注意が必要です。

私の場合は、スクールに通うお金も時間も確保できなかったので、独学で学んでWEB系企業に進むことができました。

スクールに通わなくても、プログラミングを学習することはできるということは知っておくと良いでしょう。

【STEP5】オリジナルWebアプリの作成

これまでの集大成ということで、チュートリアル完了から間髪を入れずにオリジナルアプリの設計〜作成に挑戦してみました。

ざっくり言うと、作りたいサービスを書き出していき、必要な機能やデータ構成などを決めてから、チュートリアルに沿った手順でアプリ作成をしました。

しかし、実際にはすんなり行かず、ここで何度も壁にぶつかりました。

そもそも環境構築がうまくできていなかったり、設定ファイルの書き方が間違っていたり、基礎的な記述ミスで動作しなかったりと、進めば進むほど自身の理解度の低さを目の当たりにしました。

ただ、こうやって試行錯誤しながら調べて解決した経験は、よく身につきます。また、トラブルに直面した時の対応方法も身に付けることができます。こうした「試行錯誤してコードを書く経験」を得るには、実際のアプリ開発が効果が高いと思います。

勉強やチュートリアルを否定するわけではありませんが、ここで学ぶ内容はある意味「答え」です。想定通りに動作することは当たり前なのです。「答え」を書き写しているだけでは、問題を解いたり、新しいものを作ることはできません。

こういった経験を積むためにもオリジナルアプリ作成はとてもオススメの目標だと考えています。
これから学ぶ方は、是非チャレンジしてみてください!

まとめ

ここまでの内容をまとめると・・・

・プログラミングで作りたいものを決めてみよう!

・達成したいことを実現するのに適している言語を選択してみよう!

・Progateなどのオンラインサービスや、模擬アプリ作成を通して勉強してみよう!

・最初に考えた「作りたいもの」を自分の手で作ってみよう!

最後に、プログラミング言語を学ぶことを嫌々ではなく楽しんで欲しいということです!
ここまで読まれた方は、少なからず自分の意思でプログラミングをしようと思ったからだと思います。

是非とも自分のためにチャレンジしてみてください!

コメント