みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

オープンソースの勉強について

プログラミングを学んでいるエンジニア志望の学生です。
学んでいる言語はHTML・CSS・JavaScriptなどフロントエンドが多いです。
ただ、JavaやPerlなどバックエンドの言語も学びたいと考えています。

ここではとりあえずJavaを例にとります。

ドットインストールなどを利用して、言語の最低限の文法は分かるようになったものの、特別Javaで作りたいサービスがあったわけでもないので、これからどうしたものか閉口しています。

実際にエンジニアとして活動している知人に相談したところ、
「オープンソースがたくさんあるので、それを使えば学習しやすい」
といわれました。

私はオープンソースの存在自体は知っていますが、実際にJavaのオープンソースを触ったことはありませんし、オープンソースでどのように学習すればよいのかもわかりません。

オープンソースで学習する場合、ソースを読んで理解して、書き写して実行に移したりすればよいのでしょうか?
それで、最終的に「~~のようなプログラムを実装せよ」という問題文を見ただけで、オープンソースのあれとあれを使えば実装できる、と発想できるぐらいにまで習熟すればよいのでしょうか。

投稿日時 - 2013-03-22 01:22:44

QNo.8005415

暇なときに回答ください

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

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

回答(2)

ANo.2

こんなトコロで質問して推測ゲームするよりその友人にどういう意図で言ったのか問いただすのが一番良いと思います。自分はエスパーではないのでその友人がどういう意図で「オープンソースがたくさんあるので、それを使えば学習しやすい」と言ったかはわかりません。


あと読んでいて思った雑感など。

> オープンソースで学習する場合、ソースを読んで理解して、書き写して実行に移したりすればよいのでしょうか?

普通に考えてこれだと思います。
「~~のようなプログラムを実装せよ」という問題文を見て、"あのオープンソースにあったあの書き方で書けば作れそう"となるということだと思います。

> 最終的に「~~のようなプログラムを実装せよ」という問題文を見ただけで、オープンソースのあれとあれを使えば実装できる

これはエンジニアの仕事ではなく、コンサルタントの仕事だと思います。
これができるようになるためにオープンソースとして公開されているプログラムのソースコードを読む必要はないと思います。各々のソフトウェアの宣伝文句さえ覚えておけばOKでしょう。
あえて言うと、「あのソフトはこの用途では○○というのがダメで使えないから××というワークアラウンドをするか、△△にこういうパッチを当てるかしないとダメ」と言えればそのオープンソースソフトウェアをよく理解しているという感じがします。


自分がもしオープンソースソフトウェアでの学習を人にすすめるとしたら、コードの読み方の指南本を使って学習し、そのプログラムがどう動くのかを説明できるようになり、それからそのプログラムの不具合の修正や機能の追加をしてパッチをMLなどに送るという順序で学ぶとよいと言うでしょう。

初心者レベルからいきなり他人が書いたコードを読み始めても意味不明ですぐ挫折してしまうので、「デーモン君のソース探検」のようなコードの読み方から教えてくれる解説本を見てそれにそってコードを読むのがよいと思います。
Javaの場合はamazonで探すと「ソースコードリーディングから学ぶ Javaの設計と実装」なんてのが見つかりますが、良い本かどうか知りません。
いずれにせよ、なんらかの解説本を見ながら読むことをおすすめします。

ひと通りそれに基づいて読んだあとは自分が気になった機能がどう作られているかを調べてみたり、それに対して報告されている不具合や自分が見つけた不具合を修正したりすると理解が深まります。修正した場合は是非パッチを送りましょう。あるいは、必要だと思われる機能を付け足して、そのパッチを送るのも良いでしょう。


あと、情報系の学生さんだったらちゃんと授業を聞くことですね。せっかく月謝を払っているんですからそこのところを有効活用しないのは大変もったいないことです。

投稿日時 - 2013-03-23 01:14:57

ANo.1

学生の頃、オープンソースのUNIXのソースコードを読んでみたことがありますが、レベルが高すぎて当時の私には、「なぜこういう実装がしてあるのか?」が理解できませんでした(笑)。
実務でコードを書いた今であれば、多少は理解することが出来ると思いますが。

実際にそのオープンソースのフレームワークなど用いて何かしら動くものを作ってみて、その後でそのソースコードを読んでみたらいかがでしょうか。動作を知ればそのソースコードも理解しやすいし身につくかと思います。
読むだけでは力になりません。

特に作りたいものが無ければ、既にあるソフトウェア・・例えばWebなら掲示板、デスクトップアプリなら計算機などを自力で作ってみても良いと思います。
その次にフレームワークを用いて実装してみて、ソースコードを読んでみる、そういう流れはいかがでしょうか。

投稿日時 - 2013-03-22 16:34:10

あなたにオススメの質問