• ベストアンサー

プログラミングのコツを教えてください

amanojaku1の回答

回答No.4

他人に分かる様にコメント書けと言うのは嘘です、その他人とは どのレベルのプログラマーでしょうか?、初心者でしょうか、中級でしょうか、中級でも どのレべルでしょうか、曖昧で全く基準がありません。 コメントは10年後、20年後の自分が分かる様に書きましょう(余程 記憶の良い人は別として10年後、20年後に自分の書いたコメントを読んだら まるで他人が書いたように見えるでしょう、それでも分かるように書くようにしましょう)。 コメントは自分が必要だと思った所に書きましょう、なんでも かんでもコメントを書く必要はありません。 プログラムは構造化しましょう、スパッゲッティー・プログラムだとバグも発生しやすいですし、デバッグも困難になりがちです。 (僕は人のプログラムは全然読めない方ですが)ある時、掲示板のプログラムを見ていて最初 全然 意味が分からなかったのですが、しばらく眺めていて、物凄く酷いスパッゲッティー・プログラムだと分かり、これを作ったヤツは全然プログラミング・センスないな~とか思ったりしましたが、その物凄く酷いスパッゲッティー・プログラムでチャント動いていると言うのは ある意味 天才かもしれません(教訓:天才は別としてプログラムは構造化しましょう・笑)。 > プログラミングのできる方は、作業の際にどのような事をしているのでしょうか?私のような素人にプログラミングのコツを教えていただきたいです。 (天才は別として)プログラムを構造化してイメージしましょう。 細かい部分は実際の動作(1回目のループは「1」、2回目のループは「3」のようなモノ)から、その規則性、法則性のようなモノを抽出してプログラミング化する。 例えば「カレンダーの表示」には割り算の余を利用するとかですが、「カレンダーの表示」ぐらいなら「if文」でも対応できますが、延々と長いデータだと「if文」では対応できなくなります、(規則性、法則性のようなモノが無い場合は力技(「if文、配列」など)でヤルしか無いですが)やはり実際の動作から規則性、法則性のようなモノを抽出する能力は必要になると思います(数学的な知識は たまに大学生レベルも必要になりますが、通常は中高校生レベルで 全然 おkです)。 (これは誰も教えてくれない事かもしれませんが)ある程度 大きなプログラムは動かしながら作れと言うのは鉄則です。 僕が まだプログラミングの初心者だった頃、それを知らずに(プログラミング初心者としては)結構 大きなプログラム作ったのですが、延々と動かないプログラムを打ち込み、一応プログラムの打ち込みが完了しても、当然バグがあって動かないので延々と動かないプログラムをデバッグすると言うのは非常に辛く精神衛生上 非常に悪いです。 ですので本来のプログラムとは別に、プログラムを動かすデバッグ用のルーチンを作り、最初は動かすのに必要 最低限のプログラムを作成してやれば良いでしょう(効率が悪いように思うかもしれませんが、その方が精神衛生上 全然 良いです)。 > 今取り組んでいる箇所と関係のない部分についての読書はしていません(´・ω・`) 個人的には必要になった時に必要なモノを勉強するで良いと思います。 > プログラムの勉強 「プログラムの勉強」と言っても本を読む事ではありません、もちろん本を読んでも良いのですが、大工になりたい人が本ばかり読んでいても技術が上達しないのと同様に、プログラマーはプログラムを組まなければ上達しません。 プログラミングの研修以外に、自分の作りたいプログラムを作って見ましょう(これこそ正にプログラミングの勉強です)、ただし自分の作りたいプログラムに熱中しすぎると学校の成績が下がるかもしれません(プログラマーなら学校の成績がナンボのもんじゃい、と言うぐらいの気概は必要です・笑)。 要件としては自分のモチベーションが上がるモノ、プログラムの難易度のハードルは低く設定する事(高く設定してしまうと完成できない危険性があります)。 自分のモチベーションが上がるモノと言う要件なら、Android Java は どうでしょうか?(ハードルは結構 高いかもしれませんが…) Android 端末さえあれば自分の作ったプログラムを人に見せびらかせられるのでモチベーションが上がるんじゃないでしょうか? ただし、みんなが普段 使ってるような「アプリ、ゲーム」などと比べて雲泥の差でショボイので、あまり良い反応は得られない場合が多々あるかもしれませんけど…。 Android プログラミングの基本の基本 http://8242.teacup.com/bremen1/bbs/8 下記は僕が作ったテトリスです。 ちなみに「Tetris(R)」は登録商標「(R)」になっているようなので、名前は「Tetraz」としています。 Android Tetraz 017 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000002&tsn+00000002&bts+2016/03/04%2022%3A39%3A06&

augmydt
質問者

お礼

回答ありがとうございます!

関連するQ&A

  • 仕事をさせるコツ

    初めまして、ちょっと悩んでることがあるので質問させていただきます 私は現在、人を集めてゲームを制作しようとしています。 みんなで集まってやれる場所がないので、それぞれに仕事を振って週に一度、 進捗報告をさせるというスタンスをとっています。 個々の能力は高くて助かるのですが、チームの一部に漂っている雰囲気が 「進捗報告会までにやればいい」といった感じになってしまっているのではと思うことがあります。 というのも、その日までに定めた進捗はこなしてくれることが多いのですが、 (こなしてこないこともありますが) それ以上のことをしようとしてくれたことはないのです。 進捗報告会で初めて見せるのではなく、何度か見せてもらってその都度手直しして進捗報告会で完成版!とすれば効率も良くなるはずなのですが・・ 現在は 進捗報告会で見せる ↓ ここだけ直してね ↓ 次の進捗報告会で修正版を見せてもらえる あまりかかるように思えない作業でも、このようにこの会議の前にあわててやっているのではないのかと思う節があります。 「提示されたやつはこんな感じで終わったんですが、次の作業でなにかやることはありますか?」 というレベルまでみんなのモチベーションを上昇させるにはどうしたらよいのでしょうか? 参考になるサイトや書籍、指示することのコツでも回答いただければ幸いです。 自分ひとりだけモチベーションが高くて失敗してしまった経験もあるので、 自分のモチベーションに任せてどんどん他人のケツを叩いていくというやり方には少し不安を感じています。

  • プログラマーの方にお聞きしたいことがあります

    閲覧ありがとうございます。プログラマーになっておよそ1ヶ月の者です。 今の現場で進捗通りに作業が進まなくて困っています。 「他の人がコミットしたのを見れば似たような機能あるから大体わかるよ」と言われたのですが、その通りに入力したらエラーが出たりと進捗が進まないのです。 今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。 ここで、「どうしようか」ということで、二つのことで迷っています。 (1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。 →進捗は改善するが、長い目で見てそれでプログラミングが身につくか? (2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる →進捗が遅れてしまうが、バグが出た際に対応しやすいかもしれない。土台が(1)よりも固まっているので 理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが。。アドバイスをよろしくお願いいたします。 また、同じ現場の先輩方はコピペをしているような速さでコードを書いているので凄いなと思います(´・ω・`)ふえーん

  • プログラマー 進捗

    閲覧ありがとうございます。プログラマーになって1ヶ月の者です。 今の現場で進捗通りにいかなくて困っています。 「他の人がコミットしたのを見れば似たような機能あるから大体わかるよ」と言われたのですが、その通りに入力したらエラーが出たりと進捗が進まないのです。 今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。 ここで、「どうしようか」ということで、二つのことで迷っています。 (1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。 →進捗は改善するが、長い目で見てそれでプログラミングが身につくか? (2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる →進捗が遅れてしまうが、バグが出た際に対応しやすいかもしれない。土台が(1)よりも固まっているので 理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが。。アドバイスをよろしくお願いいたします。

  • マルチタスクプログラミング

    マルチタスクプログラミング ド素人な質問ですみません、マルチタスクを意識したプログラミングをC言語で実現するにはどうしたらよいのでしょうか? 自前のHPにあるデータ数十万件をバッチを組んでデータの移行を考えていますが、その移行方法として工夫無しですと理論値で半年かかることがわかり、何とか移行時間を縮められないかなと考えている中、マルチタスクでプログラミングしてみたらどうかな?と思ったのが始まりです。 C言語の経験は大学で習った程度(なんとなくポインタが分かる程度)ですが、具体的な方法など教えていただければと思ってます。 また、ほかにもっとこっちのほうがいいとかありましたらご教授ください。

  • たとえばオークションのプログラミング

     コンピューターの素人ですが質問があります。  たとえばヤフーのオークションを一人でプログラミングする場合、どれほどの時間や日数がかかるのでしょうか。  条件は、オークションの構想、スタイルなどの必要事項がすべて決まって、あとはプログラムとして打ち込むのみという場合とします。  大体で結構ですのでよろしくお願いいたします。

  • プログラミングの本当の初心者は・・・

    プログラミングのまったくの初心者です。 このような質問は多いと思いますが、是非経験者の方の意見を聞かせてください。 興味を持ったのは仕事で使えると便利なことが多く是非やってみたいと思いました。 しかし、まったくの素人、そして年齢的にも40歳です。 こんな私が始めるためにはどのようにしたらよいでしょうか? また、言語がたーくさんありますがまずどこから始めたらよいのでしょうか? 個人的にはRubyがいいと詳しい人からは聞きますが素人には無理なのでしょうか? ちなみに仕事では解析業務等を行いたいと思っております。 皆さんの貴重な意見をどうか聞かせてください。

  • なかなかプログラミングができない

    文系大卒30歳、4年ネットワークエンジニアとして働き、SEを目指して3年大手SI屋でSEとして働きました。 大手SI屋ではプログラミングは協力会社さんに委ねることが多く、すでに社会人5年目だった私はプログラマとして即戦力にならないため、最初の1年はマニュアル作成やドキュメント作成が主な仕事でした。結局プログラミングすることもほとんどなく、そのうち小規模のサブプロジェクトリーダーなどをやったり、提案活動をさせられたりしてました。 プログラミング経験のないままこういう仕事をすることに限界を感じ、小さなSI屋に転職して半年になります。小さいながらプライマリで仕事を受けている会社ですが、プライマリで仕事を受けているとドキュメント作業などプログラミング以外の仕事がやはり多く、なかなかプログラミングができません。 プログラミングをしたければ、やはりSI屋から仕事を請けるような小さな会社に転職したほうがよいのでしょうか? もうSE業界に来て4年になろうとしているのに、未だプログラミングができない自分にいらだっています。。。

  • 初歩からのプログラミングの勉強について

    5月から某企業でSEになる為に働く者です。 厳密にはその企業がSE・PGを育成する子会社を設立しており、 その子会社に採用を頂き5月からまずアルバイトとして研修を受ける事になっています。 私は現在24歳。今まで社会人経験はありません。 高・短大と工業の電気化におりましたので多少勉強してはいたのですが、 当時PCに興味がなく苦手意識があった事から、また学業を離れて長かった事から プログラミング経験などは素人と思って頂いて構いません。 もちろん研修で1から学んでいくのですが、研修中も随時試験などを行いついていけない 人間は足切りされて行きます。まだ研修まで時間がありますので今のうちに独学で勉強したいと思っています。 そこで勉強する為のテキストなのですが、初心者からでも分かり易く覚え易いものを探しています。 なにかいいテキストがあれば教えて頂きたいと思います。 ちなみに研修ではC言語→C++言語→VC++で学んでいくようです。 また社会人としてのマナーも身に付けたいと思っております。 こちらも同じく良い書籍などがあれば紹介して頂きたいです。 よろしくお願いします。

  • ネットワークプログラミングについて

    C言語のネットワークプログラミングについて質問です。 UDPで通信を行う際に、daytimeクライアントとサーバの変更する必要がある所はどこになるのでしょうか?  また、どのようなヘッダや関数になるのでしょうか?

  • プログラミングの学習方法を教えてください。

    ご閲覧ありがとうございます。 23歳学生です。 現在、ソフトウェア開発に興味をもっています。 ですが、全くの素人ですので、何から手をつけて学んでいけばよいのか分からず困っています。 情報技術の知識レベルは中小企業診断士の学習がきっかけで、以下のことを学びました。 1)ハードウェア、ソフトウェアの基礎 2)ファイル、データーベースの概要 3)通信ネットワークの基礎 4)システム開発の手法 5)その他 しかし、実用的なプログラミングや開発に関して全くわからずじまいで、プログラミング=ソフトウェア開発?といった具合です。 ソフトウェア開発の技術者の方は、どのようにプログラミングをスタートをされたのでしょうか? 目標は、最終的には「オリジナルの家計簿ソフト」を作りたいと考えています。 経験談、書籍、URL等何でも結構ですので、一から学べるアドバイスをよろしくお願いいたします。