動画でプログラミングはカンニングOKです!というような動画を見ました。そこでどこまでの事を言っているのか分からなかったので質問します。
アプリを作ったりwebサイト等を作る際にサイトのデザインや動作の作り方を見て理解し少し手を加えて書くのでしょうか?
それとも初めから何も見ずに基礎だけ勉強して自身で全て考えて書くのでしょうか?
皆様がプログラミングをする際に気をつけている事等何かありましたら教えてください。素人質問すいません
追記
質問内容が固まっていなかった事、表現が適切ではなかった事に対してまず謝罪いたします。申し訳ありません。自身が知りたかった事は何かを開発する際に知識が備わっていなかった場合は調べて書いていくかと思うんですが、その時に得た知識ではその参考にしたコードがどういう風な構成になっているかしか理解できてないと思うんですが、それを自分らしく表現したりする為にどういう事を心がけているか、自分で何も参考にしずに書いていってるのかを疑問に思い質問致しました。また参考にしているのであればその様々なコードの書き方の知識をどうやって手に入れているのか、基礎を学んでもそれを応用しようとした時に詰まってしまっていたのでお聞きしました。それとも作りたい物、例えば電卓であれば算術演算?を学んでからそれを表現する方法やコードを自分なりの組み合わせで考えているのかを知りたくて質問しました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
ベストアンサー
質問がふわっとしてて最終的に何が聞きたいのかわかりませんが、そもそもプログラミングをする事自体、学校のテストのように採点されるものではなく、出来上がった成果物がユーザーに受け入れられるかどうかで評価されるものです。
だから「カンニング云々」とテストと比較する事自体がナンセンス。
他者の権利を侵害しない範囲で、優れたプログラムを読み、模倣し、学ぶのは普通に誰でもやってます。
リストをソートしようと思うたびにそのアルゴリズムを1から再発明する馬鹿はいません。
追記に対する回答
その時に得た知識ではその参考にしたコードがどういう風な構成になっているかしか理解できてないと思う
その程度の理解で「参考にした」と思っているのであれば大間違いで、そのレベルで自分のプログラムに取り入れる行為はただの「コピペ」です。
「参考にプログラムを作った」というのは、問題解決のための具体的な手法・アプローチ他者のコードから学び、自分のプログラムに適合する形で取り入れる行為です。
自分の知らなかったライブラリやフレームワークに対する知識であったり、設計・実装パターンの学びや気付きがあって初めて「参考にした」と言えるのであって、ただ他人のコードを見て剽窃する行為なんて何の意味もありません。
それを自分らしく表現したりする為にどういう事を心がけているか
プログラミングに「自分らしさ」なんてものは不要です。
個人開発を除き、通常は開発作業はチームで行いますので、そんな独自色を出そうとする意識そのものが邪悪です。
自分で何も参考にしず
「せず」
参考にしているのであればその様々なコードの書き方の知識をどうやって手に入れているのか
公式リファレンス、デザインパターンや設計パターンの学習、チーム内でのフィードバック、勉強会など、方法は書ききれないほどあるでしょう。
例えば電卓であれば算術演算?を学んでからそれを表現する方法やコードを自分なりの組み合わせで考えているのかを知りたくて質問しました。
繰り返しになりますが、そもそも論として「自分なり」とかそういうの要らないし、電卓であればあなたの目の前にある「コンピュータ」はウルトラ高性能な電卓なので、よほど特殊な事や、車輪の再発明のような事をしたいのでなければ、やりたい計算そのものは簡単にやってくれます。
プログラミングで大切なのは、そのソフトウェアがどんな機能を備えるべきかという「仕様」に対する理解です。
それができていれば、あとはその仕様を満たすよう作るだけです。
投稿2020/12/12 03:26
編集2020/12/15 09:03総合スコア8947
0
書籍や Web サイトのコードを参考にします。ただしそのままコピーは著作権違反となる場合があるのでライセンスをよく確認してください。書籍であれば巻頭や巻末に、GitHub でしたら LICENSE ファイルがリポジトリに置いてあると思います。
さて、コードを参考にするとはいいましたが、参考にするにしても力が必要になります。難しい本を読むには語彙力、読解力が必要なのと同じです。それらを育てるにはどうするかといえば、易しめの本でそれらを養うわけです。そして語彙力、読解力を養うには読むだけではなく実際に使って見る必要があります。
プログラムのコードも同様です。優しい例を参考にして自分で動かしてみてコードの「語彙」を理解し「読解力」を高めます。するとより難しいコードも参考にできるようになってきます。その繰り返しで自然言語の仕組みを学ぶのと同じようにプログラミング言語の仕組みを理解していきます。
ここで大事なのは「語彙」と「読解力」を使って「実践」してみることです。自然言語では日常的に実践が行われ当たり前過ぎて意識されていませんが、プログラミング言語となると実践に当てられないのが事実です。プログラミングの「語彙」と「読解力」を使ってコードを書いて動かすという「実践」を行うことによってプログラミングという技術を身に着けています。「論より RUN」なんていう悩むよりはプログラムを動かしてみようという言葉もあります。それだけ実践はプログラミングにおいて重要です。
「基礎を身につける」という行為と「参考にする」を分けて考えてらっしゃるようですが、この二つに境目はありません。そもそも基礎を身につけること自体が誰かの行いを参考にすることなのですから、二つの行為は不可分です。ただ冒頭にも述べたとおり著作権というものが存在するので、参考の仕方にも注意が必要である。そういったところでしょう。
投稿2020/12/12 05:44
総合スコア2853
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
「カンニング」という表現が紛らわしいです。答えがあるものに対しては「カンニング」という表現が使えますが、同じゴールに向かう道が1つではないプログラミングにおいては「カンニング」という表現は適しません。
(情報処理試験などは答えがあるものなので当然「カンニング」です)
既にあるように「模倣」の範疇でしょうね。
もちろんライブラリを利用する際にはライセンスに気をつける必要があります。実務では実際にライセンスを買って利用することもあります。
で、「動画を見てどこまでのことか分からなかった」のなら、意図は動画の主しか知らないので、その主に聞くのが筋ではないでしょうか。
どこの誰のどんな動画のことを言っているのか提示されない状態で赤の他人に赤の他人の意図を聞いたところで、本来の意図など誰にも分からないわけです。
間違っているかどうか確かめようもないわけですし、私を含めてここに回答を寄せた人のコメントが嘘である可能性もあります。
あなたの中での判断基準は確固たるものですか?
ふわっとしたままなんとなく聞いてなんとなく出たアドバイスをなんとなく受け入れているだけでは、後の大トラブルに繋がりますよ。
他人は他人。無責任なものですから。
おおよそ似たような質問:
プログラミングを使って作りたいものがある時の調べ方、プログラムの組み立て方
投稿2020/12/12 06:32
編集2020/12/13 20:30総合スコア80875
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/13 20:30
0
カンニングと言っても色んな方法があるわけです。
たとえば、「隣の人の回答を盗み見て、自分も同じ回答をする」というのもカンニングの手法の一つです。これと同じ方法をプログラミングに例えるなら、「同じようなプログラムを作っている会社からソースコードを盗んできて、自社のコードに組み込む」となります。普通に犯罪です。
その動画が犯罪を奨励しているとは思えないので、たぶん、何かが間違っているのでしょう。
プログラミングというか、他の仕事もそうですが、一般の試験と、実際の仕事の違いは次のような事でしょう。
試験 | 仕事 | |
---|---|---|
持ち込み | 教科書・参考書・辞書等は持ち込めない | 入門書・リファレンス等を手元に置ける |
ネット検索 | ネットに繋がる端末を使用できない | いつでもネット検索できる |
対応人数 | 個人戦であり人に聞けない | チーム戦であり仕事仲間にいつでも聞ける |
第三者への委託 | できない | お金払って委託することができる |
正解 | 存在する | 存在しない |
大学などでは参考書や辞書などが持ち込み可の試験もありますが、たぶん、動画の人はそういう経験がないため、本を手元に置けるとか、ネット検索できるとか、そういったふわっとした感覚で「カンニング」と言ったのだと思います。
なお、他人が作った物に対してどうするこうするを心配なされているようですが、そういう事は著作権に対する最低限の知識を身につければ自ずとわかります。
投稿2020/12/12 05:05
総合スコア21739
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
「プログラミング」はプログラムを作る行為。それだけ。
では、何のためにプログラミングをするのでしょう。
仕事の場合。目的は結果として作成したプログラムを作成し、対価を得ること。
他人が作成したものを盗むなどでさえなければ、資料をみようと下請けに出そうと、ちゃんとしたプログラムが出来さえすればよい。逆に、出来たプログラムに瑕疵があった場合、資料等を確認しなかったことは怠慢と言ってもいい。
勉強の場合。目的は自分の能力を高めること。
決して成果物としてのプログラムが要求されるわけではない。訓練として、資料などにあたらずにまた自力でプログラムを組むことを要求されることだってある。学習者の能力が上がるなら、プログラムの完成度は二の次かもしれない。
勘違いして、完成したプログラムを求める者のなんと多いことよ...
投稿2020/12/12 05:38
総合スコア7703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。