【アプリ開発】最初に知っておくべき10のこと

#はじめに
本記事では、未経験者が__効率的__にプログラミングの基礎を身に付けるためのコツを紹介していきます。プログラミングを初めて学習する方は是非一読してみてください。

対象読者：Xcodeを用いたアプリ開発に初めて挑戦する人


#目次
<strong>1.&emsp;絶対にやるべきこと&emsp;【レベル：★☆☆】</strong>
&emsp;&emsp;[1-1.&emsp;アウトプットをたくさんする](#1-1アウトプットをたくさんする)
&emsp;&emsp;[1-2.&emsp;暗記の必要はない](#1-2暗記の必要はない)
&emsp;&emsp;[1-3.&emsp;完璧な理解に拘らない](#1-3完璧な理解に拘らない)
&emsp;&emsp;[1-4.&emsp;質問をためらわない](#1-4質問をためらわない)
&emsp;&emsp;[1-5.&emsp;たくさん考える](#1-5たくさん考える)<br>
<strong>2.&emsp;できるだけやるべきこと&emsp;【レベル：★★☆】</strong>
&emsp;&emsp;[2-1.&emsp;とにかくググる](#2-1とにかくググる)
&emsp;&emsp;[2-2.&emsp;Xcodeの補完機能を使う](#2-2xcodeの補完機能を使う)
&emsp;&emsp;[2-3.&emsp;こまめにチェックする](#2-3こまめにチェックする)<br>
<strong>3.&emsp;慣れてきたらやるべきこと&emsp;【レベル：★★★】</strong>
&emsp;&emsp;[3-1.&emsp;ショートカットを使いこなす](#3-1ショートカットを使いこなす)
&emsp;&emsp;[3-2.&emsp;命名規則を意識する](#3-2命名規則を意識する)


#第一章&emsp;絶対にやるべきこと
##1-1.&emsp;アウトプットをたくさんする

学習において、インプットとアウトプットの比率は「__３：７__」と言われています！
(↑詳しくは[アウトプット大全](https://www.youtube.com/watch?v=PdyEIAOYH5w "アウトプット大全")をご覧ください！)
もちろん、プログラミング学習においても「__アウトプット__」は必ず必要です！

また、「__実際にやってみるアウトプット__」と「__誰かに説明してみるアウトプット__」の__二種類__があります。


###「実際にやってみる」
実際にボールを蹴らないでサッカー選手になれる人はいませんよね。アプリ開発も同様に、教材を見るだけではなく、「__必ず__」一緒に手を動かして自身のXcode上でアプリを作成しましょう。実際に手元で開発する中で、__理解が深まり、エラー解決能力も養われる__ので一石二鳥です！


###「誰かに説明してみる」
![learning_pyramid-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1335674/50344f9c-d655-ad37-34d6-8e34e3871904.jpeg)
アウトプットの中でも、「__他の人に教える__」という行動が__最も学習定着率が良い__と言われています。
そのため、教材を進めていく時は、内容に対する自分の解釈を近くの人に説明してみましょう！一人の時は、__自分に対して教える__ことも効果があると言われているので、積極的に行ってみてください。
もし、説明がうまくできない箇所があれば、まだ理解が及んでいない部分ということなので、復習したり質問したりして解消しましょう！



##1-2.&emsp;暗記の必要はない

映画に出てくるプログラマーは、物凄いタイピング速度で何も見ずに書いていますが、現実とは大きく異なります。
実際は、コードを書く時間よりも「__コードを調べている時間の方が長い__」です！

https://www.youtube.com/watch?v=5HBz3rQOqXU

というのも、プログラミングは学校のテストなどと違って、__いくらでもカンニングし放題__です！
そのため、__暗記する必要はなく__、忘れたらその都度ググりましょう！



##1-3.&emsp;完璧な理解に拘らない

教材の中には、どうしても完璧な理解をするのが難しい部分があります。

もちろん隅々まで理解しようとすることはとても良いことですが、3ヶ月という限られた時間を考えると、時には「__そういうものだ__」と割り切ってしまうことも必要です。
一度理解を諦めたからと言って、ずっと分からないままになってしまうわけではありません。
最初は__点の理解__でも、学習を進めていくうちに点と点を繋げて、__線の理解__へと変化させていくイメージを持ちましょう！



##1-4.&emsp;質問をためらわない

プログラミングには__知らないと絶対に分からない__初見殺しが存在します。

__初心者が何時間__も詰まるエラーだとしても、__経験者が見れば一瞬__で解決できるかもしれません。一度自分で考えて分からなければ、周りの人に質問して前に進む勇気を持ちましょう！

また、質問は「エラー解決の手段」というだけではなく、「__自分の理解を深める手段__」でもあります。エラーが発生していなくても、「__自分の考えるコードの意味は正しいのか__」「このコードがなくても問題ないのではないか」「こう書いても同じではないのか」などを確認する目的でも積極的に質問をしてみましょう！



##1-5.&emsp;たくさん考える

学習に悪い意味で慣れてくると、特に考えずに教材の内容を写経することができるようになってしまいます。少し時間は掛かっても、「__このコードはどんな意味なのか__」「__なぜこの場所に必要なのか__」など、しっかり考えながら学習しましょう！
また、理解が怪しい部分はほったらかしにせず、質問等ですぐに解決することを心がけてください。

もし、どこまでいけば理解したと言って良いか分からない場合は、「__イメージ同定__」「__具体例同定__」の2点を確認してみましょう！
これは、__リーディングスキルテスト__([参考](https://www.s4e.jp/about-rst "リーディングスキルテスト"))にも導入されている考え方で、「__コードの流れを図などでイメージできるか__」と「__どんな具体例が当てはまるのか__」の2点が分かっていれば、しっかり理解できていると言えます。

#第二章&emsp;できるだけやるべきこと

##2-1.&emsp;とにかくググる

教材を使って学習する中で、__気になったら小さなことでもググる__ことを意識しましょう！
「__プログラミング力 = ググる力__」とも言われるくらい、ググることは大切なことなので、早いうちから習慣付けできるととても良いです。__膨大な情報__の中から必要なものを__取捨選択する力__を身に付けると、オリジナルアプリ開発の時に__問題解決能力__として活きてきます！

https://www.youtube.com/watch?v=kNiD4rfNkFA



##2-2.&emsp;Xcodeの補完機能を使う

プログラミングにおける一番多いエラーは__タイピングミス__です。どんなに優れた人間でも間違いは必ずあるので、なるべく機械の力に頼りましょう！

Xcodeでは、書きたいコードの__一部分__を入力するだけで勝手に__補完__してくれるので、__楽できる__上に__ミスも減らせます__。
また、補完が出てこないことで__隠れたエラーに気づく__ことも多々あるので、良いことばかりです！


##2-3.&emsp;こまめにチェックする

全部の機能を実装してからプログラムを実行すると、エラーが出た時に__原因の場所が特定しにくくなる__可能性があります。最低でも、__一機能__を付け終わったら__一度実行__して、正しく動くか確認しましょう！

#第三章&emsp;慣れてきたらやるべきこと

##3-1.&emsp;ショートカットを使いこなす

始めのうちは、ショートカットを使わない方が簡単で速いですが、ある程度使いこなせると__効率が圧倒的に向上__し、ライバルと進捗の差をつけることができます！
また、__プログラミング以外でも活用__できるものも多いので、怖がらず積極的に使ってみましょう！
と言っても、ショートカットはかなり多いので、ひとまず下の__7個__だけ覚えてしまいましょう！

###超便利なショートカットキー7選
|コマンド|ショートカットキー|
|:--:|:--:|
|コピー|command ＋ C|
|ペースト|command ＋ V|
|コメントアウト|command ＋ /|
|⭐️__元に戻す__⭐️|command ＋ Z|
|「元に戻す」を元に戻す|command ＋ shift + Z|
|実行する|command + R|
|文字列を検索する|command ＋ F|

特に、__command + Z__ は「__消しちゃいけない所を消してしまった時の救世主__」なので、是非活用してください！

興味がある人は他のショートカットも使ってみましょう！
・[ショートカットキー(発展編その1)](https://hiromiick.com/xcode-shortcut/ "ショートカットキー(発展1)")
・[ショートカットキー(発展編その2)](https://qiita.com/DaremachiYanagimachi/items/dcfcc5f51918a5e9a852 "ショートカットキー(発展2)")

##3-2.&emsp;命名規則を意識する

プログラミングでは、パーツのようなものに自分で名前を付けることが多々あり、自由になんでも名付けることができます。しかし、一般的にプログラマーの世界では、__命名規則__と呼ばれる名付ける時の__暗黙のルール__が存在します。これにより、他の人にとっての読みやすさ(__可読性__)が上がり、質問した時などメンターに__コードの意図__が伝わりやすくなるので、慣れてきたら命名規則も意識してコードを書けると完璧です！

まずは、__変数名__や__関数名__に対して、意図に近い__簡単な英単語__を名付けてみましょう！
ex) __~~image1~~__ __→__ __profileImage__ など

詳しくはこちら↓

https://naoya-ono.com/swift/swift-basic/





##参考文献

https://qiita.com/koki_73/items/6e5334dc619d6c4f7754
https://career-ed-lab.mynavi.jp/career-column/707/
https://qiita.com/takahashikaito94/items/4c6a8d920fb5275eabaa
https://pro-web-engineer.com/anki-317
https://qiita.com/narimiya/items/6a206c5b1c34a83182fb
https://hiromiick.com/xcode-shortcut/
https://qiita.com/DaremachiYanagimachi/items/dcfcc5f51918a5e9a852
https://naoya-ono.com/swift/swift-basic/