プログラミングを学び始めて大切だと感じること

# はじめに

この記事では、プログラミングを学び始めたい！初心者だけど、これからもっとプログラミングを頑張りたい！という方向けに、勉強するうえで大切だと感じることを書いていきます。


筆者はGeekSalonというプログラミングコミュニティで一年間プログラミングを教えてきました。たった一年かよと思うかもしれませんが、今回は、僕が技術を学ぶ上で個人的に大切にしていたことについて書きたいと思います。
メンタルのお話が主になりますが、もしよければ参考にしてもらえると幸いです。

# とにかく楽しむということ

仕事だから。大学の課題だから。プログラミングスキルを上げると稼げると聞いたから。ちょっとやってみたいなと思って。などなど、プログラミングを学び始める理由は人それぞれです。

きれいごとかもしれませんが、「楽しんで学ぶ」ことをずっと忘れないでほしいです。

辛くて苦しい中もがいて身につけたものも力にはなると思います。しかし、楽しんで身につけた人には叶いません。

難しい内容を初めて学ぶわけですから、最初は苦しい期間が続くと思います。どんな簡単なことでもいいので、理解できるようになった自分をほめてあげましょう。プログラミングのプの字もわからなかった過去の自分からしたら大進歩です。少しわかると、「これってこういうことじゃん！」と次第にどんどんわかるようになってきます。

分からないことが分かるようになること、出来なかったことが出来るようになることを是非楽しんで勉強し続けましょう！


まとめ

::: note alert
**NG**
- 嫌々、苦しみながら勉強する
:::

::: note info
**Good**
- 楽しんで学ぶ
:::


# 「技術力をあげる」をゴールにしない

プログラミングの勉強をする際、〇〇の技術力を上げたい！という人がいます。一見すると志が高く、良い目標のように見えますが、これが悪夢のはじまりです。

**そもそも何をもって技術力が高いといえるのでしょうか？**

- 難しい言語がわかるから？
- エラーが解決できるから？
- コードを理解できるから？

あいまいな目標を追っていると自分が何をしているのかよくわからなくなり、確実に挫折します。
私自身、プログラミングを学び始めたころ、いろいろな記事や本を漁りましたが、何のために使われるのか、実際どう動くのかわからず、プログラミングに面白さを感じず、挫折したことがあります。

**じゃあどうすればいいのか。**

僕の考えはプロダクト作成など、「学んだことが目に見えて形になる成果物を作ることを目標にする。」です。知識を吸収することも大事ですが、とにかく実践することが大事だと思っています。

学んだら手を動かしてやってみる。その繰り返しが大事です。皆さんも小さいころ、自転車に乗れるようになるために、何度も失敗して挑戦してを繰り返してきたと思います。それと同じで、何度もやってみることで自然と知識が身に付き、"技術力"が上がると思います。

他に、実践する意味としては、学んだものが古くてもう使えません。みたいな悲劇もたまにあるので、その知識は本当に使えるのかの確認になったりもします。（笑）

以上のような理屈を抜きにしても、自分の書いたコードが実際にウェブサイトに反映されたり、Gameのキャラクターがうごいたり、視覚的に変化が起こると楽しいものです。

僕も実際、webサイト制作を学び始めたころ、まずデザイン（CSS）を好きになり、その後、裏の仕組み（HTMLなど）に興味を持つようになりました。

なのでまずは、自分の趣味に関するウェブサイトでも、理想のゲームでも、これほしかったんだよなーって思ってたiPhoneアプリでもかまいません。ぜひ、頑張って作った！と言えるプロダクトをまず一つ、つくってみてください。

::: note alert
**NG**
- 〇〇の技術力をつける！という目標を立てる。
:::

::: note info
**Good**
- 形になるものを作る。
:::

# 一人で勉強しない

プログラミングを学習するうえで、一番大切で大変なことは何でしょうか。答えは。**「モチベーションの維持」**です。

どんなことでもそうですが、技術革新の激しいプログラミングは継続して学習することが大切です。そうはいっても、人間は楽をしたい生き物です。どうしても、一人でやろうとすると、頑張ったことをほめてくれる人もいなければ、切磋琢磨できる人もいません。当初のモチベーションを維持できず、スケジュールもどんどん崩れ、怠けてしまいます。そもそもプログラミング自体難しいですしね。

筆者もこんな偉そうなことを書いてますが、2回ほど、モチベーションの維持ができず、プログラミングからフェードアウトした経験があります。(笑)

それほど、プログラミングにおいてモチベーションの維持は大切で難しいものです。
プログラミングスクール通うのでも、友だちと集まってやるでも構いません。

特にプログラミングスクールやプログラミングサロン等では、プログラミング学習の先輩にお勧めの勉強法やモチベ維持の方法などを聞くことができることが多いです。

特に最初のころは誰かと一緒にやる。誰かにみせるという風に、他人を巻き込んで学ぶことを意識してみましょう。

::: note alert
**NG**
- 誰にも言わず一人で黙々とやる
:::

::: note info
**Good**
- プログラミングスクールに通う
- 友だちと一緒にやる。
:::

# 人に教えるところまでイメージする

プログラミングの学習を少しずつ続けていくと、少しずつコードの意味が分かってきて、新しい技術を学んでみたい！と思うようになるかもしれません。

新しい知識を身につける時には、人に教えられるレベルまで、理解を深めてみてほしいです。
「いや、自分は個人のスキルがあげられればいいから...」と思ったそこのアナタ。

分かってたつもりでも以外と分かってなかった！なんてことがあったりします。自分の
理解の穴を探すこともできますし、人に教えるには往々にして難しい内容を簡単な言葉で言い換えることが必要になります。どうやったらわかりやすくなるかなと考えるだけでも、より理解が深まると思います。

学んだことを自分の中でしっかり整理し、アウトプットしていくことが大切です。

::: note alert
**NG**
- 本や教材を読んだだけで分かったつもりになる。
:::

::: note info
**Good**
- 人に教えるつもりで覚えて、アウトプットをする。
:::

# 何も考えずコピペしない

これは学び始めてからある程度たった人が意識するといいと思います。
教材でも、過去に自分の作ったものでも、世の中のサイトでも構いません。「なんでこの文を書くとこう動くんだろう？」という視点でコードを見るようにしてほしいです。

そういった細かい部分の理解が進むと、コピペだけでなく、自分で機能やデザイン等を作れるようになりますし、プログラミングに対する解像度が上がると思います。毎回毎回やると大変だと思いますので気が向いたときに少しずつやってみましょう。
最初は「大雑把に意味を理解できるようになる。」からのスタートで大丈夫です。

学び始めてからある程度たったので、さらにレベルアップしたい！という人はぜひやってみましょう。

::: note alert
**NG**
- とりあえずコピペする。
:::

::: note info
**Good**
- このコードってどういう意味なんだろうと時々立ち止まって考える。
:::

# 終わりに
1年前まではプログラミングのプの字も知らなかった僕が、プログラミングを学び始めて、大切だと感じたことについて書かせていただきました。

もちろん、プログラミングは簡単なものではありません。しかし、それ以上に自分の書いたコードが上手く動いたときの達成感や楽しさは他では味わえないものです。

楽しんで学び続けてもらえればなと思います！