こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラミングは独学で習得できるか。

質問タイトルのとおりなのですが、これから、プログラミングをやってみたいと思っている者です。
C言語やJavaを学びたいと思っているのですが、市販の書籍を
何冊か買ってきて一通りの基本的な事項というのは独習・体得できるものなのでしょうか。
良書を調べたりもしていますが、結構、初心者には熟読しても難しい概念が多いですよね。
応用や発展的な技術はたしかに、長い期間をかけての実際の仕事現場での経験、積み重ねが必要であるとは思いますが、変数、関数、クラス、条件分岐などの基礎的な概念や、文法は理解できるのだろうかと思ったりもしました。
プログラミングをマスターしている方というのは、だいたい本を見て独学でやられてきたのですか。
それとも、よくある大学や、「WAVE」「インディーフォルダ(元アウズ)」「ヒューマンアカデミー」などのスクールに通われて身に付けた方も多いのでしょうか。
私も体験入学などしてきましたが、「わからないところを質問できる」、「お金を払ってまで通うのであるから、なまけたり、挫折しないで学習を持続できる心理的な強制力がある」との利点はあるものの、それ以外での実際の学習内容は、一般の書籍と中身は大して変わらないのかなと思ったのですが。
たしかに自己管理をなかなかできない場合は、学費も大きいけれども、長い目で自分に投資するという観点から見た場合、非常に大きな払うだけの価値があるのかもしれませんが。
学費を払うだけの価値があるのかなと思い、迷っています。
もし、何かしらのアドバイスをいただけたら、ありがたく思います。

投稿日時 - 2008-01-10 00:36:28

QNo.3665808

困ってます

質問者が選んだベストアンサー

nobulinさんがプログラミングを何のために勉学するのかによります。
つまり、情報科学科の学生さんで学業のため、就職のため、趣味のためなど。

就職のためなら、自分に投資しても体系的に勉強する価値はあります。
学業なら、学校の先生や先輩に本や勉強法を伺うのもよいでしょう。
趣味ならば、その言語を使って何か製作したいソフトウェアを
考えて、それを作るにはどうやればよいか調べていくのも手です。

勉強するときは、まずはサンプルプログラムのソースコードが
書いてある本を見ながら自分でまったく同じプログラムをつくったり、
それをちょっとずつ改造・改変しながら応用していき、コマンドを
覚えるのが早道だと思います。

1つのプログラム言語を覚えれば、2つ目からは前に覚えた言語との
違い、コマンドの名前、引数の使い方の違いを覚えていけばよいと
思いますよ。

私は大学卒業後SEの道に進みました(今はSEを辞めぜんぜん違う仕事をしています)が、
学生時代は、大学の授業で今は無きMacのHyperTalkからスタートし、
会社に就職してからは会社の新人研修や実JOBで
COBOL→C言語→VB(VBA)→HTML/Perl→Oracle PL/SQLと
覚えていきました。
(覚えた順番はその時代およびお客様のシステムに関係する上、
すべての言語をパーフェクトに覚えたわけではありませんが)

また、できるだけ同じ言語を勉強している友達を見つけて
情報交換をしてみてください。

投稿日時 - 2008-01-10 01:01:32

お礼

回答ありがとうございます。
第一にはどうせやるなら就職ということを考えています。
趣味としても、将棋などと同じく、非常にやりがいのあるものだとは思いますが。
そうですね、例題にあるソースコードを自分なりに改変したり、工夫したりして試行錯誤していくことはたいへん勉強になりそうですね。
勉強法など詳しくありがとうございました。

投稿日時 - 2008-01-10 01:50:02

ANo.2

このQ&Aは役に立ちましたか?

34人が「このQ&Aが役に立った」と投票しています

回答(14)

ANo.14

出来ると思います。
ただし入り口を見つけるために入門程度は受講すべきでしょう
スポーツを初め書道、そろばんも道具を使って学習しています。
独習する場合
・身近に環境を持つ(投資はこちら)
・アドバイスがもらえる先輩
・話を聞いてくれる同僚(ライバル?)
・課題を提供してくれる人(ユーザ)
・最後は根気

