ここから本文です

プログラミングを独学で学ぶには

このエントリーをはてなブックマークに追加

質問者

haniimasutadoさん

2007/8/1019:51:45

プログラミングを独学で学ぶには

プログラミングに興味があって、独学でプログラミングができるようになりたいです。
プログラマーになりたいとか、そこまで出来るようになりたいと思っているわけではないのですが、
簡単なプログラムがくめるようになりたいです。
①独学でできるようになるのでしょうか?
②また、独学で学ぶにはどうやって学ぶといいでしょうか?
③どんなテキストがおすすめですか?
④どのくらいの期間で簡単なプログラムが作れる程度になるでしょうか?
詳しい方がいたらよろしくお願いします。

閲覧数:
5,490
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

fujishi_kさん

2007/8/1101:15:36

自分や周りの人の経験談ですが参考になれば・・・

独学でもプログラミングで飯を食っていこうと思っているわけでないのなら十分なレベルまでいけます。

ただ本を本を読んで学ぶよりも、何か目標を決めて作りながら学んでいくのがいい方法だと思います。
自分の場合は大学での実験結果をまとめたり試験予測値を出すための解析ソフトが、自分に合うものがなかったので「なら作ってやれ」というのが始まりです。

どのプログラム言語であれ、ネット上である程度の手引きは出回っていますのでそれを利用するのがベストかと思います。無料で見れますし、コピペもできますんで。
あと、ちょっと手の込んだことをやりたいときは大学の図書館がお勧めですね。大学の図書館は一般の人への貸し出しをやっているところがほとんどなので、情報科の学生が使うような専門書を使ってみるのもレベルアップにはいいかもしれません。

期間ですが、どれぐらい取り組めるかや、作りたいプログラムをどこまで具体的に想像できるかによるので一概にどの程度とは言いにくいですね。
でも、明確な目標を立てやる気を失わなければ絶対に完成させることはできますよ。


あと、プログラム言語の入門としてはFORTRAN77がお勧めです。
ネット上で無料の記述ソフトとコンパイルソフトが出回っているので無料で始められますよ。
プログラムの初歩中の初歩的な扱いも受けてるので、書籍やネット上の手引きも多く出回ってます。

この質問は投票によってベストアンサーに選ばれました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加

このQ&Aで解決しましたか?質問する

閉じる

ベストアンサー以外の回答
1〜3件/3件中
並び替え:回答日時の
新しい順
|古い順

te2_miwaさん

2007/8/1104:09:26

趣味でコーディングしたいって事ですね。
そしたら、

①何を作るのかを明確にできなければ挫折します。
逆に、具体性をもって取り組むことができるのであれば、プログラマを超えられます。

②今まで手作業でやってきたものを、なるべく自動化してみる なんて挑戦はどうでしょうか?
 言語は何でも良いす。

③はじめは1,2冊程度の本じゃチンプンカンプンでワケワカメだと思います。
 良本を選ぶより、同種のいろんな本を読み漁ったほうが、より早い理解に繋がると思います。
 図書館に理工書結構ありますよ。

④下積みを考えているのであれば、プログラミングをするより、目に付くソフトウェアの動作をひたすら
 に調べてみると良いです。その構造理解がプログラミングに大いに役立ちます。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

maku_0_xさん

2007/8/1103:35:29

C言語のプログラマです。
※現在訳アリで失業中ですので、厳密にはプログラマではないですが...

(1) 独学でも十分に可能です。自分の場合は学生時代、情報工学科や電気系の学科ではありませんでしたので、プログラミングに関しては正規の教育を受けておらず、C言語は独学でマスターしました。十分に勉強時間が取れるなら、その気になればプロを目指せます。

(2) プログラミング言語は、英語などのような外国語の習得に似たようなものです。習うより慣れろの世界ですから、最初のうちはインターネット上でサンプルプログラムを入手し、それを読み、構文や処理の書き方を覚え、分からないところはマニュアルを引いて調べ、実際に動かしてみて動作を理解し、自分で工夫して書き換えてみる、といった作業を地道に繰り返していくのが正攻法かと思います。

(3) すでに回答がされていますが、初めてプログラミング言語を学ぶなら、C/C++/Javaなどのコンパイラ型言語よりは、perl や ruby などのスクリプト言語の方がとっつきやすいでしょう。参考書としては、
perl なら、「新版Perl言語プログラミングレッスン入門編」 http://www.hyuki.com/pb/
ruby なら、「オブジェクト指向スクリプト言語 Ruby 」 http://www.amazon.co.jp/o/ASIN/4756132545/503-8218864-7411964?Subsc...
が定番的です。もっとも、リファレンスマニュアルで良ければネット上に無料で配布されていますので、
perl: http://www.att.or.jp/perl/man/
ruby: http://www.ruby-lang.org/ja/documentation/
から入手可能です。これらを読んでみて分からなければ、参考書を買うのが良いと思います。

