【全部無料】本家サイトで学習するプログラミング&インフラ構築チュートリアル

スキルアップ

初めに

最近はオンラインのプログラミングスクールが流行っているようですね。皆で励まし合いながら勉強するというのがうけている理由でしょうか?

実のところ僕はプログラミングを誰からも教わったことがありません。完全に独学派です。

昔は初心者向けの本を買って呼んだりしてましたが、最近はその言語の本家サイトのドキュメントを見るのが一番信用がおけると思っています。

特に本家サイトのチュートリアルは、良くできているものが多く、言語の初心者には最適だと思います。

そこで僕がオススメするプログラム言語とか、クラウド環境構築のチュートリアルをまとめてみました。

ちなみに一つだけ言語のサイトじゃないのが入っているんですが、そちらもアルゴリズムを勉強するのにすごく良いと思ったので入れてあります。

JavaScript (ECMAScript)

JavaScript | MDN
JavaScript (JS) は軽量でインタープリター型(あるいは実行時コンパイルされる)第一級関数を備えたプログラミング言語です。ウェブページでよく使用されるスクリプト言語として知られ、多くのブラウザー以外の環境、例えば Node.js...

まずは JavaScript から。Javaって付いてるけど Java と何の関係もありません。

以前はWEBのクライアントサイドようの言語でしたが、最近は node.js とかも流行ってきてサーバ側でも使う人おおいんじゃないかな?

JavaScript 言語概要 - JavaScript | MDN
JavaScript はマルチパラダイムの動的言語であり、型や演算子、標準組み込みオブジェクト、メソッドがあります。その構文は Java や C 言語に由来するので、それらの言語の多くの構造が JavaScript にも同様に適用できます。...

JavaScriptはなんとなく触った事があるけど最新仕様がどうだったかな?という方はこの辺りがオススメです。

React

チュートリアル:React の導入 – React
ユーザインターフェース構築のための JavaScript ライブラリ

いまでは、JavaScript をそのまま書いてる人は少なくて、ほとんどの人はこういうフレームワークを使って書いてると思います。

以前は AngularJS というのが流行ってましたが、最近はこっちの方が多いと思います。

Vue.js

https://jp.vuejs.org/v2/guide/

すみません、僕は触ったことないんですが、もしかしたらこっちの方をやりたい人が多いのかな?と思いリンクをつけておきます。

PHP

PHP: 簡易チュートリアル - Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i...

個人的に、PHPは結構触ってました。このチュートリアルをやったかは、もう覚えてないです。すみません・・・。

一応書いておきます。

Java

The Java™ Tutorials
Tutorials and reference guides for the Java Programming Language

Javaはやっぱりこの辺りになりますね。日本語だとほんと嬉しいんですが・・・

Chromeで日本語に翻訳しながら読んでもいいかと思います。ただ、一通り目を通すと言語の基本的な部分は理解できるようになると思います。

HackerRank

HackerRank - Online Coding Tests and Technical Interviews
HackerRank is the market-leading coding test and interview solution for hiring developers. Start hiring at the pace of i...

ちょっとここで毛色の違うものを一つ。

コーディングの勉強サイトです。

コーディングテストをしながら言語(Java, C, Python, Ruby とかSQLもあったりします)を覚えられます。

また別途、アルゴリズムとかデータ構造の勉強もできます。

更にチュートリアルとして、Interview Preparation Kit というのもあります。

全部英語ですが、サンプル問題とサンプル解答が必ず付いているので、それを見ればなんとなく内容が分かると思います。難易度も初級から中級がメイン?なので、わりと取り組みやすい内容かと思います。

自分の知識のリビルドにいかがでしょうか?

(たしか)全部無料なので、僕自身かなり楽しく取り込んだ記憶があります。

Spring Boot

Spring | Quickstart
Level up your Java code and explore what Spring can do for you.

英語ですが、コマンドとコード追ってけばだいたいは理解できると思います。

まは Lean -> Guides を見ると、てっとり早くコアな機能を理解する事ができます。

Spring Cloud

GitHub - making/cloud-native-workshop: 1 day workshop to learn Spring Boot + Spring Cloud + Pivotal Cloud Foundry
1 day workshop to learn Spring Boot + Spring Cloud + Pivotal Cloud Foundry - making/cloud-native-workshop