自分はソフトを委託すると高額になり、もっともらしい理由をつけた稟議書が必要でした。おまけに必ず手直し、追加が必要でこれも稟議書です。
これが煩わしくて自分に出来ればと手直しから独習(COBOL)を始めました。

投稿日時 - 2008-03-13 01:53:40

補足

回答ありがとうございます。
初速をつけるために確かに入り口の学習開始当初は何かの講座でも受講するのは意義のあることといえると思います。
稟議書ってあまり聞きなれない言葉ですね。

投稿日時 - 2009-09-20 02:44:29

ANo.13

答えから言うと独学での習得は可能ですが、難しいです。

私も昔同じように悶々と考えたことがありました。
プログラミングを知らなかった私がどんな練った質問をしても
「何をつくりたいの?」とか「毎日コードを書けばいい」とか
今ならその気持ちはわかるけど、当時の自分には的外れな回答を頂いたものです。

結局書けるようになってみれば、なんてことはなかったのですが。
要は車の運転や、楽器と同じである程度は本も読む必要がありますが実践あるのみということです。

考えずにとにかく書き始めてみることをオススメします。

このページの内容がぴったりだと思います。
http://top-10-algorithms.sl-jp.com/JAVA/
1.一人でいけそうだと思ったら独学
2.時間がなくてお金があれば、スクール
3.時間があってお金がなければ、アルバイト

投稿日時 - 2008-01-11 02:41:09

お礼

回答ありがとうございます。
理解だけではなくて、実践することで実際にプログラミングできる能力を養いたいと思います。
仰るとおり、あまり、深く考えて立ち止まらないで、書き始めることにしていきます。

投稿日時 - 2008-01-12 01:22:51

ANo.12

ANo11 補足
>一通りの基本的な事項というのは独習・体得できるものなのでしょうか。
本は一通り読み終えて理解したけれどもプログラムを
書く事ができないと言う人が多くいますが、その事は
知識がちゃんと身についていない為に、次に何をすれば
良いか入門書のページをめくって探しながら試合をして
いる様な物です。

スポーツ選手が入門書やルールブックを片手に持って
読みながら試合をする事が無い様に、プログラミング
をする時も基本的な事は本を見なくても一通りの事が
できるレベルにはしておかないと体得したというには
程遠い状況と言えます。

投稿日時 - 2008-01-11 02:07:05

お礼

たびたびの回答ありがとうございます。
たしかにその通りで、すぐに必要な知識を本を見返さなくても頭から引き出せるほど、習得することが大事ですね。

投稿日時 - 2008-01-12 01:19:30

ANo.11

独学でプログラミングをマスターできる人もいますが
多くの人にとっては有る程度のレベル以上には行く事
が困難になります。
他の分野、例えばスポーツで誰の指導も受けずに独学
のみで一流選手になれた人がどれだけいるかを考えて
みれば、独学のみで習得しようとする事の限界が自ず
と判ると思います。
単に入門書等紙の上だけでなく、間近に優れた選手や
指導者と相対する事により自身の技量が研かれていく
のと同じ様に、プログラムの技量も実際の仕事上での
難題を乗り越えて行くことや他の人との共同作業等に
よって独学で得る知識よりも多くの知識を短時間の内
に得る事ができます。
また会社では新入社員や後輩に教える事で自分の知識
を再確認する事もあります。
そういった意味でも一人きり、独学のみにこだわる事
は自分自身の可能性を自ら狭めてしまう大変危険な事
と言えます。

投稿日時 - 2008-01-11 01:37:03

お礼

御意見、回答ありがとうございます。
上に行くほど、自分の力だけでは上達は無理そうですね。

投稿日時 - 2008-01-12 01:16:17

ANo.10

できると思います。
実際柴田望洋という方(たくさんプログラミングの書籍なども刊行している)は独学でC、C++、Javaを勉強したらしいです。
(参考URLは柴田氏のホームページです)

