A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
みなさんが大体言っているのですが、付け加えるなら
言語のマニュアルを読むための英語力・言語力、
(これがないためにぼくは苦労しています)
複雑すぎる理論を捨てて保守性を優先する合理性、
(簡単な四則計算の組み合わせでしたが、if-else if文を
使うような場面を処理させたところ、何をやってるか
わからなくなって、保守し難くしていたことに気づいた
経験あり)
プログラムの全体像を構築把握する空間認識能力
(これもぼくは貧弱なために苦労しています)
なども必要でしょう。
No.6
- 回答日時:
商業目的なのか、研究目的なのか、スタートアップや個人的な趣味なのかで多少は変わりますが、推理小説を書く時に求められるものとそっくりです。
つまり…発想力と言語能力(国語の能力と考えてよいです)と物事を論理的に考える能力です。
発想力という点は結局のところコンピュータとは道具に過ぎないからです。使い方は決まっていません。
こんなものを作ればお客様は喜ぶのではないか?こんな使い方をすれば人にできない事をコンピュータにさせられるのではないか?こんなものを作れば面白いのではないか?
プログラミングという物は常にコンピュータを使う事によって生まれるユートピアを思いつくところから始まります。
発想力がない事には何も始まりません。
次に、言語能力が必要という点についてはソースコードとは命令書だからです。
プログラム言語は相手が人ではなくコンピュータという違いはありますが結局のところ命令書ですから、作る時に求められるのは作文の能力です。
ただ、人間とコンピュータの頭は特性が異なる為全く同じではありません。
例えば人は複雑な命令は苦手ですがある程度あいまいな命令であってもいいようにふるまってくれます。
一方でコンピュータは定義の欠落が1つでもあれば動きませんが、どんなに同音異義語があってもどんなに異音同義語があっても平気ですし理解できます。
また、お客様が望んでいる事を理解したり、自分が正しいと思った仕様をお客様に理解させたり、使う事をのすばらしさを理解して買わせたり…
プログラミングの周辺で必要になる事でも様々な場所で言語能力が関わってきます。
3つ目に論理的に考える能力が必要となるのは、プログラミングとはやりたい事の手順を抜け目なく"想定外"をできる限りなくして、(理解としやすさと全く無関係な)論理的正しさを基準に表現する行為だからです。
コンピュータが大量のデータを高速で処理する特性上日、いくら論理的には天文学的な数値の確率でしか起こりえない事象が日常的に起こる事になります。
ですから、論理的に考えて抜け目なく"想定外"をできる限りなくす必要があります。
例として、3,656,158,440,062,976分の1(さいころが20個同時に振って全て1になる確率)と聞くとどう思うでしょうか?
情報理学を知っているプログラマは1日に数回起こるほどありふれた事と考えます。※1
論理的な美しさにかかわる部分となると、例えばリストを前から順に処理するとうまくいかないのに後ろから処理するとうまくゆくような事象は山ほどあります。
そういった時には論理的に意味がある要素なのか、それとも自分が理解しやすいといった論理的には意味はない執着なのかを切り分ける必要が出てきます。
上手く行かない時自分の考えは間違っているのではないかと疑い、より論理的に正しい考え方が出てきた時に自分の考えを否定できないと堂々巡りを繰り返す事になります。
コンピュータはベテランか新人か等関係なく常により論理的に正しい方の味方をしますので、プライドや経験的な勘を理由に相手の意見を否定する行為は最悪と言えます。
最後に言語は何を使うかはあまり関係ありません。
小説を書く時、英語で書くか日本語で書くか中国語で書くかは重要でなく、ストーリーが重要なのと似たようなものです。
C言語で書こうがCobolで書こうがプログラミング言語は「分岐とループと処理」という3種類の物を列挙する手段に過ぎませんので。
※1 以下の通り。
・判定の結果は3,656,158,440,062,976パターン(6の20乗)とする。
・説明の簡略化のため全パターン満遍なく発生するものとする。
・その判定はCPUコア1つにつき1秒に10回発生するものとする。
・CPUコアは4つとする。
・利用者は10億人とする。
→1*10*4*1,000,000,000*60*60*24/3,656,158,440,062,976≒0.94525444032465717113892755424198
→1日に1度程度起こるだろう。
現実には数マイクロ秒間隔で判定が行われる事もそれほど珍しくありませんので10,000人位の利用者でさえ1日1回くらいは起こる可能性は十分にありえます。
No.5
- 回答日時:
プログラムは、いろんな書き方があり、その意味で、数学の問題を解くのに似ています!ですから、発想力もいるでしょう!実際にプログラミングを勉強し、プログラムを作成した立場から言えば、まず、
基本を 基本的な事柄の書いてある良書(みんなが勉強している本がいいでしょう)で基礎を身につけること!次に、実際にプログラミングをしてみる!エラー処理をしながら、いろいろ思考して直して見る!その意味で、注意力も必要です。そして、他の人の書いたソースコードも理解して覚えましょう!暗記は要らないが、理解力は必要です。また、どのようなプログラムを最初に作成する時に、日本語をプログラムにあった内容に変換して作る必要があるので、プログラム言語の深い理解が欠かせません!
プログラム言語は、違えども、英語や中国語というような違いでしょうから、その言語に慣れることが必要でしょう!私も、仕事に必要で独学した時、まず、関数から入門し プログラム作成に移行しましたが、基礎力をマスターするにも 半年から1年間必要でした!
No.4
- 回答日時:
1からN(自然数)までの整数の合計を求めるにはどうすれば良いか?
案1
「合計」という箱に1からNまでの数を加えれば良い。
→手順
「合計」に1を加える
「合計」に2を加える
……
「合計」にNを加える
これだとNが大きな数だ書くのが大変
→「数字」という箱に1からNを入れ替えて繰り返せば良い
→手順
1. 「合計」に0を入れる
2. 「数字」に1を入れる
3. 「合計」に「数字」を加える
4. 「数字」の数をひとつ増やす(1だったら2にする)
5. 「数字」がNより大きければ終了、そうでなければ3.へ
案2
→定義
Nまでの合計は、N-1までの合計に1を加えたものだ
N-1までの合計は、N-2までの合計に1を加えたものだ
……
2までの合計は、1までの合計に1を加えたものだ
1までの合計は1だ
→関数
合計(N)=(N=1の場合) -> 1
|(その他の場合)-> 合計(N-1) + 1
・課題の中から法則性を見出す
・それを言葉で表してみる
・それをプログラム言語で表してみる
No.3
- 回答日時:
SE業種でリーダとかマネージャをやっていて、ツクヅク感じさせられた事は、携わってる人達の国語力の無さです。
自分の考えを正確に相手に伝えられない。
相手の仕様書などを正確に解釈出来ない。
それでプログラムを作っても、字下げはやらない、コメントは少ない、これでは見た人は解らない。
まずは、国語力。
これ無くして何をやっても意味無い。
No.2
- 回答日時:
プログラムを書けるようになることは
道具を使いこなすのとそんなに変わりません。
単にプログラムを書けるようになるだけなら高い能力は要りません。
たくさん書いて経験を積めばいいです。
多少、他人のソースも読んでみるとよいと思いますが、
それくらいで終わりです。
目的はソフトウェアを作りたいですよね?
ソフトウェアを作るには、プログラムを書くことよりも
設計などのほうが能力的には必要になります。
ソフトウェア実現したいこと整理して、必要な機能など分析して、
プランをたてて、ドキュメントなどで表現する能力です。
構造化言語、オブジェクト指向、関数型などで具体的な技術は変わり、
内容もいろいろありすぎてなかなか説明するのは難しいですが。
まずはプログラムを書いてみてください。
多分、なかなかすっきりしたプログラムを書けないと思いますが、
それはプログラミングとは別の、上記のほうの学習が必要になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
コンソールアプリでファイル選...
-
OSを作成する難易度について
-
マイページ機能
-
機能拡張しやすいプログラムの...
-
プログラミング 素数か素数では...
-
Java (ジャバ)
-
自動で施設の空きを通知するプ...
-
1年無職の彼氏 別れるべきですか?
-
全豊田作業責任者
-
VBで簡単なゲームをつくるサイト
-
F1エンジニアとF1メカニック
-
Affinger6でトップページに記事...
-
情報処理技術者1種と2種について
-
6~7割の正解で、なぜ合格?
-
医療情報技師とは?
-
HTML 特殊文字の タブ:	...
-
初級シスアドについて教えてく...
-
Excelで用語辞典を作成するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
SNMPトラップ情報をC#.netで作...
-
C言語のHP-UXからLinuxへのポ...
-
Ryzen 3700(無印)はWin11に対応...
-
VBS:コンピュータ名を取得し、...
-
VB.net エラーメッセージを英文...
-
PHP+MySQLで家計簿を作りたい
-
変数の大きさを超える代入
-
プログラムとは理系ですか文系...
-
OSとCPUの関係について
-
コンソールアプリでファイル選...
-
プログラマーという御仕事(質...
-
Timerイベントについて
-
EXCEL-VBAのプログラムを移植し...
-
Perl5とActivePerl
-
MS-DOSで作ったBASICプログラム...
-
VC++で単機能ブラウザを作...
-
掲示板の作り方を教えてください
-
小中学校でプログラミングなん...
おすすめ情報
具体例を出していただいて、
プログラムが書けるようになるプロセスでどんな力
が必要なのかが知りたいです。