最短でWeb業界で給与を得るための最小知識2020

「最低でもこれだけ知ってないと」的なあれこれが飛び交ってますが、逆にどこまで覚えることや学ぶことを削れるか思考実験してみました。
クラウド(AWS, Azure, GCPなどです)を使ったWeb開発やそれらに近接したDevOpsと呼ばれる職種を想定しています。

過去の自分を振り返って、列挙した知識や技術スタックをいくつか身につけてWeb業界に潜り込めばなんとか生き延びられそうと思ったんですけどどうでしょうか。

目指すキャリアとの対応表

コメントいただいて職場や役割によって「開発するけどデプロイしない」「運用メイン」など色々あり得ることを思い出したので、ざっくり「Webアプリケーション開発」か「インフラ構築/運用」かで特に優先した方が良さそうな知識と技術スタックを分けてみました。

知識/技術スタック Webアプリケーション開発 インフラ構築/運用
ハードウェア - :star:
ネットワーク - :star:
Linux - :star:
Linuxコマンド - :star:
Webサーバー - :star:
Webアプリケーション/HTTP :star: -
HTML/CSS/JavaScript :star: -
バージョン管理/Git :star: :star:
データ/データベース :star: -

分野別の知識/技術スタック

ハードウェア

  • IOPS
    • 大きければ大きいほど良いものです
    • 課金で増やせます
  • ストレージサイズ
    • 大きければ大きいほど良いものです
    • 課金で増やせます
  • CPU(論理)コア数
    • CPUには種類がありますが AMD64 とか X86_64 ってやつだけ使ってれば外しません
    • もしiOS/AndroidアプリケーションやIoTなどの分野に興味がある場合は追加で ARM というやつが登場します
    • クラウドなら課金で増やせます、物理だと課金だけでは増やせないこともある
  • メモリサイズ
    • 大きければ大きいほど良いものです
    • クラウドなら課金で増やせます、物理だと課金だけでは増やせないこともある
  • ネットワークの帯域
    • 大きければ大きいほど良いものです
    • クラウドなら課金で増やせます、物理だと課金だけでは増やせないこともある
  • 仮想マシン/コンテナ
    • 言葉だけ知っておきましょう
    • EC2とGCEは仮想マシンです
    • ECS,EKSとGAE,GKEはコンテナのプラットフォームです
    • VirtualBoxやVMWareなどの仮想マシンとDockerなどのコンテナを触ったことがあると尚良いと思います

ネットワーク

  • ifconfig, ip addr show などの結果からIPv4アドレスが見つけられる
    • 123.456.789.012/33 は正しいIPv4アドレスではない
    • 00:00:5e:00:53:00 はIPアドレスではなくMACアドレス
    • 2001:db8::/32 はIPv4アドレスではなくIPv6アドレス
  • 2つのIPv4アドレスをみて同じサブネットにいるかどうか判別できる
  • example.com などのFQDNはDNSによって 192.0.2.1 などのIPv4アドレスに解決される
    • IPv6アドレスの場合は 2001:DB8::1 などですが2020年現在ではIPv4だけでもまだ生きていけそう

Linux

  • RHEL, CentOSとDebian GNU/Linux, Ubuntuが違うこと
    • パッケージにはRPMやDebがありますがこれらは違うものです
    • 同じ名前のパッケージ(例えばnginx)をインストールしても設定ファイルのpathが違うことがある
  • 権限/permission/user/group
    • ユーザーとグループには名前と数値で振られたIDがあります
    • 同じユーザー/グループ名でもIDが違えば、それは違うユーザーやグループです
    • ls -l などで表示されるユーザー/グループの権限は覚えましょう rwxr--r-- とか 644 とかそういうやつです
    • root ユーザーのIDは 0 です、これは特別なユーザーで普段から使うべきものではありません
  • シェルにはbash, zsh, ashなど種類がある
    • 微妙に違うのでシェルスクリプトを書くときにハマったりします
  • ファイルシステム
    • 種類がありますが意識することは稀でしょう、選べる場合は EXT4XFS を選べば大きく外しません
    • ファイルPATHは大文字小文字を区別します
    • ファイル名には次の文字種だけ使えば安全です: 半角アルファベット, 数字, -, _, .
      • ただし . を1文字目に使うと ls などで表示されず焦ります、特に意図がなければ2文字目以降に使うのが安全です
  • ファイルの拡張子とファイルの内容が関係ないことを知っている
  • Docker
    • docker run くらいはしたことあると良いですね

Linuxコマンド

  • SSHでリモートログイン
  • ls, cd, rm などの基本的なコマンド
  • vimの挿入モードとコマンドモード切り替えくらいはできると便利です
    • i とか a とか押してテキスト編集して、 ECS とか Ctrl+[ 押して :wq とかするあれです
    • 「エディタはvim選びましょう」という意味ではなく、多くのLinuxサーバーでvimは使えるため

Webサーバー

  • Apacheとnginxがカタカナで読める
    • Apache -> アパッチ
    • nginx -> エンジンエックス
  • Apacheかnginxを起動してHTMLを配信できる
  • Basic認証を設定できる
  • TLS/SSL証明書を設置できる

Webアプリケーション/HTTP

Webアプリケーション開発する場合、ここが一番多様になるでしょう。
「この言語やWebフレームワークが好き」というものがあればそれを選び、特にこだわりがなければ作りたいWebサービスや行きたい職場に合わせて選ぶのが良いのではないでしょうか。

私自身は最近こういうやり方を試してます :arrow_down_small:
「手っ取り早くWebフロントエンド + WebAPIを作り始める方法2020」メモ - Qiita

  • Webフロントエンドとサーバーサイドの区別がつく
    • Webブラウザが解釈できるのはあくまでHTML/CSS/JavaScriptです
    • Webブラウザでの処理は1人のユーザー向けなこと
    • サーバーサイドの処理は複数のユーザー向けに並列実行されること
  • プログラミング言語とWebフレームワークとライブラリの存在を知っている
    • Rubyはプログラミング言語, Ruby on RailsはWebフレームワーク, mysql2 はライブラリです
    • 興味のあるプログラミング言語の特性、インタプリタ(スクリプト)方式かコンパイル方式か、型のあり/なしなどを知っているときっと役立ちます
      • Javaのような言語や go run のような実行方法、TypeScriptのような例もあるのであまり深入りしなくても生きていけます
  • 何かのプログラミング言語でWebサーバーを起動できる
  • 何かのWebフレームワークを使って(あるいは使わずに)、 / にアクセスしたとき here is //foo にアクセスしたとき here is foo と表示できる
  • ファイルの中身が {"foo":1,"bar":"baz"} だったときに「JSONだ」と気づける

HTML/CSS/JavaScript

  • テキストエディタで数行ずつHTML, CSS, JavaScriptを書ける
    • HTML, CSS, JavaScriptが区別できており各ファイルで完結できるという意味です
  • ブラウザの「要素を検証」画面を開いたことがある

バージョン管理/Git

  • バージョン管理という概念
  • Gitと git add, git commit, git push, git pull くらいのコマンド

データ/データベース

  • テーブルとリレーションの概念
    • ER図読んだことあるとなお良し
  • Create, Read, Update, Delete (CRUD)という概念
    • SQLで INSERT, SELECT, UPDATE, DELETE までしてみるとなお良し
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
ユーザーは見つかりませんでした