僕はまだ全然プログラミングをバリバリ書けるというわけではない、ただのへたれですが、独習する人にとって重要なことは「挫折してもまたやればいい」ということかと思います。
僕はこれまで何回挫折したか分かりません(笑
ガキっぽい考えで、HelloWorldプログラムのレベルから抜け出せない頃は「なんか簡単にすごいプログラムが書けるいい言語ないかな・・・」とかすごい漠然とした考えを持ってました(笑

独習するのなら、会社で使うわけでもありませんし挫折しても問題ない、飽きたなら他のことをやればいい、ぐらいの気持ちでやると長続き(というか挫折してはまた挑戦するの繰り返し)するかと思います。

あとこれはどこかのサイトで見た言葉ですが、コンパイルエラーをエラーと考えないことも'飽きない'ために重要かと。
間違ったところを指摘してくれている、と考えるといちいちヘコまずに済みます(笑

参考URL:http://www.bohyoh.com/

投稿日時 - 2008-01-10 18:16:35

お礼

回答ありがとうございます。
本当に激励のような回答感謝致します。
柴田望洋という人の著書、私も所持していまして、なかなか有名な人みたいですね。定評があるようです。
たしかに、エラーが出ると、へこみますよね(笑)。
もう、わけがわからなくて、投げ出したくもなります。
「転んでもまた何度でも起きる」との心意気でいきたいと思います。

投稿日時 - 2008-01-11 00:31:43

ANo.9

私の場合でいうと、一番最初は友達に見せる事から始めました
たぶん、一番最初は、EXE を実行すると "Hello,world" と表示する

自分の場合は、 EXE を実行すると、"髪切った? Byタモリ" と表示するとか

入力系を覚えた時は、

体重を入力してください> 68
おまえ食いすぎ

とか、今思い返すと非常にくだらないですが
当時は、覚えた事でどう友達を楽しませるか、が私の課題でした。
楽しいと覚えるのも楽なもので、簡単なゲームなら作れるようになるのに
さほど時間はかからなかったと思います。
その後、専門学校に行き本格的なプログラミングを習いました

学ぶ前から、
>変数、関数、クラス、条件分岐などの基礎的な概念や、文法は理解できるのだろうかと思ったりもしました。
とか
>長い目で自分に投資するという観点から見た場合、非常に大きな払うだけの価値があるのかも
とか
こういう考えは、全然無かったし、もし、こういう考え方ではじめていたら
勉強的で、やる気にならなかっただろうなぁと思います

独学でも習得はできます
重要なのは、楽しむことです

投稿日時 - 2008-01-10 10:33:39

お礼

回答ありがとうございます。
nak777rさんの体験から語って頂いて参考になりました。
努力も要りますが、たしかにあまり心でコチコチに構えても、やっている楽しさが半減されてしまいますよね。
もっと、組み立てる楽しさも体験したいと思います。

投稿日時 - 2008-01-10 16:31:09

ANo.8

私は専門学校でしたが、正直な所
本人のやる気次第だと感じます。

大学でも専門でもプログラムをやろうと思う人はその殆どが、
自分で調べなければ身に付かない事が多いと痛感しています。
書籍を書く人でも、間違いを書くことはありますし、学校でも
間違いを教える所は少なくありません。

実際、私は学校で基礎の部分(文法や禁則など)を教わりましたが、
後々にいろいろとBBSなどで情報を交換し調べたりして行くうちに
間違いを教わっていたことに気づいたものもありました。

もちろん、こういうことが出来るのも、自分が楽しいと
感じているからだと思っていますが。。。

ちなみに「わからないところを質問できる」や
「お金を払ってまで通うのであるから、なまけたり、
挫折しないで学習を持続できる心理的な強制力がある」
というのは建前に過ぎ無いと思います(もちろん本人の意識次第ですが)

結局学校に行っても、課題が出されたりして、
判らないから先生や友達でなく、BBSに質問したりとか、
やはり学生という立場は気を抜いてしまいがちなのでダレると
いうのは覚悟しておくべきです。

学校に行っても「自分で学んでいく」というスタイルを
獲得できなければダメだと私は思っています。
長くなりましたが、参考までにしていただければと。。。

投稿日時 - 2008-01-10 10:04:52

お礼

たいへん回答ありがとうございます。
参考になりました。
学校云々の以前に私自身の意識改革にまず取り組んでいきます。
私の知り合いに東大生いましたが、大学ではプログラミングの技法を事細かに教えるわけではないと聞きました。
自分で個人的に学習してほとんど身に付けたそうです。
通学すれば人により、緊張感のようなものもないわけではないでしょうが、aris-wizさんのおっしゃるとおり、結局、個人の時間になったときに相当量の学習をして補っていかないと無理ですね。

投稿日時 - 2008-01-10 16:27:59

ANo.7

私はプログラムを独学しました。なので独学できると思います。
勉強しながらプログラム作成の実践を行うとマスターが早いと思います。何千、何万行のプログラムを書くことも可能です。

ただ、出来上がったプログラムに対する責任という点からすると少し見方が違ってきます。
○作ったプログラムを自分だけが実行し、その誤りによって受ける損失などのリスクを自分で取れるかという場合。あるいはプログラムは単に趣味というようなレベルの場合。楽しく勉強してプログラムをエンジョイする。

○自分の作ったプログラムのバグによる損失が大きくて自分でリスクを取れないようなことが想定される場合(銀行のATMオンラインとか商取引などエラーが起こったら社会問題にもなる)。作ったプログラムに責任を負う代わりに大きな収入にもなる。

いわゆるプログラムのアマかプロかというところです。プログラムのプロを目指すならある処理に対する例外処理みたいなものまでしっかり勉強しておいた方がいいでしょう。”そんなこと絶対に起こらないよ”と判断して放置するか、どんな不測の事態でもトラブルが発生しないような堅固なものにするかで独学か正式な教育機関を選択するかの違いが出てくるように思います。

因みに私は前者です。プログラムを楽しんでます。

投稿日時 - 2008-01-10 01:46:42

お礼

回答ありがとうございます。
プログラミングは、はまると陶酔状態にさえなりそうですよね。
底知れない奥の深さがあります。
御意見感謝致します。

投稿日時 - 2008-01-10 01:58:29

ANo.6

私は会社の研修で半年以上缶詰にさせられ,家庭教師的にみっちり勉強したので, nobulin さんの質問の参考になるかどうか分かりませんが,アドバイスまでに.

文法的なところ (変数や関数,クラス,条件分岐などの基本的概念) については,間違いなく独学で学習できると思います.
スクールに通っても,応用や発展的な技術だけでなく,真に細かいところまでも教えてくれないと思います (たぶん
それに,わからないことはこうやって OKWave などで Microsoft MVP 等の専門家のみなさんに質問できるじゃないですか☆
なので,「挫折しないで...」というところさえクリアすれば,案外独学で何とかなるんじゃないかと思います.
心理的強制力という名の学費 (?) を支払うかどうかは,一考する必要がありますね☆

投稿日時 - 2008-01-10 01:10:56

補足

回答ありがとうございます。
WizTakaさんも入社時はまったくの未経験者だったのですか。
ある程度基礎を身につけるまでに、集中しても半年くらいは、やはりかかったのですね。
たしかに巷のスクールでは高度な技術の教授まではカリキュラムにはないと思います。
仰るとおり、わからないところは今の時代、ネット上の掲示板などで質問して教えて頂くことができます。
ありがたい時代です。
ですので、わたしもスクールのメリットはモチベーションの持続をできることが一番大きいかなあなどとも思います。
もっとも、スクール内で受講していても、そこですぐに全て覚えられるわけでもなく、結局帰宅してからとか、念入りに理解の確認、復習を怠らずにやらなければ、たちまち忘れていってしまうでしょうから、ある意味、半分、独学に似たような状況なのかもしれませんが。

投稿日時 - 2008-01-10 02:01:26

ANo.5

プログラム言語の独学での習得とのことですが、十分可能だと思います。

過去ならともかく、今はMicrosoftのVC++ 2008 Express EditionやJavaのEclips等、独学で学習するには十分な環境が無料で手に入ります。これを活かさない手はないと思います。

問題はただ漠然と学習しようとしても、なかなか身につかないところです。ですので、たとえば自分なりのツールを作ってみる、ゲームを作ってみる(かなり敷居は高いと思いますが)等、目標を立てて学習していけば、十分可能だと思います。

まずははじめてみる!がんばってください。

参考URL:http://www.microsoft.com/japan/msdn/vstudio/express/maninstall/2008/default.aspx

投稿日時 - 2008-01-10 01:10:23

お礼

回答ありがとうございます。
以前、VB2005無償版ダウンロードしましたが、最近ではVCなども出ているみたいですね。
URL情報感謝しています。
作りたいソフトのことを念頭において、がんばりたいと思います。

投稿日時 - 2008-01-10 02:01:05

ANo.4

本は、買ってきただけではできない。ただ読んだだけでもできない。
数十回と呼んで、実際に数十、数百と書いてみる努力ができれば、多分できる。
もちろん、個人差はありますが。結局、「人造の言語」に過ぎないので、
とにかく書いて、使ってみてナンボです。言語学者じゃあるまいし、
文法書だけ読み漁っても「ネイティブな」プログラマにはなれません。

英語スクールに通って身につくくらいには、スクールも役に立つのではないでしょうか。
それを、コストとしてどうみるかは、あなたしだいだと思います。
# スクールに行くか、短期でも海外にいくか、独習するか、
# 日本で外人と知り合いになるか、webで知り合いになるか、組み合わせるか…。

# 少なくとも私は、学生時代に書籍ベースの独学で覚えました。
# (当時はインターネットなんてなかったので…)

投稿日時 - 2008-01-10 01:08:59

お礼

回答ありがとうございます。
そうですね。水泳や柔道などのスポーツと同じく、実地にコードを構築していく実践が力になりますね。
たしかに英語スクールでも同じようなものですね。
まったく役に立たないわけでもないし、独学でがんばろうと思えばできる。
学費を払うだけのものかどうかは個人が判断するしかないですね。
わかりやすい例えでありがとうございました。

投稿日時 - 2008-01-10 01:55:25

ANo.3

すべては"あなた次第"です。

> 市販の書籍を何冊か買ってきて一通りの基本的な事項というのは独習・体得できるものなのでしょうか。
それと処理系(コンパイラ/開発環境)があればできます。

ただし、ノコギリ/カナヅチが使えるようになるのと
犬小屋が作れるのとは違います。
一軒家を作るのとは大きく違います。

> 学費を払うだけの価値があるのかなと思い、迷っています。

ならばお試しに教本と無償のコンパイラを用意してやってみるといい。
思い悩んでる時間がもったいない。

投稿日時 - 2008-01-10 01:07:50

お礼

回答ありがとうございます。
一通りの基本事項を修めても、たしかに数十行程度のプログラムが書けるようになるのと、アプリのソフトを作るのとでは天地の差がありますよね。
教本片手にパソコンに向かい実際にやってみます。

投稿日時 - 2008-01-10 01:52:11

ANo.1

nta

 まったくの初心者の方のようですが、プログラムの考え方が理解できるようになるためにはいくつかの壁があります。その壁を越えるために初めのうちは誰かに教えてもらった方が近道だと思います。今までの学校教育で体験したと思いますが、同じ内容を勉強するにしても自分で教科書を読んで理解できることと、先生から教えてもらって理解できることはずいぶん違うのです。ソフトウエアが上達するにはプログラムのセンスを身につける必要があります。それを的確に教えてくれる先生に出会えれば上達しますが、そういう教師をさがすこと自体が至難ですので、とりあえずは手近で低価格なコースを探して受講してみてはいかがでしょう。
 プログラムのセンスが身につけばあとは独学でもできます。高度なプログラミング力を身につけるとすれば教えてもらってできる部分は少ないので、独学で力をつけるしかありません。

投稿日時 - 2008-01-10 01:00:59

お礼

回答ありがとうございます。
仰る通りまったくの初心者です。
貴重な御意見ありがとうございます。
最初のうちは壁が高いと感じるでしょうし、試練の期間ですね。

投稿日時 - 2008-01-10 01:47:25

あなたにオススメの質問