Pythonについての質問です。

現在Pythonを勉強中のプログラミング初心者です。
今まで読んだ本は、「Pythonスタートブック」「みんなのPython」です。
一応一通り目を通したのですが、何かを作ってみるには程遠い状態で、作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。
Rubyでいうと「作りながら学ぶ Ruby入門」のように、実践的なアプリケーションを作成・解説することを通じてPythonの基礎が学べるようなサイト・本などがあれば教えてください。

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2010/09/28 05:56:16
  • 終了:2010/10/05 06:00:03

ベストアンサー

id:t-wata No.1

t-wata回答回数82ベストアンサー獲得回数132010/09/28 07:50:09

ポイント30pt

以下の本、無料で読めるのでお勧めしておきます

http://diveintopython3-ja.rdy.jp/

ただpythonは何冊も本を読んで、力をつけてからプログラムを組む、というような言語じゃないです。

他の言語をやってる人なら、チュートリアルに目をとおしていきなり実践から入るような言語です。

他の言語での経験が無いなら、多少基礎をしっかりやる必要がありますが、それでも2冊も本を読んでれば十分でしょう。

> 作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。

恐らく設計ができないのだと思います。

大きなプログラムの場合、まず必要なコンポーネント(部品)に分割し、それぞれのコンポーネント毎に設計する感じになります。

紙とペンとでコンポーネントの洗い出しをすると良いです(箇条書きじゃなくて、○書いたり○の中にコンポーネント書いて、コンポーネント同士を線で結んで、関連を書く)。

恐らくは設計→実装→納得行かないので再設計→実装 ってのを3、4回繰り返してるうちに、設計もpythonもできるようになってるはずです。

id:naoeco

ありがとうございます。

設計というのは、たとえば「~~のデータをAPIから取得する」とかいった手順をなるべく具体的に分解していく作業をいうのでしょうか?

なにか、そういった設計のサンプルが見られるようなところがあればご教示下さい。

2010/09/28 23:14:04

その他の回答(4件)

id:t-wata No.1

t-wata回答回数82ベストアンサー獲得回数132010/09/28 07:50:09ここでベストアンサー

ポイント30pt

以下の本、無料で読めるのでお勧めしておきます

http://diveintopython3-ja.rdy.jp/

ただpythonは何冊も本を読んで、力をつけてからプログラムを組む、というような言語じゃないです。

他の言語をやってる人なら、チュートリアルに目をとおしていきなり実践から入るような言語です。

他の言語での経験が無いなら、多少基礎をしっかりやる必要がありますが、それでも2冊も本を読んでれば十分でしょう。

> 作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。

恐らく設計ができないのだと思います。

大きなプログラムの場合、まず必要なコンポーネント(部品)に分割し、それぞれのコンポーネント毎に設計する感じになります。

紙とペンとでコンポーネントの洗い出しをすると良いです(箇条書きじゃなくて、○書いたり○の中にコンポーネント書いて、コンポーネント同士を線で結んで、関連を書く)。

恐らくは設計→実装→納得行かないので再設計→実装 ってのを3、4回繰り返してるうちに、設計もpythonもできるようになってるはずです。

id:naoeco

ありがとうございます。

設計というのは、たとえば「~~のデータをAPIから取得する」とかいった手順をなるべく具体的に分解していく作業をいうのでしょうか?

なにか、そういった設計のサンプルが見られるようなところがあればご教示下さい。

2010/09/28 23:14:04
id:iwa No.2

いわだら回答回数6ベストアンサー獲得回数02010/09/29 00:14:02

ポイント10pt

本ですと、

オライリーの「始めてのPython」が順番に学べる感じで良かったです。少し分厚いので、後でリファレンス的にも使えると思います。

http://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEPyth...

id:naoeco

ありがとうございます。これは、買って少し目を通してみました。

が、これを読んだだけでプログラミングが書けるようになるかというと怪しいような気がしているのです・・・

すると、「いやいや、実際に触ってマスターするんだよ」「一個作りたいものを作ってみれば作れるようになるよ」という意見をいただくことが多いのですが、

そもそも一個作りたいものを作ってみれば作れるようになるというのは、「自転車に乗れるようになれば乗れるようになっているよ」「ボールをバットで叩いて100m強飛ばせばホームランが打てるよ」というのと同じような堂々巡りな論理であるような気がします。

自転車に乗るのにも、「補助輪を付ける」「人に支えてもらって走る」「なんども転ぶ」など幾つかの具体的なステップがあり漸く乗れる様になるのだと思いますが、その具体的なステップを示しているような本やサイトで、できればPythonに特化したようなものがあればベストなのですが・・・

そういう意味では、t-wataさんのご指摘が一番的を射ており(紙とペンでコンポーネントの洗い出しをするとか)、この部分を詳しく伺いたいと思っています。

