Webエンジニアに必要なプログラミング言語以外の周辺技術
プログラミングを学んでいる時は、プログラミングを学ぶだけで一苦労だと思いますが、エンジニアとして仕事をしていくにはプログラミング言語以外の周辺技術も色々学んでいく必要があります。
いきなり手をつける必要はないのですが、どんな知識が必要か触れて行こうと思います。
完全に主観です。🤓
参考程度にしてください。
Git
バージョン管理のデファクトスタンダードです。
Web系の会社でGitを使っていない会社はないのでは...?
Gitと合わせてGithubについても使い方は簡単に知っておくと、色々便利です。
データベース(DB)
DBをちゃんと学ぼうとすると大変ですが、DBが何者でどんな風に情報が保存されているのか、みたいなところは知っておくと開発中におきたエラーの原因を絞り込むのに役立つと思います。
SQL
上記のデータベースと合わせて、Webアプリケーションを作るのに必須の技術です。Railsを使っていると ActiveRecord というO/Rマッパーを使っているのでSQLを意識せずにDBへの問い合わせができますが、簡単なSQLの書き方は知っておくと意図したデータが取得できない時などに、調査が簡単になります。
select(検索)、insert(登録)、update(更新)のSQLの書き方を知っておくだけでもだいぶ違ってくるでしょう。
オブジェクト指向
オブジェクト指向とは...というのをここで語るのは大変なので触れませんが、チームで開発していく上では、わかりやすいコード、メンテナンスがしやすいコードが大事になってきます。
それを実現する上で、エンジニアの共通認識として持っているオブジェクト指向について理解を深めておくと、わかりやすいコード、メンテナンスがしやすいコードがかけるようになるでしょう。
Docker
とりあえず開発環境が簡単にできる便利なもの、ぐらいの認識で良いと思います。
今後はDockerを使って開発環境、本番環境を作っていくのが主流になっていくでしょう。1から環境を作れるレベルにまではならなくてもいいかもしれませんが、ネット上にあるDockerを使ったRails環境の作り方、みたいな記事の内容は理解できて、それを見ながら環境を作れる。ぐらいの知識があると良いと思います。
SCSS
一応ここはRailsを前提とした記事なので、RailsのデフォルトのCSS拡張であるSCSSとしてます。
CSSとかHTMLの書き方は、なんとなく自然に覚えていきそうなんですが。
今だと display: flex
とか display: grid
あたりを押さえておくのが重要な気がします。
CSSって一回変な書き方覚えると、ぱっと見ができてしまっているがためにあんまりちゃんと学ぼうとする機会がなくなっちゃうので、割と意識的に情報をキャッチアップしていく必要があると思ってます。
SCSSは通常のCSSと違って変数が使えるので、それぐらいは最初のうちに押さえておくと良いかもしれませんね。
JavaScript
たまにJavaScriptは書けないですが、jQueryなら書けます。みたいな方がいるのですが jQueryはJavaScriptのライブラリなので、jQueryが書けたらJavaScriptは書けています。
今の流れとしてjQueryを使わない流れになっているので、jQueryを使わないで表現してみるのがいいかなーって思ってます。(使ってもいいですが)
Linuxのコマンド
本番サーバをherokuなどのPaaSを使わないのであれば、本番サーバに入って、ゴニョゴニョするために必要です。
最初は必要ないかもだけど、コマンドの操作に慣れると作業がめっちゃ早くなるので、Macの「ターミナル」を使ってコマンドラインから色々操作ができるので、そこで操作に慣れると良いかも。
あとはローカル環境にDockerの環境を作るときも、コマンド操作が必要になってきますし、何かと使えないと不便なことあります。
リクエストとかレスポンスの知識
なんか段々表現が雑になってきてしまいましたが、どんなリクエストがブラウザから投げられて、どんなレスポンスがサーバから返ってきているのか?
POSTとGETの違いとは?
この辺の処理の流れを押さえておくと、デバッグ速度は3倍です。
SEO
これが技術なのか...って感じですが、今Webサイトを作って集客する上では無視できないでしょう。
とりあえず titleとh1は重要なんだなーってぐらい覚えておきましょう。