プログラミングのことはじめ 互助会 20160507 バージョン

24

Click here to load reader

Transcript of プログラミングのことはじめ 互助会 20160507 バージョン

Page 1: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのことはじめManabu Murakami

2016.05.07

ちいさな互助会20160507バージョン

Page 2: プログラミングのことはじめ 互助会 20160507 バージョン

目次 ことはじめ・このスライドについて・プログラミングとは?・プログラミングのポイント・プログラムをおぼえよう

読み物・参考書籍・参考サイト

3P

21P

13P

Mayaでプログラム・ Maya の良し悪し・ Maya ヘルプを使いこなす・実践

Page 3: プログラミングのことはじめ 互助会 20160507 バージョン

ことはじめ

Page 4: プログラミングのことはじめ 互助会 20160507 バージョン

このスライドについて スライドの作者

• テクニカルアーティスト。(パイプライン)• プログラミング歴は約 10 年程。システムエンジニア出身。• 特定の業種や技術に特化ではなく、業務ロジックのシステム化に特化している。• これまでの仕事では、 VB 系 /C#/MaxScript/Python などなど複数の言語を使用。• 問題解決の手段としてプログラミングを使っているイメージ。

スライドの目的プログラミングに興味がある人、とにかくやってみてはいるけど…という人達に、プログラミングの勉強方法や汎用的な TIPS を伝えるのが目的です。ターゲットは、メインのお仕事がプログラマーじゃない人。そして、付加価値としてプログラミングを身に着けたい人を対象にしています。

Page 5: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングとは? プログラミングとは何でしょうか?

プログラミングとは、やりたいことをコンピューターが実行できるように、論理的な言葉で命令文を書くことだと言えます。プログラミングには2つの技術が必要です。

• プログラムコードを効率的に記述する、プログラムを書く技術• やりたいことを適切にフロー化する、プログラムを設計する技術

コンピューターは自然言語が理解できないため、曖昧な命令をイイ感じに処理してくれることはありません。意図した動きをしてくれるのは、命令が上手に設計できているからです。裏を返すと、上手にプログラムを書けなくても、設計(デザイン)ができていれば意図したとおりにコンピューターを動かせるわけです。まずは動かすことを考えましょう。上手なプログラムを書くことは2番目で良いのです。

Page 6: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント プログラミングをするときのポイント

プログラミングをはじめるとき、次のようなポイントを意識してみましょう。1. 何をさせたいのか?ゴールを決めよう2. コードの実行方法を把握しておく3. テストとデバッグの方法を把握しておく4. どういった場所に知りたい情報があるか把握しておく5. やりたいことを分解する

Page 7: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント(1) 何をさせたいのか?ゴールを決めよう

プログラミングをやりたいと思った理由は何でしょうか?• 自分の作業の一部を自動化したい?• ツールを作って他の人に貢献したい?

プログラミングはあくまで手段です。目的がはっきりしている方が物事はスムーズに進みます。まずは自分で使って試せるものを作るのがオススメです。ついでに自分の抱える課題が解決できるといいですね!

Page 8: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント(2) コードの実行方法を把握しておく

プログラムを書いたら動かせないと何の意味もありません。特に動くものを作るのであればなおさらです。プログラムコードの実行方法が複数存在している事があります。たとえば、「選択しているコードだけを実行する方法」実行方法は、扱うプログラミング言語やプログラミング環境によっても変わってきます。自分の扱う道具を把握しておくことは非常に重要です。

Page 9: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント(3) テストとデバッグの方法を把握しておく

プログラミングに触れて間もない場合、「テスト」や「デバッグ」という言葉が耳慣れないものかもしれません。「テスト」というのは、プログラムコードが意図通り動くか動作確認をすることです。「デバッグ」というのは、テストに合格しなかった理由を調べることです。テストとデバッグは、それだけでカンファレンスが開かれるほど重要なものです。シンプルなものから専用のシステムを必要とするものまで手法も様々です。まずはベーシックな手段である「 Printデバッグ※」を使ってみましょう。

※Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース

Page 10: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント(4) どういった場所に知りたい情報があるか把握しておく

プログラミングをする上で、何も見ずに進めるのは不可能だと思います。インターネット上に多くの情報がありますので調べておきましょう。使用するプログラミング言語にもよりますが、Python だとメジャーな言語なのでかなり多くの情報が見つかるはずです。プログラムの素晴らしいところは、知らない国の誰かが書いたコードでも読めば理解できる点です。積極的に母国語以外でも調べてみましょう。

Page 11: プログラミングのことはじめ 互助会 20160507 バージョン

プログラミングのポイント(5) やりたいことを分解する

何かプログラムを作ろうとした時、きっと複数の処理を含むと思います。A の処理をした後に、 B の処理を行う。さらに C の処理を…最初からすべてをいっきに処理するプログラムを組むのは難しいことです。やりたいことを出来るだけ分解するクセをつけましょう。仮に自分で行う一連の GUI操作をプログラムで行いたい場合、一つ一つの操作をプログラミングするイメージです。何かを1行~3行程度の短いプログラムを書いて動かす。これをつなげることで個々の挙動を理解しながら全体を構築できます。できるだけ小さく、そして少しずつやりましょう。

Page 12: プログラミングのことはじめ 互助会 20160507 バージョン

