Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
非エンジニアのための 0からわかる プログラミング・開発講座
Search
Yui Nishimura
March 24, 2021
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
非エンジニアのための 0からわかる プログラミング・開発講座
Yui Nishimura
March 24, 2021
More Decks by Yui Nishimura
See All by Yui Nishimura
未踏ジュニアに参加して/mitoujr-2019-yuinishimura
nisshi79
2
380
Other Decks in Programming
See All in Programming
Lessons from Spec-Driven Development
simas
PRO
0
220
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
130
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
180
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
580
さぁV100、メモリをお食べ・・・
nilpe
0
150
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
140
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.5k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
610
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
180
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
150
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Building Applications with DynamoDB
mza
96
7.1k
Balancing Empowerment & Direction
lara
6
1.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
450
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Utilizing Notion as your number one productivity tool
mfonobong
4
330
Music & Morning Musume
bryan
47
7.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Transcript
⻄ 非エンジニアのための ゼロからわかる プログラミング・開発講座
01 ⽬的 02 アプリが動作する仕 みを ・例で 快に 03 の開発はどの に
めて いくのか 04 プログラミング 05 疑 résumé
⽬的 1 なぜ 、プログラミングを この 義で得られること ぶことが必 か
なぜ 、プログラミングを ぶことが必 か 13 01 ⽣の攻略 の1つ 現代において、コンピュータ ーは
隷、プログラムは と⾒なすことができる。 政 の でもある り、 現代の「 み・書き」算 になっている。 ある 味、コミュニケーシ ョン・異 理 ⼒ 02 基 として 03 「 き」を発⾒するために プログラミングで物が動くのは 「 しい」 優 なプログラマーはなぜ優 か。
これまでの「⾃ のために働いてくれる他者」 を 隷にする。 現代では禁⽌されている により、 を従わせる ⾃由にできる が1 円
上あるひといる? 構 ・ ⼒構 を作り、 が動く構 をマネージ メントする 、 、王 授 ⼒を持ち、 が⾃ら動くようにする アイドル、 、 、配偶者、Youtuber 、可処 時間ハッカー 現代は「コンピュータに働いてもらう」が可 になった ⼀ が で「 隷」を持てるようになった めて の時代 だからコンピュータについて ぶ必 がある 01 ⽣の攻略 : ⾃ の為に働いてくれる 他者を⾒つける https://www.slideshare.net/TokorotenNakayama/21-131325177
https://twitter.com/fladdict/status/774988305062506496?s=20
お金→ 材( エンジニア)→ システム→ お金 07 ニューヨークにあるゴールドマン・サックス の⽶国株の ⾨には、 盛期の2000
年に 600 のトレーダーが在籍し、⼤⼝ の ⾏の に じ、株を売買していた。現在、こ の ⾨にはたった2 しか っていない。 株式売買の⾃動 プログラムが、他のトレーダ ーの を ったのだ。プログラムを えるのは 200 のコンピューター・エンジニアだ。 https://www.technologyreview.jp/s/24542/as-goldman-embraces-automation-even-the-masters-of-the-universe-are-threatened/
02 DX 時代の 基 として 何をするにしても、 プログラミングは わってくる 業をやりたい →プログラミングが必
作物の 理システムetc.. の 業も、dx しないと⽣き れない DX 戦略はどうする DX 材/ エンジニアの採⽤は コミュニケー ションはどうする https://youtu.be/nKIu9yen5nc
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 プログラマだけ すれ ばよいのでは?
3. 「作りたい何か」を 発⾒する 優 なエンジニアは「プログラミングを ばないと」と って ばない プログラミングで作りたいものが作れると しい、と
じ てもらいたい あくまで⾃ で決めた⾃ で作りたいものを る事が重 この では、 ⼤ 「どう活⽤しよう」「何作ろう かな、と える」に げるためのきっかけにしたい https://twitter.com/linux123pc/status/1373565403390038017?s=21
2. アプリが動作する仕 みを ・例で 快に
None
None
None
None
None
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 しか えない マシン に する必 がある
操作を のレイヤを し、 マシン に翻 する
レイヤとは ≒抽 度 料理の場 : 低レイヤ(抽象度:低、具体的) ⾼レイヤ低レイヤ(抽象度:低、抽象的) 「料理を 作りたい」 「中華料理が
作りたい」 「 を 作りたい」 ミンチ⾁を... の⽪を... 」
コンピュータ の歴史 コンピュータは、歴史上より いレイ ヤからも れる に してきた Apple は何が⾰
的なのか これから こること
期のコンピュー タ の り、⼿で スイッチをパチパ チ切り替えて使っ ていた ENIAC より いレイヤからも
れる に だけの味 気ない ⾯だ が、OS として使 えた。 MS-DOS OS にGUI( マウス で操作する ⾯) を し⾰ を こした Macintosh
タッチ、キー ボード等指で の操作に え 声での操作に も iphone 声での操作に 常に曖昧な 葉にも
するように Echo
低レイヤ 操作( ボタン・ ⼒・など) 令 果・ ⾯ ⽰ API コール
果 果・ ⾯ ⽰ 電気 算 果
レイヤ( レベル) ≒抽 度 レイヤ: ハードウェアに いかという 味。 レベルが いほど⽣のハードウェアを
識する。 械 に い ⼀ 下のレイヤはCPU ⼀ 上のレイヤは ⾯(UI) 常、我々の操作はアプリケーション→OS→ ハードウェアの順 に翻 ・ され、 的にCPU で 算される。 低レイヤ ⾼レイヤ
抽 ( ブラックボックス ): プログラミングの重 な え 抽 の⽬的はいくつかのまとま りに
前を付けることで,内 の を気にせずに り うことで す。「ブラックボックス 」とも います。ブラックボックスでは ⼒と ⼒だけが決まっていて内 の処理を隠しています。 ブラックボックスの例として電卓 がある。キー ⼒ , 晶 ⽰を み るだけで 算が ⾏できる が,内 でどのような処理をして いるかは からない。 https://xtech.nikkei.com/it/article/COLUMN/20050913/221049/ ブラックボックス「みじん切り」 ブラックボックス「 める」 半 に切って、切れ みを れて、.... フライパンに油を いて、 をつけて、... 例) 料理の場 品を作って、 み わせるイメージ。 回中 の処理を書くのではなく、⼀度書いた処理を み わせて使う
プログラミング も、より いレ イヤから れる に してきた
プログラミング のレイヤー け レベルの が しい? レベルプログラミングを ぶの は、 レベルプログラミングを
ぶ事に べ 常に しい マシン アセンブラ C++ 等 レベル Javascript 等 レベル フレームワーク Nocode
フレームワークとは 年はフレームワークによって仕事も かれている フレームワークとは、簡単にアプリケーションやシステムを開発するために、 例えばWeb サイトでよく使う「ボタン」「メインメニュー」といった 品が⽤ されている フレームワーク に書き
が く異なるため、採⽤する ・開発する はほとんど別 として われる。 必 な が予め⽤ された⾻ み 代 的なフレームワーク:
代 的な / フレームワーク
主な⽤ ・レイヤー モダン/ レガシー 01 02 perspective
レイヤ フロントエンド レイヤ バックエンド・OS モダン レガシー
エンジニアの中でトレンドになっている と 開発の現場よく使われるプログラミング レガシー モダン エンジニアが む しい 描きやすい より
レイヤの が い フレームワークが い や開発セオリーがすぐ わる プロの開発の現場でよく使われる 受 、金 お い ( 性重 ) はあまり わらない 立された開発セオリー コストが く作れる 性・ ⽣ 性・ 頼性
: 金 のサービス開発は⼤ 性が⼤事 東 の件 にアップデートだと 性が必 なため前書き しができない
式年
レガシーな技 の例 COBOL
モダンな / フレームワーク
Flutter は Google が開発しているオープンソースのアプリケー ションフレームワークです。 クロスプラットフォームに しており、ワンソースで のプ ラットフォーム(iOS 、Android
、Web 、Windows 、Mac 、Linux ) に したアプリを開発することができます。 また、マテリアルデザインによる しい UI を利⽤することがで きます。 クロスプラットフォーム(iOS 、Android 、Web 、Windows 、 Mac 、Linux ) Dart による開発 異なるプラットフォームで共 の UI (独⾃のマテリアル UI ) ホットリロード( したコードをリアルタイムに 映) な動作 クロスプラットフォーム 1つのコード iOS Web Android
Go は2009 年11 ⽉にGoogle がオープンソースで 開したプログラミング です。 サーバーサイドがメイン Google App
Engine for Go というPaaS を使うこと ができる Go は 常にコードが書きやすく、冗 な は 不 。 パフォーマンスの良いコードを書きやすい がシンプルで みやすい AI のライブラリchainer 等もpython で書かれて いる。 AI といえばPython パフォーマンスは り良くない
の開発では、 の ・フレームワークを み わせる API
フロントエンドとバックエンドは、 API で がれる API とは、バックエンド(サーバー側)に⽤ する、受付 ⼝の なもの フロントエンド側から、APi
を利⽤する事により、サーバー側での処理と すr API ⼒された⽇付の予 状況を すAPI ⽇付を ⼒ 予 状況 予 状況が ⽰される
3. の開発はどの に めていくのか
エンジニアのイメージ ずっと黒い ⾯ ずっとキーボードをカチャカチャ ずっとコードを書いている
スラスラ書いて、1 発で動く ↓ 書いたらエラーが当たり前 のエンジニア: 2 つの間 い ずっとコードを書いている ↓
えている/ べている時間も い
Twitter べる える コード を書く エンジニアの開発における時間配 ( 例) 構な時間こんな じで
え んでいる。 ( しかけないで... )
エンジニアに必 な Top3 耐⼒ べる⼒ 英 ⼒ 1. 2. 3.
書いたらエラーは当たり前 に指⽰しないと1mm も動かない 書かれた りに動く タユピンコ の 徴 1 箇
でも間 い・1 でも間 いがあると⼀切動かない
エラーを⾒れば、 どこが間 っているか かる file not found: ファイルが ⾒つからなかったよ 「エラーを
してくれる」と うの もプログラミング の 常に重 な たまにエラーが ないのにバグが て⼤ ... エラーを したらまた しいエラー が、の り し
仕 ・エラーの 策を べる stack Overflow で 問 式ドキュメントを む(
重 ) GOogle
ポイント: 式ドキュメントを むこと 個 のブログに有 な情 が っている場 もあるが、そ の
とは が う/ その が間 っている可 性もある 問題にハマってしまうこともある 基 的に使っている ・フレームワーク等の 式ドキュ メントを む が作ったものなので、作った が書いている 書 が⼀ 良い。 界中の が作るので、英 が い
・フレームワークは、 界中の が、 界中の に向けて 作っている Flutter: Google Vue.js 中国の個
Facebook Ruby: ⽇ ( ) 英 でドキュメントが書かれている バグの情 も英 に にある
チーム開発の ⼿ について で開発する場 、「どうプログラミング するか」 に、「どうチームをマネージして いくか」という事を えなければいけません。 GAFA
でも採⽤されている⼿ から、気をつけ るべきポイントまで、⼀気にご します。
1. ウォーターフォール 受 開発でよく⽤いられる。 からの を固め、 するビジネスモデルに マッチしている まずは を
て固めてから、 体 を めてゆく、 と う⼿ 開発スピードが早い、と う利点がある。 ユーザーの をソフトウェアに 映しづらい、と う 点がある。
https://qiita.com/bonybeat/items/a175d3ef8c9631ce3f84
ウォータフォール・モデルの歴史は古く,1968 年にさかのぼる。この年,⻄ドイツのガルミッシュに おいて、NATO 援の国 が開かれ,ソフトウェア開発をそれまでの 的な作成 から, 代 的な⼯業 品としての
作成 に えることが された。 その 果,ソフトウェアを開発する をいくつかの⼯ (フェーズ)に け,各⼯ の 了を 味す るドキュメントを作成して, を 理するとともに作成したドキュメントを 査することによって早 いうちから品 の作り みをしようとする えが提 された。 これがウォータフォール・モデルである。このときのモデルはベームに よって 正され, ⽇ 界中で使われるものになった。 ウォーターフォールモデルの に する ウォーターフォールに する を く ⼩ NATO の にて提唱
2. アジャイル 02 スタートアップで主に⽤いられる開発⼿ イテレーション( 復) と呼ばれる い期間で、 や開発 を
り し⾏う⼿ 。 に を て決めてしまうウォーターフォールに し、 単なる開発⼿ だけでなく、 論も まれた 念にな っているの な再 価、 を わせた 思 の 重 、 的 ない 書 ユーザーの を り れながら開発を⾏う。
トライ& エラー を り す スタートアップ 業では、 りがあることを前提に、それをできる り早期に 正する、つまり、「⼩さく、早く失敗する」ことを重
しています。その開発⼿ として 奨されているのが「アジャイ ルモデル」です。 アジャイル開発では、「 復(イテレーション)」と呼ぶ い開発 期間を1 つの単 とし、その単 ごとに成果物を提⽰し するこ とで、失敗するリスクの ⼩ を ります (中略) ウォーターフォールモデルでは 期⼯ で正しい 件が得られなけ れば で⼤きく失敗するのに し、アジャイルモデルでは、 期 から⼩さな失敗を り みながら、 しずつビジネスを していけることがわかると思います。 https://qiita.com/bonybeat/items/a175d3ef8c9631ce3f84
アジャイルソフトウェア開発 たちは、ソフトウェア開発の あるいは を⼿助けをする活動を じて、 よりよい開発 を⾒つけだそうとしている。 この活動を して、 たちは
下の価 に った。 プロセスやツールよりも個 と を、 括的なドキュメントよりも動くソフトウェアを、 よりも との協 を、 に従うことよりも への を、 価 とする。すなわち、左 のことがらに価 があることを めながらも、 たちは右 のことがらにより価 をおく。 Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin FowlerJames GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian MarickRobert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas © 2001, 上 の著者たち この は、この 書きも めた形で を めることを 件に ⾃由にコピーしてよい。
アプリ開発のリアル
その⽇の掃 当 を知らせる 掃 当 BOT
LINE BOT にした 理由 クラスメイト 員にLINE が すでにあるクラスのLINE グループに 知ができる
「便利そうだからうちのクラスにも しい」
None
の中の 当 の問題点 ⼿間がかかる 01 ⼿間がかかる 01 物理的制 がある 02
為的トラブルが きる 03
掃 当 BOT は 回プログラミ ングが必 … 簡単に できるよう にすれば
々な当 に使える
None
当 に わる⼿間を ⼩ にしたUX
None
None
None
None
None
None
がToubans! を作った
⼿回し 掃 当 ・ ⼿に回す ・回し れ ・ れ
スマホで 1 ⽇で Java で 授業中、 の下でコードを書いては べ、プリントの 裏にアルゴリズムを書いて のコード
その 、PHP で 書き し その 、Java のままではLINE Bot として
開するには不向きであったため、PHP に書 き え。
リリース 、Discord バージョンを作りたいと われた 僕の発 を いていた⼩ ⽣の男の オープンイノベーションを じた
OSS の開発で こりやすい
ふつう、ソフトウエアのソースコードは知的財 として保 され、ソフトウエ ア・ベンダーと呼ばれる 業は、そこから作成されたバイナリ( ⾏イメージ) のみを 売してビジネスとしています。 それに して、OSS
(オープンソース・ソフトウエア)とは、ソースコードが 償 で 開され、 良や再配布を⾏うことが に しても 可されているソフトウエ アのことです。 OSS と たようなソフトウエアにフリーウエア(フリーソフト)があります。 フリーウエアも 償で提供され、だれでも使うことができます。 しかし、フリーウエアの くは、個 向けのちょっとした便利な (圧 ・ 凍とか)を 現するツールで、開発も個 で⾏われている場 がほとんどです。 ⼀ 、OSS は、OS やデータベースといった 業向けシステムでの利⽤を⽬的とした ものが となります。OSS は、このようなシステムでも使⽤に耐える や品 を 現するために、 くのボランティア開発者がインターネットを して共同開 発しており、この 団のことをOSS コミュニティと呼びます。 OSS Open Source Software https://www.ossnews.jp/oss/ Firefox
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
OSS コミッターだと採⽤に 常に有利 OSS コミッターとして活 する の需 は 常に い
https://www.wantedly.com/projects/450399 https://type.jp/et/feature/11311/
4. プログラミング 助⾛は⼗ です までの知識を活かし て、 プログラミングの 界に2 、3 踏み
れましょう 11
な落とし は⼤ な「 構築」 さあコードを書き めましょう!... と いたいところです が、開発を める前にもう1
仕事する必 があります。 「 構築」とは、あなたのPC に、プログラミングが め られる を える事です。 者が もつまづきやすい ポイントになっています。
クイックに めたいなら、Web 上で めよう 構築は 常に⾯ で な作業ですが、(しかもプログラミングの とはなんら ない)
年、Web 上の開発 が ってきています。ちょっとした ⾨なら⼗ ですし、プロ⽤の も いつつあります。 Code Pen( ⾨⽤) codespaces( プロ⽤)
半 5m の問題を 決する。 ⾃ から半 5m 内で、問題は必ず こっている。 「プログラミング」を
ぶためにベストな は、 何か⾃ の作りたいものを1つ、作ってみる事で す。半 5m; 場の 、 のホーム、⾃宅の の上 に、プログラミングで 決できる 題は っていま す。 「作りたいもの」 の⾒つけ
5. 疑 何でもどうぞ! 11