良くマイクロサービスって聞くと思うんですが、じゃあ実際になんだっていうのは感覚的に理解している人が多いのかな?って思います。

細かく言うといろいろ定義があるのかもしれませんが・・・

僕自身は上記のチュートリアルをやって、一つのパターンを理解指摘がします。

ちょっと上記のソースが古いので、興味をがある方はこの辺り見てもらうとSpring Cloud をつかってマイクロサービスを実装する部分が理解していただけるのかな?と思います。

Spring | Cloud
Level up your Java code and explore what Spring can do for you.

Software Architecture Guide

Software Architecture Guide
Software Architecture is the important aspects of a software system's internal design, usually its major components and ...

かなりプログラム言語から飛躍しましたが・・・。エンタープライズの設計に興味がある方はこの辺りを読んでみてはいかがでしょうか? といいつつ私はちゃんと読んでない・・・。このあたりじっくり読んでみたいなー。

Twelve-Factor App

The Twelve-Factor App (日本語訳)
A methodology for building modern, scalable, maintainable software-as-a-service apps.

クラウドネイティブな設計は Twelve-Factor App だ!って一時期は騒がれていました。これはHerokuとかはやったころですかね。

大道としては間違っていないと思いますが、個人的には必ずしてもこれに縛られる必要は無いかなと思っています。

DevOps

そろそろ壮大にプログラム言語と関係なくなってきました(w

DevOps という言葉がでてきたのは、おそらくこのプレゼンからだと思います。

アメリカのヤフーに買収された Flicker のエンジニアが発表したプレゼンですね。

僕は当時 仕事の関係で Flicker のオフィスに行った事があるんですが、DevOpsとかの事は全然知りませんでした・・・(汗

Continuous Delivery

もはやプログラム関係なくなりました。

CI/CDとかが一般的になってきて、gitのパイプラインから、デプロイまでを一つの流れとして考えるのが普通になってきました。現状でこの辺りまで考えられている企業と、まだまだそうなっていない企業でだいぶ差があるのかと思います。正直、こういった環境ができてないと改善のスピードを上げるのが難しいですよね。

What is Continuous Delivery? - Continuous Delivery

Heroku

ここから環境構築系です。

Getting Started on Heroku with Rails 6.x | Heroku Dev Center
Creating, configuring, deploying and scaling Rails 6.x applications on Heroku, using Bundler dependency management.

初めて Heroku を触ったときは、かなりの衝撃でした!

これがクラウドか?って感じでしたね。あれ?そのころクラウドって行ってなかったかも・・・(適当)

サンプルは Rails ですが、それ以外のチュートリアルも沢山あるので、お好きなものをお試しください。

Google App Engine

Get started with PHP  |  Google Cloud

いやー、これも衝撃でしたね。Heroku と GAE てどっちが先だったんだっけ?

たしか当初はプログラム言語もかなり少なかった気がしますね。当初はどんな言語が使えたのかおぼえてないので、とりあえず PHP のチュートリアルを上げておきます。

Google Kubernetes Engine

コンテナ化されたウェブ アプリケーションのデプロイ  |  Kubernetes Engine  |  Google Cloud
デプロイする

こちらは、今な流行りのKubernetesです。正直個人的には、このオーケストレーションが必要な状況てそう多くないんじゃないかなと思っちゃいます。googleとかはいるのかもしれないけど・・・。

まあ、とりあえず流行ってるらしいので。

AWS

Amazon Elastic Compute Cloud

上記に比べるとだいぶ、ベーシックな内容になりますが・・・。

AWSって以外とドキュメント多い割に、ちょうど良い取っ掛かりがないんですよね。

そんなわけで、ベーシックなEC2セットアップしてみよう。っていうぐらいからのそこそこ入りやすいやつと持ってきました。

そこそこオンプレは触ってきたけど、AWSは初めてだなって方にはちょうど良いと思います。

まとめ

というわけで、プログラム言語とか、クラウド環境とか、設計思想まで含めて できるだけオリジナルサイトのチュートリアルをまとめてみました。

皆さんのスキルアップに是非役立ててみてください!!!