Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

堅実なプログラミングスキルを身につけるために必要なこと


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210915061857p:plain

おはようございます。Shotaです。

2020年度以降、本格的に始まる小中学校、高校でもプログラミング教育の必修化。その中で、プログラミングに関心を持ったり、実際にプログラミング学習を始めたりしている人も少なくないと思います。

そこで、今回の記事ではプログラミングスキルを培うために必要なことを詳細に解説していきます。



プログラミングスキルを身につけるのは難しい

f:id:ShotaNukumizu_1000:20210728070041p:plain

前提として、プログラミングスキルを身につけるのはそう簡単ではありません。勉強するべき内容は広範囲に渡り非常に多い上、様々な分野をそれぞれ身につけるのには時間がかかります。

プログラミングに必要な知識や技術は一通り学んで終了というわけではなく、新しい技術や知識が登場し学んだそばから陳腐化していきます。他の分野に比べて、IT分野は未成熟な上に変化にも速い分野です。技術が進歩する以上のスピードで学び続けなければ、簡単に振り落とされてしまうことも珍しくありません。

ところが、技術を学ぶスピードは、プログラミングのスキルが高くなればなるほど速くなります。

新しい技術の大部分は前の技術の焼き直しです。したがって、本当に新しいことだけを勉強すれば済みます。全く本当に新しい分野を学ぶ際でも、一般的にはその分野の前提となっている別の分野があるはずなので、その分野をある程度押さえておけば、本当に新しい分野の学習だけに集中できます。新しい分野でも必要に応じて勉強すればよいという姿勢を作ることができるので、結果としてプログラミングスキルを維持しやすくなっていきます。

このわずかな努力でプログラミングスキルをある程度維持できるレベルに到達できると、そのばその場の応用で様々な問題を解決できます。

この段階にたどり着くためにはどうすればよいのでしょうか?方法としては、大きく2つに分けられます。

  • IT知識について詳しくなる
  • 応用力をつける


それぞれ、順番に解説します。


IT知識について詳しくなる

f:id:ShotaNukumizu_1000:20210918073844p:plain

おおよそプログラミングで扱うすべての技術は、何らかの基礎的な知識や技術の上に成り立っています。基礎的な知識を得ることは、今後学ぶ知識や技術を獲得するスピードを上げるパッシブスキル(何もしなくても常時発動している特殊能力)のような効果があります。

では、具体的にどうすればいいのでしょうか?IT知識を学ぶ上では、次のようなことをしてください。

  • Google検索でわからないIT用語を調べる
  • 技術書を買って読む
  • 公式ドキュメントを読む


Google検索でわからないIT用語を調べる

f:id:ShotaNukumizu_1000:20210918073918p:plain

まず最初は、Google検索でIT用語を調べてください。おすすめのサイトを以下に貼っておきます。

e-words.jp

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典(コチラは初心者でも理解しやすいように書かれているので非常におすすめです)

https://wa3.i-3-i.info/


技術書を買って読む

ネット上のブログや技術記事は玉石混交で、よいものとそうではないものが多く含まれています。しかし、その段階で「読める」レベルの記事で得られる知識は、断片的なものだったり、古かったり、動くように見えて本当は間違っていたりすることもあります。ところが、プログラミングスキルをしっかり習得できていない段階では審議を判断できません。

その時、技術書を自分のレベルに合わせて選べば、必要な知識がある程度まとまっており、体系的に幅広く知識を得ることができるので実力をつける上では近道になります。


公式ドキュメントを読む

f:id:ShotaNukumizu_1000:20210918074122p:plain

ある技術を学ぶ際、一番有効な方法は公式ドキュメントを読むことです。

しかし、プログラミングスキルをまだ十分に身につけていない段階の場合、公式ドキュメントを「読めない」ということが簡単に起こります。物理的に読めないわけではなく、読んでも書いてあることの意味を理解できないということです。

