SlideShare a Scribd company logo
プログラミングとは?
料理を例にしてプログラミングの世界観を理解しよう!




              株式会社パソナテック キャリアサポート部 
                             小山田 浩




                      Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
はじめに

• プログラミングの世界観と料理の世界観には比
 較的共通する所があるように思えるので、それ
 ぞれを対比しながら、プログラミングとは何か
 を理解してもらおうと思います




              Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
まずは歴史をふりかえる

• プログラミング言語と料理の両方の歴史を振り
 返ると一定の系統が存在するようにみえる

        料理          プログラミング言語
 小麦文化
             お米文化
                    C言語                  Visual Basic


                                                         Haskell




                     ※プログラミング言語の系統は別資料参照


                    Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
系統から読み取れそうなこと

       料理          プログラミング言語
小麦文化        お米文化
                           C言語
                                                   Visual Basic




それぞれの文化(流儀)の違いを超えるのは大変!

                   Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.

                                                                haskell
料理での比較の例




  焼く/煮る      調理方法          煮る/蒸す/茹でる

オリーブ油/ハーブ    調味料             出汁/醤油/味噌

肉/小麦(パン、麺)            魚/米(ご飯、フォー)
              食材
    /野菜                  /乾物/野菜

                    Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
グループワーク:腕前(レベル)について

    •   料理の世界で考えた場合、レシピを考える人と実際に作る人のどちら
        が凄いでしょうか?参加者を3等分して、それぞれの意見を支持する
        グループに分かれて、支持する意見のメリット/デメリットを考えてく
        ださい

         A.レシピを考える人が凄いと思うグループ
         B.実際に作る人が凄いと思うグループ
         C.比較できないと思うグループ

参考:料理の流れのイメージ


   食材などの準備         下準備          調理開始                            仕上げへ

 誰かが考案したレシピ                   レシピを参照してイ                出来上がった料理をレ
                調理法に沿って食材を
 に従って必要な材料の                  メージ通りの味に仕上                シピのイメージにあう
                   加工する
    準備を行う                     がるように調理開始                  ように盛り付け



                                  Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
グループワークの回答例


• 回答:比較できない
• 根拠:レシピは机上の理論的なもので実際にそ
 のイメージ通り作れるかどうかが一番大切。ま
 た上手なレシピがないと、いい腕も活かせない




              Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
システム開発における上流vs下流の腕前(レベ
ル)について

•   料理の世界同様にシステム開発の現場でも同じことが該当する

     料理でレシピを考える人=システムの設計フェーズの人

     実際に料理を作る人=プログラマー

•   システム設計の人同士や、プログラマー同士の比較なら意味がある

     システム設計の場合:どの程度設計手法に精通しているか?業界/
     業務知識をどの程度有しているか?

     プログラマーの場合:後述のスライドへ!




                        Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
技術の深さvs手軽さのポジショニングマップ
               深い



     C++
           C             Visual Basic
               C# Java
敷居                                                                 手軽
高い
                              Perl Java
                              PHP Script
                                            VBA


               浅い
                    Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
技術の深さvs手軽さのポジショニングマップ 続き

•   プログラミング言語それぞれに習得する際の手軽さと、奥深さが異な
    る

     左側の言語が出来る人でレベルが高ければWindowsやLinuxの開
     発も行うことができるレベル

•   基幹系システム開発で利用されるプログラミング言語についてはプロ
    グラミングの書き方に一定のルールが多い(堅い)ため、個々のプロ
    グラマーのレベルの差が生じづらい

     Perl、PHP、Ruby、JavaScriptといったLightweight
     Languageと呼ばれる言語は同じことを実現するのに色々な書き
     方が出来るので、レベルの差がとても出やすい




                            Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
Javaプログラマーのレベル感を料理人に例えた場
 合にはどのような感じ?
難易度
                                                 出来合いのモノ は使わ
                                                なくても自分が作りたい
                                                料理を素早く上手に出来
                                                    るレベル
      料理の世界における 出来合いのモノ という
      のがプログラミングの世界でいうライブラ
                              この上に位置するレベルの人
          リと呼ばれるものに相当
                              は世の中にもそれほど大勢は
                                いないくらい凄い!

                   出来合いのモノ は使わなくても自分
                    が作りたい料理が出来るレベル


             出来合いのモノ を組み合わせ
             て幅広く料理が出来るレベル


   出来合いのモノ を使って決
  まった料理しか作れないレベル
                                                       習得に要する期間
                                Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
まとめ

•   プログラミングの世界には一定の系統が存在する

     系統を超えて技術習得するのは大変

•   料理に例えたがレシピを考える人(システムの設計をする人)と実際
    に調理をする人(プログラミングをする人)を比較するのは意味がな
    い

     比較をするならばシステム設計に関わる人同士や、プログラミング
     に関わる人同士を比較するのは意味がある

