それから、ソースコードを読むことも重要だと聞きました。
それはどこで読めるのでしょうか?
ともにできるだけに具体的に教えてください。
また、基本的な技術は平均的にどのくらいの期間で身につけることができるのでしょうか?(1日○時間で△年程度など)
よろしくお願いします。
そのようなものにはなろうと思ってなるものではないですね。素質があり、経験を積んだらいつのまにかなっているものです。
もちろん、目指すことはよいことだとは思いますが、まずは普通のプログラマにならなくてはいけません。
ただ、ここで普通の職業プログラマになってしまうと達人にはなれないのでご注意を。
おこづかい帳をつけたり、体重をグラフにしてみたり、ゲームを作ってみたり。なにかやってみたいことはありませんか?これらやりたいことをコンピュータでやりましょう。
あいつらは目的と手段が逆転しています。別段おこづかい帳をつけたり、体重をグラフにしてみたりしたいわけではないんです。コンピュータで遊ぶために無理やり目的を見つけてるんですよ。
あと、ソースってどこにありますか?っていってるうちはソースなんて読まなくていいです。必要がなかったり、読みたくないうちにソース見てもいいことありません。
大概の場合は、人の作ったくそソースをながめては、こんなつくりにはしたくないなぁと反面教師になるくらいが落ちですので。
ありがとうございます。
非常に参考になりました。
しかし、ソースコードはどこに・・・?
・http://www.google.co.jp:google]
・2の文書の最後から
Q: どこから手をつけたらいいですか。フリーの UNIX をどこで入手できますか。
このページのあちこちに広く使われているフリー Unix を入手するためのポインタを入れてあります。ハッカーになるには、自分を教育する意欲と自主性と能力が必要です。さあ、それをいますぐ発揮して……
ポイントはいりません
ありがとうございます。
オープンソースで動作しているアプリケーションの、C言語で書かれたものを
理解し、少しずつ自分でアプリケーションをアレンジしながら勉強すると良いのではないでしょうか。
本気でプログラミングのみにのめり込むことができれば、1年程度でそこそこの腕にはなると思います。達人の域に到達するには更に1~2年程度必要になると思います。
ソースコードはこちらの記事を少し読むと閲覧できます。
http://japan.linux.com/opensource/04/11/10/0215245.shtml
オープンソースは人に見られることを前提に組まれているので、綺麗なソースコードが多いです。
了解しました。
ありがとうございます。
私は凡人で、プログラマーでもないのですが、
趣味でPHPというWEB向けのプログラミング言語を勉強したりしています。(http://www.php.gr.jp/)
本など買ったりしていろいろ読んでいるのですが、ある本に
「PHPの上達を望むのであればPEARのソースを読むといいよ」
的な内容が出ていました。
PEARというのは、PHP本体とは別に世界中の人が寄ってたかって
作られているPHP用のライブラリです。
(ここでいうライブラリとは、「使うと便利につかえるプログラム群」だと思ってください)
で、PEARのソースどう読むかというと、中古PCを買ってくるか、
昔使ってたDOS/Vパソコンなどを引っ張り出して、自分で
Linuxをインストールします。Linuxにも種類があったりするのですが、それはここでは説明は省略します。
で、LinuxというOSをインストールした後に、Linuxの中にPHPを
インストールします。そしてその中にPEARという物が含まれており、ソースコードもそのLinux上で閲覧できます。
※インストール手順などは主旨が変わってくるのでここでは省きます。
あとはLinuxの中で使われているアプリケーションは全てソースコードを読むことができます。
世界中の頭の良い人たちが作り上げたソースコードばかりだと思いますので、勉強するのには参考になるのでは?
長くなりましたががんばってください。
どうもありがとうございます。
非常に参考になりました。
早速インストールしてみます。
プログラムの事を基本に勉強すれば良いと思いますが、そのために突き詰めていくと英語・・・それもそれなりの用語が飛び交う文章を読めるぐらいの読解力が必要になってきます。理由は、オープンソースプロジェクトでは英語を使った会話が多いのと、インターネット上の資料の約80%は英語とも言われているので、必要な資料が少なければ少ないほど読めないと不利になることが多くなってくるからです。UNIXやLinuxが吐くメッセージなども基本は英語ですしね。
日本人が作ったオープンソースプログラムでもソース読むとコメントが英語・・・という事はよくある話です。
あと、プログラミングのネタ作りでおすすめなのは、自分が使っているプログラムをソースなど見ずに自分で調べたり考えたりしながら作っていくことです。
これは製作を進めていくと、本家はここが使いにくいなどという部分を拡張して便利にするとかすることも面白いと思います。
私はハッカーじゃないのであくまで私的に思うことですが、「ハッカー」とは勉強してなれるものではなく、好きなことに夢中になってたら、いつの間にか他人からハッカーと呼ばれるようになってた・・・という感じのものかと思います。
あまり勉強、勉強と気張らず好きなことを追求していってください。
英語ですね。今猛勉強中です。
回答ありがとうございました。
まず重要な事は、何事にもあきらめない精神だと思います。
プログラムって手順を踏んでゆくと、とても時間と労力のかかる作業です。
特に実用的(何かソフトのようなものを作りたい)というときは簡単なものであればVisualBasicというとてもはいりやすいプログラムがあります。こちらはVisualStudioというソフトを使いながら作成していきます。ちなみにこのプログラムの言語を作ったのはマイクロソフトです。
VisualStudio
http://www.microsoft.com/japan/msdn/vstudio/
もっと本格的なプログラムがやりたい!という人はC言語をお勧めします。本職がプログラマの人が「プログラムをしたかったらCからが・・・」と言っているのを聞きましたのでC言語がお勧めかと思います。ゲームボーイなどのゲームソフトはもちろん、パソコンでの代表的なソフトもC言語等で作られています。
C言語講座
ありがとうございます。
ありがとうございます。
Code Reading―オープンソースから学ぶソフトウェア開発技法
達人プログラマーへの道、目指しておられますか。
意気込みあふれるご質問、すばらしいです。
上記に上げました書籍は、初心者にはかなり難しい内容ですのでお気をつけ下さい。
学習の順序としては
1.コンピューターの仕組みについて理解する
2.16進数、2進数について理解する。
3.C++言語を履修する。
が、現在日本では比較的進みやすい道かと思います。
蛇足ですが私は
1.16進数、2進数について勉強(なぜか小学校のとき通っていた塾の先生が教えてくれました)
2.コンピューターの仕組みについて理解する
3.マシン語の習得
4.C言語の習得
5.オブジェクト指向についての理解。
6.C++言語、Ruby、Perlの習得
という順番で習得しました。
1から6に至るまで20年かかっております。
ちなみに達人でもハッカーでもありません。ご期待に沿えず申し訳ありません。
コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~
プログラムはなぜ動くのか ― 知っておきたいプログラミングの基礎知識
このシリーズの本は、どれもわかりやすいですのでお勧めです。
ここには2進数、16進数についても書かれています。
C++言語はこれで覚えられるといいでしょう。
習得しておくとよりよい技能・知識としては
数学・英語
があげられます。
習得時間についてですが、私は上記の通り20年かかっており、また新たな技術を身につけるため現在も勉強中です。これは、人によってピンキリです。出来る人と出来ない人との技術の差が、ものすごく開くのがプログラマだとおもっていただいていいと思います。
さて、最後に。
初心者を抜け出した後のプログラマに必要なのは
・向上心
・自己啓発能力
・理解力
この3つだと思います。
はじめはみんな素人ですから、人に聞いて回るというのは正しいのですが、「自己啓発能力」という点から言うと、「自分でネット上からオープンソースを探してきてダウンロードすることができない」というのはほめられた事ではありません。上のほうの回答でも書かれていますね。あれは怒っているのでも、意地悪しているのでもありません。プログラマを目指す人は必ず一度は通る洗礼だと思ってください。
ご参考になれば幸いです。
ご親切にありがとうございました。
とても参考になりました。
・とりあえずPC-UNIXを導入し、運用する
半年以上
・プログラミングの本を買ってくる(C, C++)
・それを200頁くらいはやる
1ヶ月〜2ヶ月くらい
・自分がつくりたいソフトに似たソースを探して、改造してみる。
ということで、最短1年くらいでしょうか。
なるほど。
やはりUNIXですね。
早速導入してみます。
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%AB%E3%83%B...
(ノーポイントで結構です)
「どの言語や分野をどういった順序で学べばいいか」
そんなものに正解などはありません。
達人や(良い意味での)ハッカーとか、そういう常人を超えたところに達するのに必要なのは、常人以上の貪欲なまでの好奇心と探究心です。
「○○するにはどうしたらよいですか」といった、他人に解を求める姿勢は探求者の姿勢ではありません。
何をすれば良いのか、何を学べばよいのか、そういったことを探ることから自力でやるのが探求者の姿勢です。
まず第一に「自分が何に対して興味を持っているか」から攻めるのが正攻法ではないでしょうか。
すぐに他に興味が移って何でも少しかじるだけ…、興味本位の探求では大半の人がそうなってしまいます。(なにしろゴールなどないのですから)
最新の技術動向を追うだけならば、それは単なるミーハーです。
流行の技術から適当に選んでそれを深く身に着ければ「自称:ハッカー」やあるい「レベルの高い技術者」という程度にはなれるでしょう。しかしそれだけです。
自他共に認める達人やハッカーというのはそのレベルではありません。
興味のある言語、関心のある分野を片っ端から学び、習得し、究め、さらに次を学ぶのです。
流行に左右されるのではなく、自らの興味と関心のある限り際限なく突き進むのです。
マイナーなハード・ソフトや、使い古された旧来のOSや言語であっても、徹底的に探求していけば達人にもハッカーにもなれます。
ハッカーも、達人も、目指してなれるものではありません。
徹底的に探求し続けた結果、いつの間にかそう呼ばれるようになるのです。
「何をやればよいのかわからない」程度の興味しか持てないのであれば…、目指す道が違うのかもしれません。
貴重なアドバイスどうもありがとうございました。
身近なことから徹底的に探求していこうと思います。
なるほど。
非常に参考になりました。
これから先ソース読みたくなった場合に、くそじゃないすごソースはどこで読めるのでしょうか。