重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

プログラミングに興味があるのですが、作りたいものはありません。
ゲーム機とかパソコンの中身(ソースコードなど)を見て、どういう仕組みになっているのか覗いてみたいとは思っているのですがこんな私におすすめの遊び方はありますか。
プログラミング言語については基礎をほんの少しだけ勉強しています。(四則演算や条件分岐など)

A 回答 (14件中1~10件)

『GitHub テトリス』とか検索したら誰かが作ったオープンソースのテトリスを見ることができます。



他にもものすごいたくさん、有名なJavaやPythonのライブラリやフレームワークもオープンソースのがあるので見ることができます。
    • good
    • 0

質問ポイントが分からないのですが、


「絵を描きたいとは思わないが、絵画鑑賞は好き」「楽器演奏はしたいとは思わないが、クラシックコンサートによく行く」のようなのと同じように「プログラムを書きたいわけじゃないけど、他人のプログラムを読むだけでも趣味としてあり得るのかどうか?」ということですかね?こういう質問は多分初めて見ます。
「作りたいプログラムは無いけど、書くとするとどういうのがお勧めか?」という質問はちょいちょい見かける気がしますが、そういう訳ではないのですよね?

「読むだけでも趣味として成り立つ」と思います。ただし、読んでみて動作がよくわからない部分は自分で短いプログラムを書いてみて確かめるということも必要になるでしょう。例えば、そのプログラムが「get_fugafuga」というその言語で使えるライブラリ関数を使っていて、ライブラリーのリファレンスを見ても機能がよくわからない場合は自分で「get_fugafuga」という関数を使うプログラムを書いてみていろいろ書き換えて動作を確認して納得したりします。

また、プログラミング言語自体を学ぶ過程で、入門書やリファレンスを読むだけで学びが終わり、初心者レベルを脱して中級以上になるのは、かなりの論理思考能力と、日本語読解能力(日本語の本を読む場合)が必要です。ただし、あなたはプログラミングをしたくないわけじゃないので、学ぶ過程で、「これは実際にコードを書いて動かさないと理解できない」と思えば学習のためのプログラムを書いて実行すれば良いだけです。

他人の書いたコードはgithubなどに沢山あります。

ただし、
> ゲーム機とかパソコンの中身(ソースコードなど)を見て、どういう仕組みになっているのか覗いてみたいとは思っているのですが

こういう話になるとレベルが違います。ハードウェアを制御する話になると、プログラミングだけじゃなくて、ハードウェアの知識が必要だし、ハードウェアの仕様(使い方)は必ずしも公開されていないし、ゲーム機の中のプログラムソースは公開されていないでしょう。パソコンの中というのがOSの事であれば、WindowsやMacOSのソースコードは公開されていません。Linuxは公開されていますが、かなりハードウェアやOSの知識が無いと読んで理解するのは無理です。

ということで、どれだけ勉強にパワーと時間を掛けるつもりがあるのか?というのがポイントかと思います。基礎的な知的能力があれば、勉強を積み重ねればLinuxOSの理解は可能でしょう。2年くらいで済むか20年掛かるか50年掛かるかは貴方次第。

OSの理解とかでなければ、前半に書いたとおり、中級者レベルになれば読んで理解するのは可能かと思います。中級者レベルになるのにどれくらいの期間とパワーが要るかも貴方次第。
「中級者」という言い方が曖昧ですが、「公式リファレンスを参照すれば、大抵のプログラムは書ける」レベルを想定しています。初心者だとリファレンスの内容が理解できない。
    • good
    • 0

> プログラミングに興味があるのですが、作りたいものはありません。