http://kirmav.blogspot.com/2010/07/ver-perl.html

こちらのサイトは、個人的に参考になりました。プログラミング言語の「機能」を学ぶところの具体的な流れはこれで理解したのですが、この記事と同じように、プログラミングの設計(実践)段階の具体的な流れを知りたいです。

引き続きよろしくお願いします。

2010/09/29 05:46:24
id:showyou No.3

showyou回答回数96ベストアンサー獲得回数102010/09/29 00:52:10

ポイント10pt

具体的に「○○したい!」って書くともう少し突っ込んだ回答が来ると思います。

あと回答1の答えから見る限り、おそらく実際にコードを書いてみていないのでは?と思うのですが。書いていたらすいません。

「どうやって実現するのかわからない」という辺り、今までどのプログラミング言語も触ってないかなぁと思います。

http://www.python.jp/doc/release/tut/ python(日本)ドキュメント 若干古目ですが。

id:naoeco

若干書き方が悪かったかもしれませんが、その実際のコードを書くにも、「基本書的なものを読む」という動作と、「作りたいもののコードを書く」という動作の溝が深く、具体的にプログラマーの方はどうやって設計をしているかわからないという趣旨でご質問しています。

プログラミング初心者とは記載しており、showyouさんも「「どうやって実現するのかわからない」という辺り、今までどのプログラミング言語も触ってないかなぁと思います。」と書いておられる通り、今までどのプログラミング言語も触っていない人間には共通して起こりうる問題かなと思ったのですが、そういう場合showyouさんはどのように解決しておられましたか?

上記他のコメントも参照いただくと私の申し上げたいことが少し理解できるかなと思いますが、理解しづらい質問ですみません。

2010/09/29 05:43:50
id:showyou No.4

showyou回答回数96ベストアンサー獲得回数102010/09/29 20:58:45

ポイント20pt

http://example.com

urlはダミーです。

>プログラミング初心者とは記載しており、showyouさんも「「どうやって実現するのかわからない」と

>いう辺り、今までどのプログラミング言語も触ってないかなぁと思います。」

このあたり、書き方が悪くてすみませんでした。

「触ってない」ではなく、「実際に自分で本に書かれているプログラムを打ち込んで試したことがないのでは?」と思いました。一度本の内容を打ち込んで見るといいかと思います(実際に試されていたらすみません)

じゃあ私が初心者の時はどうしたかっていうと、・・あがいた?

あまり賢い方法でもないですが色々本のサンプルプログラム動かして値弄ってみたりした結果、よさそうな方法を見つけたという感じです。自転車の例で言うと何度も転んだ感じです。



いい本かサイトないかと聞いてるのに全然違うコメントでゴメンナサイ。

id:naoeco

ありがとうございます!

本に書かれているプログラムは少しは打ってみたんですが、あまり上達しなかったんですよね・・・

でも、またやってみます!ありがとうございます!

2010/09/30 23:48:07
id:TOMOSUMA No.5

TOMOSUMA回答回数1ベストアンサー獲得回数02010/09/30 15:32:36

ポイント30pt

少し的外れになるかもしれませんが、Google App Engine のページは参考になるかもです。

「スタート ガイド: Python」

http://code.google.com/intl/ja/appengine/docs/python/gettingstar...

"サンプル プロジェクトとして簡単なゲストブック アプリケーションを作成する過程で、Python ランタイム環境を使用する方法~"

ただ、Google App Engineというサービスを利用することが前提になっているので、純粋にPythonというわけではないのですが、Helloe Worldという文字を表示したり、データーベース(Google App Engineではデーターストア)を利用したりする具体的な記述があったり、開発環境をダウンロードして実際にプログラム(ウェブアプリですが)を作ることも出来ます。

id:naoeco

おお!まさにこういうので練習したいと思ってました。ありがとうございます!

引き続き、解答募集します。

プログラミングの考え方のコラムとかでも結構です。

2010/10/01 00:02:35
  • id:morchin
    http://d.hatena.ne.jp/aidiary/20080507/1269694935
    が超おすすめ。
  • id:wg_koro
    Pythonということなので、WebフレームワークのDjangoをやってみてはいかがでしょう。
    http://djangoproject.jp/doc/ja/1.0/
    ここのチュートリアルは「投票プログラムを作ってみよう!」となっていて、実際に動作するプログラムを組むことになるので良い練習になると思います。

    Djangoは実際のサーバーに環境整えるのはちょっと大変ですが、
    「ローカルでちょっと作ってみる」レベルであれば
    「Djangoをインストールしてコマンドを1個たたく」
    これだけで開発サーバーが起動するのでプログラムをすぐに作り始めることができます。お手軽です。(このあたりの方法も上記ドキュメント内に詳しく書いてあります)

    頑張って下さい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません