質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

6回答

963閲覧

プログラミングの考え方について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

4クリップ

投稿2019/01/31 12:47

現在、駆け出しのプログラマーですが
フローチャートや記述の時に「固定的に考え過ぎている」「柔軟性をもって」とよく言われます。
プログラムの処理なども苦手意識があり、教えていただいて応用がきかないことが多く悩んでおります。
プログラミングに役立つ本や考え方、役立つ数学など何かヒントがほしいです。
よろしくお願いします!

DrqYuto, oppeke👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2019/01/31 12:57

ご自身のスキルレベル(何を知っている・何を作れる等)をもう少し記載されると、より有意義な回答がつくのではと思いました。
guest

回答6

0

「固定的すぎる」も「柔軟に」も、どちらもまだあなたが「十分な選択肢や使える道具、知識を持ち合わせていないため、選べるものが少ない」ことが原因である可能性が高いです。そういう意味では、初心者への指摘としては「絶対当たっていて、無難な指摘」です(誰でもできる指摘。こう言っておけば大抵初心者を黙らせてへこませられる)。

まれに天才的な人がいて、いきなり想像を超えるやり方や手段を発明したりすることはあるかもしれませんが、まぁ、そういう人であればここで相談はしてませんよね?ってことは、地道にいろいろやってみて、成功、失敗含めて「場数を踏み、いろんなケースに対処する術の持ち合わせを増やす」が一番遠回りなようで近道だと思います。

「固定的すぎる」とか「柔軟じゃない」なんてのは誰でもできる指摘で、むしろ今のあなたに必要なのは「どうすればいいか」という方針やアドバイスかと。どういう状況でプログラムを組まれているかなどがわからないので、おそらくみんな無難なアドバイスしかできないと思いますが、少なくともいえるのは「悩んでる時間で手を動かして、やったこと無いことをやってみよう」です。

失敗することもありますし、やったことや費やした時間が無駄になってしまうように思うこともあるかと思います。ですが、失敗は「こうしたら失敗する」という経験になりますし、成功は「こういうやり方で成功した」という経験、どっちも経験です。そういうのをいっぱい繰り返してため込んでいけば、「こういうときは、こんなやり方とか、こんなやり方がある。ちなみにこういうことをやると失敗する」ということを言えるようになります。これが「固定的すぎず、柔軟」ということかと。

焦らずいろいろやってみましょう。

ただ、1つだけ。プログラミングや開発の世界は、何かを実現するための方法がものすごくたくさんあり、同じ事をやるにも多彩なコースがあります。1回の成功で、そのどれかに固執すると、「経験はあるのに、考えが堅い、柔軟じゃない」というエンジニアになってしまうので、なるべく「手札をたくさん増やして、どんな状況でも複数の選択肢を持って戦える」ようになることを目指しましょう。

ではでは。参考になれば幸いです。

投稿2019/01/31 13:03

backyard

総合スコア534

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

言葉というのは文脈を考えないと間違えます。字義だけではなく、状況によって意味が変わってくるからです。

例えば「お前はなんてバカなんだ」というのが、ある場面では暴言であり、ある場面では感謝の言葉になります。

ですからこの場合の「固定的に考え過ぎている」「柔軟性をもって」がどういう意味なのかを考えなければ対策は立てられないでしょう。

例えばこの質問ですが、私はそのような感想を持ちました。

javaで素数を出力するプログラムについて

確かに要件は満たしています。ちゃんと読んでいませんが、おそらく動くでしょう。

「プログラムは動けばいい」のであれば、問題ないはずです。

しかしこのプログラムは「1 から 10」を「1 から 100」に変えると破綻します。「動けばいい」という考えで作られているからです。

プログラミングで最も多いのは新規開発ではなく保守です。このプログラムを保守しようとすると、全面改修になってしまいます。

「もっと柔軟に」というのは、「与えられた条件が変わるとどうなるか」「出題者の意図を把握しているか」という、「もっと問題以外のことも考えなさい」という意図で言われたことなのではないかと推測します。

つまりあなたは「字義だけで考えるのではなく視野を広く持って状況を考えろ」と言われたのです。

「プログラミングに役立つ本や考え方、役立つ数学など」も大切ですが、この問題の解決に役に立つかどうかはわかりません。ただ、保守性を考えるのは全てのプログラムの基本ですから、大切にしてほしいと思います。

投稿2019/01/31 22:55

編集2019/01/31 23:08
Zuishin

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

フローチャートや記述の時に「固定的に考え過ぎている」「柔軟性をもって」とよく言われます。

