人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラミングについて。

インターネットのサービスを作るときについて完全に素人の僕から質問があります。

是非、実際のプログラマの方などからの怪盗をお待ちしております。

※質問本文はコメント欄にて。

●質問者: Lucifer777
●カテゴリ:インターネット ウェブ制作
✍キーワード:インターネット コメント欄 サービス プログラマ プログラミング
○ 状態 :終了
└ 回答数 : 6/7件

▽最新の回答へ

1 ● HowAreYou
●50ポイント

1 & 2

新しい言語、というのが英語や中国語のようなものなら、個人的には違う、と言う意見です(まったく異なる、というわけでもないですが)。

むしろ自動車や機械の操作手順を覚える方が近いような気がします。


3

コンピュータにできることや X と言う動作に関してどの様なイメージでおっしゃっておられるか少し分かりませんが、

Windows の場合、物理的に可能な大抵のことはできると言ってもよいのではないかと思います。

ただし、コンピュータに指示を出す、つまりプログラミングに関しては様々な方法があり、人間でいえば関節ひとつずつの角度を指定するようなやり方から、

おおざっぱに犬の絵を描け、とか校歌をうたえというようなものまであります。

後者の方が簡単なのですが、細かいニュアンスは出せない場合があります。

この場合、コンピュータにできること、というよりも指示できるものは誰が決めているというか、自分がその指示の仕方を選んだ結果です。

細かく指示を出せるがややこしい方法か、簡単だけどおおざっぱか。


4

どう説明したらいいか分からないので保留。

技術分野が違うので知らなければできません。


5

例として上げられた中では論理的思考 (他の要素もそれなりに必要)。

プログラマがどれほどの範囲を受け持つかにも寄りますが、設計に近くなるほど数学的素養も必要でしょう。

暗算はできれば便利ですが、電卓を使えればさほど問題はありません。

◎質問者からの返答

なんだかすごくワクワクする回答をありがとうございます。

なんだか宇宙人と話しているような気分です。


やはり3に関してが理解が難しいです。。

大雑把に犬の絵を描け、とコンピュータに指示を出しても、

コンピュータが犬を描くには、まず犬が何なのか知らなければならないはずですが、

これは、既にある犬というもののデータをコンピュータに与えた上で、というお話でしょうか?

つまり、犬の絵以外も、現在のプログラミングというのは、

過去に積み立てられてきたもの(ソフトや情報など)をうまく使って指示を出している、ということなのでしょうか。


でなければ、ちょっと怖いです。


2 ● うぃんど
●50ポイント

ごめんなさい。ブログなどから適当に怪盗してくることはできず(笑)私なりの言葉で書きました

【1】“新しい言語”をマスターするのと同じようなもの?

フランス語やドイツ語を覚えるといったような意味であれば、それは違います

厳密には違いますが「コンピュータの動きを理解して制御できるようになる」と思っておくと良いでしょう

【2】自分の意志を、プログラミング言語という言葉を使ってコンピュータに命令するようなもの?

そのとおりです。コンピュータに指示を与えやすいように用意されたものがプログラミング言語です

医学、化学など分野ごとに専門用語があるように、プログラミング言語にも、用途にあわせていくつもの言語が存在します

インターネット関連でよく使われる言語はphpやjavascriptなどがあります

(余談になりますがHTMLは厳密には言語ではなく表示方法を指定するためのタグの集まりです)

【3】「コンピュータに出来ること」というのは、誰が決めているのでしょうか?

「利用者、あるいは、システム設計者」です

音楽を存分に楽しみたいのであれば音楽に特化したハードウェアを取り付けますし、

ビデオ会議を行いたいのであればカメラやマイクを取り付けます

さらには、取り付けたハードウェアを動かすためのソフトを導入します

【4】プログラマは、コンピュータを作る人とは全くの別物ですか?

「コンピュータを造る人」がハードウェアを造る人という意味であれば、別ものです

「コンピュータを造る人」がシステムを造り上げるという意味であれば、プログラマは造り上げる人たちに含まれます

【5】何が得意であれば有利ですか?

Web系のプログラムであれば理系の知識はほとんど必要ありません

意外かもしれませんが、人並みの日本語ならびに英文読解力があれば良いです

贅沢を言えば、相手の少ない(拙い)説明から状況判断できるだけの経験値と、

経験値に裏打ちされた折衝能力ですが、こればかりは教えられて出来るものでもないですね

【6】勘違い

目的によって要求されるものは違ったものになります

・WindowsなどのOSを造る

・WordやExcelのようなアプリケーションを造る

・アプリケーションを自動操縦する

・Webアプリケーションを造る

最近のWebアプリであれば、すでに多くの人たちが作った資産を流用し、組み合わせて、

少し調整するだけでシステムが出来てしまいます

例えるならば「ガンプラをただ組み立てるだけのような場合もあれば、

ガンプラを組み立てる前にパーツ加工して、組み立ててからも磨きをかけるような場合もある」という事になります

言葉を借りれば、「コメント欄を良い感じに作って、登録したらページに表示されるようにしてくれっていうのをちょこっと記述すれば、あとは記述に従ってやってくれるんです」

