主な内容
学校でHTMLを触る機会があり、そこでWeb関連に興味を持ったのをキッカケに、のめり込むように勉強してきましたので、この1年間のやってきた事を書きたいと思います。
当初の自分は大雑把に
- フロントエンド
- バックエンド
- インフラ
という三本柱がWebサイトを動かすのに必要な技術なんだなぁと思いました。
(上記を細かくしようと思えばどこまでも細かくなりますが)
当時の無知な自分は「そうか、これが必要な技術なのか〜じゃあ全部触ろう」という事になりました。
具体的に何をしたのか
下にも詳しく書きましたが、全てにおいて意識したのは学習した事について何かしらの成果物を作ろうと考えました。
以下にそれぞれ何を勉強したのか、最終的な成果物、参考にした本・サイトを書いて行きます。
それぞれに必要な知識は全て本とネットの情報から得て、どうしても分からない時はtwitterで教えて頂くなどしました。
フロントエンド
- HTML/CSS
- JavaScript
- 成果物:コンテンツを掲載できるような静的Webサイト/ブログ・JSで簡単なゲームや便利アプリっぽいもの
まず基礎中の基礎のHTML/CSSを学びました。
プログラミングに比べて習得難易度が低いため、ある程度ネットで知識を入れた後に
体系的な本を参考にしながらWebサイトの構築を行いました。
参考にした本
次にJavaScriptですが、実質初めてのプログラミングだった事もあり、ある程度書けるようになるまでに大幅な時間がかかりました。
参考にした本
これに加えてネットでES6以降の書き方などの勉強もしました。
最終的にはHTML/CSSで静的なWebサイトと、JSでライフゲームと簡単なアプリ、そしてタイピングゲームを制作しました。
インフラ
- Linux(CentOS)
- Webサーバ構築(Apache)
- その他(ドメインやネットワーク関連、セキュリティなど)
- 成果物:ブラウザからアクセスできる自宅Webサーバの構築
なぜインフラが先なのかですが、上で作った静的サイトをまず公開したかったからです。
Linuxはおろかコマンドラインの操作さえ初めてに加え、全世界に公開するとなれば必須なセキュリティ対策もやらねばいけないため、こちらも大幅な時間がかかりました。
更に、サーバー代をケチりたかった 豊富な知識を得るために、自宅サーバーにしました。
大まかな手順は
サーバー用のPCを組み立て
↓
CentOS7をインストール・セットアップ
↓
Apacheをインストール・公開に向けてセッティング
↓
ドメインの取得・公開
↓
という流れで、上で作ったWebサイトを公開しました。
参考にした本
参考にしたサイト
バックエンド
- PHP
- Ruby
- Ruby on Rails
- 成果物(未完):静的サイトを動的サイトにする(テンプレートエンジンや、記事投稿のためのCMSモドキなど、色々やりたい)
こちらはPHPかRubyで迷った挙句PHPを勉強していたのですが、Rubyめっちゃ良い言語だよ!オブジェクト指向大事だよ!それを学ぶならRubyだよ!有名なRailsもあるヨ!という言葉に惹かれてRubyを学び始めたら面白くて止められなくなりました。
その後、成果物をどうするか色々考えたのですが Railsがやりたかった FW無しでは実装が重そう・セキュリティ面で怖い部分があるなどの理由によりFWの勉強を優先しました。
上に書いた成果物を現在進行形でインプットしつつ製作中であります。
参考にした本
参考にしたサイト
- [Rails Tutorial] (https://railstutorial.jp)
意識したこと
上にも書きましたが、終始意識していた事は習得した(と思える)技術に関しての何かしらの成果物を作るという事です。
技術の勉強自体は楽しいけれど、やはり何かを作れないと「楽しいけどなんのためにやってるんだコレ...」となったりする時がたまにあります。
自分は昔プログラミングをCやJavaから始めて何かを作れる段階まで行けず挫折した経験があります。
それに比べてWeb系の技術は、比較的簡単に目に見えるものが作れるのでモチベの維持がしやすいなと思っております。
(txtファイルを.htmlに変えてダブルクリックしたらブラウザで表示/実行できるってすごくないですか?僕は一週間くらい感動してました)
最後に
色々書きましたが、やはり一番大きいのは「ゼロから自分でコレを作れた!」という安心感・満足感でしょうか。
長期間インプットしてヨシ!となるのも良いと思いますが、自分の性格上「かなり勉強して習得した気がするけど本当に習得したのか...?」みたいな考えが浮かんでしまい夜も寝られなくなるのでこの辺を意識しました。
最後になりますが、多分効率は良くないです() というか時間かかり過ぎですよね。
何か作りたいものがあって、効率を考えるなら基礎をある程度理解した段階でライブラリやフレームワークを触ったりするのが一番良いかなぁと思います。(Railsなどはこの辺のことを一瞬でやってしまいます)
ですが、この辺の技術は基礎である為、遅かれ早かれ必要になりそうだし、触っておいて損はない部分かな〜とも思います。
基礎を勉強しようとしている初心者の方の参考になれば嬉しいです。
何事も基礎が大事ですよね!
Twitter → https://twitter.com/Alt70155