質問: ちょっとした悩みというか葛藤なのですが・・・ 現在、未経験でITの会社に転職してプログラミングの勉強をしています。 その進め方は会社から課題を出されてそれを作り提出してFBをもらい合格したら次の課題へ進むという形です。 序盤のhtmlやcssはほとんど自分でコードを書いて製作して割と順調にクリアできたのですが、 課題がjQueryに突入してからは、わからないことが多く調べては写経したり、人に聞いたりすることが圧倒的に増えていて 自分で解決する力がついていないような気がしています。 実際いざ難しい課題に手を付けようとしても、何をどうすべきか考えがつかないことが多く自力で完成させることができません。 実際調べれば答えもあるし、それを写経して提出したら一瞬で終わります。 ただ写経して提出したところでそれは自分の力で解決したわけではないのであまり自分のためになる気もしません。 とはいえまだ調べないとわからないことだらけなので、調べないと先へは進めない。でも写経には頼り切りたくない。 というような勉強していく上での悩みがあります。 勉強する上である程度の写経も必要ですが、みなさんはプログラミングの勉強をしていたときはどのように勉強して、 行き詰まったときはどのように解決していましたか?
回答: 以下は回答者の個人的意見です. 基礎力に不安があるのであれば, まずは信頼のおける書籍を**それぞれ1冊ずつ**(WEB技術・ネットワーク技術・HTML・CSS・JavaScript, DOM, jQuery)購入し, それをお手元に置かれることから始めて下さい. そしてそれらを(中身を把握できずともよいので)最初から最後までざっと読み, どのような用語が使われているか, どのようなことが出来るのかについてイメージを付けて下さい. NOTE: 但し, 最初からたくさんの書籍を入手するのはおすすめしません. なぜなら, 同じテーマであっても著者毎に微妙に異なる言い回しや癖が足枷となり理解を妨げるからです. そのため, 最初の一冊の選択が非常に重要で, こればかりは会社の先輩に訊くなりWEBでの書評等を参考として下さい. その上で課題に取り組み, キーワードが出てくる都度その正しい意味や役割について調べて下さい. (紙にまとめてみるのも良いでしょう. とは言え, この時点で全てを理解しようとするのは時間の無駄です. わからなければ後回しにして良いのです) また, 人に訊く場合は, 解決策のみを尋ねるのではなく, どこに注意すべきかその勘所(苦労した点)についても訊いてみましょう. ある程度知識がついてくる(個人差があるので焦らないこと!)と, 書籍に記載された内容が記憶内で有機的に結合し始め, 確固たる理解につながるはずです. ここまで来ると, 基礎知識をベースに様々な書籍(周辺技術を含む)やWEB上の関連資料(w3c仕様やAPI解説)についてさほど苦もなく読みこなせるようになるので, 課題解決の幅が広がります. * 会社から提示されたテキストのみで知識が完結できるとお考えでしたらそれは完璧な間違いです. 現実に直面する課題は応用の連続です. * WEBを使った問題解決ではどうしても回答が偏るため, 慣れないうちはそれに頼り切るのは避けて下さい. * WEB技術はとりわけ陳腐化の波が激しい分野ですが, 古い技術(文献)であっても新しいものの礎(新技術導入の動機)であると考えれば一概に不必要とも限りません. * つまるところ, **どれだけ多くの問題解決の引き出しを作れるか**に掛っているため, それに掛かるコストを惜しまないことです. * また, 他人に訊くことを恐れないで下さい. 一見解決が困難な課題も視点を少し変えただけで効果的な解決策がみつかることはよくあります. NOTE:写経について 実はプログラミングにおいても大小様々な粒度で**似たような構造(イディオム・コードスニペット・テンプレート・デザインパターン等と呼びます)が頻出**します. 同様に**コーディング規約**と呼ばれるプログラムコードの品質を担保するためのルールもあります. ですからプログラム写経を通して, **正しい手癖を付ける**というのは**その意図を理解している限り決して無駄ではありません**. ※無我夢中にコードを転写しているのであれば, それは単なるタイピングであって, プログラムというよりデータパンチと言うべき作業です.