現在Pythonを勉強中のプログラミング初心者です。
今まで読んだ本は、「Pythonスタートブック」「みんなのPython」です。
一応一通り目を通したのですが、何かを作ってみるには程遠い状態で、作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。
Rubyでいうと「作りながら学ぶ Ruby入門」のように、実践的なアプリケーションを作成・解説することを通じてPythonの基礎が学べるようなサイト・本などがあれば教えてください。
以下の本、無料で読めるのでお勧めしておきます
http://diveintopython3-ja.rdy.jp/
ただpythonは何冊も本を読んで、力をつけてからプログラムを組む、というような言語じゃないです。
他の言語をやってる人なら、チュートリアルに目をとおしていきなり実践から入るような言語です。
他の言語での経験が無いなら、多少基礎をしっかりやる必要がありますが、それでも2冊も本を読んでれば十分でしょう。
> 作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。
恐らく設計ができないのだと思います。
大きなプログラムの場合、まず必要なコンポーネント(部品)に分割し、それぞれのコンポーネント毎に設計する感じになります。
紙とペンとでコンポーネントの洗い出しをすると良いです(箇条書きじゃなくて、○書いたり○の中にコンポーネント書いて、コンポーネント同士を線で結んで、関連を書く)。
恐らくは設計→実装→納得行かないので再設計→実装 ってのを3、4回繰り返してるうちに、設計もpythonもできるようになってるはずです。
以下の本、無料で読めるのでお勧めしておきます
http://diveintopython3-ja.rdy.jp/
ただpythonは何冊も本を読んで、力をつけてからプログラムを組む、というような言語じゃないです。
他の言語をやってる人なら、チュートリアルに目をとおしていきなり実践から入るような言語です。
他の言語での経験が無いなら、多少基礎をしっかりやる必要がありますが、それでも2冊も本を読んでれば十分でしょう。
> 作りたいものはあるのですが、何から手をつけて良いのかわからない状態です。
恐らく設計ができないのだと思います。
大きなプログラムの場合、まず必要なコンポーネント(部品)に分割し、それぞれのコンポーネント毎に設計する感じになります。
紙とペンとでコンポーネントの洗い出しをすると良いです(箇条書きじゃなくて、○書いたり○の中にコンポーネント書いて、コンポーネント同士を線で結んで、関連を書く)。
恐らくは設計→実装→納得行かないので再設計→実装 ってのを3、4回繰り返してるうちに、設計もpythonもできるようになってるはずです。
ありがとうございます。
設計というのは、たとえば「~~のデータをAPIから取得する」とかいった手順をなるべく具体的に分解していく作業をいうのでしょうか?
なにか、そういった設計のサンプルが見られるようなところがあればご教示下さい。
本ですと、
オライリーの「始めてのPython」が順番に学べる感じで良かったです。少し分厚いので、後でリファレンス的にも使えると思います。
http://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEPyth...
ありがとうございます。これは、買って少し目を通してみました。
が、これを読んだだけでプログラミングが書けるようになるかというと怪しいような気がしているのです・・・
すると、「いやいや、実際に触ってマスターするんだよ」「一個作りたいものを作ってみれば作れるようになるよ」という意見をいただくことが多いのですが、
そもそも一個作りたいものを作ってみれば作れるようになるというのは、「自転車に乗れるようになれば乗れるようになっているよ」「ボールをバットで叩いて100m強飛ばせばホームランが打てるよ」というのと同じような堂々巡りな論理であるような気がします。
自転車に乗るのにも、「補助輪を付ける」「人に支えてもらって走る」「なんども転ぶ」など幾つかの具体的なステップがあり漸く乗れる様になるのだと思いますが、その具体的なステップを示しているような本やサイトで、できればPythonに特化したようなものがあればベストなのですが・・・
そういう意味では、t-wataさんのご指摘が一番的を射ており(紙とペンでコンポーネントの洗い出しをするとか)、この部分を詳しく伺いたいと思っています。
http://kirmav.blogspot.com/2010/07/ver-perl.html
こちらのサイトは、個人的に参考になりました。プログラミング言語の「機能」を学ぶところの具体的な流れはこれで理解したのですが、この記事と同じように、プログラミングの設計(実践)段階の具体的な流れを知りたいです。
引き続きよろしくお願いします。
具体的に「○○したい!」って書くともう少し突っ込んだ回答が来ると思います。
あと回答1の答えから見る限り、おそらく実際にコードを書いてみていないのでは?と思うのですが。書いていたらすいません。
「どうやって実現するのかわからない」という辺り、今までどのプログラミング言語も触ってないかなぁと思います。
http://www.python.jp/doc/release/tut/ python(日本)ドキュメント 若干古目ですが。
若干書き方が悪かったかもしれませんが、その実際のコードを書くにも、「基本書的なものを読む」という動作と、「作りたいもののコードを書く」という動作の溝が深く、具体的にプログラマーの方はどうやって設計をしているかわからないという趣旨でご質問しています。
プログラミング初心者とは記載しており、showyouさんも「「どうやって実現するのかわからない」という辺り、今までどのプログラミング言語も触ってないかなぁと思います。」と書いておられる通り、今までどのプログラミング言語も触っていない人間には共通して起こりうる問題かなと思ったのですが、そういう場合showyouさんはどのように解決しておられましたか?
上記他のコメントも参照いただくと私の申し上げたいことが少し理解できるかなと思いますが、理解しづらい質問ですみません。
urlはダミーです。
>プログラミング初心者とは記載しており、showyouさんも「「どうやって実現するのかわからない」と
>いう辺り、今までどのプログラミング言語も触ってないかなぁと思います。」
このあたり、書き方が悪くてすみませんでした。
「触ってない」ではなく、「実際に自分で本に書かれているプログラムを打ち込んで試したことがないのでは?」と思いました。一度本の内容を打ち込んで見るといいかと思います(実際に試されていたらすみません)
じゃあ私が初心者の時はどうしたかっていうと、・・あがいた?
あまり賢い方法でもないですが色々本のサンプルプログラム動かして値弄ってみたりした結果、よさそうな方法を見つけたという感じです。自転車の例で言うと何度も転んだ感じです。
いい本かサイトないかと聞いてるのに全然違うコメントでゴメンナサイ。
ありがとうございます!
本に書かれているプログラムは少しは打ってみたんですが、あまり上達しなかったんですよね・・・
でも、またやってみます!ありがとうございます!
少し的外れになるかもしれませんが、Google App Engine のページは参考になるかもです。
「スタート ガイド: Python」
http://code.google.com/intl/ja/appengine/docs/python/gettingstar...
"サンプル プロジェクトとして簡単なゲストブック アプリケーションを作成する過程で、Python ランタイム環境を使用する方法~"
ただ、Google App Engineというサービスを利用することが前提になっているので、純粋にPythonというわけではないのですが、Helloe Worldという文字を表示したり、データーベース(Google App Engineではデーターストア)を利用したりする具体的な記述があったり、開発環境をダウンロードして実際にプログラム(ウェブアプリですが)を作ることも出来ます。
おお!まさにこういうので練習したいと思ってました。ありがとうございます!
引き続き、解答募集します。
プログラミングの考え方のコラムとかでも結構です。
ありがとうございます。
設計というのは、たとえば「~~のデータをAPIから取得する」とかいった手順をなるべく具体的に分解していく作業をいうのでしょうか?
なにか、そういった設計のサンプルが見られるようなところがあればご教示下さい。