プログラミングの基礎は学んだのですが、実際にアプリを作り出そうとするとどのように考えだしたらいいのかという方法もわかりません。知識と実践の間にはとても大きな溝があると思うのですが、ここを超えるよい方法や書籍やサイトがあればぜひ教えてください。ソースコードを写経するだけしかできない状況をなんとか脱出したいのです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/06/26 21:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答10件)

id:hakkyoku No.1

回答回数32ベストアンサー獲得回数2

ポイント30pt

情報処理の専門学校を卒業して会社に入社したばかりの時は

本当に簡単なプログラムしかできずに苦しんでいました

私の場合は当時VB6.0を中心に勉強しながら仕事をしていたのですが

下記の本をたまたま本屋で見つけて関数だけでいろんな事ができるという事を知り

かなり進歩できました。

http://www.amazon.co.jp/%E6%89%8B%E3%81%AB%E3%81%A8%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8BVisual-Basic%E9%96%A2%E6%95%B0%E4%BA%8B%E5%85%B8-%E8%94%B5%E5%AE%88-%E4%BC%B8%E4%B8%80/dp/4274063011/ref=sr_1_31?ie=UTF8&qid=1308491112&sr=8-31

今では VB2008などを使用していろいろなシステムをユーザーの希望通り作れるようになりましたが この本がなければ もっと進歩が遅かったか 挫折していたかもしれません

ちなみに VB2008の前はVB2005を使っていて

VB6.0から移行するのに下記のサイトで勉強させていただきました。

http://homepage1.nifty.com/rucio/main/main.htm

VB2005を覚える為に数冊本を買いましたがいまいち勉強がはかどらなかったのですが

上記サイトのおかけで 一気にVB2005の壁が無くなりました。


それから 使えそうだなと思うサンプルを沢山集めておいて 必要な時に引っ張り出すと

効率的にプログラムを組めるのではないかと思っています。

id:ysix1

やはり、最初はいろいろ難しいのですね・・。VBというのもプログラム言語ですよね?いろいろな言語がありますが、言語の種類をとわずに、学べぶ方法炉んとかってあるのでしょうか?ちなみに今僕がやってるのはPHPです。

2011/06/21 11:49:47
id:SweetSmile1978 No.2

回答回数199ベストアンサー獲得回数31

ポイント30pt

プログラミング言語を学んでもそれだけではなかなか何も出来ません。

たいていの場合は作るものにあわせたライブラリなどが必要です。

たとえば、Windowsで動く一般的なアプリケーションを作ろうと思えば、

ウィンドウの作り方、メニューの作り方、画面への描画方法など

Windows 独自の方法を学ぶ必要があります。

それを知った上での質問なのかな?

どういうアプリケーションをつくるかにもよります。

ワードやエクセルのようなデスクトップアプリケーションや、

携帯端末で動くモバイルアプリケーション、

ブラウザで動かすWebアプリケーションなど、

どういうものを作りたいのか、

プログラミング言語を学んだだけなのか、

上記のような作成するアプリケーションにあわせた

個別に学ぶ必要のある部分も学んでいるのかという情報があると

回答を得られやすいかと思います。

id:ysix1

WEBアプリをつくりたいと思い、PHPをまなんでます。PHP+SQLです。

つくりたいのは、ブラウザで動かすWebアプリケーションです。


状況としては、プログラム言語を学び中です(本を5冊ほどよみ簡単なプログラムは写し終わって、動く状況)。本に書かれてるものを読むと理解できますが、自分でゼロから記述するのはとても難しい(無理な気がする)という状況です。

2011/06/21 11:48:32
id:a-kuma3 No.3

回答回数4974ベストアンサー獲得回数2154

ポイント30pt

言語や環境は何ですかね?


てっとり早く動いてる感じをつかむのは、既に動いてるプログラムのソースを見ることと、

それに手を加えて、自分なりの機能を付け加えることだと思います。


こんな時代なので、ソースを公開しているアプリはいっぱいあります。

最初に手を出すには、あまり大きいものだと手にあまりますが、

「こんなことをやってるアプリで、ソースが公開されてるものは何?」みたいなのがあれば、

いろいろ回答が付くように思います。


--

(追記)

そうしたソースを公開してるアプリって、どうやって探すのでしょうか??

検索するときに、キーワードに「ソース」とか「source」や「フリー」というのを入れてみると、結構、引っかかると思います。