•   プログラミング言語には、それぞれに技術の奥深さと習得の容易さが
    存在

     Lightweight Languageと呼ばれる言語は同じことを実現するの
     に色々な書き方が出来るのでレベルの差がとても出やすい
                           Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.

More Related Content

Similar to ProgrammingLanguage

TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」(株)TAM
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
Devがawsと出会ってdev opsを目指した話
Devがawsと出会ってdev opsを目指した話Devがawsと出会ってdev opsを目指した話
Devがawsと出会ってdev opsを目指した話Shota Umeda
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行gree_tech
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019満徳 関
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼン
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼングローバル人事塾【採用の未来2020】 レアジョブ山田プレゼン
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼンYuichiro "Philip" Yamada
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops裕貴 荒井
 
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦Preferred Networks
 

Similar to ProgrammingLanguage (13)

TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
なでしこ開発記録
なでしこ開発記録なでしこ開発記録
なでしこ開発記録
 
Devがawsと出会ってdev opsを目指した話
Devがawsと出会ってdev opsを目指した話Devがawsと出会ってdev opsを目指した話
Devがawsと出会ってdev opsを目指した話
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼン
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼングローバル人事塾【採用の未来2020】 レアジョブ山田プレゼン
グローバル人事塾【採用の未来2020】 レアジョブ山田プレゼン
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦
 

More from Hiroshi Oyamada

2014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol32014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol3Hiroshi Oyamada
 
20140319 titanium meetupvol17
20140319 titanium meetupvol1720140319 titanium meetupvol17
20140319 titanium meetupvol17Hiroshi Oyamada
 
2014 02-19-titanium meetupvol16
2014 02-19-titanium meetupvol162014 02-19-titanium meetupvol16
2014 02-19-titanium meetupvol16Hiroshi Oyamada
 
20130910 titanium meetupvol11
20130910 titanium meetupvol1120130910 titanium meetupvol11
20130910 titanium meetupvol11Hiroshi Oyamada
 
勉強会主催者のための勉強会
勉強会主催者のための勉強会勉強会主催者のための勉強会
勉強会主催者のための勉強会Hiroshi Oyamada
 
20130613 titanium meetupvol9
20130613 titanium meetupvol920130613 titanium meetupvol9
20130613 titanium meetupvol9Hiroshi Oyamada
 
2013 06-11-craft beerfanlt
2013 06-11-craft beerfanlt2013 06-11-craft beerfanlt
2013 06-11-craft beerfanltHiroshi Oyamada
 
2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedoHiroshi Oyamada
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7Hiroshi Oyamada
 
2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titaniumHiroshi Oyamada
 
20130126 titanium新年会
20130126 titanium新年会20130126 titanium新年会
20130126 titanium新年会Hiroshi Oyamada
 
20130125 titanium meetupvol5
20130125 titanium meetupvol520130125 titanium meetupvol5
20130125 titanium meetupvol5Hiroshi Oyamada
 
2012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol42012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol4Hiroshi Oyamada
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
SinatraアプリをherokuにアップHiroshi Oyamada
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶHiroshi Oyamada
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Hiroshi Oyamada
 
2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2dHiroshi Oyamada
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2dHiroshi Oyamada
 

More from Hiroshi Oyamada (20)

2014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol32014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol3
 
20140319 titanium meetupvol17
20140319 titanium meetupvol1720140319 titanium meetupvol17
20140319 titanium meetupvol17
 
2014 02-19-titanium meetupvol16
2014 02-19-titanium meetupvol162014 02-19-titanium meetupvol16
2014 02-19-titanium meetupvol16
 
TitaniumMeetUpVol13
TitaniumMeetUpVol13TitaniumMeetUpVol13
TitaniumMeetUpVol13
 
20130910 titanium meetupvol11
20130910 titanium meetupvol1120130910 titanium meetupvol11
20130910 titanium meetupvol11
 
勉強会主催者のための勉強会
勉強会主催者のための勉強会勉強会主催者のための勉強会
勉強会主催者のための勉強会
 
20130613 titanium meetupvol9
20130613 titanium meetupvol920130613 titanium meetupvol9
20130613 titanium meetupvol9
 
2013 06-11-craft beerfanlt
2013 06-11-craft beerfanlt2013 06-11-craft beerfanlt
2013 06-11-craft beerfanlt
 
2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
 
2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium
 
20130126 titanium新年会
20130126 titanium新年会20130126 titanium新年会
20130126 titanium新年会
 
20130125 titanium meetupvol5
20130125 titanium meetupvol520130125 titanium meetupvol5
20130125 titanium meetupvol5
 
2012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol42012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol4
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
Sinatraアプリをherokuにアップ
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
 
