Skip to content

プログラミングとは(2023年4月編) #53

@taroosg

Description

@taroosg

一言でまとめ

コード is 量

もくじ

  • プログラミングとは
    • 何がおもしろいくて,できるとなにがいいの?
    • チャレンジするにあたって何が大事?
    • 時間を制すものはコードを制す.
  • プログラミングにチャレンジする準備
    • 大事なこと 1
    • 大事なこと 2
  • 時間を制すものはコードを制す

プログラミングとは?

人間が描いた絵空事を現実にするもの.アイデアは実現できれば何の意味もない.自分自身でコードを書いて誰かに使ってもらうことで,自分のアイデアの価値を表現し,自分や世の中を変えることができる.

なにがおもしろいのか

  • 創造性
    • 自分のアイデアを形にできる.「これまであるかないか」「役に立つかどうか」関係なく世に出すことができる.
    • 出してみてイマイチならばやめればよいだけである.
  • 成果物
    • 具体的な成果物ができ,自分や他の人に役立つ.
    • プロダクトを自分の力でつくって世に出したことが自信になる.
    • ジーズの講義では成果物を重視する!プログラミングスキルを高めるためには,プロダクトをたくさんつくってデプロイすることが早道.
  • 論理的思考
    • 課題を分解し,手順を踏んで順番に解決する思考.
    • アイデアをプロダクトにするには,「やりたいことを分解して」「どんなコードを書けばよいか明らかにする」ことが大切になる.コード書いてるとできるようになる.
  • コミュニティ
    • プログラミングは共通言語.エンジニア同士は初対面でも「どんなプロダクトをつくってるのか」「好きな技術は」などで話ができる.

できるとなにがいいの?

コードを書くことで様々なものを自分の手で生み出すことができる.

  • アプリケーションの開発
    • 自分でアプリケーションを作成し,ビジネスや趣味で活用できる.誰かのためだけでなく自分用の業務ツールなども自作することができる.筆者自身も業務で活用するツールを実装している.
  • ゲーム開発
    • 自分の考えたゲームを実際に作成し,楽しむことができる.
  • IoT デバイスの制御
    • スマートホームやウェアラブルデバイスの開発.自分がいないときの環境を把握したり,エアコンなどの装置を操作することもできる.
  • 自動化
    • 繰り返しの作業を自動化し,効率を向上させることができる.スプレッドシートなどと連携してデータを自動で処理したり集計したり,結果を別のツールに投げることもできる.
  • データ解析
    • データを収集し,分析して有益な情報を見つけ出す.自社内のデータを元に問い合わせチャットボットを実装したり,新規事業を立案に活用したりなどできる.

プログラミングに大切なこと

  • 諦めない姿勢
  • コミュニケーション

諦めない姿勢

前提条件:だいたいうまくいかない

しかし,うまくいかない場合でも試行回数を増やせばクリアできる.

  • 特にコードを書き始めたタイミングでは1 回でうまくいくことは少ない.
  • わからなくても,うまくいかなくても,まず手を動かし続ける.できそうな可能性を考えて順番に試す総当たりの考え方.
  • 可能性が 1 %であっても,試行回数 917 回で 99.99 %↑となる.経験値が増えると「試行の精度」「試行の順番」がうまくなるため,解決が速くなる.
"勝機はいくらだ  千に一つか  万に一つか  億か  兆か  それとも京か"
"それがたとえ那由他の彼方でも  俺には充分に過ぎる!!"

コミュニケーション

プログラミングにおいて最も重要なのは日本語の運用能力である.

プログラミングは「対話」が多い.

  • 自分との対話
    • 自分の目的と目標を明確にする.自分は何がしたいのか,何を実現するコードを書けばいいのか,などを明らかにすることが必要となる.
    • 複雑な処理が必要となる場合には,分解して簡単な処理にするために思考を整理することが大切となる.
  • コンピュータとの対話
    • コードを書いて動かす際,うまくいかないとエラーが出る.出てきたエラーにはヒントが書かれているため,「エラーを読んで」「どこがおかしいのか把握して」コードを修正する機会が多い.
  • 他の人との対話
    • 1 人で解決できない場合に誰かの助けを求めることは決して悪いことではない.助けを求めるときには「何をしようとしているのか」「何がうまくいかないのか」を理解してもらわなければならない.

