Upgrade to Pro — share decks privately, control downloads, hide ads and more …

非エンジニアのための 0からわかる プログラミング・開発講座

非エンジニアのための 0からわかる プログラミング・開発講座

6b567c091a24c8fb8acf38b485e04963?s=128

Yui Nishimura

March 24, 2021
Tweet

More Decks by Yui Nishimura

Other Decks in Programming

Transcript

  1. ⻄ 非エンジニアのための ゼロからわかる プログラミング・開発講座

  2. 01 ⽬的 02 アプリが動作する仕 みを ・例で 快に 03 の開発はどの に

    めて いくのか 04 プログラミング 05 疑 résumé
  3. ⽬的 1 なぜ 、プログラミングを この 義で得られること ぶことが必 か

  4. なぜ 、プログラミングを ぶことが必 か 13 01 ⽣の攻略 の1つ 現代において、コンピュータ ーは

    隷、プログラムは と⾒なすことができる。 政 の でもある り、 現代の「 み・書き」算 になっている。 ある 味、コミュニケーシ ョン・異 理 ⼒ 02 基 として 03 「 き」を発⾒するために プログラミングで物が動くのは 「 しい」 優 なプログラマーはなぜ優 か。
  5. これまでの「⾃ のために働いてくれる他者」 を 隷にする。 現代では禁⽌されている により、 を従わせる ⾃由にできる が1 円

    上あるひといる? 構 ・ ⼒構 を作り、 が動く構 をマネージ メントする 、 、王 授 ⼒を持ち、 が⾃ら動くようにする アイドル、 、 、配偶者、Youtuber 、可処 時間ハッカー 現代は「コンピュータに働いてもらう」が可 になった ⼀ が で「 隷」を持てるようになった めて の時代 だからコンピュータについて ぶ必 がある 01 ⽣の攻略 : ⾃ の為に働いてくれる 他者を⾒つける https://www.slideshare.net/TokorotenNakayama/21-131325177
  6. https://twitter.com/fladdict/status/774988305062506496?s=20

  7. お金→ 材( エンジニア)→ システム→ お金 07 ニューヨークにあるゴールドマン・サックス の⽶国株の ⾨には、 盛期の2000

    年に 600 のトレーダーが在籍し、⼤⼝ の ⾏の に じ、株を売買していた。現在、こ の ⾨にはたった2 しか っていない。 株式売買の⾃動 プログラムが、他のトレーダ ーの を ったのだ。プログラムを えるのは 200 のコンピューター・エンジニアだ。 https://www.technologyreview.jp/s/24542/as-goldman-embraces-automation-even-the-masters-of-the-universe-are-threatened/
  8. 02 DX 時代の 基 として 何をするにしても、 プログラミングは わってくる 業をやりたい →プログラミングが必

    作物の 理システムetc.. の 業も、dx しないと⽣き れない DX 戦略はどうする DX 材/ エンジニアの採⽤は コミュニケー ションはどうする https://youtu.be/nKIu9yen5nc
  9. https://scrapbox.io/nishio/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BB%E9%9D%9E%E3%83%97%E3%83%AD%E3%82 %B0%E3%83%A9%E3%83%9E%E3%81%A8%E3%81%84%E3%81%86%E8%AA%A4%E3%81%A3%E3%81%9F%E4%BA%8C%E5%88%86%E6%B3%95 だけが 国 を すればいいわけではない とコミュニケーションをとるには、 国 の知識 が必を間に挟んだとしても、相⼿の国の

    や⾵ は 知っておく必 プログラマだけがプログラミングを覚えればいいわけで はない プログラマとコミュニケーションをとるには、コンピ ュータの知識が必 プログラマを間に挟んだとしても、 コンピュータの や⾵ は知っておく必 Computational Thinking は現代の君主論 間よりも圧 的な労働⼒を持つ 算 をいかにし て するか 為政者は ができなくとも理 しておく必 がある https://www.slideshare.net/TokorotenNakayama/21-131325177 プログラマだけ すれ ばよいのでは?
  10. 3. 「作りたい何か」を 発⾒する 優 なエンジニアは「プログラミングを ばないと」と って ばない プログラミングで作りたいものが作れると しい、と

    じ てもらいたい あくまで⾃ で決めた⾃ で作りたいものを る事が重 この では、 ⼤ 「どう活⽤しよう」「何作ろう かな、と える」に げるためのきっかけにしたい https://twitter.com/linux123pc/status/1373565403390038017?s=21
  11. 2. アプリが動作する仕 みを ・例で 快に

  12. None
  13. None
  14. None
  15. None
  16. None
  17. https://www.google.com/url?sa=i&url=https%3A%2F%2Fjapanese.engadget.com%2Fjp-2019-02-09- casio.html&psig=AOvVaw2wPFeIsVn6q4S5CS8gAMyB&ust=1616521466801000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCMD27PG5xO8CFQAAAAAdAAAAABAD コンピュータに指⽰するためには、 マシン に する必 がある コンピュータ = 算

    Instagram で を できるのも Youtube で動 を⾒られるのも モンストで べるのも マシン を使っているから コンピュータは2 しか えない マシン に する必 がある
  18. 操作を のレイヤを し、 マシン に翻 する

  19. レイヤとは ≒抽 度 料理の場 : 低レイヤ(抽象度:低、具体的) ⾼レイヤ低レイヤ(抽象度:低、抽象的) 「料理を 作りたい」 「中華料理が

    作りたい」 「 を 作りたい」 ミンチ⾁を... の⽪を... 」
  20. コンピュータ の歴史 コンピュータは、歴史上より いレイ ヤからも れる に してきた Apple は何が⾰

    的なのか これから こること
  21. 期のコンピュー タ の り、⼿で スイッチをパチパ チ切り替えて使っ ていた ENIAC より いレイヤからも

    れる に だけの味 気ない ⾯だ が、OS として使 えた。 MS-DOS OS にGUI( マウス で操作する ⾯) を し⾰ を こした Macintosh
  22. タッチ、キー ボード等指で の操作に え 声での操作に も iphone 声での操作に 常に曖昧な 葉にも

    するように Echo
  23. 低レイヤ 操作( ボタン・ ⼒・など) 令 果・ ⾯ ⽰ API コール

    果 果・ ⾯ ⽰ 電気 算 果
  24. レイヤ( レベル) ≒抽 度 レイヤ: ハードウェアに いかという 味。 レベルが いほど⽣のハードウェアを

    識する。 械 に い ⼀ 下のレイヤはCPU ⼀ 上のレイヤは ⾯(UI) 常、我々の操作はアプリケーション→OS→ ハードウェアの順 に翻 ・ され、 的にCPU で 算される。 低レイヤ ⾼レイヤ
  25. 抽 ( ブラックボックス ): プログラミングの重 な え 抽 の⽬的はいくつかのまとま りに

    前を付けることで,内 の を気にせずに り うことで す。「ブラックボックス 」とも います。ブラックボックスでは ⼒と ⼒だけが決まっていて内 の処理を隠しています。 ブラックボックスの例として電卓 がある。キー ⼒ , 晶 ⽰を み るだけで 算が ⾏できる が,内 でどのような処理をして いるかは からない。 https://xtech.nikkei.com/it/article/COLUMN/20050913/221049/ ブラックボックス「みじん切り」 ブラックボックス「 める」 半 に切って、切れ みを れて、.... フライパンに油を いて、 をつけて、... 例) 料理の場 品を作って、 み わせるイメージ。 回中 の処理を書くのではなく、⼀度書いた処理を み わせて使う
  26. プログラミング も、より いレ イヤから れる に してきた

  27. プログラミング のレイヤー け レベルの が しい? レベルプログラミングを ぶの は、 レベルプログラミングを

    ぶ事に べ 常に しい マシン アセンブラ C++ 等 レベル Javascript 等 レベル フレームワーク Nocode
  28. フレームワークとは 年はフレームワークによって仕事も かれている フレームワークとは、簡単にアプリケーションやシステムを開発するために、 例えばWeb サイトでよく使う「ボタン」「メインメニュー」といった 品が⽤ されている フレームワーク に書き

    が く異なるため、採⽤する ・開発する はほとんど別 として われる。 必 な が予め⽤ された⾻ み 代 的なフレームワーク:
  29. 代 的な / フレームワーク

  30. 主な⽤ ・レイヤー モダン/ レガシー 01 02 perspective

  31. レイヤ フロントエンド レイヤ バックエンド・OS モダン レガシー

  32. エンジニアの中でトレンドになっている と 開発の現場よく使われるプログラミング レガシー モダン エンジニアが む しい 描きやすい より

    レイヤの が い フレームワークが い や開発セオリーがすぐ わる プロの開発の現場でよく使われる 受 、金 お い ( 性重 ) はあまり わらない 立された開発セオリー コストが く作れる 性・ ⽣ 性・ 頼性
  33. : 金 のサービス開発は⼤ 性が⼤事 東 の件 にアップデートだと 性が必 なため前書き しができない

  34. 式年

  35. レガシーな技 の例 COBOL

  36. モダンな / フレームワーク

  37. Flutter は Google が開発しているオープンソースのアプリケー ションフレームワークです。 クロスプラットフォームに しており、ワンソースで のプ ラットフォーム(iOS 、Android

    、Web 、Windows 、Mac 、Linux ) に したアプリを開発することができます。 また、マテリアルデザインによる しい UI を利⽤することがで きます。 クロスプラットフォーム(iOS 、Android 、Web 、Windows 、 Mac 、Linux ) Dart による開発 異なるプラットフォームで共 の UI (独⾃のマテリアル UI ) ホットリロード( したコードをリアルタイムに 映) な動作 クロスプラットフォーム 1つのコード iOS Web Android
  38. Go は2009 年11 ⽉にGoogle がオープンソースで 開したプログラミング です。 サーバーサイドがメイン Google App

    Engine for Go というPaaS を使うこと ができる Go は 常にコードが書きやすく、冗 な は 不 。 パフォーマンスの良いコードを書きやすい がシンプルで みやすい AI のライブラリchainer 等もpython で書かれて いる。 AI といえばPython パフォーマンスは り良くない
  39. の開発では、 の ・フレームワークを み わせる API

  40. フロントエンドとバックエンドは、 API で がれる API とは、バックエンド(サーバー側)に⽤ する、受付 ⼝の なもの フロントエンド側から、APi

    を利⽤する事により、サーバー側での処理と すr API ⼒された⽇付の予 状況を すAPI ⽇付を ⼒ 予 状況 予 状況が ⽰される
  41. 3. の開発はどの に めていくのか

  42. エンジニアのイメージ ずっと黒い ⾯ ずっとキーボードをカチャカチャ ずっとコードを書いている

  43. スラスラ書いて、1 発で動く ↓ 書いたらエラーが当たり前 のエンジニア: 2 つの間 い ずっとコードを書いている ↓

    えている/ べている時間も い
  44. Twitter べる える コード を書く エンジニアの開発における時間配 ( 例) 構な時間こんな じで

    え んでいる。 ( しかけないで... )
  45. エンジニアに必 な Top3 耐⼒ べる⼒ 英 ⼒ 1. 2. 3.

  46. 書いたらエラーは当たり前 に指⽰しないと1mm も動かない 書かれた りに動く タユピンコ の 徴 1 箇

    でも間 い・1 でも間 いがあると⼀切動かない
  47. エラーを⾒れば、 どこが間 っているか かる file not found: ファイルが ⾒つからなかったよ 「エラーを

    してくれる」と うの もプログラミング の 常に重 な たまにエラーが ないのにバグが て⼤ ... エラーを したらまた しいエラー が、の り し
  48. 仕 ・エラーの 策を べる stack Overflow で 問 式ドキュメントを む(

    重 ) GOogle
  49. ポイント: 式ドキュメントを むこと 個 のブログに有 な情 が っている場 もあるが、そ の

    とは が う/ その が間 っている可 性もある 問題にハマってしまうこともある 基 的に使っている ・フレームワーク等の 式ドキュ メントを む が作ったものなので、作った が書いている 書 が⼀ 良い。 界中の が作るので、英 が い
  50. ・フレームワークは、 界中の が、 界中の に向けて 作っている Flutter: Google Vue.js 中国の個

    Facebook Ruby: ⽇ ( ) 英 でドキュメントが書かれている バグの情 も英 に にある
  51. チーム開発の ⼿ について で開発する場 、「どうプログラミング するか」 に、「どうチームをマネージして いくか」という事を えなければいけません。 GAFA

    でも採⽤されている⼿ から、気をつけ るべきポイントまで、⼀気にご します。
  52. 1. ウォーターフォール 受 開発でよく⽤いられる。 からの を固め、 するビジネスモデルに マッチしている まずは を

    て固めてから、 体 を めてゆく、 と う⼿ 開発スピードが早い、と う利点がある。 ユーザーの をソフトウェアに 映しづらい、と う 点がある。
  53. https://qiita.com/bonybeat/items/a175d3ef8c9631ce3f84

  54. ウォータフォール・モデルの歴史は古く,1968 年にさかのぼる。この年,⻄ドイツのガルミッシュに おいて、NATO 援の国 が開かれ,ソフトウェア開発をそれまでの 的な作成 から, 代 的な⼯業 品としての

    作成 に えることが された。 その 果,ソフトウェアを開発する をいくつかの⼯ (フェーズ)に け,各⼯ の 了を 味す るドキュメントを作成して, を 理するとともに作成したドキュメントを 査することによって早 いうちから品 の作り みをしようとする えが提 された。 これがウォータフォール・モデルである。このときのモデルはベームに よって 正され, ⽇ 界中で使われるものになった。 ウォーターフォールモデルの に する ウォーターフォールに する を く ⼩ NATO の にて提唱
  55. 2. アジャイル 02 スタートアップで主に⽤いられる開発⼿ イテレーション( 復) と呼ばれる い期間で、 や開発 を

    り し⾏う⼿ 。 に を て決めてしまうウォーターフォールに し、 単なる開発⼿ だけでなく、 論も まれた 念にな っているの な再 価、 を わせた 思 の 重 、 的 ない 書 ユーザーの を り れながら開発を⾏う。
  56. トライ& エラー を り す スタートアップ 業では、 りがあることを前提に、それをできる り早期に 正する、つまり、「⼩さく、早く失敗する」ことを重

    しています。その開発⼿ として 奨されているのが「アジャイ ルモデル」です。 アジャイル開発では、「 復(イテレーション)」と呼ぶ い開発 期間を1 つの単 とし、その単 ごとに成果物を提⽰し するこ とで、失敗するリスクの ⼩ を ります (中略) ウォーターフォールモデルでは 期⼯ で正しい 件が得られなけ れば で⼤きく失敗するのに し、アジャイルモデルでは、 期 から⼩さな失敗を り みながら、 しずつビジネスを していけることがわかると思います。 https://qiita.com/bonybeat/items/a175d3ef8c9631ce3f84
  57. アジャイルソフトウェア開発 たちは、ソフトウェア開発の あるいは を⼿助けをする活動を じて、 よりよい開発 を⾒つけだそうとしている。 この活動を して、 たちは

    下の価 に った。 プロセスやツールよりも個 と を、 括的なドキュメントよりも動くソフトウェアを、 よりも との協 を、 に従うことよりも への を、 価 とする。すなわち、左 のことがらに価 があることを めながらも、 たちは右 のことがらにより価 をおく。 Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin FowlerJames GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian MarickRobert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas © 2001, 上 の著者たち この は、この 書きも めた形で を めることを 件に ⾃由にコピーしてよい。
  58. アプリ開発のリアル

  59. その⽇の掃 当 を知らせる 掃 当 BOT

  60. LINE BOT にした 理由 クラスメイト 員にLINE が すでにあるクラスのLINE グループに 知ができる

  61. 「便利そうだからうちのクラスにも しい」

  62. None
  63. の中の 当 の問題点 ⼿間がかかる 01 ⼿間がかかる 01 物理的制 がある 02

    為的トラブルが きる 03
  64. 掃 当 BOT は 回プログラミ ングが必 … 簡単に できるよう にすれば

    々な当 に使える
  65. None
  66. 当 に わる⼿間を ⼩ にしたUX

  67. None
  68. None
  69. None
  70. None
  71. None
  72. None
  73. がToubans! を作った

  74. ⼿回し 掃 当 ・ ⼿に回す ・回し れ ・ れ

  75. スマホで 1 ⽇で Java で 授業中、 の下でコードを書いては べ、プリントの 裏にアルゴリズムを書いて のコード

  76. その 、PHP で 書き し その 、Java のままではLINE Bot として

    開するには不向きであったため、PHP に書 き え。
  77. リリース 、Discord バージョンを作りたいと われた 僕の発 を いていた⼩ ⽣の男の オープンイノベーションを じた

    OSS の開発で こりやすい
  78. ふつう、ソフトウエアのソースコードは知的財 として保 され、ソフトウエ ア・ベンダーと呼ばれる 業は、そこから作成されたバイナリ( ⾏イメージ) のみを 売してビジネスとしています。 それに して、OSS

    (オープンソース・ソフトウエア)とは、ソースコードが 償 で 開され、 良や再配布を⾏うことが に しても 可されているソフトウエ アのことです。 OSS と たようなソフトウエアにフリーウエア(フリーソフト)があります。 フリーウエアも 償で提供され、だれでも使うことができます。 しかし、フリーウエアの くは、個 向けのちょっとした便利な (圧 ・ 凍とか)を 現するツールで、開発も個 で⾏われている場 がほとんどです。 ⼀ 、OSS は、OS やデータベースといった 業向けシステムでの利⽤を⽬的とした ものが となります。OSS は、このようなシステムでも使⽤に耐える や品 を 現するために、 くのボランティア開発者がインターネットを して共同開 発しており、この 団のことをOSS コミュニティと呼びます。 OSS Open Source Software https://www.ossnews.jp/oss/ Firefox
  79. OSS の仕 み https://www.google.com/url?sa=i&url=https%3A%2F%2Fthinkit.co.jp%2Fcert%2Fbooks%2F1%2F1%2F2%2F3.htm&psig=AOvVaw0IyPxUtCBoEbRL0W4Hg6G8&ust=1616617469756000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCJjls8Kfx-8CFQAAAAAdAAAAABAN

  80. OSS コミッターだと採⽤に 常に有利 OSS コミッターとして活 する の需 は 常に い

    https://www.wantedly.com/projects/450399 https://type.jp/et/feature/11311/
  81. 4. プログラミング 助⾛は⼗ です までの知識を活かし て、 プログラミングの 界に2 、3 踏み

    れましょう 11
  82. な落とし は⼤ な「 構築」 さあコードを書き めましょう!... と いたいところです が、開発を める前にもう1

    仕事する必 があります。 「 構築」とは、あなたのPC に、プログラミングが め られる を える事です。 者が もつまづきやすい ポイントになっています。
  83. クイックに めたいなら、Web 上で めよう 構築は 常に⾯ で な作業ですが、(しかもプログラミングの とはなんら ない)

    年、Web 上の開発 が ってきています。ちょっとした ⾨なら⼗ ですし、プロ⽤の も いつつあります。 Code Pen( ⾨⽤) codespaces( プロ⽤)
  84. 半 5m の問題を 決する。 ⾃ から半 5m 内で、問題は必ず こっている。 「プログラミング」を

    ぶためにベストな は、 何か⾃ の作りたいものを1つ、作ってみる事で す。半 5m; 場の 、 のホーム、⾃宅の の上 に、プログラミングで 決できる 題は っていま す。 「作りたいもの」 の⾒つけ
  85. 5. 疑 何でもどうぞ! 11