Pocket

どんなに優秀なエンジニアであっても、最初は必ず全く分からない状態からプログラミングを学習していきます。

avatar
同じような学習時間を確保しても、ひとりは大きな成果をもう一人はなかなか思うようにスキルが伸びない事例も数多くあるでしょう。

結局プログラミングの学習というのは

『明確な目標』

さえあればスキルを伸ばすことはそこまで難しくありません。

ですがスタートの段階で目標を持たず、どんな言語を学べば良いか分からない場合、数ヶ月後には挫折している可能性が高くなります。

なのでここではプログラミングの入門として選ぶべき言語について、私の経験を交えてご紹介していきたいと思います。

注意点

最初にお話ししておきますが、すでに目標が定まっており、自分が作りたいものが明確にある人はそこに突っ走っていってください。

この内容は

『プログラミングは学習したいけど、何から始めれば良いか分からない』

方に向けた内容になります。

最初に思うこと『プログラミング言語って多くないか?』

私が初めてプログラミングについて学習しようと決めた時、最初に思ったことは

『プログラミング言語多すぎて学習するの無理じゃね?』

ということです。

その時はプログラミング言語全てをマスターしなければいけないと思っていたため、全ての言語を学習することばかり考えていました。

avatar
ですが後々気付いたのですが、プログラミング言語は基本的なことを学ぶことができれば他言語を学ぶ時間は短縮できます(基本的なことはそこまで違わないため)。

なので初心者の段階では、まず

『1つの言語を極めること』

を考えて学習したほうが圧倒的に効率よくスキルを高められるのです。

【管理人経験済み】挫折しづらいプログラミング言語!

プログラミングは『最初に選ぶ言語』で全てが決まると言っても過言ではありません。

avatar
最初に選んだプログラミング言語によって、プログラミングの難しい・楽しいの明暗が分かれます。

実際に数々の挫折を経験した私が『これは難易度が低くて扱いやすかった』と思える言語は2つあります。

Ruby

Rubyが挫折しづらいと思う根拠

・他の言語と比較しても少ない工数でWEBサービスが作れる
・インタプリタ方式(エラーの対処が簡単)を取り入れているから
・記述の自由度が高い

Rubyの開発者は、日本人である『まつもとひろゆき』さんが開発したことでも知られています。

Rubyは正確にいうとRuby on Railsのフレームワークであり、開発効率を良くするために作られたものです。

プログラミングで一番悩み、挫折の原因となる『エラー』との格闘も、Rubyは『インタプリタ方式』を導入していることにより、コンピュータが1行ずつ機械語に翻訳してくれるため、その場ですぐに対処することが可能。

Rubyの求人数は決して多くはありませんが、最近のベンチャーやIT企業はこのRubyを導入していることが増えているため、ガッツリ学習すれば仕事先に困ることもないでしょう。

PHP

PHPが挫折しづらいと思う根拠

インタプリタ方式を採用している
配列の定義が自由
変数の型を意識する必要がない

PHPは、プログラミング言語のシェアが2015年の段階で世界8位にランクインした人気の言語。

プログラミングで簡単な言語は何ですか?と問われると、多くのエンジニア・プログラマーはこのPHPを挙げるくらい認知されています。

Ruby同様インタプリタ方式を導入しているため、エラーを見つけやすく、変数の型や配列の定義が自由なので、プログラミングを作ってから実行するまでが他の言語よりも楽にできます。

avatar
私も最初にPHPを学びましたが、この選択は間違っていませんでした。

PHPの求人数はかなり多く、WEB系言語の中ではトップクラスに需要があるため、初心者が最初の言語としてPHPを選ぶのはおすすめです。

プログラミングで挫折しないために気をつけるべきこと

正直このプログラミング学習に関しては、100人学習を始めたら90人以上が挫折して辞めていくような世界です。

それくらい挫折率の高い分野ではありますが、それでも学習した後のメリットを考えると、なるべく多くの人にプログラミングスキルをマスターしていただきたいのが本音です。

avatar
私も全くの未経験からプログラミング学習を始めたため、初心者が挫折するポイントはある程度把握しています。

どんなに難易度の低い言語を勉強しても、挫折する人は挫折しますので、以下のプログラミング学習方法を頭に入れてから勉強を始めるようにしてください。

挫折の意味を都合よく解釈しないこと!

まず最初に考え方を変えていきましょう。

正直この業界では頻繁に挫折という言葉が使われますが、私からすると単純に