20120125 titanium study
20120125 titanium study20120125 titanium study
20120125 titanium study
 

Recently uploaded

論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (10)

論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

ProgrammingLanguage

  • 1. プログラミングとは? 料理を例にしてプログラミングの世界観を理解しよう! 株式会社パソナテック キャリアサポート部  小山田 浩 Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 2. はじめに • プログラミングの世界観と料理の世界観には比 較的共通する所があるように思えるので、それ ぞれを対比しながら、プログラミングとは何か を理解してもらおうと思います Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 3. まずは歴史をふりかえる • プログラミング言語と料理の両方の歴史を振り 返ると一定の系統が存在するようにみえる 料理 プログラミング言語 小麦文化 お米文化 C言語 Visual Basic Haskell ※プログラミング言語の系統は別資料参照 Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 4. 系統から読み取れそうなこと 料理 プログラミング言語 小麦文化 お米文化 C言語 Visual Basic それぞれの文化(流儀)の違いを超えるのは大変! Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved. haskell
  • 5. 料理での比較の例 焼く/煮る 調理方法 煮る/蒸す/茹でる オリーブ油/ハーブ 調味料 出汁/醤油/味噌 肉/小麦(パン、麺) 魚/米(ご飯、フォー) 食材 /野菜 /乾物/野菜 Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 6. グループワーク:腕前(レベル)について • 料理の世界で考えた場合、レシピを考える人と実際に作る人のどちら が凄いでしょうか?参加者を3等分して、それぞれの意見を支持する グループに分かれて、支持する意見のメリット/デメリットを考えてく ださい A.レシピを考える人が凄いと思うグループ B.実際に作る人が凄いと思うグループ C.比較できないと思うグループ 参考:料理の流れのイメージ 食材などの準備 下準備 調理開始 仕上げへ 誰かが考案したレシピ レシピを参照してイ 出来上がった料理をレ 調理法に沿って食材を に従って必要な材料の メージ通りの味に仕上 シピのイメージにあう 加工する 準備を行う がるように調理開始 ように盛り付け Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 7. グループワークの回答例 • 回答:比較できない • 根拠:レシピは机上の理論的なもので実際にそ のイメージ通り作れるかどうかが一番大切。ま た上手なレシピがないと、いい腕も活かせない Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 8. システム開発における上流vs下流の腕前(レベ ル)について • 料理の世界同様にシステム開発の現場でも同じことが該当する 料理でレシピを考える人=システムの設計フェーズの人 実際に料理を作る人=プログラマー • システム設計の人同士や、プログラマー同士の比較なら意味がある システム設計の場合:どの程度設計手法に精通しているか?業界/ 業務知識をどの程度有しているか? プログラマーの場合:後述のスライドへ! Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 9. 技術の深さvs手軽さのポジショニングマップ 深い C++ C Visual Basic C# Java 敷居 手軽 高い Perl Java PHP Script VBA 浅い Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 10. 技術の深さvs手軽さのポジショニングマップ 続き • プログラミング言語それぞれに習得する際の手軽さと、奥深さが異な る 左側の言語が出来る人でレベルが高ければWindowsやLinuxの開 発も行うことができるレベル • 基幹系システム開発で利用されるプログラミング言語についてはプロ グラミングの書き方に一定のルールが多い(堅い)ため、個々のプロ グラマーのレベルの差が生じづらい Perl、PHP、Ruby、JavaScriptといったLightweight Languageと呼ばれる言語は同じことを実現するのに色々な書き 方が出来るので、レベルの差がとても出やすい Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 11. Javaプログラマーのレベル感を料理人に例えた場 合にはどのような感じ? 難易度 出来合いのモノ は使わ なくても自分が作りたい 料理を素早く上手に出来 るレベル 料理の世界における 出来合いのモノ という のがプログラミングの世界でいうライブラ この上に位置するレベルの人 リと呼ばれるものに相当 は世の中にもそれほど大勢は いないくらい凄い! 出来合いのモノ は使わなくても自分 が作りたい料理が出来るレベル 出来合いのモノ を組み合わせ て幅広く料理が出来るレベル 出来合いのモノ を使って決 まった料理しか作れないレベル 習得に要する期間 Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.
  • 12. まとめ • プログラミングの世界には一定の系統が存在する 系統を超えて技術習得するのは大変 • 料理に例えたがレシピを考える人(システムの設計をする人)と実際 に調理をする人(プログラミングをする人)を比較するのは意味がな い 比較をするならばシステム設計に関わる人同士や、プログラミング に関わる人同士を比較するのは意味がある • プログラミング言語には、それぞれに技術の奥深さと習得の容易さが 存在 Lightweight Languageと呼ばれる言語は同じことを実現するの に色々な書き方が出来るのでレベルの差がとても出やすい Copyright (C) 2007 Pasona Tech Inc. All Rights Reserved.