これ、設計をちゃんとしろって言われています。
データの持ち方やフローの設計が充分でないのでしょう。
「固定的に考え過ぎている」「柔軟性をもって」と指摘している人もあまり良い指摘ではないのですが、大抵のコードは「車輪の再発明」であり、独創性な設計となるケースは少ないです。

より多くの設計を見ることで、設計の常識が身につきます。
会社であれば、過去のドキュメントが揃っていると思うので、資料の読み込みから始めてみては?

投稿2019/02/01 02:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/01 02:25 編集

> プログラムの処理なども苦手意識があり、教えていただいて応用がきかないことが多く悩んでおります。 とあるので設計ではないように思います。 駆け出しプログラマーにそこまで設計やらせることってないように思います。 「フローチャート」についても新卒プログラマーに頭で整理させたり 処理の考え方を身につけさせるためにしばしば用いられるものですし。 もちろん設計の考え方を身につけるのも有用なので間違いとは思いませんが、 質問者さんの状態からは少し離れるかなって。
退会済みユーザー

退会済みユーザー

2019/02/01 02:37

> プログラムの処理なども苦手意識があり、教えていただいて応用がきかないことが多く悩んでおります。 網羅的な処理が見えてないだけだと思いますよ。コーディングとは別次元の話をコーディングの話しと捉えているのだと思います。 本質は設計の話です。 > 「フローチャート」についても新卒プログラマーに頭で整理させたり 処理の考え方を身につけさせるためにしばしば用いられるものですし。 これこそ、車輪の再発明に他ならないので、柔軟性や独創性の入り込む余地は無いです。 柔軟性とはかけ離れた事象に対して、「柔軟に」という指摘が非常に的はずれなので回答しました。指摘者は「想像力を持って網羅的な処理を考えろ」との意味で使用しているのだと思いますが、本質は「処理の本質を理解してパターンを当てはめる」です。双方にとって非常に不幸なすれ違いです。。。
m.ts10806

2019/02/01 02:41

なるほど。了解です。 この質問者へ指摘された方の意図はその人しかわからないので推測で答えるしかないのはこちらも厳しいところですね。 捉え方が難しいというか。 もしかしたら思ってるよりカテゴリーが下の話かもしれないし、もっと上かもしれないし。
guest

0

既に回答してくれているbackyardさんの内容に重なる部分もありますが、私なりの回答もしてみます。

同じ結果を出すにも手法はひとつではない
というのが出発点です。
何がベストかはそのとき時や設計によっても違います。
そこが「ロジック」とも言えるところで、常日頃から様々な表現方法ができるというのを念頭においては如何でしょうか。

簡単な例題です。

「“Hello,World“と出力する」

これを導入で良くあるprint以外の手法でできるだけたくさん挙げる

幾つ手法が思い付きますか?
思い付く限り難しく回りくどいやり方を考えて試してみてください。

私も新人教育の一環でこういう課題を出すことがあります。

目的は「やり方は1つではないというのを知ってもらう」というのと「現在の引き出し(自分の実力)を把握する」のと「引きだしを増やしてもらう」ことです。

引きだしを増やすことは、柔軟性のある考え方や行動に繋がります。これはプログラミングに限らず、ですね。

ここでたくさん手法を挙げられなかったからって落ち込む必要は全くありません。駆け出しであれば言わば初心者に毛がはえたようなもの。引きだしと言えるものも無いようなものなので、出せなくて当然です。
逆に言えば数ヶ月数年経ったときに同じ課題をやってみて現在よりひとつでも多くの手法を挙げられたら、それは自身の成長を分かりやすく実感できる指標にもなるわけです。

がんばってください。

投稿2019/01/31 19:33

m.ts10806

総合スコア80871

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/01 02:05

>プログラミングに役立つ本や考え方、役立つ数学 「数学」がなぜ入っているか質問内容だけでは全く不明ですが、私の回答はあくまで「選択肢を広げ、柔軟性を高めるための一種のトレーニング」として捉えてもらえたらと。
BeatStar

2019/02/03 01:20

mts10806さん。 なるほど。それはありそうですね。
guest

0

あまり模範的な話ではないですが「動けば良い」というのが第一だと思います
最適がをゴリゴリ考えるよりも新しいプログラムをいっぱい作る方が勉強にはなると思います
「柔軟性」は頭の良し悪しの問題なので、頭の良い人は柔軟性なプログラムを書いて、頭の悪い人は固定的なプログラムを書いて、まあまあ頭が良いひとはまあまあ柔軟なプログラムを書くというだけの話です。
ただ、「動けば良い」とは言えども「動かなければ良くない」ので必ず動くものを作りましょう。
だんだん複数なものを作っていくうちに「柔軟性」の意味は体に身についてくるので「正しく動かす」ことだけ意識してれば問題無いと思います。

