【はじめに】自己紹介とご挨拶
こんにちは、@CPAKOといいます。
普段は公認会計士として監査法人というところで働いておりますが、ひょんなことからプログラミングを学んでいる趣味趣味エンジニアです。
今回がQiita初投稿となりますが、自分が実際に勉強をしていて、**「これが無料なの?」**と思った教材やハンズオンの一覧をまとめていきたいと思います。
基本的に興味が爆散した結果、デザインからフロント、サーバーサイド、インフラ、DB全部手を付けているので、取り留めが無いことをお許しください。
また、秘伝のたれのように継ぎ足し継ぎ足しで書いていこうと思いますので、是非、**「これもあるよ!!!」とか、「これ忘れんじゃねえ!!!」**などありましたら御指摘頂けると幸いです。
コマンドライン(Linux操作)編
まずは、**コマンドライン(Linux操作)**です。
急にコマンドラインかよと思うかもしれませんが、残念ながらコマンドラインにすら驚いたレベルの人間なのでお許しください。
GUIのありがたみを感じつつ、CUIの難しさと便利さを知りましょう。
コマンドライン操作はいずれにせよプログラミングの勉強を続けるうえで絶対に避けられないかと思います。
以下が一番、丁寧かつ分かりやすくそして無料で公開されていたのでお勧めです。
Linux標準教科書
https://linuc.org/textbooks/linux/・コマンドラインから、正規表現、シェルスクリプト等の基礎を学べる教材です。
・Linux誕生の歴史にも触れられているほか、練習問題などもあるので、着実に技術習得が出来ます。
・また、テストであるLinuCのレベル1試験にも役立つ内容となっているようです。
また、その他に、
・ Linuxサーバー構築標準教科書(https://linuc.org/textbooks/server/)
・ Linuxセキュリティ標準教科書(https://linuc.org/textbooks/security/)
・ Linuxシステム管理標準教科書(https://linuc.org/textbooks/admin/)
・ オープンソースデータベース標準教科書(https://oss-db.jp/ossdbtext)
・ 高信頼システム構築標準教科書(https://linuc.org/textbooks/system/)
の5つが用意されていますので、どんどん勉強を進める方はこちらを利用してもいいかもしれません。
下2つは少し毛並みが違うようですので、御留意ください。
自分はいずれ、LinuCの試験を受けてみたいと思っているので、フル活用をしたいと思います。
Progate コマンドライン講座
実際にハンズオンで操作をしながら簡単にコマンドライン操作を学ぶことが出来ます。
Progateは1講座目は基本的に受講が無料ですので、1講座で完結するコマンドライン講座は登録するだけで受けることが出来ます。
やはり実際に書いて試すことはプログラミングの鉄則なので、ぜひ登録して勉強したコマンドを打ち込んでみてください。
SQL編
お次はSQLです。
ORマッパー等の登場により、SQLがかけなくてもDB操作が出来る環境下にはなっているようですが、
やはり、自分の書いたコードでどのようなSQLが発行されるか、そして、何か問題があったとき、原因を特定できるかという点は非常に重要です。
そのためにSQLについては必ず基礎を学ぶべきと、いろいろな方から教わりました。
TECHSCORE-SQL
TECHSCOREさんはJavaやRuby、SQLの様々な解説を無料で公開してくれています。
SQLのページにおいては、DBの概要から、SQL,各テーブル操作、データの入力、データの参照、ユーザ管理等について全14章で説明をしています。
TECHSCOREさんの公開している講座の中で、もっともSQLに関する説明が充実している印象です。
実際にサブクエリやトランザクションまで体系的に説明している無料のサイトはあまりないと思いますので、非常に勉強になります。
SQL学習-分かりやすい説明とオンラインでの練習
http://studybyyourself.com/seminar/sql/course/?lang=ja
DBの基礎知識から簡単なSQL文に関する説明などが記載されているサイトです。初心者の方が、まず、DBとはなにか、SQLとはなにか雰囲気を知るのであれば非常に良いかと思います。
SQL ZOO
SQL文をある程度理解した後は、実際にSQLを書いてみることが重要です。
また、MySQLやPostgreSQLなどを導入するのも大変だったりするので、オンラインで完結する講座は貴重です。
SQL ZOOは英語のサイト(他に中国語などもサポート)にはなってしまいますが、各小問が用意され、実際にSQLを記載して正解・不正解をすぐに教えてくれるサイトです。
基礎的なSQL文の練習などがしたい方は是非利用してください。
Git編
次はGitです。
言わずもがなのバージョン管理ツール。
監査法人ではエクセルやWordで監査調書を作成するのですが、Gitをより簡単に誰でも利用できるようにしたようなバージョン管理ソフトを利用しています。
このバージョン管理ツールは、特に複数人での編集などを可能にしたことがすごく画期的な機能らしいです。
最初からGoogleのスプレッドシート使えよ
はじめてのGitとGitHub(Udemy)
後ほど、Railsチュートリアルについて触れますが、バージョン管理ソフトのバの字も分からない状態で、
Railsチュートリアルに突撃したことがありますので、その前にこの講義を1時間聞いておけばよかったなあと思った講義です。
ちなみに、チーム作業を前提としていないGitの使い方講座なので、マージやブランチの仕組みは説明されていません。
これだけで網羅されているとは言いにくいですが、以下のテキストやRailsチュートリアルと併せると理解が進みます。
ProGit
Gitをはじめ、バージョン管理ソフトに関する歴史等も含めてテキスト化している書籍です。
もともとは海外の本だったものを有志によって日本語訳され、無料で公開されています。
こちらの本では、上記の講座にないようなマージやブランチの概念も全て併せて公開されていますので、物足りない方は是非読んでみてください。
なお、海外の本だったこともあり、微妙な日本語訳のブレがあったりするのですが、そこはご愛敬として諦めましょう。
正規表現編
次は正規表現です。初めて正規表現をしったときはなんて便利なんだ!と思ったのを覚えています。
では、紹介していきます。
初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」
僕が勝手に崇拝する伊藤さんの正規表現ハンズオンです。
十分かつ必要な正規表現の使い方がこのハンズオン:その1~その3をクリアすることにより学べます。
このハンズオンには、プロを目指す人のためのRuby入門を進めていると、正規表現分からない人は、Qiita見てね!」と書いてあって出会いました。
めちゃくちゃ正規表現わかります、ほんとにめちゃくちゃわかります。本当にコレ無料でいいの?ってなるくらい感動するので、ぜひ体験してみてください。
もっと深く知りたい人はオライリーの教科書買ってみてね!とあったので、即買いしましたが、今iPadでPDFとして眠っています。
Ruby/Rails編
次はメインで勉強しているRubyです。
TECHSCORE-Ruby
上記のSQL編で紹介をしたTECH SCOREさんのRuby編です。
SQLと比較すると少しボリュームに欠けますが、基本的なRubyに関するお話、変数や定数定義、配列、条件分岐などに関する点を学ぶことが出来ます。
Ruby On Rails チュートリアル
超有名なRailsチュートリアルです。
僕はRubyをほぼ知らない状態で、勉強を無理やり進めたのですが、Rubyだけでなく、加えてMVCアーキテクチャとはなにか、DBの正規化とはなにか、通信プロトコルやセキュリティ等、必要な情報がまとまっています。
よくRailsチュートリアル等をやったのち、理解をしないままアプリケーションが作れてしまうことが批判されていますが、
一度走り切ることも僕は大事だと思っています。
通信プロトコル編
Real World HTTP ミニ版
2017年に発行した『Real World HTTP』のミニ版で、なんと無料の電子書籍です。
HTTPの歴史や、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、実際の使用例などを交えて紹介してくれています。
一部の内容はフルプライス版と比較すると省略されてしまっているようですが、このミニ版でも非常に充分な勉強ができます。
まとめ
以上で記載した内容をまとめておきます。
もし、**これは絶対紹介すべき!!!**というものがあればフィードバックいただけると幸いです。
・【書籍】Linux標準教科書(https://linuc.org/textbooks/linux/)
・【書籍】 Linuxサーバー構築標準教科書(https://linuc.org/textbooks/server/)
・【書籍】 Linuxセキュリティ標準教科書(https://linuc.org/textbooks/security/)
・【書籍】 Linuxシステム管理標準教科書(https://linuc.org/textbooks/admin/)
・【書籍】 オープンソースデータベース標準教科書(https://oss-db.jp/ossdbtext)
・【書籍】 高信頼システム構築標準教科書(https://linuc.org/textbooks/system/)
・【学習サイト】TECHSCORE-SQL(https://www.techscore.com/tech/sql/index.html/)
・【学習サイト】 SQL学習-分かりやすい説明とオンラインでの練習(http://studybyyourself.com/seminar/sql/course/?lang=ja)
・【学習サイト】はじめてのGitとGitHub(Udemy)(https://www.udemy.com/intro_git/)
・【学習サイト】 ProGit(https://progit-ja.github.io/)
・【学習サイト】 初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」(https://qiita.com/jnchito/items/893c887fbf19e17d3ff9)
・【学習サイト】 TECHSCORE-Ruby(https://www.techscore.com/tech/Ruby/Lang/)
・【学習サイト】 Ruby On Rails チュートリアル(https://railstutorial.jp/)
・【書籍】 Real World HTTP ミニ版(https://www.oreilly.co.jp/books/9784873118789/)