Blogger Labo:プログラミングを独学で1ヶ月ほど学んでみた感想

プログラミングを独学で学び始めて早一ヶ月。

とりあえず、いくつかのプログラミング言語の文法については理解することができた。

だが、未だにこれといった成果物はできていない。

なので、ブログのネタになるような話は無いのだが、とりあえず学習の感想をここでまとめておくことにする。


学習する意義


このブログを見てくれている方々は、少なからずブログカスタマイズに興味をお持ちだと思われる。なので、ブログカスタマイズという観点から鑑みて、プログラミングを学習することは大いに意義があると言えるだろう。

まず、Bloggerのカスタマイズは、HTMLとCSSについて知識をつければ大抵のことができるようになると思う。しかし、クリックイベントなど、ちょっと高度なことをしようと思うならJavaScript(以下JS)の知識が必要になってくる。つまり、Bloggerカスタマイズをマスターするには、少なくともHTML・CSS・JSの知識が必要だと言うことになる。

逆に、この3つを抑えておけば、カスタマイズの幅はとても広がると言えるだろう。ということで、BloggerユーザーならばHTML・CSS・JSを覚えておいて損はない。また、これらを覚えておくことでWebデザインなどの仕事に応用することもできるようになると思う。

学習してきたもの


とりあえず、この一ヶ月で学んできたものは以下の通り

・HTML:ホームページやブログの骨組みを作るのに必要
・CSS:ホームページやブログを装飾するのに必要
・JavaScript:ホームページやブログに動きをつけるのに必要
・Chromeデベロッパーツール:GoogleChromeに搭載されている開発者用のツール(サイトの解析ができる)
・Python:人工知能開発などに使われる言語らしい(データ集計やWebスクレイピングなどを覚えた)
・Git:バージョン管理ツール(開発中のプログラムにセーブポイントを設けることができるもの)
・その他(Ruby、sed、各種ツールの使い方などなど)

学習に使った教材


この一ヶ月で使った教材は以下の通り(すべて無料のもの)

ドットインストールオンラインのプログラミング学習サービス
Progate(プロゲート)プログラミング学習アプリ
・プログラマ系のYoutube動画

どこから学習すれば良いのか?


1.Youtubeで情報収集する


自分の場合、まずYoutubeで「JavaScript入門」などで検索して、ためになりそうな動画を片っ端から見てきた。そこで分かったことが、プログラミングのオンライン学習をビジネスとしてやっているYoutubeチャンネルが多数あるということだ。なので、クオリティの高い学習教材がいくらでもある。また、言語やツールの知識のみならず業界に関する知識なんかも入手できるので、見ているだけで色んな知識を身につけることができる。

個人的にオススメなのが以下のチャンネル

しまぶーのIT大学HTML、CSS、JSの基礎など
キノコードHTML、CSS、JS、Java、Ruby、PHP、Python、Kotlin、Goの基礎など

上のチャンネルは各種言語のレッスンが再生リストでまとめられているので初心者でもとっつきやすいと思われる。また、学習の方法や学習に必要なツールの導入方法なども紹介されているので、動画の指示通りにするだけで色々な知識を身につけることができた。部分的に分からないところがあったらGoogle検索や他のYoutube動画なんかで補完できるので、まずは動画を見るところからスタートするのが簡単だと思う。

2.学習の方針を決める


Youtubeで色んな動画を見ていると、色々ありすぎて何から勉強すれば良いのかわからず、混乱してしまうことがよくある。なので、スムーズに学習するために「自分が何を学びたいのか?」という方針を決めておくことが重要になる。

例えば、ブログカスタマイズに関して知識がほしいのならば HTML → CSS → JS といった流れで学習するのがベストだろう。Bloggerのような無料サービスを使うのであれば、できることも限られているので目標が絞り込みやすい。

だが、IT業界に転職することが目標ならば選択肢がまばらになる。色々な動画を見て知ったのだが、エンジニアになりたいのならばHTML・CSS・JSの知識は必須らしい。そもそもHTML・CSSなんかはマークアップ言語と呼ばれるものでプログラミング言語ですらないのだとか。これら3つを抑えた上で、言語を選んで学習していくことになるようだが、自分はエンジニアではないので、それ以上の話はYoutubeなんかでご自分で調べてみてほしい。

3.オンラインの学習サービスを使う


