要約
本稿ではプログラミングをする上で必要な知識について解説をした。
時間がない人やとりあえず行動したい人向けに誤解を恐れずに内容を簡潔に伝えるならば
「脱初心者するためには登録料無料のクラウドソーシングサイトに登録をし案件を獲得してみよ。」
ということである。
例としてLancersを挙げている。とりあえず行動してみたい人は登録をし自分のプログラミングスキルで可能な案件がないか探してみてほしい。
序文
プログラミングにゴールはなくプログラマーは常に学び続けなければならない。
これはプログラミングをする上での定説である。
しかし、プログラミングに興味を持つ人やプログラミング初心者がそんなことを聞いてしまえば挫折してしまうだろう。
その為本稿ではプログラミングをする上で脱初心者の条件とも言えるプログラミングでお金がもらえるまでの道をロードマップとして作成した。
本稿がプログラミングを始めようと考えている人やプログラミング初心者の力になれば幸いである。
自己紹介
私の自己紹介をさせて頂く。
システムエンジニア、機械学習、WEBライター、プログラミング講師。
使用言語はRuby(RoR)、Python
地方国立工学部の知識を活かしながらLancersというクラウドアウトソーシングサイトでフリーランスとして活動中。
以上が私の簡単なプロフィールである。
動機づけ
本題に戻ろう。
まず、プログラミングを始めるには動機づけが必要である。
動機はプログラミングへのあこがれ、業務効率化のため、副業にしたい等なんでも構わない。
この動機こそが自分を動かすガソリンであり、ゴールに進むための羅針盤なのである。
また、動機に応じたプログラミング言語を勉強する必要がある。
具体的には、
・WEBアプリ開発ならRuby(RoR)
・フロントサイドWEBサイト開発ならJava script
・Androidアプリ開発ならJava
・iPhoneアプリ開発ならSwift
・機械学習ならPython
・ゲーム開発ならC#
であろう。
何事にも適材適所が肝心ということである。
とりあえず1つのプログラミング言語の読み書きが難なくできるレベルになれば他言語に移る場合にそれほど苦労を要さない為、初めに学んだ言語にこだわる必要はない。。
必要なスキル
次にプログラミングをするために必要なスキルについて解説する。
列挙するならば
・自分のPCを操作できる能力(ショートカットコマンド)
・プログラミング上の最低限の文法
・高校程度の数学力(冗長なコードを避けることができる)
・問題解決のための論理的思考力(問題解決能力)
・多少の英語力(エラー文、公式ドキュメント)
まず自分のPCを操作できる能力というのはプログラミングというのはPCとにらみ合い、空を眺めて考えて、自分の思考をプログラムに落とし込むということなのだからPCが自分の体の一部のように動かなければ話にならない。
ショートカットコマンドとして意識せずともコピー&ペーストやアプリの切り替えができてPCが自分の体の一部として機能するのである。
プログラミングをする上で最低限の文法として必要なものを挙げておく。
・条件分岐
・繰り返し
・オブジェクト指向
これだけ押さえていれば知識の組み合わせで様々な問題に対応できる。
高校程度の数学はなくともプログラミングは可能である。
しかし、数学力がある人の書くコードは美しくなによりも早い。
人の手より遅いプログラミングになど価値がないのだから早さは不可欠である。
問題解決のための論理的思考力というのは世の中には学校のように定量的に表された問題は存在しない。
そのため自分で問題点を見つけ出し適切なキーワード検索によって調べ、問題点を解消できたか定量的な評価をする力が必要である。
英語力というのは大前提としてRubyを除くメジャーな言語はすべて外国産の言語である。
そのため公式ドキュメントは英語で記載されているものが多い。
プログラマーにとって公式ドキュメントはバイブル的存在である。
読めなければ話にならない。
また、エラー文はすべて英語で出力されるためRubyを使用するからと言って英語を避けて良い理由にはならない。
英語には日本語の30倍の量の情報がWEB上では転がっている。
つまり、英語ができるということは単純計算で30倍の確率で問題が解決するのである。
到達目標
最後にプログラミング初心者脱却とはどのレベルを指すかについてである。
ITには様々な資格が乱立しているが、基本的にどれも必要ない。
よって募集要項として資格が必要とされている場合以外は資格勉強よりポートフォリオ作成に注力するべきである。
そのためプログラミング脱初心者の指標としては案件をいただけるかという点であろう。
案件を頂くということは第三者から自分のスキルが認められ、お金を出しても良いと思われるレベルまで成長したということである。
ここまで読んでくれたあなたには是非一度Lancersに登録し自分にもできる案件がないか探していただきたい。
もちろん登録に費用はかからない為、良いベンチマークになるはずだ。
もし自分にできる案件がなかったとしても問題はない。
確認することで自分のプログラミングレベルをどこまで上げなければならないかはっきりするはずである。
あとは基礎力を磨き、案件を受けられるレベルになれば良いのである。
ここまで来ればあなたのことをプログラミング初心者と呼ぶ人はいないだろう。
自信を持ってゴールのないプログラミングの道を自分の羅針盤を頼りに進んでいけば良い。