随分と厳しい事言ってる人が多いけど、割に「フツー」かなぁ。
もちろん「作りたいものがある」方が上達は早い。
特に自習組はそうだよな。
けど、例えば大学で「コンピュータ・サイエンス」系の授業をとって学んでる人の、恐らく半数以上はそんなカンジだと思う。彼らの多くは「手に職をつけたい」とは思ってるんだけど、「作りたいものがある」わけじゃないんだ。
結果、彼らの多くはモティベーションとしてはある意味「自習組」より弱く、「特に作りたいものがあるわけじゃない」けど、課題こなして、作りたいものがないまま卒業・就職していく。
だから特にそこに関しては批判対象にはなりえない、ってのが現実だ。コンピュータ・サイエンスを教えてる学校とか、事実上、「料理学校」と大差はないんだ。料理人だって「それがしたくてしたくてたまらなくて」なる人は少ない。単に「手に職をつけたい」って思って学んでる人が多いわけで、そこを否定すると産業として成り立たない、って側面はどーしてもあるんだよな。
っつーわけで、1980年代の「魔法の箱を弄る好事家だった」経験で言われても、2025年現在だと困ってしまう、ってのは多分その通りだろう。

> おすすめの遊び方

ただまぁ、「遊び方」って言われると困るよな。「学び方」ではない。
でも、他の人も示唆してるけど、「遊ぶ」のであって「学ぶ」のではない、ってぇのなら、やっぱフリーOSを手持ちの「壊れても良いPC」にでもインストールして弄り倒すのが一番、って事になるんじゃなかろうか。ハードオフにでも行って二束三文でジャンクなPC入手してみるのもいいだろうし。
問題を単純化すると、Windowsってのは「クローズドソース」って言われてるモノで、「動く仕組みが見たい」っつってもソースコードが隠蔽されてる辺りが問題なんだ。「どう動作してるのか」分からん、と。
だから他の人が示唆してる通り、一台、中古のぶっ壊しても構わんPCを入手して、Linuxでもインストールしてみりゃエエと思う。ソースコード付きで。
あんま初心者にはオススメじゃないんだけど、ソースコード付きで色々やれる、って意味では一番良いLinuxディストリビューションにGentooと言われるブツがある。

Gentoo:
https://www.gentoo.org

Gentoo(Wikipediaによる解説):
https://ja.wikipedia.org/wiki/Gentoo_Linux

これはかなりマニアックなLinuxディストリビューションで、何をやるにせよ、OSを含めて「ソースコード付き」だ。実の事言えば個人的には未使用なんだけど(そのうち乗り換えようと画策はしてるが)、多分貴方のニーズだとこれが「遊び場」として良いんじゃないか、って思った次第。
ジャンクPCならWindows潰しても構わないだろうし(そもそもMicrosoftの保証期限が切れてるし・笑)、もう一台常用の(つまり貴方が今使ってる)PCがあるんだら一台オシャカにしてもいい気でインストールすればいいと思う。
そもそも「遊ぶ」ってのは「壊す」まで到達する可能性がある、ってのはその通りだしね。
なお、Gentooは日本でもそれなりにユーザーが多いんで、Webで情報探すのも比較的簡単、って事もあるし、そもそもGentooはマニアックな人たちが使うディストロなんで、その辺からもかなりディープな情報を得られるんじゃないかな、と予想してる。
    • good
    • 0

スクラッチじゃなく本格的なのがいいわけ?


https://scratch.mit.edu/projects/editor/?tutoria …

ならC言語書籍 CD-ROM付のものを買いましょう
無償コンパイラですぐに環境が整います
https://www.amazon.co.jp/C%E8%A8%80%E8%AA%9E%E3% …
    • good
    • 0

オープンソースのソフトはその名の通りソースコードがオープンな状態になっています。


そういったものならソースコードを読むことができます。
例えば、Linux PCの「中身」であるLinuxOSのソースは公開されています。
https://git.kernel.org/pub/scm/linux/kernel/git/ …

ただ、最近のものは規模も大きく、高度な技術も使われているので、読む側にも高度な知識が求められます。
理解したいのなら、前提となる高度なプログラミング知識が必要です。
今のあなたの状態だと「算数に興味を持った小学生に大学の微積分の教科書を読ませる」ようなものです。


プログラミング技術の向上には「習うより慣れろ」という面があります。
作りたいものが無いとしても、「ソースを読む」という最終目的へ至るための「演習問題」として実際にプログラムを作ってみるのがいいかもしれません。

参考書の演習問題を解くとか、競技プログラミングの問題を解くとか、そうやって作ったプログラムを改造してみるとかがいいかもしれません。
    • good
    • 0