2020年現在、ネット上には「プログラミングのオンライン学習サービス」なるものがいくつか公開されている。中でも有名なのがドットインストールとProgate(プロゲート)だ。これらのサービスは一部は無料で利用することができるので、とりあえず自分は無料版のレッスンのみで学習を進めることにした。

ドットインストール



ドットインストールは、PCでサイトにアクセスして動画を見ながら各種レッスンをこなしていくというもの。利用するにはユーザー登録が必要で、PCひとつで学習を始めることができる。学習できるものは幅広く、開発環境の構築からスタートできるので無料版でもプログラミングの基礎は身につけることができるだろう。ただし、無料版では質問することはできないので、トラブルシューティングは自分でしなければならない(個人的にはトラブルシューティングは自分でしたほうがためになると思う)。

Progate



Progateは、Web版とアプリ版があり、自分はAndroidアプリ版で学習を利用してみた。利用するにはユーザー登録が必要で、各種レッスンを選択して学習を始めると行った流れになる。学習内容は概要説明と穴埋め問題のようなやり方になっており、いくつか用意されている選択肢から空欄を埋めて文法なんかを覚える仕組みになっている。学習の進め方が選んで穴埋めするというシンプルな形になっているのでPCにすら慣れていない方でも簡単に学習できるようになっている。

4.サンプルコードを写経する


プログラミング言語の文法を覚えてくると何かしら作りたくなるが「何を作ればいいのかわからない」という壁にぶち当たることになる。そもそも文法を覚えたての時点では、何も無いところから何かを作ろうと思っても、何からどうすればよいのか分からないのだ。

そこで、自分はJSの学習中には以下のようなことをしていた

1.ネット上からサンプルコードを探し出す(例えばJSのデジタル時計など)
2.サンプルコードを写経のように書き写す
3.サンプルコードに"どのコードがどういう働きをしているのか"をひたすらコメントアウトした
4.コードを部分的に書き換えてプログラムの変化を観察した
5.元のコードに別の簡単な機能を追加した

上のようなことをしていると、自然にコードの意味や使い所が何となく解ってくる。これを繰り返す内にサンプルコードを読み解くことができるようになり、簡単なものなら容易にアレンジすることもできるようになる。例えるなら、英語を学習し始めて、英文記事が読めるようになり、簡単な英文が書けるようになったような感じだ(ただ、自分は英語は書けないし喋れもしないが…)。

学習した感想


約一ヶ月の学習の感想としては「案外難しくはない」というものになる。

これはある程度の理解が進んだことによるものだが、プログラミングは仕組みとしてはシンプルで「順次進行・条件分岐・繰り返し」が基本構造になっている。これらを便利に扱うために変数や関数およびフレームワークなんかがあって、それらを上手く組み合わせることで自分の作りたいプログラムを書くことができるようになるという寸法だ。

最初のうちは専門用語ばかりで頭がパンクしそうになっていたが、頭の中で冷静に用語と意味をつなぎ合わせていくと自然に理解できるようになる。すると、今までただのユーザーとして利用してきたサイトやアプリの構造が「多分、こんな感じになっているのだろう」といったデベロッパー目線で理解できるようになり、学習したことで日常の楽しみに幅が出てきた。

しかし、今はなんとなく「プログラムの読み方」が解った程度なので、まだまだ偉そうなことは言えない。でも、プログラミングができると"今まで手作業でやってきたことの自動化"なんかができるようになってとても便利になる。また、開発者頼りだったアプリも自分で作れるようになれば、自分の好きな機能を追加できたりするので、仕事にしなくても趣味レベルでコスパを向上させることができるだろう。

なので、興味を持っている人にはぜひ学習することをオススメしたい。今は無料の教材なんかはいくらでもあるので初期投資なんかも必要ない。とりあえずYoutubeで検索すれば一通り基礎を学ぶことはできる。

今後の課題


とりあえず、今はJSで デジタル時計、アナログ時計、世界時計、ストップウォッチ なんかが作れるくらいにはなったが、誰もがスマホを持つような時代にこれらをサイトに実装しても全然需要はないだろう。

そこで、少なからず"誰かの役に立つツール"を作ってみたいと思う。なので、まずはWebアプリとしてこのブログに実装することを目標に成果物を作ってみたいと思う。

で、後々はオリジナルのBloggerテンプレートなんかが書けるようになれば、とりあえずは御の字かな?