僕がプログラミングを始めたての頃に知っておきたかったプログラミングちょっぴり上達tips
はじめに
Life is Tech!Members Advent Calendar 2020 2日目ははぎーーわらそーたがお送りします。
X これです。フォローしてください。
Android/Kotlin, Flutterでのアプリ開発がメインでプログラミングをしています。
今年ももうアドベントカレンダーの時期なんですね。はやいものですね、もうすぐクリスマス。バレンタインのチョコレートはいくつもらえるかな。
この記事では、プログラミングを初めてもうすぐ3年になる僕が
- プログラミング始めた頃に知っておいたらもっと楽に学べたなー
- 今当たり前にやってるけどあの頃は知らなかったなー
と感じたプログラミングをする, 学ぶ上でのtipsをまとめてみます。
ここに書いてあるやり方・考えはあくまでの僕個人の考えなので鵜呑みにせず、「こんな考えもあるんだなあ」と参考程度に眺めていただけると嬉しいです。
tips
プログラミング以前に
プログラミングには直接的な関係はないけど身につけておきたいtipsを紹介します。
はやくて正確なタイピングを身につける
プログラミング以前の話になってしまうのですが、タイピングが遅かったりミスタイプを良くする人はタイピングを矯正したほうがいいです。
僕はタイピングがなかなかに下手くそでコードを書きながらミスタイプをしまくりよちよちコーディングをしています。タイピングが正確に早くできるだけでプログラミングをする, 学ぶ上での壁が大きく下がる気がします。ミスタイプするとイライラしますもんね。直しましょう。(自戒)
僕のおすすめのタイピング練習サイトはtyping clubです。初歩の初歩からレッスンとゲーム形式でタイピングが学べます。楽しいです。矯正してきましょう。
ショートカットキーを覚えて使おう
コードを書くエディタの操作の殆どはショートカットキーが割り当てられているはずです。
ショートカットキーを用いることでキーボードから手を離すことなく求めている操作をすぐ呼び出すことができるので、コーディング・作業の高速化に繋がります。
最初のうちは覚えるのに時間がかかり骨が折れるかもしれませんが、後からかなり楽になるので意識して使ってみてはいかかでしょうか。
ショートカットキーはエディタによって違うことも多いので、Googleでエディタ名 + ショートカット
(例: VSCode ショートカット
)のように検索するとよさそう。
キーボードショートカット
特定のキーを組み合わせて押すだけで、通常ならマウスやトラックパッドなどの入力デバイスが必要な操作を実行できます。
Macなら⌘ + C
WindowsならCtrl + C
でコピーもショートカットキーの一つです。
インターネットで検索するときは
プログラミングをするうえで、いかに適切な情報を早く検索できるかがかなり重要になってくると思います。
プログラミングは一見暗記してる、みたいに見えるかもしれませんが実際何も調べたりせず済むことはほとんど無く、殆どの場合ググって情報をかき集めながら進めていくことになります。
検索・情報収集がうまいプログラマがこの世を制してると言っても過言では無いかもしれません。これは適当な発言です。
ここでは早く・適切な情報に検索からたどり着くためのtipsを僕目線で紹介します。
検索キーワード
調べたい技術名 + 調べたいこと
でだいたいほしい結果が見つかると思います。若者ならだいたい雰囲気でできるでしょう(無責任)
例: iOSアプリ開発にて、リスト表示の実装方法を調べたい
iOS リスト 実装
〇〇 + 実装 は割と解説記事がひっかかりやすくて便利です。
iOS
というクエリだと、プログラミング以外の記事も頻出するので、iOS開発で使っている言語の名前(Swift, Objective-C..?) リスト 実装
とかでもいいかもしれませんね。
参考にする記事を選ぶ
参考にする記事を僕は以下のポイントを注意して選んでいます。
更新日時が新しい
基本新しいの選んだほうがいいです。
書き手のことを知る
生意気な作業かもしれませんが、その人の別の記事やSNSでの発信、GitHubのコードを見てこいつの発言だいじょうぶ?って確認しています。だんだんこの人の記事はまちがいない!この人の記事は読みやすい!のような推しが発生すると思います。
英語記事にひるむな
技術によっては日本語記事でも「いい記事」というのは大量に存在しますが、最も新しい情報はやはり英語から入ってきます。現代にはGoogle翻訳やDeepLなどの賢い翻訳ツールがたくさん存在するのでそれらを有効活用して積極的に英語の情報を拾っていきましょう。
公式リファレンスを読んでみよう。
ここまでググり方を雑に紹介しましたが、なにか迷ったとき・悩んだときに一番に読むべき記事はその技術の公式のガイド・リファレンスです。殆どの場合公式リファレンスにすべてが載っていること多いです。
どんな記事よりも一旦公式リファレンス、肝に銘じておきましょう。僕はこれに気がつくまでに2年かかりました。ぐえー
👇のような流れでやるといいと思います。
- 公式リファレンス・ガイドをとりあえず確認してみる
- 公式の情報だと理解が難しかったら、解説記事をググる
エラーが出たとき
プログラミングしてると絶対にエラー・バグに遭遇しますよね。そんなときのtipsです。
エラーにひるまないマインド
初心者のうちはエラーにひるんでしまうことが多いと思います。
出力が真っ赤なエラーで埋まってやる気を無くしたり恥ずかしくなったり...あると思いますが、エラーがでることはどんなにプログラミングを続けていてもよくあることだし、むしろバグる前にエラーになってくれているのでありがたく受けるべき存在です。エラーが出たら画面に向かって「ありがとう」。
たくさんエラーをだしてぐぐって試行錯誤して解決する道の中で成長が得られます。
エラーメッセージをちゃんと読んでね
いざエラーが出た。「すごい量!!!なにがなんだかわからない!!」 となると思いますが、エラーメッセージはその名の通り「メッセージ」です。大概の技術のエラーメッセージはこんな構成になっていると思います。
エラーのタイトル, エラーの詳細
エラーが起きた場所1
エラーが起きた場所2
エラーが起きた場所3...
- エラーのタイトルと詳細をしっかり読む
- エラーが起きた場所に飛んでコードを見直してみる
この流れでエラーを見ていけばエラーメッセージが呪文に見えることは無いと思います。
エラーの内容をググる
エラーメッセージを読んでもそれが何を言ってるかわからないことはもちろん多々あります。
そういう場合は先程解説した検索のtipsと合わせて以下も参考にしてググてみてください。
Stack Overflowで他の人の質問と回答を見てみる
Stack Overflowというプログラミングに関する質問をするサイトがあります。ここでのやりとりを見てみると解決の答えが見つかるかもしれません。
質問するのもいいと思います。
検索ワードには固有のワードは含まないようにする
エラーメッセージにはそのプロジェクトの名前やそのコードに出てくる固有のワードが含まれてることがあります。
「hogeプロジェクトのpiyoクラスの10行目のpien変数がどうこうな理由で壊れてるで〜〜」みたいなエラーメッセージになるわけです。
このメッセージの場合、
- hogeプロジェクトは自分のものなので他人のエラーメッセージにはもちろん含まれず検索には引っかかるわけがない
- piyoクラスも自分が作って勝手に名前をつけたものだったので他人のエラーメッセージにはもちろん含まれず検索には引っかかるわけがない
- pien変数も👆と同じ理由で検索に引っかかるわけがない
ので、こういった固有のワードは検索の際は削るようにしてください。
この場合の検索ワードは「変数がどうこうな理由で壊れてるで〜〜」の部分を切り取るのが最適かなと思います。
コーディングを自分のものにするためには
コードを書くとき、脳死で写経をしたり全部暗記したりしようとするのは無駄です。
語学と同じですね、文法を紐解かずに丸暗記するなんてことはもちろん不可能です。
暗記するのではなく、文法として理解することができるとコードが呪文に見えなくなり、パズルのように見えて来ると思います。
教材は見るだけじゃなくてとにかく手を動かしてみる
教材を見るだけじゃなにも学べません。見たら実際に自分でコードを写経、挙動を確認してみる。動きを紙などに書き出してる。
こういう行動をして初めて学びの第一歩になると思います。
写経して動かせたらアレンジを加えて動かしてみよう
写経しただけではどこをどうしたらどう変わるのかわからんので、自分でアレンジしてみましょう。
ここのコードを変えたらこう変わる、と試してときにはエラーを出していくことで文法を理解していきます。
まんま語学ですね。(中1レベルの英語ができないやつが何を偉そうに)
アウトプットをして褒められを受けてモチベをあげよう
さいごのtipsですがこれに尽きると思います。
モチベがすべてですからね、モチベを保つためには人間必ず褒められが必要。
僕もアウトプットは苦手です。外の世界のレベル感にひるんだり、自分のレベルの低さをさらけだしたくなかったり..。でもそれはもったいないです。やったことは内容に関わらず発信するべきだと思います。
発信しなきゃだれも評価してくれないし褒められも改善点も何も出てきません。自己満になってしまいます。現代にはGitHub, X, Instagram, Tiktok, Zenn, Mediumなど情報を気軽に発信できるプラットフォームがたくさんあるので、ぜひ皆さんもやっていることを自慢していきましょう。粒度・レベル感を気にしたら負けだと思います。
さいごに
まとまりのない脳内垂れ流しの駄文を最後までお目通していただきありがとうございました。
何よりも楽しむことが大事だと思うので、楽しむ上でできるだけ躓きが少なくなるようにこの記事が参考になったら幸いです。
みなさんのプログラミングライフがより豊かに、楽しめるように願っています。
以上、はぎわらそうたでした!!!
明日はれれれれれんくんの「中3の頃のコードを高2目線でリファクタリングする」という記事です。楽しそう。乞うご期待!
Life is Tech!Members Advent Calendar 2020はまだ枠に空きがあるので、ぜひ気軽に参加してくださいね!
Discussion