プログラムをおぼえよう 最初におぼえておくべきこと

どのようなプログラムを扱う場合にも共通していることが多くあります。まずはプログラムの汎用的な存在(文法)をおぼえておきましょう。• 変数(メモリ)• 関数(再利用性)• 分岐(フロー制御)• ループ(繰り返し)

例題: 1から100までの値を1から順番に加算していきます。(1+2+3+…+100) 加算の途中、それまでの合計値が1000よりも大きい場合は、次に加算する値を2倍にして足します。 100まで加算し終わったら、合計値から1000を引いてください。

※Paiza.IO:ウェブ上でプログラミング!(手元に環境がない場合はこういうサイトでためそう)

Page 13: プログラミングのことはじめ 互助会 20160507 バージョン

Mayaでプログラム

Page 14: プログラミングのことはじめ 互助会 20160507 バージョン

Maya の良し悪しMayaでプログラミングを行うのは実際どうなの?

Maya でプログラミングの勉強をするメリットは多くあります。• 3D データも扱えるので視覚的に結果がわかりやすいプログラムが書ける• スクリプトログがあるので、 GUI操作からスクリプトコードを見ることができる• シェルフを使うことで、プログラムを簡単に使う事ができる• インターネット上に参考にできるスクリプトがたくさんある

逆にデメリットもあると思います。• MEL が独特で若干とっつきにくい( PyMEL があるけど…)• Maya が無いと動かないプログラムになりやすい

総合的に考えると、普段から Maya を使うひとにとっては、勉強するのには良い環境ではないかと思います。

Page 15: プログラミングのことはじめ 互助会 20160507 バージョン

Maya ヘルプを使いこなす(1)じゃぁMayaでやってみようとなったら?

Maya の場合は命令となるコマンドの理解が非常に重要です。手動で Maya の画面を操作した場合、実はその裏で大量のコマンドが実行されています。Maya でプログラムを書くというのは、それらのコマンドを拝借し、組み合わせて意図した処理を作ることになります。これからコマンドの説明が書いてあるヘルプを読むポイントを簡単に解説します。

Page 16: プログラミングのことはじめ 互助会 20160507 バージョン

Maya ヘルプを使いこなす(2)コマンド一覧

気になったコマンドは調べる。最終的に全てのコマンドヘルプを読む。 (link)

3種類の方法でコマンドの絞り込みができる。

M アイコンがあるものは MEL にしかないコマンド

Page 17: プログラミングのことはじめ 互助会 20160507 バージョン

Maya ヘルプを使いこなす(3)コマンド説明ページ(概要)

概要が書いてある。正直日本語訳がよくわからないページもある。説明が難解なものもあるので、よくわからなければ読み進める。

MEL/Python の切り替えが可能

コマンドに使えるフラグ(引数)の説明など

Page 18: プログラミングのことはじめ 互助会 20160507 バージョン

Maya ヘルプを使いこなす(4)コマンド説明ページ(フラグ)

コマンドは与えられたフラグで挙動を変える。Maya の場合は file コマンドのように大量のフラグが存在しているものもある。GUI操作した際の挙動を把握しているとフラグの理解も早い。

作成モード、照会モードなど組合せも重要

フラグ名、特にショートネームは重要

Page 19: プログラミングのことはじめ 互助会 20160507 バージョン

Maya ヘルプを使いこなす(5) コマンド説明ページ(サンプルコード)

全てのフラグに関して記載されていないが、コマンドのだいたいの使い方がわかる。一部のフラグは指定方法がわからないこともあるので、そんなときはネットから似たようなコードを探してみよう。

MEL/Python を切替えることでサンプルコードも変わる

Page 20: プログラミングのことはじめ 互助会 20160507 バージョン

実践 あとはひたすら実践あるのみ!

自分で調べることができるようになったら、あとは作りたいものを決めて、ひたすら考え・悩み・調べ・作るのみです。一度自分でプログラムを作れたら、もっと良くしたいと思うはずです!

どのようなプログラムにすればいいのか?どんな機能を作ればもっとよくなるだろうか?たとえプログラムを実際に書く時間がとれなくても、そういったことに頭をつかうことで「動かす力」が伸びていきます。まずは小さなことから初めて徐々に大きくしていきましょう。

Page 21: プログラミングのことはじめ 互助会 20160507 バージョン

読み物

Page 22: プログラミングのことはじめ 互助会 20160507 バージョン

参考書籍1 プログラマの考え方を知り、コーディングの美学に触れてみよう• プログラムはこうして作られるプログラマの頭の中をのぞいてみよう (amazon)• リーダブルコード (amazon)• きれいなコードを書くための鉄則 (amazon)• ゲームを動かす技術と発想 (amazon)

Page 23: プログラミングのことはじめ 互助会 20160507 バージョン

参考書籍2 Mayaスクリプティング• MEL教科書 第 2版 - Maya プログラミング入門 - (amazon)• Maya Python 完全リファレンス (amazon)

Page 24: プログラミングのことはじめ 互助会 20160507 バージョン

参考サイト プログラマの世界に触れる• プログラマが知るべき 97 のこと (link)• 4 コマまんが「がんばれ!アドミンくん」連載目次 - @ IT(link)• Rebuild.fm (link)