公式ドキュメントはしばし情報過多になるきらいがあり、特に初心者では情報量に圧倒されがちです。それだけではなく、その技術を使うために必要な別の(例えばOSなどの)基礎的な知識が前提とされているものも多いです。そうなってしまうと、ますます読めなくなっていきます。

もう一つの問題として、情報が英語しかないことが挙げられます。英語が読めなければ言葉の壁もあり、ますます読めなくなってしまいます。


応用力を身につける

f:id:ShotaNukumizu_1000:20210718062603p:plain

次に、応用力を身に着けましょう。応用力のうち、ここではパターンの習得について述べます。

パターンを習得するためには、次の2つが重要であると考えています。

  • 既知のパターンを、自分でも使えるように練習する
  • 新しくパターンを学ぶ、特に人が使っているパターンを真似して理解する


今回の記事では、特にコードを書くという観点に絞って述べたいと思います。


既知のパターンを、自分でも使えるように練習する

f:id:ShotaNukumizu_1000:20210717144545p:plain

既知のパターンを自分でも使えるように練習することの初歩として、小さく易しいコードを頭を使わずに書けることをおすすめします。

どのような大きなコードでも、ほとんど全ては優しいコードの組み合わせでできています。小さなコードのパーツを「大して考えなくても書ける」状態にしなければ、大きなコードを書いているうちに考えなければならないことが多すぎてヘトヘトになってしまいます。

ある程度簡単なコードは、検索しなくても書けるようにしておきましょう。特に、基礎的な文法やライブラリはある程度暗記しておくようにするとコーディングが楽です。

小さなコードに時間がかかるのは、大体の場合練習不足です。逆に言えば、練習すればなんとかなるということでもあります。業務で必要な実力を得る程度であれば、易しいとされるコードや文法を悩まずに書ける程度になっていれば十分です。


新しくパターンを学ぶ、特に人が使っているパターンを真似して理解する

新しくパターンを学ぶには、人のコードを読んだり、人に教えてもらったりするのが手っ取り早いでしょう。そのおすすめの手段として、以下のようなものが挙げられます。


それぞれ、順番に解説します。


コードリーディング

コードリーディングとは、すでにあるコードを読んでその内容を理解することです。

しかし、コードがスラスラ読めるようになるまでにはかなりの実力を要しますので、初期におすすめできる方法ではありません。ある程度実力がついてきたら腰を据えてなにか読んでみるのもいいでしょう。


コードレビュー

コードレビューとは、書いたコードを他人の目で読んでもらい、誤りがないか、もっと良い方法がないかを指摘してもらうものです。手癖で書いてしまいがちなミスを見つけてもらったり、自分が書いたコードより良い書き方を教えてもらったりで、非常に勉強になります。

コードレビューがマストになっていれば、レビューを通すためにきれいなコードを書く努力も必要になり、普段からきれいなコードを書く練習ができるようになります。また、業務のコードで行えば、普段使っているコードがきれいになるという直接的なメリットもあるので非常におすすめです。


ペアプログラミング

f:id:ShotaNukumizu_1000:20210718102719p:plain

ペアプログラミングとは、二人で目的のコードを書くことです。一人がコードを書いている間、もうひとりは画面を見ながら書かれたコードに誤りがないかどうかを点検します。ある意味、コーディングとコードレビューを同時進行で行っているようなことになります。

この方法は、ペアのコードの書き方をリアルタイムで見ることができるので、普段自分が使ったことがないIDEの機能やコマンドの叩き方、あるいはプログラミング上の工夫を知ることができる非常に良い機会になります。


まとめ

今日の記事では、堅実なプログラミングスキルを身につけるために必要なことについて徹底解説しました。

本記事では大雑把な指針のみを示したもので、最終的には本人の努力が必要になります。一朝一夕には実力は身につかないので、地道にひたすらやるしかないと理解していただければ幸いです。

長くなりましたが、今日の記事はこれで終了です。

【参考サイト】

codezine.jp