プログラミング学習を始めるにあたって知ってほしいことを記載しています。
プログラミングの開発現場でプログラミングの知識を全く知らないとどうなるでしょうか。
プログラマーは仕事にならないのは言うまでもありません。
プログラマーを率いる管理職(= リーダー)の人はどうでしょう。
開発者からは不信感を抱かれ裏ではバカ扱い、お客さんからは
本当にこのチームに仕事を任せても大丈夫かと不信感を抱かれるでしょう。
開発の現場にいるのであれば、プログラミングの知識から逃げるのは難しいでしょう。
ではいつ始めるか、今でしょ。
重要だから、必要だから、仕方なく、は苦痛を伴います。
2,3年経ってもプログラミングが楽しめないのであれば、別の道を考えることをおすすめします。
苦痛を感じながらこの仕事を続けていくのか、転職するかはあなた次第です。
ある程度学べば、多少時間の差はあれども誰でも習得できます。
問題は「ある程度まで学ぶことができるか」です。
これには想像以上に強いモチベーションが必要です。
社会人の方であれば会社から強制的に研修を受けさせられていること、
学生さんであれば、親にお金を払ってもらっているので申し訳なさのため、
中には少し始めたら楽しくて、というのがモチベーションだったりするでしょう。
プログラミングを学びたいと考えたときに、必ず前述したような強いモチベーションや環境があるとは限りません。
無い場合は勉強する前にモチベーションを作ることを強くおすすめします。
他人を巻き込むとうまくいくことが多いです。
一緒に学ぶも良し、教えてもらうもよし。
途中で辞めたら自分だけでなく、他人にも被害・迷惑を与える状況を作るのです。
コードを書かない勉強法はおすすめできません。
必ず自分でコードを書いて動かしてください。
急がば回れ、これが最短の勉強法だと思います。
うわべの知識だけを手に入れても、後々恥をかくのはあなたです。
生活にあると便利だなと思うソフトウェアはありませんか?
ゲーム、家計簿、チャット、ひとそれぞれ何か思い浮かぶと思います。
どうしても思い浮かばない方は、普段よく利用しているソフトウェアを思い浮かべてみてください。
「ここがこうだと良いんだけどな」と思っている箇所はありませんか。
ほぼ同じものでも良いです。
自分だけのソフトウェアを作ることにしてみましょう。
インターネットで作り方を調べてみましょう。
実は、この調べ方に大きな能力差が出ます。
一通り調べてみたら、有識者に「作りたいもの」「作り方」を伝えてみましょう。
何かアドバイスをもらえるかもしれません。
アドバイスをもらって作り方を調べ終わったら、早速作り方に従って書き始めましょう。
しばらくすると、どこかで詰まるはずです。
この詰まるポイント、人によってかなり違いが出ます。
遠慮せずにかたっぱしから質問し、がむしゃらに進めてみましょう。
質問をすることで有識者は開発者の苦手なポイントや考え方、癖を知ることができます。
作成物にもよりますが、特に初回は自力で全てを作成することは非常に難しいです。
ある程度まで作成したら、有識者の手を借りて協力しながら進めていってください。
コーディングをしながら、有識者が様々なことを教えてくれます。
すぐに全てを覚えて理解する必要はありません。
「こういうこともあるんだ」ぐらいの軽い気持ちで聞いておいてください。
実装が終わったら、再び作成するものを決めて作成してみましょう。
最低でも2回はペアプログラミングを行うことをお勧めします。
何個か作品を作ってみてください。
徐々に有識者の手を借りなくてもプログラミングを進めることができるようになってくるはずです。
有識者が邪魔だと感じだしたら、成長した証拠です。
他の業界と比較しても変化が激しいです。
ファッションのように流行りがあり、時代を繰り返したり、1年で世界に広まったりします。
2,3年もすれば流行りのツール・言語は変わります。
最近はマシになりましたが、Sierはこの流れに比較的鈍感だと言われています。
時代が進むにつれて、同じものをより簡単に早く開発できる言語・ツールが出現します。
何かを作りたいと思ったとき、より新しい言語・ツールを選択すると良いことが多いです。
ただし、日本語の情報が少なかったり利用者が少なすぎるものは避けた方が良いでしょう。
今の状況を知るにはWEBで調べるのが一番でしょう。
自分で作成したいものを作成できるか、比較的新しいツール・言語であるか、
環境は準備できるかといったことを考えながら調べてみましょう。
フレームワークは非常に優れたソフトウェアです。
実際私も仕事で利用していて、まるで魔法のように簡単にソフトウェアを作成できます。
とりわけ大人数で開発を行う場合は必須といっても過言ではありません。
ただし、デメリットもあります。
多少なりとも利用するフレームワーク独自の使い方を覚える必要があります。
裏で何が行われているかは分からず、とりあえずこうやればできると覚えてしまいます。
残念ながらこの知識は他に応用が利きません。