↓なんかは、初めてだと、ちょっとボリュームが大きいですかね。

http://e0166.blog89.fc2.com/blog-entry-159.html


MAMP ということは、Webアプリケーションということだと思いますが、

PHP を抜きにした、いわゆる静的な HTML だけの Apache の動きは押さえておいた方が良いと思います。

id:ysix1

ソースみてみます!!ただ、そうしたソースを公開してるアプリって、どうやって探すのでしょうか??

ちなみに、l開発言語は、lPHPを考えていて、環境は、MACです。MAMPをつかってます。

2011/06/21 11:46:32
id:akira623 No.4

回答回数11ベストアンサー獲得回数0

ポイント30pt

まずは、自分の欲しいアプリを作ってみることです。

プログラムは、『こんなことできたらいいな』を実現するものです。

要求事項(やりたいこと)を分解して、実現できそうなところから実装していくことも

プログラマの能力です。

コードは、人のまねでいいんです。

要は、何をどのように実現するか。どんなふうに作りこむか。バグををなくすか。

1から10まで、自分だけで、苦労して、作ってみてください。

プログラムでやりたいことを実現できる喜びは、それを学ぶ苦労を超えると思います。

id:ysix1

「プログラムは、『こんなことできたらいいな』を実現するものです。」そうですよね・・・

「要は、何をどのように実現するか。どんなふうに作りこむか。バグををなくすか。1から10まで、自分だけで、苦労して、作ってみてください。プログラムでやりたいことを実現できる喜びは、それを学ぶ苦労を超えると思います。」了解です。やってみます!!つくってみます!

2011/06/21 11:45:09
id:f-shin No.5

回答回数15ベストアンサー獲得回数2

ポイント30pt

プログラミングすることを目的にするのではなく、手段にすることが大事です。

職場や家庭で困ってる誰かを見つけて、プログラムで解決するようなことを考えるとやる気がでやすいです。最近は、iPhoneやAndroidなどで持ち運べるものでプログラムを活用できるので、日常生活に役立つツールなどを作ってみてはいかがでしょうか?

あと全然違う話で、プログラムの基礎の基礎の本を読むだけだとわかったつもりになっても、本のレベルが低いだけで、なんとなく気持ち良くなっただけで、まだ何もできない、というケースもありますので、そういうのが問題であれば、思いきって次のステップは難しめの本を読んでみるのも良いでしょう。

id:ysix1

えふしんさん!返答ありがとうございます。あの求人には度肝ぬかれました(笑)。

「プログラムの基礎の基礎の本を読むだけだとわかったつもりになっても、本のレベルが低いだけで、なんとなく気持ち良くなっただけで、まだ何もできない」この状況だと思いますので、プログラムを手段にするべく、いろいろやってみます!

なお、「初級のPHPの本を5冊ほどよみ、cakeはちょっと挫折しそう」そんな状況で、「プログラムを手段にする」という場合に、良い本がありましたら、是非お教えいただけないでしょうか?

2011/06/21 11:44:31
id:TAK_TAK No.6

回答回数1136ベストアンサー獲得回数104

ポイント30pt

ソースコードを写経するだけしかできない状況をなんとか脱出したいのです。

これは部分的には間違っています。

未経験者にプログラミングを教える施策



写経には、全然価値はありません。

「コーディングさせること....つまり単なるタイピングは無意味です。

そんな(初心者にとって理解する上で余計でしかないどうでもいいことはさせませんでした。」


○プログラミングは物真似である。

(つまり(余計なことを考えずに)ただ単にコピーせよ、ということ)

キーボードから文字を入力する能力なんか何の意味も無いということです。

しかし、

プログラミングは物真似です。真似することでこそ技術を得られるのです。

id:ysix1

なるほどー。とてもよく理解できました。

また自分で、写経しながら思っていた漠然とした気持ちがよくわかりました!!

もう少しがんばってみます。

2011/06/21 12:04:02
id:yoneto164 No.7

回答回数813ベストアンサー獲得回数94

ポイント30pt

PHPのプログラマーをしています。

私の場合、過去に自分が書いたPHPをコピペするのが作業の殆どですが、

目的はそれぞれ違うので色々なPHPが完成します。


サーバサイドプログラミングの面白いところは、

様々なユーザが情報を共有したり交換することが容易に出来る点だと私は思います。

先にCGIが普及したこともあり、

欲しいサンプルがPHPではあまり配布されていないことも多く、

つくり甲斐があると私は思います。

また、PHPはCGIと違い、

テンプレートをわざわざ作らなくても、

後でデザイナーがカスタマイズしやすいように記述することも可能ですから、

仕事上での連携にも優れていると思います。


http://yonetone.com/camera/pix/

のような簡単なもので良いと思いますので、

何か自分が使いたいと思うPHPを完成させると良いと思います。

そして、例えばですが、

何万画素のカメラのデータを入力した回数が何パーセントだったか、

目的のサムネイルサイズはどれくらいを入力しているのかなど、

統計や推移を時系列で表示することも可能です。

単純に掲示板を付けて、付加機能を募集するという方法もあると思います。

そうやって人と関わっていくことが面白いし大切だと思います。

id:ysix1

やはり自分が使いたいと思う物を、実際につくることがベストですね。

ありがとうございます。

2011/06/21 22:56:04
id:deep_one No.8

回答回数153ベストアンサー獲得回数15

ポイント30pt

Webアプリを作るということであれば、PHP自体だけではなくWeb(HTTPやHTMLなど)の仕組みを理解しておくことも重要ですね。フォームの送信ボタンを押すと何が起こるのかとかが分かっていないと、Webアプリのイメージを掴みにくいことが多いように思われます。深く調べると奥が深いので、あくまで基本レベルで。


次にユーザーが目にする画面を、確認画面やエラー画面も含めて並べていくといいでしょう。実際にHTMLを書く必要はありませんが、フォームの中身は完全にリストアップしましょう。(実際にプログラムに移る予定なら、フィールドの名前とかをつけておくぐらいにリストアップします。)この時点で、自分が実現したい画面を作れる部品が見つからない時は、既存のシステムがどうやって実現しているかを調べることになります。(どこでも見たことがないような新しいものなら、そもそもWebアプリでは通常不可能なことかもしれません。)またこの時点でWebの知識に欠けていると、実現不能な画面を想定してしまうことがあります。(ページの移動無しにサーバーと通信するにはPHPの他にajaxの知識が必要である、とか。)


後は「このフォームから送られてくる情報が何で、それをどう処理すれば次の画面を送り返せるか」という純粋なPHPのプログラムの問題が残ります。

id:ysix1

たしかにHTMLの知識も必要ですよね。実はこっちがわかってなかったのに、PHPの問題とかになってたことありました。

ユーザー目線で物事を捉えなおす。やってみます。ありがとうございます!

2011/06/22 20:55:45
id:ric-m No.9

回答回数8ベストアンサー獲得回数0

ポイント30pt

8年プログラムをしているものです。

現在はweb制作会社を自営業でしております。

現在も現役でプログラムをしてますが。

私も19歳のとき、某有名なIT会社に入社後、プログラムに慣れるまで苦労しました。

今では、誰にでもはったりではなく、なんでも作れますとお客様に発言しています。

◆一番プログラムに慣れた5つのターニングポイント!!◆

①まずマイクロソフト系のプログラム言語は使用しない。

⇒独自性が強くバグがあっても自分で解決が非常に難しくマイクロソフト頼りになる。これでは、デバッグをしないので力がつきません。お勧めは、PHP言語です。

②デバッグする癖をつけます。

⇒プログラムとは、ひとつひとつのコードの動きのポイントを理解していない限り、ただ動くだけのプログラムしか制作できません。デバッグすると中身が理解できます。

③プログラムの上級者にわからないことを質問責めする

⇒経験は、何年もかかると思います。なんでもいいので自分より上だと思う上級者に質問をたくさんしてください。10年かかる経験の知識も1年もかからない内で取得できるでしょう!おっさんの話だから、昔の言語の話だから、それは関係ありません。

プログラムのすべてには共通するバグや実際の運営するサイト・システムの問題点は昔からかわりません。

④お客様の要件定義をきっちりできているか確認

⇒よくあるのがお客様のプログラマの作るものが違う、これは一番だめです。

いくら上級のプログラマといわれてようとお客様第一!お客様の要件をどれだけ詰めて仕様書を制作し、プログラムを作っていくか!

⑤素直になり、恥をすてる

⇒はてなで質問していたように、どんなきらいな人にも下手にでて情報を聞き出しましょう。

※もっと詳しくプログラムを知りたければ、私に連絡してください。

やる気があるなら教えます。3か月~半年で中級者~上級者に育ててみせます。

phpに関しては本より、webのほうが情報は豊富です。有名どころといえばこちら↓

http://phpspot.net/php/

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3php.htm#php_k

http://www.php.net/manual/ja/

id:ysix1

教えていただけるという事、とてもとても興味あります!!!

どのようにご連絡したらいいでしょうか?

ネットでの先生として3か月、みっちりやっていただけたら、出来るようになりそうなので!

ご連絡の方法、お教えください!

 # やる気あります。


(追記)

やはり、1か月集中講座をまず希望します。やりきりたい。まず1か月。

2011/06/22 21:00:02
id:poporo21 No.10

回答回数2ベストアンサー獲得回数0

ポイント30pt

その作成する予定のコンテンツ一つ一つをばらばらで作ってからそのプロジェクトの入るのはいかがでしょうか?

どうしてもわからない場合はPHPManualで調べて作成すると良いと思われます。

小さなプログラムを数多く作成してから次のステップに行くことが大事だと思います。

自宅で環境があるならスケジュールを立てて実践まがいな事をする事も大事です。

頑張ってください

http://www.php.net/manual/ja/

id:ysix1

ありがとうございます!がんばります!

2011/06/25 13:36:40
  • id:Beirii
    アプリケーションを開発する手法を知りたいのかな?
    即ち「作りたいものは決まっているが、それをソースコードにするまでの過程がわからない」ということでしょうか?
  • id:ysix1
    後者です!!

    が、ソースコードにする過程がわからないです。
  • id:Beirii
    なるほど。
    とするならysix1さんに必要な知識は「ソフトウェア・エンジニアリング」なのかな。
    大雑把に言えば、ソフトウェアは、要求分析、設計、実装、テストという工程を経てリリースされます。(工程の定義にしても色々な考え方がありますが)
    ysix1さんがこれまで身につけたものは、主に実装の技術ですね。
    作りたいもの・実現したいことを分析・定義し、開発・実行環境を考慮しつつ設計する、という実装に至るまでの知識が必要なのではないでしょうか。
    自分はウェブ系の言語に詳しくないのでPHPによる一般的な開発手法がどのようなものなのかまでは分かりませんけど、オブジェクト分析・設計手法とか構造化分析・設計手法とかありますね。
  • id:TAK_TAK
    1 作りたいもののシステム設計
    ysix1さんはこのレベルに達してないと思いますが...


    作りたいものに必要な機能(要素(プログラム、コード))はなんであるか?
    それらがどのように結合しているか、を明確にイメージすること、その能力(そのための訓練)が必要なのではないかと思います。

  • id:ysix1
    >takさん

    そのとおりだと思います。イメージができないのです。。能力やセンスなのでしょうか・・・
  • id:alpinix
    >そのとおりだと思います。イメージができないのです。。能力やセンスなのでしょうか・・・
    必要性だと思います。
     
    なので、他の方も多く意見されてますが、「実際に自分で作ってみたいこと」をPHPなりなんなりで一つづつ実現していく作業を経験するのがいいのではないでしょうか? 
    本当は納期の決まっている「身近な誰かのやりたいこと」を実現するプログラムを作ってあげるのが一番いいのですが、いきなり要件定義からやるのはハードル高いので。
  • id:ysix1
    やってみます。
    ありがとうございます!
  • id:ysix1
    やってみます。
    ありがとうございます!
  • id:a-kuma3
    > イメージができないのです。。能力やセンスなのでしょうか・・・

    違いますって :-)
    能力やセンスは、培ったたり磨いたりするもんですから。
    プログラミングについては、ある程度のレベルまでなら、それほど苦労しなくても到達できます。
  • id:ysix1
    希望を持てます。ありがとうございます!
  • id:ric-m
    ysix1 さん

    ご興味があれば、連絡はこちらのURLのお問い合わせからお願いします。
    http://rim.maido.me/

    その際に、どのようなことがしたいのか、プロフィールと一緒にご連絡ください。
  • id:ysix1
    了解です!!ありがとうございます!
  • id:ysix1
    了解です!!ありがとうございます!

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

トラックバック

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

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

回答リクエストを送信したユーザーはいません