No.4です。


まあ、「プログラミングに興味がある」ってだけなら「○○を作りたい!」って目的が無いってのも、わかる気がします。
私も、「マイクロソフトの.NETを覚えたいなあ」とか「Webアプリのこと知りたいなあ」と思ったとき、それらを覚えたとして、その後に「これを作りたい!」って明確な目的があったわけではないですからね。

昔のDOSさえも無く、電源いれたら、BASIC-ROMが起動していたマイコンで勉強していた時は、マイコン購入時に付属していた初心者向けBASIC入門書と、書店で買ったBASIC入門書を見ながら、勉強というか、遊んでいたものでした。
その頃は、BASIC-ROMを解析した書籍が何冊か出版されていたものですが(後で著作権問題で裁判沙汰になった本もあった気がする)もしかしたら、この辺の話って、質問者さんの興味がある部分かもしれません。

でも、「これが作りたい」ではなく、「どんな仕組みなの?」って方向で進んだ場合、No.6さんが書かれているように、簡単なことでも、膨大なことを理解する話になります。

ま、米国の情報系大学では、「コンピュータがどんな仕組みか?」を学ぶよりも「目的のアプリを手早く作る方法を知る」ほうが大切だという方向に変わったところもあるという話を目にしました。
気長な気持ちで、目的も持たず、ド基礎から学んでいくのもいいと思います。
    • good
    • 0

プログラミングは手段であって目的ではありません。


目的がないのにプログラミングを覚えても意味がありません。



ソースコードはゲーム機やパソコンには組み込まれていません。
機械語で書かれた実行プログラムだけです。

それらを解析すること自体が著作権法違反に問われます。

そんなのを見てもソースコードはわからないし時間の無駄です。

なぜプログラミングに興味があるのでしょうか?
それを自問自答すれば作りたいものが見えてくるはずです。
    • good
    • 0

おすすめはないというか、こんなこと人に訊いてる時点で、あなたはプログラミングは向いてないです。


興味があるというのは口だけってことですから。
    • good
    • 2

半世紀前なら、「四則演算や条件分岐など」を組み合わせてプログラムを書く以外にやりようがなかったんですが、今では「他人が作ったモジュール」(プログラミング言語の基本的命令には含まれていない"命令")を組み合わせて書くんです。

だから「ゲーム機とかパソコンの中身(ソースコードなど)」を見ても、使われているモジュールについての大量のドキュメント(説明文書)を参照しないとチンプンカンプンである。

 初心者がちょっと試してみる場合の最初の鬼門は、プログラムを書いたり保存したり実行したりする"環境"を用意すること。二番目の鬼門はプログラムに入出力をやらせること。三番目は文字列の操作かな。
 文字の入出力に関する簡単な命令たちは、プログラミング言語によっては基本的命令に含まれていたり、あるいはプログラミング言語に付随する標準モジュールとして用意されている。(グラフィックスを使った入出力になると「他人が作ったモジュール」に依存するしかなく、調べなきゃならんことが山ほどあって、ちょっと試してみるでは済まない。一度苦労して身につけてしまえば良いのですが。)というわけで、文字の入出力の一番カンタンなやつの使い方を知らなくちゃいけない。
 さて、プログラムに入力されるのは「文字列」です。"122"と入力しても、これは百二十二という数値を表してはいない。ただ3つの文字が並んでいる文字列に過ぎません。文字列を数値に変換する必要がある。"122"を百二十二にするぐらいは標準モジュール等に任せられるわけですが、そこをあえて自分でやれるようになると、例えば
  122+43=
という文字列を入力すると
  165
というコタエが出力される、デンタクのプログラムが書ける。これができたとして、さて次に、負の数はどうする、掛け算と足し算が混ざった式はどうする、カッコを使えるようにしたい、分数を扱いたい、などなど、やることが山ほど出てくるでしょう。
    • good
    • 0

>その方法が分からないので質問しています


何もしなければ何も分からないです
考えているだけでは何も分からないです。
行動に移さなければ何も分からないです。
ご自身のことを見ず知らずの赤の他人に聞いても答えは出ないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A