お金がない小中高校生のためのプログラミング入門
私がパソコンを初めて触ったのは小学3年生でした。
当時は親の仕事用のPCに勝手にフリーソフトを入れて遊んでいましたが、自分のPCが欲しくなりジャンクを漁るようになりました。
最初に自分のPCを買ったのは小学4年生だったと記憶しています。
ありがたいことに今は非常に高性能なPCを使えているのですが、このPCを手に入れるまでお小遣いも少なくお年玉も1万円ほどしかなかありませんでした。
今後の後輩のために、お金のない学生がプログラミングに入門するまでの内容を記録しておこうと思います。
この記事のきっかけになったツイートです。
この記事の目的
この記事は以下のような高校生以下の読者を想定した記事です。
- プログラミングとかやりたいけどScratchやMinecraftでやるのは違う気がする
- 親にパソコンを買ってもらえない
- 独学で勉強したい・誰かに質問できる環境ではない
私の当時の環境
- お年玉は5000~10000円
- 家にWi-Fiはあった
- お小遣いは無い
- 親戚や知り合いに詳しい人がいない
という、まったく孤立していた状態です。
今でこそ自分よりも情報系に詳しい知り合いがたくさんいますが、何も情報がない中よくここまで来れたなと我ながら少し感心しています。
親は「自分の金ならば何をしてもいい」というスタンスだったので、PCを買ってきたときも何も言われませんでした。
親の理解を得る方法
保護者が情報技術に疎い場合、ジャンクPCを購入したりインターネットに書き込みを行うことに強く反対される可能性があります。
現代では情報技術を扱う能力というのは、以前の「読み書きそろばん」のように重要になっています。
情報教育は文部科学省が現在最も推し進めていることの1つです。すべてがうまくいっているわけではありませんが、現在様々な国が多くの方法を模索しながら情報教育を行おうとしています。
今後の未来において、情報教育は必須になっており将来必ず役に立ちます。
情報源・コミュニティについて
これから全くお金のない初心者がPCを格安で調達し、プログラミングを勉強し始める方法をまとめますが、基本的な用語の説明は行いません。
というのも、大半の解説や説明サイトにはいちいちその用語の説明までは掲載されていません。
わからないことは全て、インターネットを用いて調べる必要があります。
ここでは、なにかトラブルになったとき初心者が情報を入手する方法をまとめています。
ググる
「ググレカス」という非常に強い言葉がありますが、インターネット検索を自力で行えない場合は独学は厳しいと思ったほうが良いです。
検索する際は「正しい情報」か「そうでないか」を区別することが大切です。
プログラミング(特にPythonやJavaScript)の場合、某テックスクール系のブログ記事は情報が間違っていることも多いので中が必要です。
AIに聞く(2023/12/08 内容追記)
現代ではAIが発達しているのでChatGPTなどのAIに質問してみるのも方法です。
ただし、出力されたコードがどうして動くのか(または動かないのか)を理解しないと勉強にはなりません。使い方には十分注意をしていくべきでしょう。
コミュニティサイトを利用する
以下のようなサイトで人に質問するのも有用な方法です。
ただしあまりにも初歩的な内容の場合は嫌がられる場合もあるので、自分でよく調べたり考えたりしたうえで相手に敬意をもって質問するべきです。
- Yahoo 知恵袋
- 2ch
私の場合はTwitterで仲良くさせていただいている方に多くのことを教えてもらっています。
友達を作る(2023/10/19 誤字修正)
TwitterやMisskeyには技術系に強いオタクがたくさんいます。
そういった人たちはそれぞれのブログやZenn、Qiitaなどのサイトに情報を載せているかもしれません。
もしTwitterでそういったコミュニティに入り、仲良くなれれば教えてもらうこともできるかもしれません。
ただし、露骨にDMに質問しに行ったり、無関係なツイートのリプライやメンションへ質問しに行くのは無礼に当たるので注意しましょう。
PCを調達する
お金のない学生にとって最も難関は最初のPCでしょう。
学校のPCは自由に使えないし、ChromeBookなども非常に制限のあるものになっています。
ということで、総額2万円以下でプログラミング環境を手に入れる方法です。
Android端末を利用する
Android端末でもTermuxなどを利用してPythonやBashを実行することができます。
外部ディスプレイとキーボード、マウスがあればそれなりに使えるかもしれません。
もし既に親や家族がそういった機器を持っており、貸してもらえるのなら利用するのも方法です。
ここではAndroidを利用した開発については詳しくは触れませんが、もしこれから新しく機材を購入しようという場合は決してお勧めできる方法ではありません。
というのも、やはりスマホでは効率や操作性、自由度が低く、情報も少ないためです。
性能の低いPCを利用する
2010年以降の、Windows7やWindows 8を搭載したPCを家族や親戚が持っているのならば使わない手はありません。
それらのPCは最新のWindows 11やWindows 10は動作しませんが、些末な問題です(後述します)。
ジャンクPCを調達する
上記のいずれも使えない人は、自分で買うしかありません。
おそらくほとんどの人がこの状態になると思います。
ジャンクPCとは、あまりにも古いため動作確認などが行われることなく非常に安価に投げ売りされているPCのことです。
返品もできなければろくなサポートもないので、全て自分で購入するものを見極め、トラブルを解決しなければなりません。
しかし、この過程こそ最も重要なのです。ジャンクPCのみでYouTubeを見れる環境まで構築できた頃には、きっと必要最低限の知識は既に持っています。
以下で、ジャンクPCの購入の仕方を軽く説明します。
ジャンクPCの買い方
おそらくほとんどの方はPCを作ったことはないでしょう。PCを作れるということすら知らないかもしれません。
いきなり作るのは難易度が高いので、ある程度動作する既製品を購入し、そこから部品を交換していくなどの手法が最も簡単です。
購入場所
以下のような大都会の近くに住んでいる方は非常にラッキーです。これらの都市はジャンクPCに関するお店が集まっており、非常に安価にPCを購入できます。
- 秋葉原
- 大阪日本橋
- 名古屋大須
おそらくそのような場所には行けない方が大半だと思います(私は群馬なので、簡単にはいけません)。
そんな方は以下のようなお店が近所にないか探してみます。
- ハードオフ
- ドスパラ
- パソコン工房
- ツクモ
- その他個人経営の中古PC屋
これらのお店はジャンクPCを扱っているので定期的に通ってみてください。
また、(上記のお店がない人も)現代ではメルカリやラクマにもジャンクPCは頻繁に出品されています。
購入方法
購入する場合は以下のことに注意してください。
- もし動作確認をセルフで行えるお店の場合は必ず確認する
- 購入後は絶対に返品、返金を要求しない
- 店員さんに詳細情報を聞かない
ジャンクPCは、通常では販売できない非常に性能の低いPCが投げ売りされている状態のものです。
お店側も、知識を持っている人が購入する前提で格安で販売しているものなので、これらの対応は絶対にしてもらえないものと思ってください。
PCの選び方
ここでは大まかにPCの選び方を説明します。
予算的には最大で1.5万円程度です。運が良ければ2~5000円で手に入ります。
選んではいけないPC(2023/12/08 誤字修正)
以下のようなものは難ありなので、購入しないでください。
ノートPCや一体型PCは分解や修理の難易度が上がるため、最初のうちはデスクトップPCを買うのが無難です。
- Windows XPやWindows Vista以前を搭載しているPC(2008年以前のPC)
- コンセントに接続してもランプなどが一切つかないPC(通電不可のPC)
- 「ピン折れ」と書かれているPC
- ワープロやMacなどの通常のPC/AT互換機ではないもの(IntelやAMDと書かれていればたぶん大丈夫です)
- Intel Atomを搭載しているPC
- CPUがPAEに対応していないPC(「CPU名+PAE 対応」でググればでてきます)
- 裏側にRJ-45ポート(LANポート)がないPC(RJ-45で検索すれば形がわかります)
- 中身が非常に臭いもの(以前の使用者がタバコを吸っていた可能性があります)
最低限クリアしてほしい基準
- メモリ2GB以上
- DVDドライブを搭載しているもの
- 電源を入れたときメーカーのロゴが表示されるもの
- 中身を簡単に分解できるもの
ここまであればなお良い基準
- 2012年以降のPC
- 電源やマザーボードが一般的な規格に対応している(スリム型ではない)
- 例えばNECのMateやFUJITSUのESPRIMOは部品の流用がしにくいです
- が、こういったスリム型は企業から流れたものがジャンクとして大量に出回っているためCPUやメモリの部品取りとしては非常に優秀です
- 誰かが自作したPC(全て市販パーツで作られいるので改造がしやすい)
ゲーム開発や動画編集などの高度なことがしたい場合
そもそもそういった高スペックなものが必要な場合、ジャンクPCで安くというのは非常に難しいかもしれません。
- 2018年以降のPC
- Core i3以上のCPUを搭載
- 512GB以上のストレージ(デスクトップPCの場合あとで追加・変更も可能)
気にしなくてもいいもの
以下のものは簡単に交換できるので、気にしなくていいです。
- HDDから変な音がする
- OSが入っていない
ジャンクPCの手入れ
PCを購入したら、中身を分解して清掃する必要があります。
また、中古のHDDやSSDは寿命が短いのでなるべく新品を購入しましょう。
(SSDやHDDのジャンクは本当にギャンブルです。極稀に大当たりが入っていることもありますが、見極め方も難しい上にコスパはかなり悪いです。)
もしPCの性能を強化したいと感じたら、以下の優先順位をおすすめします。
- (HDDのPCの場合)SSD
- メモリ
- CPU
- その他
正直これ以外を変更する場合は新しいPCを買ったほうがコスパが良い場合があります。
「このPCの合計金額のお金でもっと良いPC買えるじゃん...」とならないようにしましょう(n敗)。
周辺機器の入手方法
デスクトップPCを入手出来たら、次は周辺機器をそろえていきます。
といっても、ゲーミングデバイスのような高価なものはとても手に入らないので格安で購入できるものでそろえていきます。
キーボード(2023/12/08 一部追記)
ジャンクコーナーにおいてあるキーボードを購入しましょう。USB接続のものが望ましいです。
最低限の条件は日本語配列であることでしょうか。US配列がいいなどのこだわりがない場合は日本語配列にするべきです。
キートップ(ボタン)が外れていないものを選んでください。エレコムやバッファローなどの有名なものをチョイスするとよいです。
BluetoothのキーボードはOSのインストールやトラブル時に使えない上、バッテリーなどの懸念もあるため購入しないでください。
また端子がUSBではなくPS/2の場合、購入したPCにその端子があれば良いのですが「PCの電源を入れたあとに挿入しても認識しない」という制約があるので注意してください。
押しにくいものや、日焼けが酷いものも選ばないようにしてください。
ディスプレイ
ディスプレイは持ち運びが非常に難しいものです。
中古ショップまで徒歩で行ける、もしくは親が車を出してくれるのなら問題有りませんが、自転車でしか移動できない場合はディスプレイを持ち運ぶのは非常に難しいです。
親のスマホ等でメルカリを利用できる場合は、それが最善でしょう。
お金に余裕がある場合は1920x1080のモニターが3000~10000円でメルカリで入手できます。
どうしてもお金がない場合は1280x1024のモニターが300~600円で入手できます。
19:9比率は人気が高いので、4:3や5:4のモニターを探すと安く手に入ります。
(5:4や4:3はYouTubeやゲームはしにくく、見た目もカッコ悪いですが、その分非常に安価です)
HDMIやDisplayPortはケーブルだけでも1000円ほどしてしまうので、DVIやD-Subのモニターを購入すると良いですが、PCの端子に合うものを選んでください。(HDMIからDVIなどに変換するケーブルは余計に高価です。)
おすすめはD-SubとHDMIの両方に対応しているFullHDのモニターです。
マウス
概ねキーボードと同じです(USBのものを選ぶ等)。
もしお金に余裕があるのなら、Amazonで握りやすそうなのを2000円程度で探しても良いかもしれません。
どうしてもお金が無いのなら300円でダイソーで購入することもできます。
USBハブ
古いPCの場合拡張端子が少ないので、どうしても機能の拡張をUSBに依存することになります。
その場合最も不足するのがUSB端子なのですが、USBハブの金額も1000円程度と意外に高価です。
現在ではダイソーで500円程度で購入できるので、1つ持っておくとかなり便利です。
WiFi・Bluetooth
古い機種のデスクトップPCにはWi-FiもBluetoothもありません。
Bluetoothはイヤホンやスマホとの連携にしか使用しないので問題ないのですが、Wi-Fiは死活問題となり得ます。
もし有線LANが使用できない状況の場合、外付けのWiFi子機を使用しなければなりません。
中古でUSB接続のものを探すと良いのですが、「IEEE802.11g」や「IEEE802.11n」といった表記のあるものを探すと良いでしょう。「IEEE802.11ac」「IEEE802.11ax」といったものに対応していると尚良いです。
スピーカー
スピーカーはダイソーで購入できる300円のUSBスピーカーが最高です。
それ以外は不要です。
ケーブル類
最低限以下のケーブルが必要です。
- PCとディスプレイ間のケーブル(DVIやD-Sub等)
- PCとコンセントの間のケーブル(IEC C13)
- ディスプレイ用のケーブル(おそらく上記のIEC C13と共通)
これらのケーブルはそれぞれの環境と形状に合わせて選択してください。
HDMIやDisplayPortなどの一部の高価なケーブル以外は100~300円で入手可能です。
追加部品(2023/10/11追記)
もしディスクが無いPCを買った場合、OSをインストールするには追加でSSDを買う必要があります。
現在では128GBのSSDが1500円~2000円で買えるようになっています。
必ず一度は中身を分解し、SSDの換装が可能な機体であることを確かめてください。
ソフトウェア的な準備
ハードウェアの準備がと取ったら、次はいよいよソフトウェア面での準備に入ります。
ソフトウェアの準備は非常に簡単です。
OSのインストール
オペレーティングシステムをインストールしないことには何も始まりません。
通常ならWindows 10やWindows 11をインストールするのですが、おそらく購入した価格帯によっては性能不足でまともに動作しないと思います。
また、Windowsのライセンスは1万円以上するので、下手したらPC本体と同等もしくはそれ以上の値段がかかってしまいます。
サポートが終了したWindows 7やWindows XPを用いるのもまたセキュリティ的に非常によろしくない状態です。
ということで、今回はLinuxを紹介します。
Linuxはとある1人によって開発され、現在ではAndroidやサーバとして幅広く用いられているカーネル(OSの根幹部分)です。
LinuxはあくまでOSの根幹部分でしかないため、その周辺のプログラム(例えばブラウザやアプリケーションランチャーなど)はユーザーが自分で選択してインストールしないといけません。
そういったインストール作業は非常に困難な上に管理も面倒なため、ある程度環境が構築されまとめられらもの(ディストリビューション)を用いるのが主流です。
おすすめするディストリビューション(2021/10/19 追記)
世界でも著名なディストリビューションであるDebianを用いることをおすすめします。
有名なUbuntuとおおむね同じ情報が使える上、Ubuntuより軽量です。
インストール
Debianのインストールは、それだけで1つの記事にできてしまうので、ここでは省略します。
「Debian インストール」と検索すると、多くの記事が見つかると思います。
注意
インストール方法ではisoファイルをUSBメモリに焼く方法がよく紹介されています。
USBメモリは1つ持っておくと非常に便利ですが、最初のうちは比較的高価かもしれません。
ダイソーで格安のUSBを購入することもできますが、品質的に避けたほうが良いでしょう。
OSのインストールを行うだけならば、USBではなくダイソー等で2枚セットで購入できるDVD-RWを用いるのもコスト削減の手段です。
DVD-Rは一度書き込んだら変更できずコスパが悪いので購入しないでください。
DVD-RWは繰り返し書き込めるので、OSのインストールをしたりデータを移動したり様々なことに使用できます。(USBメモリを持っている人は当然そちらを使ってください。DVDは遅いです。)
開発環境を構築する
多くの言語では、それぞれ固有のソフトウェアのインストールが必要ですが、共通している部分も多くあります。
(あまり宗教戦争を行うつもりは有りませんが)Visual Studio Codeは非常に強力なソフトウェアの開発ツールです。
とりあえずこれだけインストールしておけば、どんな言語・技術でもある程度利用できると思います。
勉強したい技術を決める
最低限のPCと動く環境が整ったら、何をしたいのかを決めましょう。
以下に初心者が最初に勉強すると良さそうなことや言語・技術等(主観)を載せました。
やること一覧おすすめ
- 自分のホームページを作る
- HTMLやCSSを書く
- 自分のホームページを外部に公開する
- Raspberry Pi
- Linux
- Nginx
- ネットワーク技術
- ゲームを作る
- UnityやUnreal Engine
- C++等の言語
- スマホアプリなどを作る
- Flutter
- Kotrin
- 競技プログラミングをやってみる
- AtCoder
- Python
- C++
Python
動的型付け言語で、初心者向けとよく言われている言語です。
AIや機械学習、画像処理、ウェブアプリケーションなど幅広く使われています。
競技プログラミングにも使われている言語です。
Golang
難しい概念が少なく、構文も非常にシンプルなのでとっかかりに適している言語です。
コマンドラインツールやサーバーサイドの開発に適しています。
HTML・CSS・JavaSciript
ウェブサイトを構築するための基本的な言語です。
HTMLで文章や段落などの構造を記述し、CSSでそれぞれの段落やページのデザインを行います。
高度なアニメーションや、動的な要素に対してJavaScriptを使用します。
最初はHTMLだけでウェブサイトを作成し、慣れてきたらCSSでデザインを作成、という順番がいいと思います。
最後に、もし何かやりたいことがあればJavaScriptという感じです。
TypeScript
JavaScriptという言語に静的な型付けを付与した言語です。
React等のモダンなウェブアプリケーションの構築に利用できます。
ReactはTypeScriptを用いるフレームワーク(でっかいライブラリのようなもの)で、旧来のHTMLとJavaScriptの部分を全てTypeScriptのみで記述していきます。
技術の勉強の仕方
何か1つの言語を勉強しようとしたときに自分が行っている方法です。
- チュートリアルやツアーのようなものを一通りやってみる
(ない場合は何か入門書を一通りやってみる) - わからない用語を検索して、基本的なコードを読み書きできるようにする
- (言語の場合)AtCoderのA問題を解いてみる
- 何か目標を決めて、自分で小さいアプリやツールを作ってみる
- 公式ドキュメントや、詳しい人のコード・文章を読んで内容を理解してみる
- 他人が書いたコードをGitHubなどで読んでみる
- 4~6を繰り返す
- 応用的な本や記事を読んでみる(言語の内部実装に関するものなど)
たぶんこれをやるとその言語に関して相当つよつよになれます。(完走経験0)
だいたい自分はいつも5、ひどいときだと3で満足してしまいます。
学生の身分を活用する
世の中のIT企業というのは学生を非常に支援してくれています。
もし貴方が高校生か大学生なら、そういったものを利用しない手段はありません。
最近は中学生でも学校からメールアドレスが発行されるので使えるかもしれません。
Microsoft Education
学校にもよりますが、OfficeやAzureを無料で使えるかもしれません。
Adobe CLP for Education
Adobe製品を格安で購入できる場合があります。
私は利用したことが無いので詳細はわかりかねます。すみません…
GitHub Student
これは申請すればだれでも使える非常に良いものです。
GitHubの有料プランの機能が無料で使える上に、GitHub CopilotやHerokuを無料で利用できます。
また、GitKrakenといった有料ソフトも無償で利用できます。最高です。
申請方法についてはインターネット上にたくさん情報があるので探してみてください。
蛇足
僕が最初に買ったPCはPC-VL500という、2014~5年にしても非力すぎるPCでした。
当時ハードオフで1500円だったと思います。あまりにも高すぎる…。
このPCではWindows XPが標準搭載だったのですが、Windows XP SP3は重くてまともに動作せず、知り合いにもらったWindows 2000 SP4に拡張カーネルを入れて遊んでいた思い出があります。
その後小学6年生のとき、秋葉原のショップインバースのお正月セールでFUJITSUのD551/DXを買いました。5000円だった気がします。
その後心優しい人にXeon E3-1275をもらったり、ジャンク箱でi5-2400を入手したりして性能を強化して遊んでいました。
中学1年生のときSnady Bridge用のマザーボードを購入してPCを自作したのですが、そのときに用いたメモリやCPUも小5のときのものでした。
小5の頃に購入したマシンは、少しづつ部品を強化して最終的には以下のようになりました。
Core i3-2120 → Xeon E3-1275
DDR3 2GB x2 → DDR3 4GB x4
D551シリーズ専用MB → GA-Z77M-D3H
HDD 無し → HDD 1TB x2 + SSD 1TB
OS 無し → Windows 10 Pro + Arch Linux
結局そのSandy Bridgeのマシンは、自分が大学に入学してRyzen 9 7900Xのマシンを買うまでずっと使っていました。
長々と自分語りをしましたが、言いたいことは「ジャンク沼にハマりすぎるな」ということです。
ジャンクPC探しは非常に楽しいのですが、最低限の環境を構築したあとはお金を貯めて、素直にそれなりの性能のPCを買ったほうが良いです。
大金を使ってジャンク部品だけでPCを作るのも楽しいですが、安物買いの銭失いになる可能性も非常に高くリスキーです。
3万円あったとして格安のノートPCを買うかジャンク部品でそこそこのPCを狙うかは読者であるあなたに任せますが、ジャンクにお金を使いすぎることはあまりおすすめしません。
終わり
そこまで技術力が高いわけでもなく、まだ大学1年生の自分が偉そうに長文を書いてしまいました。
この記事を見て、少しでも自分より才能のあるつよつよが増えてくれればいいなと思います。
更新履歴
2023/10/11-12:00 記事を公開しました
2023/10/11-21:10 誤字を修正して内容をいくつか追加しました
2023/10/19-00:20 Debianについての情報を追記+誤字を修正
2023/12/08-03:42 AIの利用の仕方とキーボードの選び方を一部追記+誤字を修正
Discussion
Debian…無難で素晴らしいチョイスだ…
初心者にArch Linuxを勧めるわけにはいかないからね…
長文記事お疲れ様です。
誤字を見つけたので、コメントしておきます
指摘ありがとうございます。修正しました。
プログラミングだけならRaspberry Piが値段が安くていい感じですね
頑張ればスマホだけでmicroSDにOS書き込みできるみたいですし
中学生の頃(2005年頃)、お金がなかったのにPCが猛烈に欲しくて仕方なかった時代を思い出して懐かしくなりました。
ああ、あの頃この記事を読めればよかったのに。
(とはいえ、あのころ興味があったのはゲームばっかりだったのですが)