プログラミング実務未経験からWebエンジニアに転職した私が、様々な試行錯誤の末、行き着いたプログラミングの効率の良い勉強方法を解説したいと思います。
プログラミングと聞くと「なんか難しそう」とか「何から勉強すればいいのかわからない」とか様々な心理的障壁があると思います。
私自身のプログラミングを学習する前は、「全然概念がわからない」、「プログラミングって何ができるの?」「学生時代成績も悪かったし、頭が悪い人には無理なのか」という悩みを持っていました。
そんな私でもWebエンジニアに転職し、実務をこなせるようになったので、誰でもプログラミングはできるようになると思います。プログラミングが難しそうと感じる人にも是非挑戦してみてもらいたいです!
私自身が実践してきた、プログラミングの学習方法をまとめてみましたので、初心者の方の参考になれば幸いです。
基礎学習は最小限にアウトプットを中心に学習する
書籍や動画でプログラミングの学習を始めると、最初に出てくるのが「変数」や「論理演算子」、「if文」などの基礎文法です。
いかにもプログラミングを学習している気分になる部分で、「しっかり基礎を身につけなくては」「暗記しなくては」と思う方もいるとは思うのですが、この基礎部分に時間をかけすぎてはいけません。
初心者にとってはなんのためにこれをやっているのかさっぱりわからず、「プログラミングってつまらない」と思ってしまう要因になってしまいます。
書籍であればさらっと目を通す、動画であれば流し見する。「そんなものもあるんだな」程度で十分です。
というのも、実際にアプリなどを制作していくと自ずとこういった基礎事項を使う必要があり、必要になったときに辞書を引くように基礎部分を学べば良いのです。
「単純に基礎だけを学ぶ」のと、「実践の中で基礎を学ぶ」のでは理解度が格段に違います。
というわけで、基礎はさらっと流し、自分の作りたいもの(アプリでも自動化スクリプト)を作り始めてしまったほうが、自分がなんのために基礎を学習しているのか明確になりモチベーションアップにも繋がります。
「書籍」ではなく「動画」で学習する
「IT技術はドッグイヤー」と例えられますが、実際にWeb業界にいてもそうだと思います。半年前に使っていた技術は既にレガシーな技術になっていたり、廃止になっていたりと本当に高速で進化しています。
書籍というのは、いくら早くても出版まで半年程度はかかってしまいます。そうなると自ずとレガシーな技術で学習をする必要が出てきます。プログラミングでレガシーな技術を使うというのは致命的で、「書籍通りのコードを貼り付けているのに正しく動かない」なんてこともざらにあります。
そこで私がおすすめするのは「動画」です。
特に「Udemy」はおすすめでセール期間であれば「1000円」程度でモダンな技術のハンズオン(実際に手を動かしながらプログラミングを学べる)コースを購入することができます。また、コースのアップデートも適宜行われており、レガシーな技術で詰まってしまうというリスクも少なくすることができます。
お金を払うのはちょっとという方は、「ドットインストール」「Youtube」でもプログラミング学習の動画が配信されているのでこちらで学ぶのもいいかもしれません。
現状作りたいものがない人は練習問題を解く
「すぐに作りたいものがないよ」という方には、無料のプログラミング学習サイトで問題を解くいうのも実力アップにつながります。
初心者の方であれば、超有名ですが「Progate」がおすすめです。イラストつきで解説されておりプログラミングのハードルが下がると思います。
ただし、Progate
は無料では基礎的な内容しか学べないため、無料で応用的な問題に挑戦してみたい方は、以前このサイトでも紹介したCheckedIO
やITスキルの可視化にもなるPaiza
でランクの高い問題を解いてみましょう。
アルゴリズム問題をそのまま実務で使うかといったら少し方向性は違いますが、アプリ開発などで使うアルゴリズムはそんなに難しいものを使わなくてもこなすことができるので、アルゴリズムの応用問題が解けるレベルになれば業務で困ることはなくなると思います。
神ツール「デバッガ」を活用する
プログラミングを実際に動かしていく上で最も重要なツールは「デバッガ」です。どんなプログラミング言語を学ぶにしても、一番はじめにデバッグができるようになりましょう。
「デバッグ」とはプログラミングのスクリプトを途中で止めて、止めた箇所(ブレイクポイント)において「変数」「配列」「オブジェクト」にどんなデータが格納されているのかを確認してバグの原因を探すことです。
私も最初はデバッグなんて面倒くさそうとか思っていましたが、バグを潰さない限りプログラムは動かないし、デバッグしながら問題点を発見するのはプログラミングの醍醐味・面白さだと思います。
「デバッガ」の具体例をあげるとpython
で言えばpdb
、ruby
で言えばbinding.pry
です。また、vscode
などのIDE
(標準的なものであれば全て)・Chrome
のdevelopツール
にもデバッガ機能が標準で備わっています。
今回は具体的な使い方などは省きますが、是非調べて活用してみてください。デバッガなしでプログラミングを組むのは、暗闇の中でゴキブリを退治しようとするのと同じです。
とにもかくにも実務経験を積んでみる
プログラミングの実力アップには、やはり実社会で運用されているサービスのシステムやコードに触れることだと思います。
私自身もITベンチャーでサービス開発を行うことで、個人では学ぶことのできない運用方法や作法などを周囲のエンジニア+プロダクトコードから学ぶことができました。やはり頭のいい人達が組んだコードを読んで改修を行うと一気にレベルアップすることができます。
私のように実際にプログラマにならなくても、今やWeb上にシステム開発の案件は溢れています。あまり儲からないとか言われてはいますが、「お金」よりも「実力アップのため他人のコードを読む」と割り切ればそういった案件を副業としてお試しで受けてみるというのもありではないでしょうか。
コメント