(4) 半ば必要に迫られて、perl でニュートン法(方程式の解を数値計算で求める1手法)を組みましたが、参考としてそれを載せておきます。

#!/usr/bin/perl
# ------------------------------------------------------------------------
# ニュートン法による方程式の解を求めるスクリプト
# 2007.07.27 maku_0_x 1st created
# ------------------------------------------------------------------------
#
# 方程式の定義
# $func = '$x * $x - 2';
$func = '173*sin($x) + 92*cos($x) - 153';
# 初期値
$x0 = .5;
# 微分を求めるための刻み幅
$delw = 1E-6;
# 収束閾値
$epsw = 1E-7;
#
# 方程式の入力処理
$s = $func;
$s =~ s/\$//g;
printf("input function. f(x) = %s ? ", $s);
chomp($s = <STDIN>);
if ("$s" ne "") {
 ($func = $s) =~ s/x/\$x/g;
}
printf("input initial value x = %g ? ", $x0);
chomp($s = <STDIN>);
if ("$s" ne "") {
 $x0 = $s;
}
#
# 実処理
$x = $x0;
#
do {
 $y1 = eval($func);
 $x += $delw;
 $y2 = eval($func);
 $x += - $delw - $y1 * $delw / ($y2 - $y1);
} while (abs($y1) > $epsw);
#
# 結果表示
$s = $func;
$s =~ s/\$//g;
printf("f(x)=%s, Ans. x=%.15g, delta=%.15g\n", $s, $x, $y1);

短いプログラムですが、使用目的次第では十分実用になります。この程度なら、早い人なら半日、遅い人でも3日~1週間勉強して、リファレンスマニュアルを見ながら組めば、作れるようになります。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

dov045aさん

2007/8/1021:48:17

以下、各項目ごとに回答してみます。

1)
独学でも可能です。但し、あなたの努力、素質、周囲の環境次第ですが。

努力:
コンピュータ関連の専門学校の講師をやっていた知人曰く、ある程度プログラミングができるようになるまでに必要な時間には個人差があるそうです。
早い人は最初の1ヶ月ですが、遅い人では1~2年かかる場合もあるとか。
但しどちらの人も、一定のレベルに達してからは、基本的な"能力"そのものにはあまり差はないそうです。そのかわり経験値や知識量による差が生じますが。

素質:
やはり、最終的には向き不向きがあるようです。素養のチェック方法なるものが(非公開ですが)存在するとか。
[ttp://www5f.biglobe.ne.jp/~vokz/tekisei.htm]

周囲の環境:
同じような境遇の仲間がいるとか、プログラミングに詳しくて且つ他人に教えるのが好きな友人がいるとかすると有利です。ネット上で仲間を見つけるのも手かもしれません。


2)
何かしら具体的な目標を見つけることですね。その目標に向かって突き進むほうが楽です。
単に何かしらの言語の本を読むだけだとつまらないし、ちっともプログラミングの実力が身につかなかったりするものです(これ、私の体験です)。
手を動かすことが大事ですが、それも何かしら具体的な目標があるほうが張り合いがあるというものです。

あとは、比較的メジャーな言語(開発環境)を選ぶこと。独学の場合は、情報が入手しやすいほうが有利ですよ。

例えばWindowsで動くGUIのプログラムをなるべく簡単に作りたいのならVisual Basic .NETやVisual C#あたりが定番?でしょう。Visual C++も有名ですが、難易度は高くなります。その他HSPやActive Basicなどもありますが、前の3つと比べると情報量はやや少なめだと思います。

GUIじゃなくてコンソール(コマンドプロンプト)で動くものでも構わなくて(GUIのプログラムを作るよりは楽です)、自分の手元でちょこちょこっと使う便利ツールなんかを目指したいのなら、RubyやPerlあたりだと思います。

動きのあるWebサイトを作りたいのならJavaScript、Perl、PHPあたりが定番でしょう。

Unix使いを目指すなら、シェルスクリプト、Perl or Ruby or Python、C言語が有名どころです。


3)
言語の本については、ネットで評判を調べるという手があります。Amazonの書評とか。
言語を問わずに読める本としては『パソコンプログラミング入門以前』というのがあります。


4)
(「簡単」の程度にもよりますが) 1)で書いたとおり個人差が非常に大きいので、何ともいえません。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する