投稿2019/01/31 14:52

bochan2

総合スコア2050

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/01/31 23:28

柔軟でないと言われた質問者は「頭の悪い人」にあたりますか? 質問者に暴言を吐く必要はないと思います。
azuapricot

2019/02/01 00:22

動けば良いという目的で作られたプログラムで良いものなんて見たことないですけどねぇ・・・。 まぁプログラムをたくさん作るのには同意です
momon-ga

2019/02/01 01:52 編集

あれ?そんなに低評価になるのか? > あまり模範的な話ではない という前提はありますが、すごくまっとうでは。 > だんだん複数なものを作っていくうちに「柔軟性」の意味は体に身についてくる 現時点でいちばん高評価の > 「場数を踏み、いろんなケースに対処する術の持ち合わせを増やす」が一番遠回りなようで近道だと思います。 と、本質的には同じ回答ですよね。 そのうえで、”まずは”「動けば良い」とは言えども「動かなければ良くない」ので必ず動くものを作りましょう。っていってるだけですよね? 特に初心者であれば、”まずは”の部分も大事という別の観点を示唆してるだけでは? 追記 > 「柔軟性」は頭の良し悪しの問題 は、 「柔軟性」は頭の良し悪しと経験の問題 って、訂正すりゃいいのかも。
m.ts10806

2019/02/01 02:02 編集

「仕様通り」動けばよい ですよね? そこが抜けていると「仕様も設計も適当でセキュリティも何も対策してないけど、動くのは動くよ、バグもあるし穴だらけだけど、それでいいよ」と解釈されてもおかしくないですし、投げやりで乱暴にも見えます。 teratailでも「書けばよい」だけの回答をしても誰のためにもなりませんよね。 柔軟性を頭の良し悪しと決めつけている点も良くないですね。 この回答がマイナス集めているのはそんなところではないでしょうか。この回答の前置きはあまり効果がありません。
Zuishin

2019/02/01 02:04

私が低評価した理由は私の回答に書いた通りです。 質問者さんは「動けばいいプログラミング」をすでに実行しているので、勧める必要はありません。また、「柔軟性がない」と言われた理由はまさにこの「動けばいいプログラミング」から始まっていると思うので、この質問の回答としてそれを勧めるのは間違いだと思います。 低評価はある程度集まると次の低評価を抑制する効果があるので、普通ならここまで低評価は集まりませんが、その抑制を外したのは、突然質問者のことを罵倒したのと、プロフィールのダブルスタンダードと、例の質問での荒らし行為でしょう。 ただしそれは抑制効果を中和しただけで、本質的にはこれだけの人、いやそれ以上の人がこの回答を間違っていると思ったからで、サイレントマジョリティーの一部が表に現れただけでしょう。
退会済みユーザー

退会済みユーザー

2019/02/01 02:13

設計ちゃんとしろって指摘されている人に「動けば良い」って回答はなしだと思いますよ。
momon-ga

2019/02/01 02:26

> 「仕様通り」動けばよい その通りです。 仕様通りに動かない柔軟性の高いプログラムなんて、なんの価値もないので。。。 言葉が足りないのは、その通りですね。思ったより低評価が多いので、みなさん厳しいなぁと。
Zuishin

2019/02/01 02:41

誰か仕様通りに動かない柔軟性の高いプログラムの話をしていますか? 話に出てないと思いますよ、そんなものは。 あとここで言う柔軟性というのは、プログラムの話ではなく思考法の話だと思います。 「固定的に考え過ぎている」「柔軟性をもって」が並列に並べられているので、「思考を固定せずもっと柔軟に考えて」という意味で間違いないと思います。
guest

0

ガンガン検索かければいろいろ出てくると思うけど...

ロジック1, アルゴリズム1, ロジック2, ロジック3,ロジック4...

なんで探そうともしないのでしょうか?

投稿2019/02/01 04:08

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/01 04:21

「苦手意識」というところが壁になってるかもしれませんね。 「トマト嫌いの人」に幾らおいしい料理や食べ方をすすめても「トマトはトマト」ってなりますからね。俳優の勝村政信のしいたけの話はまさにそれかなと。 「どうやったら苦手を克服できるか」になればいいですけど、自分のなかでの選択肢が少なくて一方向に考えるしかない駆け出しの状態だとなかなか頭が向かないですね…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問