【脱初心者!】プログラミングの基礎を抑える5つのポイント

programming-basic-learning

プログラミング学習をいくらしても上達した気がしない…どうやったら初心者を脱せることができるの…?

1年前の私も、プログラミング学習はProgateばっかりやっていて、上達した気がしませんでした。それから、エンジニアに就職して毎日新しいことを覚える中で、「あれ?先週の自分のコードだめだめじゃん…」みたいなことに気づくようになりました。

そんな中で、実際にエンジニアが感じた「脱初心者するために重要だった基礎を抑えるためのポイント」を簡単にまとめました。

 

(1)ゴールに向かうまでのロードマップを理解する

roadmap-image

 

あなたのプログラミング学習のゴールは何ですか?

 

人によっていろいろあります。Webエンジニアになること、フリーランスとしてWeb制作の仕事をとること、趣味で学習すること、などなど…。そのゴールをしっかりと設定しましょう。

そして、そのゴールにたどり着くためにいま必要なことはなんでしょうか?たいていの場合、エンジニアになったり、プログラミングで仕事ができるようになるため、ですよね。その場合、「エンジニアの仕事を獲得するために」必要なことに絞って、勉強を勧めていくべきです。

勘違いしがちですが、エンジニアはプログラミングのすべてを理解しているわけではありません。仕事のうち7,8割は調べたり、考えたりすることで、実際にコードを書くのはわずかな時間です。なので、本当にあなたがやるべき勉強というのも、限られてくるはずです。

 

エンジニア就職で大事なコトって?

さて、話は少し変わりますが、エンジニア就職を目指す場合に最も大事なことはなんでしょうか?

それは、成果物を作ることです。どれだけ勉強しても、目に見えるあなたの成果がなければ全く意味がありません。面接の場ですぐに見せられるものが必要です。もしなければ、動画や資料などでぱっと見せないと信用してもらえません。

 

なので、Progateや本でどれだけ勉強したか?ということは全く意味がありません。むしろ、HerokuやFirebaseで動くポートフォリオとなる、WebサイトやミニWebサービス(掲示板やゲームなど..)を完成させることが大事です。そして、それを完成させることで、ようやく「超初心者を脱した」といえます。

(2)裏側を調べて、ざっくり把握する

searching

プログラミング言語、周辺の技術についての「裏側」をしっかりと理解することはとても大事です。例えば、Ruby on Railsの各メソッドがどのように定義されているか?を理解せずに使っていると、ある日突然謎のエラーにひっかかって、一日潰れた…なんてことはよくあります。また、データベースについて理解せずに重いクエリをはくようなコードを書いてしまうと、アプリケーションのパフォーマンスにも大きく影響します。

 

やるべきことは、いま自分が勉強している言語、技術がどうやって成り立っているのか?を理解することです。特に、JavaScriptはブラウザの仕様ともあわせて勉強することで、より深くその挙動を理解できて、習得スピードもより早くなりますね。

 

どうやって勉強するのか?

一番カンタンなのは、その言語や技術に関する「中級者以上」向けの本を一冊読むことです。HTML, CSSなど、適当な本がない場合は、その言語のリファレンス(公式の解説ページ)を探して、網羅的に読むことをおすすめします。

 

はじめのうちはどうしてもわかりやすいWebサイトやQiitaなどのキュレーションサイトで学習しがちです。ですが、それらの情報も誤っている場合が多く、また、詳しいところまで解説が行き届いていません。公式で学習するクセをつけることで、つまづいたときに解決にたどり着くことができるはずです。

 

(3)実際に動かしてみる

make-it-work

プログラミング学習は「インプット2割、アウトプット8割」くらいの割合がベストだと思っています。アウトプット(=成果物をつくる)をしない限りは、初歩のうちです。実際に私も本や学習サイトで勉強して満足してしまっていましたが、実際にモノを作ってみてはじめて知ることがたくさんありました。

 

さらに、学習したことを定着させるためにも、実際に動かしてみる、ということはとても大事です。例えば、Ruby on Rails学習中で、 routes について勉強しているのなら、手元で適当に Rails new すれば、簡単なRails最小アプリケーションが作れます。そのなかで、 routesファイルを編集して、どのように動くのか?を試してみてください。一連の流れを自分の手で行うことで、知識が定着しますし、全体像を把握することにも役立ちますね。

 

でも、動かすための知識もないし…

というかたは、とりあえず Railsチュートリアルをはじめてみるのが手っ取り早いと思います。あるいはドットインストールの実践編でも、十分だと思います。とにかく、Progateなどのブラウザ上で学習できる系はあまりおすすめしません。local(=手元のPC)で試行錯誤しながら動かせる環境がベストです。

 

(4)多くを知ろうとせず、深く学ぶべし

analyize-image

「(2)裏側を調べて、ざっくり把握する」と少しかぶりますが、プログラミング言語をたくさん知ってることは強みにはなりません。あなたが定めたゴールに即した技術を必要最低限使えること、そしてそれらについて深く理解することが強みに繋がります。

 

近頃、プログラミングスクールを出て、エンジニア就職を目指す方が増えています。彼らと同じ土俵に立った時に、どちらが企業からして優秀といえるでしょうか?

  1. Rubyだけでなく、PythonやPHPでも”それなりに”コードを書くことができる
  2. Rubyしか書けないが、リファレンスを読破し、使えるようになり、またRubyのパフォーマンスについても理解している

Rubyを採用している会社であれば、間違いなく(2)の人材をとりたがるはずです。なんでもかんでも勉強すればいい、というものではありません!多くのプログラミング学習者が勘違いしている点です。

 

もちろん、この深く学ぶべき領域も見定める必要があります。例えば、フロントエンドエンジニアになりたい、のであればJavaScriptの言語仕様やパフォーマンス、ブラウザの仕様などを理解するとより一層「強く」なれます。サーバサイドエンジニアであれば、RubyやRuby on Railsについてはもちろん、好きなgemを作ったり、データベースに関する知識を掘り下げていく、といいですね。

 

(5)エンジニアにあって話を聞いてみる

communication-illust

いろいろやるべきことがあるのはわかったけど、私は何から始めればいいの…?

という方は、とりあえず現役エンジニアの方や企業とあってみましょう!方法としては色々あります。簡単なものであれば、Wantedlyという人材マッチングサイトでは、気になる企業に「気軽に会いに行く」ことができます。転職意思がなくても、面談のようなかたちで話ができるので、悩みを聞いてもらえるかもしれません。

 

また、気軽にエンジニアと交流をもつのであれば、カンファレンスや地域で開催される勉強会に参加するのがおすすめです。Rubyコミュニティの場合、「ginza.rb」や「asakusa.rb」など地域ごとにコミュニティがあるので、地元の勉強会に参加してみてはいかがでしょうか?

 

すでにある程度勉強をしているのであれば、早めに転職活動を始めることをオススメします。準備ができてから、と言い続けるよりも、走りながらのほうが確実に早く就職成功にたどり着けます。転職活動のなかで得られる気づきもありますし、意外とすでにエンジニアとして通用するスキルを持っているかもしれません!

 

転職活動については以下の記事を参考にしてみてください▼

人気記事【未経験あり】いまWEBエンジニアに人気転職サイト4選