はじめまして!中学生プログラマーAquaの「ちょっとマニアック」な探求の世界へようこそ🚀
こんにちは!僕の名前はAquaです!
はじめまして!中学生プログラマーのAqua です!🚀
まずは、僕のプロフィールから簡単に紹介させてください。
- 名前: Aqua (アクア)
- 学年: 中学生です!
- 普段やってること: 学校に通う傍ら、PCの前にいる時間が一番好きです。キーボードを叩いて、自分のアイデアを形にすることに夢中になっています!
- 興味のある分野: 特にコンピュータの 「低レイヤー」 、つまりOS、Webブラウザ、JavaScriptエンジンといった、コンピュータの根幹を支える技術に強い魅力を感じています。
「コンピュータって一体どう動いてるんだろう?」
「普段当たり前に使っているWebサイトは、どんな魔法で表示されてるんだろう?」
そんな素朴な疑問を、僕はいつも心の中で追いかけています。そして、その疑問を解決する一番の方法は、「自分で作ってみること」だと気がつきました。
このZennでは、僕の「ちょっとマニアック」なプログラミングの探求の道のりや、そこで見つけた面白いこと、学んだことなどを、皆さんと率直に共有していきたいと思っています!
僕とプログラミングの出会い!🚀
僕がプログラミングに出会ったのは、小学校の頃でした。初めて自分の書いたコードが、画面の中で「意図した通り」に動いた時のあの感動は、今でも鮮明に覚えています!まるで魔法使いになったような気分で、それが僕のプログラミング人生の始まりです。💡
最初はScratchでブロックを組み合わせたり、Pythonで簡単なゲームを作ったり、JavaScriptでウェブサイトに動きをつけたりしていました。コードを書けば書くほど、新しいものがポンポン生まれるのがとにかく楽しくて、毎日時間を忘れて夢中になっていました。
でも、そうやって遊んでいるうちに、だんだんと「このゲームって、コンピュータの中じゃどうなってるの?」「インターネットって、一体どんな仕組みで動いているんだろう?」って、目に見えない「根っこにある部分」に猛烈に興味が湧いてきたんです。まるで、おもちゃの車を分解して、中のエンジンやギアがどうなっているのか知りたくなるような感覚でした。
その疑問を解決するには、OS(オペレーティングシステム)や、毎日使っているWebブラウザ、そしてウェブを動かしているJavaScriptエンジンといった、コンピュータの「心臓」や「頭脳」の部分を、自分の手でゼロから作り上げてみるしかない! そう確信した時、僕の「低レイヤー開発」への壮大な挑戦が始まりました。
「中学生がOSやブラウザを作るなんて、無謀だ!」って思われるかもしれません。でも、僕にとっては、それが一番ワクワクする冒険なんです。
僕の「相棒」たちをご紹介!愛着たっぷりの技術スタック🛠️
この「ゼロから作り上げる」壮大な挑戦の相棒として、僕が深く学び、心から信頼を置いている技術たちをいくつか紹介させてください!それぞれに、僕なりの思い入れがあります。
🦀 Rust:低レイヤー開発の「頼れる先生」兼「最高の安全装置」
低レイヤーの世界では、ずっとC言語やC++が使われてきました。僕もこれらの言語に触れてみて、その圧倒的なパワーを知りました。でも、同時にメモリの管理がすごく難しくて、ちょっとしたミスでシステム全体がクラッシュしちゃう「セグメンテーションフォルト」によく遭遇し、何日もバグに悩まされた経験があります。
そんな時、「もっと安全で、もっと効率的に開発できる言語はないかな?」って探していて出会ったのがRustでした。Rustは「難しい」って言われることが多いけど、僕にとってはまさに「頼れる先生」であり、「最高の安全装置」のような存在です。
- 🛡️ 安心の「安全性」: Rustには 「所有権(Ownership)」 っていう、とんでもなく賢いシステムがあります。これが、コンパイルする段階でメモリに関するほとんどのバグ(例えば、間違った場所にアクセスしちゃったり、複数の処理が同時にデータを書き換えちゃったりする問題)を、実行する前に見つけて教えてくれるんです!C言語でポインタのミスを見つけるのに何日もかかって心が折れそうになったあの頃とは大違い。コンパイラがまるで先生みたいに「ここ危ないよ!」「こう直してみて!」って教えてくれるから、安心して複雑なコードに挑戦できます。
- 🚀 驚きの「パフォーマンス」: Rustは、自動でメモリを片付ける「ガベージコレクタ」がない分、C++と同じくらい、いやそれ以上にすっごく速く動くことができるんです。余計な処理が入らないから、コンピュータの力を最大限に引き出せる。僕が開発しているブラウザやJavaScriptエンジンでは、数ミリ秒の遅れがユーザーのストレスにつながることもあります。Rustのこの圧倒的なパフォーマンスは、僕の野心的なプロジェクトを、机上の空論じゃなくて、本当に動くものにするための強力な基盤になっています。
Rustと出会ってから、僕の低レイヤー開発の可能性は本当に大きく広がりました。
🐳 Docker:開発環境の「魔法の箱」兼「時間泥棒キラー」
「僕のPCでは動くのに、友達のPCだと動かない!」
これ、プログラマーにとって永遠の悩みですよね。OSのバージョン、Pythonのバージョン、ライブラリの依存関係…ちょっとした違いで、動かなくなってしまうんです。新しいプロジェクトを始めるたびに環境を整えるだけで半日潰れるなんて、もはや「時間泥棒」以外の何物でもありません。
そんな時間泥棒を退治するために見つけたのがDockerです。これは、開発環境を 「コンテナ」 という「魔法の箱」に閉じ込める技術。この箱の中には、OSや必要なソフトウェア、ライブラリまで、すべてをまとめて含めることができるんです。一度この「箱」を作ってしまえば、どんなPCでも、どんなOSの上でも、 「全く同じ環境を起動できる」 ようになります。
まるで、お気に入りのゲーム機とゲームソフトが一体になったような感じです。どんなテレビに繋いでも、いつでも同じように遊べる。この「どこでも同じように動く」安心感と、「環境構築が一瞬で終わる」スピード感は、共同開発でも個人開発でも、本当に大きな力になります。
🤖 GitHub Actions:開発フローの「自動操縦士」兼「デプロイの安心保険」
コードが書けたら、次はテストして、デプロイして…この手動作業が、意外とストレスなんです。「ちゃんとテストしたっけ?」「デプロイ中に変なミスしないかな…」なんて、いつもドキドキしていました。
GitHub Actionsは、そんな僕の「めんどくさい」と「ドキドキ」を解決してくれた「自動操縦士」です。コードをGitHubにプッシュするだけで、GitHub Actionsが自動でテストを実行したり、アプリケーションをデプロイしたりしてくれます。
- バグの早期発見: コードをプッシュするたびにテストが自動で走るので、バグをすぐに発見し、素早く修正できます。まるで僕の書いたコードを常に監視してくれる「自動バグ検出器」がいるようです。
- デプロイの自動化: テストが成功したら、本番環境へのデプロイまで自動で進むので、デプロイ作業のストレスがゼロになりました。APIキーなどの秘密情報もGitHub Secretsで安全に管理できるので、まさに「デプロイの安心保険」です。
GitHub Actionsのおかげで、僕がコードの変更をGitHubにプッシュするだけで、世界中の人が僕のアプリケーションを使えるようになるんです。この圧倒的なデプロイの速さと信頼性は、僕の個人開発のモチベーションをさらに高めてくれました。
どんな人なの?僕がプログラミングで大切にしていること💡
僕は、プログラミングを通して、こんなことを大切にしています。
-
🤔 「なぜ?」を追求する探求心:
僕は、表面的な動きだけでなく、「なぜそうなるのか」「どうすれば動くのか」という根本的な疑問を、深く深く掘り下げて考えるのが大好きです。まるで、お菓子の謎解きゲームに夢中になるように、コンピュータの内部の仕組みを解明していくことに大きな喜びを感じます。 -
✨ 新しいものを作る創造性:
自分の頭の中にあるアイデアをコードという形で表現し、まだ世の中にないもの、あるいは既にあるものを「自分なりに」作ってみるのが、最高の喜びです。特に「ゼロから作り上げる」というプロセスには、大きな達成感を感じます。 -
🚀 挑戦し続ける気持ち:
プログラミングは、難しい課題にぶつかることの連続です。でも、僕はそれを「面白いパズル」だと思っています。諦めずに試行錯誤し、解決策を見つけることに大きなやりがいを感じています。たとえ失敗しても、それが次への大きな学びになると思っていますし、その過程こそが自分を成長させてくれると信じています。
これからZennで、もっと発信していきます!🚀
このZennでは、僕の「ちょっとマニアック」な開発の道のりをもっと皆さんと共有していきたいと思っています!
具体的には…
- Rustでの低レイヤー開発記: 自作OSやWebブラウザ、JavaScriptエンジンのプロジェクトの進捗報告や、そこで学んだRustのテクニック、ハマったポイントなどを、具体的なコード例を交えながら解説していきます。
- DockerやGitHub Actionsを活用した開発効率化TIPS: 僕が実際に使っている、開発を「爆速」にするための具体的なDocker設定やGitHub Actionsのワークフロー、さらにはPythonスクリプトによる自動化テクニックなどを、実践的な視点から共有します。
- プログラミング学習で大切なこと: 中学生という僕の視点から、どうすればプログラミングをもっと楽しく、継続して学んでいけるのか。難しい技術を理解するための僕なりのアプローチや、学習中の皆さんに役立つヒントも発信できれば嬉しいです。
- その他、僕が興味を持った技術について: 例えば、AIの基礎技術や、新しいプログラミングパラダイム、最新のハードウェア動向など、僕が「これは面白い!」と感じたことはどんどん記事にしていきます。
僕の記事が、皆さんのプログラミング学習のヒントになったり、新しい技術に興味を持つきっかけになったりすれば、これほど嬉しいことはありません。
まだまだ未熟者ではありますが、皆さんの温かいご意見やご感想、アドバイスをいただけると、本当に励みになります!
コメントや「いいね」、もしよかったらフォローもしていただけると嬉しいです!
これからもどうぞよろしくお願いします!
関連リンク
Discussion