『諦めているだけ』

だと思っています。

例えば学校の授業で英語を勉強した時、挫折したからといって全く勉強しなくなった人はいないですよね?

もちろん得意不得意はありますから、テストの点数が良い悪いは必ず出てきます。

avatar
しかし学校の場合は、テストで点数を取らなければ進級できないため、どんな人でも頑張って勉強するはずです。

なのでプログラミングに関しても、学校で勉強するように

『諦められない状況』

を作るのが一番です。

お金を払ってマンツーマンでスクールに通うのもありですし、数ヶ月後に転職することを決意し、今の時点で会社の辞表を用意しておくのも良いでしょう。

挫折という言葉に逃げてしまえないような環境作りはプログラミング学習において必須となります。

ここさえ徹底しておけば、どんな言語でも諦めることなく学ぶことは可能だと私は考えています(あまりにも難易度の高い言語はお勧めしませんが)。

プログラミングができる人を必ず近くに置く

正直私もプログラミングを0から学習してみて思いましたが、相当な熱意や人生追い込まれているような状況ではないと、プログラミングを独学で学ぶことはかなり難しいと思っています。

というか学習してみてそれを感じました。一番キツかったのは、自分では正しいコードを入力していると思っているのに、なぜかデータ上ではエラーが表示されてしまうときです。

avatar
この場合、独学では自力で解決しなければならないため、最初の頃は1日中エラーと戦うような日が出てきます。

しかしプログラミングに精通している人が近くにいることで、初心者が躓くポイントを把握しているため

avatar
『あ〜そこはこうやるんだよ』

すぐに問題解決をしてくれます。

自分の力で問題を解決する能力は必要ですが、最初何も分からない状態の場合には、それがプログラミングを辞めてしまう原因にもなりますので、必ず近くにプログラミングスキルを持った人を置いておきましょう。

友人や知り合いがいれば理想ですが、もしいない場合にはスクールなどに通うのが手っ取り早い方法となります。

WEB系言語でまず1つサービスを作ってみる

ダラダラと基礎を学び続けても、プログラミングのスキルは一向に伸びません。

むしろスキルを簡単に学習し、その後とにかくサービスを作ろうと努力している人の方が伸びるスピードは早くなります。

例えばWEB系の言語を選んで学習している場合には、まずサンプルとなるサイトを見つけて、自分のできる範囲内で同じようなものを作ってみることをおすすめします。

avatar
そうすると、自分に足りないスキルや分からない部分が浮き彫りになりますので、そこを徹底的に学習していけば自然とスキルは上がります。

基礎ばかり学んでいると、いざ学んだことを使おうとしても、どこで使えば良いのかが分からない場合が多いです。

基礎を学ぶにしても実戦で使えなければ何も意味がありません。

野球で毎日素振りをしていても、実際にボールを打つ練習をしなければ試合で使えないのと同じで、プログラミングも基礎ばかり意識して学ばないように気をつけましょう。

プログラミングを学ぼうとするといずれ心が折れます!なぜなら‥

これは初心者がやりがちなミスですが、結局挫折という言葉を使ってこの業界から去る人たちは、共通してプログラミングを学ぼうとしています。

ですが本当にプログラミングのスキルを身につけている人というのは、プログラミングを学んだ

『その先』

を見据えて頑張っているのです。

実際に今プログラミングを学ぶことで、将来的に自分にとってどんなメリットがあるのか?人生がどう変わるのか?ここをより鮮明にイメージできている人ほど学習意欲が高く、大きな成果を挙げています。

avatar
対してプログラミングを学ぶことが目的になってしまうと、まず長期的に学習を続けられません。

少し矛盾しているような話ではありますが、0からプログラミングを学ぶのであれば、まずは

『なぜ頑張るのか?』

を明確にしておきましょう。

それだけでも未来の結果は大きく変わっていきます。

まずは1つの言語を徹底的に極めよう!

欲を出していきなり複数の言語を習得しようと思っても、最終的にうまくいかないことがほとんどです。

私は最初にHTML・CSSを学び、そこからPHPをとにかく頑張って学習しました。

avatar
PHPを学ぼうと思ったというよりも、自分が作りたいサービスがPHPを使っていたため、この言語を選んで同じようなサービスを作りたいと思っただけです。

実際に1つの言語をある程度やってみると、他の言語を学ぼうと思ったとき