◎質問者からの返答

ご丁寧なご回答ありがとうございます。


>フランス語やドイツ語を覚えるといったような意味であれば、それは違います

>自分の意志を、プログラミング言語という言葉を使ってコンピュータに命令するようなもの?

外国語などとは違うというのは・・・、コンピュータの動きを制御するための言葉しか無いから、

普通の外国語などとは違う、という意味なのでしょうか?


これ以外はとてもよくわかりました。

特に6に関しては、とても参考になります。

僕の中で、プログラミングとは、webページを作ったり、人工知能ロボットみたいなものを作ったり、

というようなものに限定されたイメージでした。

確かにいろんな機械がありますから、いろんな使い方があるんですよね。



あと、

>最近のWebアプリであれば、すでに多くの人たちが作った資産を流用し、組み合わせて、

>少し調整するだけでシステムが出来てしまいます

この一文で、私が思い悩んでいたことの80%くらいが解決されたように思います。

ただ、それだと1から作る場合はどうやるのだろう・・・という疑問が新たに浮かびましたが。

そういうことは凄い天才が出てこないとありえない話なんですかね??


ありがとうございました!


3 ● hanako393
●50ポイント

1.違います。

言語というので支障がありますが、

どちらかというと、ルールを書くだけなんです。

1.変数と代入文

2.IF文などの条件分岐

のこの2つのルールしかありません。

2.大体そのとおりですが

どちらかというと、プログラム言語のルールと癖にしたがって

それに合わせた形で、やりたいことを書いていく形になります。

ここで、言語は一般的な手続き言語をさしています

3.

>Xという動きをして欲しいなーと思っても、既存のソフトウェアでXという動きをするものが無い場合、

>Windowsが行うことの出来る行動を組み合わせてXに近い動きをするソフトを作ることは出来ても、

>いきなりコンピュータにXの動きをしろ!という命令を出すことは出来ないのか、という意味です。

>また、この際に「コンピュータに出来ること」というのは、誰が決めているのでしょうか?

たいていは、いきなりXと言う動きをするということができることはないんです。

Xという動きをしろという機能がない場合は、Xという動きをしろという機能をWindowsなどが提供しているものを

くみあわせて作ります。そしてそれを呼ぶことで、Xという動きをするということを実現するのです。

コンピュータにできることを決めてるのは、OSやドライバーの提供者です。


4.

コンピュータはハードウェアとソフトウェアからできてます。

プログラミングする人は、主にソフトウェアを作る人たちです。

君がコンピュータを作る人たちと言うのは、ハードウェアやOSを作る人たちのことをさしてます。


5.

プログラムの分野によりますよ。

たとえば、家電とか携帯とかのコアの部分をつくるのなら、数学的知識がないと厳しいでしょうね。

しかしながら、プログラマーにはなにも必要ないです。だから、人材派遣会社は、適当に若者をかき集めて

ほとんど素人同然の人たちを、派遣してますよ。

適性があればよいですが、とくになんの才能も必要ないんです。

6.

実際にプログラミングしてみることをお勧めします。

教育用に、ドリトルという言語があります。

http://dolittle.eplang.jp/

教育現場で使ってるところもあるので、使ってみては?

でもこれだけで、プログラミングはこうだと決め付けるのは危険ですし

ドリトルは教育用に作られてますので少し普通の言語とも違います。


ドリトルで学ぶプログラミング-グラフィックス、音楽、ネットワーク、ロボット制御
兼宗 進 久野 靖
4904013026

◎質問者からの返答

うーん、なるほど。

みなさん、大体同じようなことを仰いますね。

まぁ同じことについて述べられているので当然なのですが、みなさんのような理解をするためには、

やはり実際に自分も体験してみるしかなさそうですね。

とても参考になりました。

ありがとうございます!


4 ● LimgHT
●100ポイント ベストアンサー

プログラマの端くれからの答えです。


1:質問者の“新しい言語”のイメージは理解しかねますが、英語よりは全然マシと思います。


私が理系だからかもしれませんが、数学や物理の1単元を勉強する感じでした。

高校で例えるなら、微分積分を勉強したとか、ベクトルを勉強したとか、電磁気を勉強したとか。

学んだ概念や公式で問題を解く代わりに、学んだ言語で問題の解き方を書く感じです。


2:多くの場合、そう考えて良いと思います。

私は、プログラミングは、マニュアルを書くことと思っています。

コンピュータがそのマニュアルを実行している意味で、その通りだと思います。


ただ、皆さんが今見ているこの画面の各要素を生きたキャラクタと見なし、

それぞれのキャラクタに対してマニュアルを書く考え方もあります。

例えば、左矢印のボタンに対して「クリックされたら1ページ戻るように」など。

コンピュータに命令するイメージからは、ちょっと離れると思います。

詳しくは「オブジェクト指向」について調べてみると良いと思います。


3:言語次第です。

Windowsどころか、ランタイムと呼ばれる特殊なソフトの機能に限定される言語もあります。

逆に、Windowsなど関係無しにコンピュータそのものの機能を限界まで引き出せる言語もあります。