つまり...

プログラミングは気合いと日本語でどうにかなる.これらは最初からできるわけではなく,何度もやることが大切だ.

  • 試行回数を増やす.
  • コミュニケーションの回数を増やす.

つまり,コード is 量である!

時間を制すものはコードを制す

まず時間を確保しろ 話はそれからだ...

  • 6 ヶ月間の密度を考えよう!「6ヶ月間に何時間コードを書いたか」がスキル向上に直結する!
  • 24 時間の使い方を考えよう.現状の時間の使い方を可視化し「毎日どの時間をコードに当てるのか」考えてみる.
  • 1 週間単位で考えるとわかりやすい.「コードを書く時間」と「コードを書く代わりにやらないこと」を決めよう!
"誰かを助けるという事は誰かを助けないという事.正義の味方っていうのは,とんでもないエゴイストなんだ."

【参考】受講生時代の筆者

計 約 50 h / 週

  • 土曜:12.5 h 課題アップグレード + 講義 + 課題
  • 日曜:12.5 h 課題
  • 月曜:3 h + α 課題
  • 火曜:3 h + α 課題
  • 水曜:3 h + α 課題
  • 木曜:3 h + α 課題
  • 金曜:3 h + α 課題

プログラミングにチャレンジする準備

  • プロダクトのアイデア
  • タイピング

プロダクトのアイデア

**プログラミングのでき具合は「プロダクトの数」で決まる.**アイデア自体は役に立つ立たない関係なく,プロダクトを作ることが大切.

毎回出される課題が「プロダクト」となる.常にネタをストックし,つくるものに困らないようにしておこう.

  • 面倒くさいことはあるか?
  • もっと面白くしたいものはあるか?
  • 講義中に「これ使ったらあれができるかな??」

アイデアとは「既存のものの組み合わせ」である.あまり「新しいものをつくろう」と気張らず,既存ツールがある場合も含めて考えてみよう.つくっているうちに新たなアイデアが出てくることも多い.

コツ

コードを書けない時間に考えるのが大事!常に PC を開けるわけではないので,PC を触れない時間に考えてみよう.

  • 歩きながら周りの不便なことを探してみる.
  • 仕事の途中で感じた面倒なことを記録しておく.
  • スマホでつくりたいものの参考になりそうな情報をググっておく.

ネタは考えておき,PC を開いたら「つくる」ことに集中できる状態にしておく!

タイピング

**打ち間違いが少ない奴は強い!!**コードが動かない最大の理由は「打ち間違い」であるッ..!

コードを書いていて「考え方」「コードの書き方」が正しいのに,「スペルミス」があると動かなくなってしまう.この場合に「考え方がおかしいのではないか」と疑ってしまい,せっかく書いたコードがおかしくなってしまい泥沼になることがある.

まず「打ち間違い」を疑い,修正してから「考え方」「書き方」に目を向けよう!

タイピングのレベルは以下の通りだが,まずは打ち間違いに自分で気づくことが最重要!

  1. とりあえずタイピングはできる
  2. 自分で打ち間違いに気づける
  3. 速くないけど打ち間違いが少ない
  4. 速くて正確

慣れることの重要性

まずはタイピングに「慣れる」ことが大事!「慣れる」とは「考えなくてもできる」状態.

人間は慣れていないことが重なると難易度が跳ね上がる.

難易度 = 慣れていないことの数

タイピングが速い必要はないが,考えなくても打てるようになろう.不安な場合は「寿司打」などで練習しましょう!!毎日 5 分でも効果あり!!

まとめ

  • 「コード is 量」である
  • 1 週間に何時間使うか決めよう!
  • コードを書けない時間にアイデアを考えよう!
  • タイピングに慣れよう!

以上だ( ` ・ω・)b

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions