30代も半ば、脳の劣化に抗いながら、趣味でプログラムを
してみたいなと思っています。
プログラム経験がまったくもってないわけではないのですが、
「自分でこんなアプリ作ってみたいな!」
からスタートして作ってみたことがありません。
そこで皆さんの経験などから趣味でプログラムをする場合、
どんな感じで行っているのか紹介していただけませんか?
どんな感じというのは、言語選びからということではなくて、
例としては
1)どんなことをやりたいアプリなのか簡単な画面イメージや機能を
ノートなどに書いてみる
2)どういう処理をするか検討する
3)実際にコーディングしてバグ取りする。
などです。あるいはいきなり3)をガリガリやるのか・・・など。
初めてやる場合のおすすめなやり方でも構いませんのでご教示願います。
趣味なら好きなようにやる。
手段は手段ではなく手段が目的なのです!
とかわけわからないことを書いてみる。
場合によりけりだと思います。
アイデアを思い付いたとき、どんなふうになるかコアの部分だけ作ってみると良い時もある。
思いつくまま紙に書いていくと忘れないし足りない部分が良くわかったりする。
#特に歳とるとワークエリアが小さくなってるし。
##ストレージが埋まってるだけです!
その辺は両輪じゃないでしょうか。
紙の上だけではわからないこともあるし、コード書くだけだと見失うこともある。
あと、言語やフレームワークも自由なんで、手を出して比較してみるのもあるだろうし。
詳細設計とかもツールとか探したり手を出してみたりもあり得るし。
趣味なんでそこらへん縛られるものではないし、楽しむのが目的なんで、楽しい部分を手厚くしていくのはありでしょう。
完成させるってのはモチベーションのために重要ですが、何のためのモチベーションかといえば楽しむためです。
質問からは何か作り(使い)たいものが具体的にあるって感じがしなかったので、完成させ、それを使うのが目的ではない気がしました。
何が楽しいのか。作ったアプリを使うのが楽しいのか、言語やフレームワークをとっかえひっかえするのが楽しいのか、構想を膨らませていくのが楽しいのか、がりがりコードを書くのが楽しいのか。
それが目的になるので、そのための手段がアプリケーション開発であり、それにより進め方も変わってくると思います。
ちなみに私は既存のを改造するのが好きですね。
飽きっぽいので一からだと続かないし、手軽だし、色々な言語とかに触れたりするし、みなさん書いてるように他人のコード読むと勉強になるし。
他人のコードと言えば何かフレームワーク使いつつそのコード読むと勉強になりますよ。
フレームワークだと変態的な事やってることがあるけど。
そんなわけでオープンソース界隈の方が好きだったりするからWindowsとか疎いけど。
いっちばん最初は3でしょ。
でもね。
他のプログラマのコードを読む方がいいよ。
アプリのソースコードを晒してくれてる方も結構いる。
ただ、他人のソースコードを読もうとしても読めない。だから3でガリガリやって、自力をつける。
1とか2とかなんて、その後でもいいんだよ。何しろ他人のコードを読んで他人のアプリの仕組みを知れば、1にも2にもものすごい技術力が使われているのがわかるから。
回答ありがとうございます!
ふと、皆さんはこんなの作りたいな~って思った時に
まず書き出してみたりするのか、1人でつくるなら頭にあればいいや!
っていきなりガリガリ書き出すのか?そんな疑問がわいて質問しました。
自分もサンプルコードとか読みながら、なるほどなーって思ったり
全然わかんね/(^o^)\ってなったりw
ガリガリ自分でやりながらって大事ですね。1、2までやって
力尽きたら意味ないですし^^;
1)は企画書の段階ですね。
2)はフローチャートの事でしょう。
多人数でやるプロジェクトなら1)は必須だけれども、
1人で作成し、内容を把握しているなら無くてもいいと思います。
2)は処理の流れの整理。なんだけれども、プログラムに慣れてくると、
隅から隅まで理解している事をわざわざ手間隙かけて書き出す事になるので、
面倒で省きたくなるんだけれども、
多人数のプロジェクトの場合は省略しないよう上から言われます。
フローが無いと他の人が問題点を見つけにくくなるので、
結果としてデバッグ作業の足を引っ張る事になりかねないからです。
でも1人の場合、やはり不用なんですよね。
いくら書き出したところで自分の能力以上の判断はできないわけですから、
デバッグ作業に有効に活用できるとも思えませんし。
だから、よほど大規模なプログラムを組むなら話は別ですが、
趣味レベルのプログラムを1人で組む場合、やはり3)だけでいいと思います。
綿密な設計が必要なプログラムを組むような段階になれば、
1)や2)についても自然と必要と感じるようになると思いますよ。
あと、1号さんの書いてるとおり、他人のソースを解析するのが上達への近道ですね。
興味の無いソフトのコードは解析するのも苦痛でしょうけど、
動作に興味のあるソフトなら、解析も楽しんで行えると思いますよ。
回答ありがとうございます!
今やろうとしてる内容がリアルタイム性を要しない画像解析で、
言語はJavaなんです。
そうするとOpenCVとかが登場するんですが、サンプルコードが
C++とPythonなんですよね、ほとんど。
C++のサンプルコード→C++のAPIとか見て解釈
→C++のAPIで見たのがJavaのどのAPIにあたるのか?を解釈
ってしていく流れが非常に苦戦していて。。
と、話が少しずれてしまいましたがやはり他人のコードも
読んでみるのも勉強になりそうですね。。
こんな感じじゃないでしょうか。
①まずは自分の作りたいアプリのソースを本やネットで見つける。
②ソースを解析して理解する。
ここで、他言語に翻訳してみるのもいいかも知れません。たとえば、Cで数独のソースを見つけて、それをJavaやVBなどに翻訳してみるとか。
③自分の好みに合わせて改良する。
回答ありがとうございます。
まさにこんな形で進めようとしてます。
①でAをするにはこういう風に書く、Bをするには~、Cをするには~と
部分的にはわかるのですが、それをうまく繋げたりするところに
悩んでいました。
例えば
ファイルから画像ファイルを読み込んで、○○って処理をして、
ウィンドウに変換後の画像を表示してと言った場合、
①ファイルから画像を読み込む方法
②○○処理をする方法
(プロンプトでの実行、ファイルはフォルダに出力されるのみ)
③ウィンドウに画像を表示する方法
は書籍にあります。
ただ、①はJavaの本、②はOpenCVの本、③はSwingの本など
当たり前かもですが、別々の書籍にあると書き方や環境なども違ってて、
それらを吸収するだけでも劣化した脳みそで苦戦してました^^;
趣味なら好きなようにやる。
手段は手段ではなく手段が目的なのです!
とかわけわからないことを書いてみる。
場合によりけりだと思います。
アイデアを思い付いたとき、どんなふうになるかコアの部分だけ作ってみると良い時もある。
思いつくまま紙に書いていくと忘れないし足りない部分が良くわかったりする。
#特に歳とるとワークエリアが小さくなってるし。
##ストレージが埋まってるだけです!
その辺は両輪じゃないでしょうか。
紙の上だけではわからないこともあるし、コード書くだけだと見失うこともある。
あと、言語やフレームワークも自由なんで、手を出して比較してみるのもあるだろうし。
詳細設計とかもツールとか探したり手を出してみたりもあり得るし。
趣味なんでそこらへん縛られるものではないし、楽しむのが目的なんで、楽しい部分を手厚くしていくのはありでしょう。
完成させるってのはモチベーションのために重要ですが、何のためのモチベーションかといえば楽しむためです。
質問からは何か作り(使い)たいものが具体的にあるって感じがしなかったので、完成させ、それを使うのが目的ではない気がしました。
何が楽しいのか。作ったアプリを使うのが楽しいのか、言語やフレームワークをとっかえひっかえするのが楽しいのか、構想を膨らませていくのが楽しいのか、がりがりコードを書くのが楽しいのか。
それが目的になるので、そのための手段がアプリケーション開発であり、それにより進め方も変わってくると思います。
ちなみに私は既存のを改造するのが好きですね。
飽きっぽいので一からだと続かないし、手軽だし、色々な言語とかに触れたりするし、みなさん書いてるように他人のコード読むと勉強になるし。
他人のコードと言えば何かフレームワーク使いつつそのコード読むと勉強になりますよ。
フレームワークだと変態的な事やってることがあるけど。
そんなわけでオープンソース界隈の方が好きだったりするからWindowsとか疎いけど。
回答ありがとうございます!
やはり楽しむ事ですよね。
自分も「こういうの作りたい!」って思いついた時は
すごくわくわくします。
見た目こうしたいな~ってノートにぱっと絵を書いたり、
じゃあどんな本見ればのってるんだろって調べたり。
>質問からは何か作り(使い)たいものが具体的にあるって感じがしなかったので、>完成させ、それを使うのが目的ではない気がしました。
いくつか思いついてるのはあるんですよね。
でも具体的にこれをしたいんですがどう作ればいいですか?
って聞いてしまったら答えだけ頂いて何も勉強にならなさそうで。
で、質問のそもそもの目的自体は↑に書いたように、
皆さんはどうやって作り始めるんだろう。自分みたいに絵を
書いてみてイメージしたりするのかなーとか聞いてみたくて。
意図がわかりづらい書き方をしてしまい、すみません。
でもたくさんの方から色んな事を聞けてモチベーションあがって
きましたw
周りに自分で作ろう!って人が今いなくて、こういう話をできる
人がいなかったので相談できてよかったです。
回答ありがとうございます!
2015/06/17 09:55:38やはり楽しむ事ですよね。
自分も「こういうの作りたい!」って思いついた時は
すごくわくわくします。
見た目こうしたいな~ってノートにぱっと絵を書いたり、
じゃあどんな本見ればのってるんだろって調べたり。
>質問からは何か作り(使い)たいものが具体的にあるって感じがしなかったので、>完成させ、それを使うのが目的ではない気がしました。
いくつか思いついてるのはあるんですよね。
でも具体的にこれをしたいんですがどう作ればいいですか?
って聞いてしまったら答えだけ頂いて何も勉強にならなさそうで。
で、質問のそもそもの目的自体は↑に書いたように、
皆さんはどうやって作り始めるんだろう。自分みたいに絵を
書いてみてイメージしたりするのかなーとか聞いてみたくて。
意図がわかりづらい書き方をしてしまい、すみません。
でもたくさんの方から色んな事を聞けてモチベーションあがって
きましたw
周りに自分で作ろう!って人が今いなくて、こういう話をできる
人がいなかったので相談できてよかったです。