『あれっ?これってPHPでも同じようなことをしてたな』

と思うことがたくさん出てきます。

プログラミングを学習する前は1つ1つの言語が全く別物だと思っていたのですが、実際にやってみると似たようなことを学ぶことになりますので、最初の頃とは習得スピードが全く違います。

『まず1つの言語を徹底して学ぶ』

これを意識することで、プログラミングの挫折率を下げることは可能だと私は思っています。

作りたいものを見つけるのが先ですけどね笑。

プログラミング言語として覚えておくべきこと

このプログラミング言語というのは、世界中に200種類以上あると言われています。

なので、全てを学ぼうとしていると、それだけで人生が終わってしまうくらい時間がかかってしまいます。

これから学ぶプログラミング言語というのは、あなたのエンジニア人生を決める分岐点ともなりますので、まずは最低限言語の知識を頭に入れておきましょう。

スクリプト言語・コンパイラ言語

まずプログラミング言語には、ざっくりと分けて

『スクリプト言語』

『コンパイラ言語』

があります。

まずスクリプト言語というのは、自分が書いたコードをその場で翻訳してくれるため、コードを書けばそのまますぐに実行をしてくれるのが特徴です。

プログラミング言語で言えば

  • Python
  • JavaScript
  • Ruby
  • PHP

などがスクリプト言語になります。

このスクリプト言語に関しては、低速で動作する代わりに、短い記述でも処理を実行できるというメリットがあります。

そしてもう一つのコンパイラ言語というのは、コードを事前にコンパイルする言語になります。

avatar
スクリプト言語とは違い、高速で動作する代わりに記述が複雑で面倒だという特徴を持っています。

プログラミング言語としては

  • C
  • C + +
  • C#
  • Java

などがあります。

両方の言語にメリットデメリットがあるのですが、初心者がプログラミング言語を学ぶのであれば、入力したコードがすぐに実行される

『スクリプト言語』

を選ぶことをおすすめします。

いきなりC言語などに手を出すと、かなり高い確率で挫折することになりますので、その点だけは十分に注意しておいてください。

学習の難易度

プログラミングは挫折さえしなければいくらでもスキルを高めることは可能です。

avatar
しかしほとんどの人たちが最初の段階をクリアできず、一定のスキルを身につける前に挫折してしまいます。

なので基本的な考え方としては、難易度の低い言語から学習していき、そこから徐々に難しい言語に手を出していくのが定番となります。

注意点

逆に学習難易度の高い言語から勉強し始めると、後々の勉強が死ぬほど楽になるという説もありますが、こちらは上級者向けの学習スタイルなので、あまり参考にする必要はありません。

プログラミング言語の学習は環境によって習得率も変わってくると思いますが、基本的にWEB系の言語であれば、そこまで難易度は高くはないと思います。

▼WEB系言語

  • PHP
  • jQuery
  • JavaScript

これらの言語はWEB系でも一般的となっていますし、スクリプト言語なのでそこまで学習難易度も高くはありません。

もし学習していく中で、どうしてもプログラミングが難しいと感じるのであれば、マンツーマンで教えてくれるスクールを活用するのが一番手っ取り早いですよ。

求人数・案件数の多さ

これからの時代に求められるプログラミング言語を学んでおくと、後々の仕事に困ることはまずありません。

なのでこの求人数・案件数の多い言語を選択するというのも重要です。

avatar
先ほどご紹介した言語であるPHPやJavaScriptというのは、現在WEB系でも良く使われる言語となりますので、基本的に他の言語よりも案件数・求人数は多い傾向があります。

もちろんこれらの言語を学んでも良いのですが、将来性を考えた場合、AI(人工知能)やブロックチェーン技術を扱えるPython(パイソン)などの言語の学習も考えておくと良いでしょう。

まとめ

プログラミングの学習は、最終的には自分との戦いです。

どんなに挫折率を低くする方法があったとしても、自分の熱意や信念が弱ければ

『めんどくさ〜。明日やろ〜。』

という弱い自分に負けてしまいがちです。

avatar
ですが逆に考えると、強い信念を持っている人は一部なので、本気で取り組めばそれだけ良い思いができるということです。

『大衆とは逆に行くことで成功が見えてくる』

これは成功者の基本的な考えとなりますので、ぜひ挫折ポイントに差し掛かったときには

『あ〜、みんなここで挫折するのか。俺はしないけどw』

というマインドで挑戦していただければと思います。

Pocket