後者は、コンピュータがあって、それに直接指示するプログラムを書くことになります。

この場合、Windowsは全く関係ないので、影響されません。

対して前者は、Windowsなどの他のソフトウェアに頼んで、、

そのソフトウェアにコンピュータを操作させるプログラムを書くことになります。

この場合、Windowsが出来ない操作は頼めません。

これら両方ができ言語もあります。


あとは「できないこと」とは何かです。

プリンタに接続してないコンピュータに印刷しろ!と命令しても出来ないと言えば、確かにですが、

そのレベル=物理行動のレベルと思って良いと思います。

一方、論理レベルでは、普通に言うコンピュータは無敵と思って良いと思います。

時間さえ掛ければ、どんな処理だってできます。そのように設計されています。

というわけで、そう決めているのは「コンピュータの設計者」 です。


4:全く別物です。

テレビ局とテレビメーカーほど違っています。

全くの素人も大勢いますが、その知識がプログラマのレベルを決める要因の一つでもあります。


5:一に論理的思考、二に記憶力、三は想像力でしょうか。

計算はコンピュータにやらせばいいので、要らんかと。



単語数で言ったら、高校英語と良い勝負のプログラミング言語もあります。


コンピュータの状態が予想できて初めて、次ぎ何をさせるか書けます。


6:致命的な勘違いは無いと思います。

大体は良い感じではないでしょうか?


注:この答えでは専門用語を厳密に使ってません。

大体の感じが伝われば良いと思ってます。

◎質問者からの返答

>プログラミングは、マニュアルを書くことと思っています。

なーるほどー!分かりやすいですね。



>時間さえ掛ければ、どんな処理だってできます。そのように設計されています。

>というわけで、そう決めているのは「コンピュータの設計者」 です。

これがイマイチピンとこないのですが、

コンピュータの設計者は神様なのでしょうか・・・?

どうしてそんな凄いものが作れるのでしょう・・・・?


本当にありがとうございます!


5 ● naka1kazu
●50ポイント

1.プログラミング言語を覚える事は新しい言語を覚えるというよりも新しいパズルを覚えるという感じです。組み合わせで色んなブロックを作っていくという感じに近いかな。

2.その通りだと思います。

3.最近のプログラムは部品を組み合わせて作ります。例えばこの回答欄もこういう部品のあるプログラム言語があれば、それを画面上に置くというだけで済みます。ただ、例えば「商品を紹介(はまぞう)」というボタンは通常の部品にはなく、そこだけは別途作る事になります。以前のプログラムは一から全部作るようなイメージでしたが最近のオブジェクト指向のプログラミング言語であれば、今ある部品の変更したい部分だけ作成して他は流用という事が簡単にできます。逆にもっと高機能にしたいとかもできます。例えばボタンの絵をもっとデザイン良く、ボタンを押すとここでゲームを開始するとかいうこともできますが、その場合は(部品が無ければ)全部自分で指示をプログラミングする事になります。例えばこの回答欄だけでも全部自分で指示をプログラミングするとなると1年かかっても難しいかもしれません。

4.通常コンピュータを作る人と言うと

(1)コンピュータ(特にCPUというチップ)を設計する人、基板設計する人等も入れても良い

(2)コンピュータを組み立てる人()

(3)コンピュータのOSを作る人

(4)コンピュータのアプリケーションを作る人

等がいます。(1)はインテル等のCPUメーカ、(2)はdellやhpなどのパソコンメーカ、(3)はMicroSoftなどのOSメーカ、(4)はOfficeやゲーム等の作成ソフトメーカです。最近は(3)がコンピュータでできる事を決める事が多いイメージがありますが、どこまで本来できるかは(1)も(2)も関わってきます。プログラマは(3)か(4)ですが、質問者のイメージは(4)だと思います。(3)と(1)と(2)と(4)は一人でできる人もまれにいますが、通常別物です。

5.プログラマがどこまでやるのかに関わってきます。質問者がイメージしているような何かをしたいというアイデアがあってそれをプログラミングするには、対象となるコンピュータの知識及びそれを実現するためにアイデアを具体的に落とし込むという論理思考が必要となります。通常はこういう作業はシステムエンジニア(SE)とよばれる人が行い、その指示書にした

◎質問者からの返答

あ、この回答の続きがコメント欄だったのですね。

非常によく分かるご説明ありがとうございます。


3については、世の中大体そんなもんだと思いますし、プログラミングに限ったことではないと思うので、

これに関しては僕でもイメージしやすいです。

しかし、全く新しいものを作る、となった場合は自分でプログラミングする、とのことですが、

何も無い状態からどうやって指示するのでしょう・・・?

例えばコメント欄を1から作ろうとしたとき、1年以上はかかるとのことですが、1年以上も何をしているのでしょう・・・?

1年以上かけてコンコンとパソコンに自分のイメージを伝え続ければ、パソコンはだんだん理解してくれるのでしょうか・・・?

それとも、思った形のページが出来るまでいろんなプログラミングを試し続けるという感じでしょうか・・・?

この辺りがどうしても理解出来ません・・・。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