建築学生が独学でプログラミングを学んだ道のり
先日、私がどのようにプログラミングを学んできたのかという質問を受けた。
建築の世界からプログラミングの世界に飛び込み、独学で学んできた経験について共有していきたい。
学習アプローチの特徴
私の学習方法の核となっているのは、とにかく実践することだ。
新しいことを学ぶとき、最初から完璧に理解しようとはせず、まずは実際に手を動かしてみる。
WordPressを触ったことがない?ではまず触ってみよう。
AWSを使ったことがない?では使ってみよう。
API開発をやったことがない?ではやってみよう。
この「まずやってみる」というアプローチをするのには、私の中で明確な理由がある。
なぜなら実際に何かを作ろうとすると、自分に足りない知識が否応なく見えてくるからだ。
例えば、API開発に初めて取り組んだとき、最初は「クライアントって何?」「サーバーって何?」という本当に基本的なところから分からないことだらけだった。
正直、不安で仕方なかった。
でも、その「分からない」という感覚こそが、最高の学習のきっかけになる。
なぜなら、自分が何を学ぶべきなのかが具体的に見えてくるからだ。
単に「プログラミングを学ぼう」という漠然とした目標ではなく、「今この機能を実装するために、これとこれを理解する必要がある」という具体的な課題が見えてくる。
補助的なツールとの付き合い方
もちろん、実践だけでは限界がある。
そこで本や動画教材、オンライン講座などを活用するのだが、これらは私の中ではあくまでも補助的なツールという位置づけだ。
例えば、新しい概念を理解するために技術書を読んだり、具体的な実装方法を学ぶためにYouTubeでチュートリアルを見たり、基礎的な理論を学ぶためにCSの講座を受けたり。
でも、これらはすべて「必要に応じて」使うものだと考えている。
この「必要に応じて」という部分が重要で、無理に全部読破しようとか、完璧に理解しようとは思っていない。
その時の自分に必要な知識を、必要なだけ得られればそれでいい。
それ以上の知識は、また必要になったときに学べばいいと思っている。
建築からプログラミングへの転換
私の最初の挑戦はRuby on Railsでのウェブアプリケーション開発だった。
建築を学んでいた経験は、思いがけない形でプログラミングの学習に活きている。
建築でもプログラミングでも、作り手の意図や思想を読み解く力が重要だ。
建築では、なぜこの空間がこう配置されているのか、なぜこの素材が選ばれているのかを考える。
同じように、プログラミングでも、なぜこの関数がこう書かれているのか、なぜこの設計パターンが選ばれているのかを考える。
また、システム全体を見渡す視点も共通している。
建築では個々の部屋や設備が建物全体とどう調和するかを考える。
プログラミングでも、個々の機能やコードが全体のシステムとどう関わるかを考える。
この「全体を見る目」は、両分野で非常に重要だと感じている。
効果的な学習のために
私の経験から、最も重要だと感じているのは基礎となる概念をしっかりと理解することだ。
例えば、コンピューターサイエンスの基礎知識は、最初は「これが実務でどう役立つんだろう?」と思うことも多かった。
でも、アルゴリズムやデータ構造の基本を理解していることで、新しい技術やフレームワークを学ぶときの理解が格段に早くなる。
それは、表面的な違いの奥にある共通の原理を見抜けるようになるからだ。
まとめ
独学でプログラミングを学んできて、私が大切だと感じているのは、
- まずは実践してみる勇気
- 必要なときに必要な学習リソースを使う柔軟さ
- 基礎的な概念をしっかり理解する姿勢
これは決して楽な道のりではなかったが、自分のペースで、自分に合った方法で学べるというのが独学の最大の魅力だと感じている。
この記事を読んでいる方の中に、プログラミングの学習に悩んでいる人がいれば、ぜひ自分なりの学習方法を見つけてほしい。
完璧を求めすぎず、まずは実践から始めてみることをお勧めする。
何か質問や共有したい経験があれば、ぜひコメントで教えてください。