🚃

家が大学から遠い君!通学時間を活かして最強にならないか?

2022/04/19に公開

※ この記事は「家が学校から遠く、通学に時間のかかる学生の皆さん」に向けて書いています。
ですが、遠くの職場まで通勤しなければならない社会人の皆さんも活かせる内容かと思うので興味があったら一読してみて下さい。


こんにちは。最近学校が始まって体力が早くも尽きかけていますlogicaです。
ちなみに今日、4/19が誕生日です。心の中で祝って下さい。

さて、この前大学のサークルでLT会がありました。
最近外部LTで重めの技術LTしてて胃もたれ気味だったので、ここらで少し軽めのLTがしたいな~と思って、「通学時間が長い、エンジニアを志す人向けのライフハック」について語りました。

というわけで今回の記事はそのLTの内容を文字に起こして読み物にしたものです。ぜひお楽しみください。

家、遠くない?

さて突然ですが皆さん、「家、学校から遠いな~」と思ったことありません?

...「無いよ!」って人は、残念ながらこの記事の対象読者ではないので、ここでブラウザバックしていただいて大丈夫です。

「遠くて辛い!」って人、僕も仲間です! 家が遠いと、対面授業を受けるコンディションに遷移するための活性化エネルギーを、通学の分で上乗せされている感じでなんか損な気分になりますよね。
でも、今日は前向きに考えましょう。せっかく長い通学時間があるなら、どうにかして有効に生かしたいですよね。

通学時間で何をしよう?

僕は以下のようなものが考えつきました。

  • 寝て疲れを取る
    • 立ってると難しい
  • ゲーム
    • なんか生産性ない
    • ちょっと罪悪感が(個人的な感想)
  • 課題・予復習
    • 本腰入れないとやる気が出る気がしない

特に、課題の予復習に関してはとても有効な活かし方な気がしますが、僕は勉強がそんなに好きな方ではないので、電車で課題するのって相当エネルギー必要なんですよね...
多分そんなことしたら倒れる。

ということで、現実味がある選択肢として、
「興味のある分野に関しての勉強をする」
というのが挙げられます。

勉強できそうな分野

僕の興味のある範囲を言うと、

  • デザイン
  • 動画制作
  • 作曲・音楽理論
  • Webエンジニアリング

などがあります。
みなさんも自分の好みに合わせて選ぶのが良いでしょう。

せっかくなので今日は、普段僕が主に勉強しているWebエンジニアリングについて、その魅力と勉強に使えるツール類を紹介していこうと思います。

Webエンジニアリングとは

Zennにはあまりいないかもしれませんが、「Webエンジニアリングってなんだ?」という人のために一応解説を。

Webエンジニアリングは、「Webアプリケーションの開発・運用に関わる一連の作業」を意味します。

Webアプリケーションは、Twitterなどの、Webサイト上で「動的に」動くアプリケーションです。「動的」は、ユーザーからの入力によって出力が変わるという意味です。
例えば、皆さんよくご存じ、爆速読み込みで有名な阿部寛さんのホームページ。あのページは、僕らがいつどこからどんな風にアクセスしても同じ画面を返します。あれが「静的」なページです。
対してTwitterなら、ユーザーのツイート・自分がフォローしているアカウントによってタイムラインの内容は変わります。このように、ユーザーのコンディションによって表示内容が変わるものがざっくり言った「Webアプリケーション」です。

進化し続けるWeb

技術は進化し続けます。特にWebエンジニアリングの分野は速いと(個人的には)思います。
今急速に需要が高まっている分野ですし、新規エンジニアの参入も盛んです。

どんどん新しい技術的な流行り・脅威が出て来ています。いくつか例を見てみましょう。

Go(プログラミング言語)

Go言語は、僕が愛してやまない、Googleによって開発されてたプログラミング言語です。
2012年に正式リリースされたため、まだ10年ほどしか経っていません。

Goが得意とする領域である「サーバーサイド」では、5~10年前まで多くの企業でRubyという言語が全盛期でした。しかし、最近Goが段々シェアを奪い始めています。様々な企業がGoの良さに気づき、今までRubyで感じていた辛さを軽減してくれる、と感じているそうです。

これは、新しいツールが使いやすければどんどんそれに乗り換えていく、所謂「流行り廃り」がエンジニア界隈も存在するということを示しています。

サプライチェーン攻撃

誤解を恐れず言えば、ハッキングの一種です。開発者が使うツールやライブラリに悪性のプログラムを仕込み、それをダウンロードして使っている人のPCのデータを抜き取ったり改ざんしたりします。

半月ほど前、ロシアのウクライナ侵攻への反戦運動として、あるライブラリに「実行時、実行したPCのデスクトップに反戦の意を示したテキストファイルを生成する」機能を組み込んだライブラリ製作者さんがいました。
多くの製品に使用されていたライブラリだったため、大きなところで言えばUnity Hubなどがそれを知らずにその機能をソフトウェアに入れてしまい、この是非をめぐってTwitterやGitHubが炎上してしまいました。

このケースは無害なファイルであり、社会的に間違ったことをしていなかったとはいえ、一歩間違えたらウィルスを仕込むことも可能だったので、多くのライブラリ使用者・そしてライブラリを使ったソフトウェアを使用している人がサプライチェーン攻撃の脅威を再確認した瞬間でした。

このように、時事問題がエンジニア界隈の技術事情に影響することもあるのです。

良いエンジニアになる

良いエンジニアになるためには、良いエンジニアであり続けなければならない

これは当たり前ですね。
一時良いエンジニアだったけど、すぐにそうじゃなくなってしまう人は、本当に良いエンジニアとは言えませんよね。

良いエンジニアであり続けるためには常にトレンドに精通してなければいけない

とても重要な事です。エンジニアが「手に一回職を付けたらあとは人生イージーモード」だと思っている方がいたら今すぐその考え方を捨てたほうが良いです。

上で紹介した通り、技術には常に新しい流行り・廃りがあります。ハッカー・クラッカーとの戦いもいたちごっこの真っ最中です。

今流行りの技術を身に着けたとしても、5年後には使えない人材、特に新規開発ではお荷物になってしまうこともザラにあるんです。
そうなったエンジニアは、以前誰かが開発したアプリケーションのバグ修正を永遠にやるだけの、「化石エンジニア」と化してしまうのです。

「エンジニアは一生勉強」

「エンジニアは一生勉強しなければいけない」という言葉、僕は間違いないと思います。
最低でも「常に時代の最先端で新しい価値を生み出すエンジニア」になりたいのであれば、確実に必要なことだと思っています。

通学時間を使って、トレンドに追いつく

Webエンジニアを志すと、PCの前に座ったら反射的に作業体制に移ってしまうことが良くあります。

  • アイデアさえあれば作るものは無限にある
  • 試したい技術も無限にある
  • やる気さえあればやることが尽きない

あたりが原因です。エンジニアリングのバイトなど、〆切のある仕事をしていれば尚更です。

人によって異なるとは思いますが、少なくとも僕は、電車に乗ってる時間が作業のことを考えずに何かに集中できる希少な時間になる、と考えています。

勉強のリソース

勉強するためには、参考にするリソースが必要ですね。
というわけで、おすすめのリソースをステージごとに紹介していきます。

初心者向け

正しく、新しい情報を集めることはとても重要です。ですが、何もわからない初心者の頃は正誤・新旧・その他の判断が難しいことがあります。
ですが、勉強のリソースを絞ることで、難しい判断を避けることができる可能性が高まると自分は考えています。

公式ドキュメント

  • 最大のメリットは、基本常に更新される & 常に正しいところ
  • 興味ある技術の公式ドキュメント・チュートリアルを電車内で読んでみる
    • ある程度調べたい技術が固まってないと使えない手段
    • Webエンジニアなら、新歓ブログリレーで使ったReact / Goとか?
  • 例: A Tour of Go (Goのチュートリアル)
    • スマホだとちょっと小っちゃいけど読めるし試せる

YouTube

  • エンジニア系YouTuberの動画
    • 仕事としてやっている人が少なくないので、最新の情報に合わせたコンテンツが提供されやすい
    • できるだけ新しい動画・解説が丁寧なチャンネルを選ぼう
  • 「0から~」系やシリーズものチュートリアルがオススメ
    • 全てをくまなく解説してくれる
    • 従っていれば細かいバグ・エラーなどが起こりにくい

(Zenn、Qiitaなどの個人技術ブログ)

  • 個別のエラー・バグに関する情報の収集材料として
    • 集合知、ビッグデータとして活用できる
  • 初心者のうちは、エラーの解決に絞って使うのが良いと思う
    • 理由は後述

中~上級者向け

何らかのプログラミング言語を使って何かソフトフェアを作ったとか、何かプロジェクト・課題をクリアしたという経験をいくつか(2~3個ほど?)積むと、だいぶプログラミング言語の扱いにも慣れてくると思います。
自分なりに開発のノウハウが出てきたら、上記のリソースに加えて次のような中~上級者向けのリソースを使用しても良いかもしれません。

  • 「技術書」と呼ばれるカテゴリー
  • Kindleの端末がオススメ
    • 技術書、A4で500ページとかあってめっちゃ重くてデカいので持ち運びを考えるとKindle
    • 目に優しい(諸説あり)

企業ブログ

  • 結構ハイレベルな話が多いことがある
  • 「仕事としての開発」に興味がある人にはとてもオススメ

(改めて)Zenn、Qiitaなどの個人技術ブログ

Zennで初心者向けの記事を書きながら「初心者に技術ブログをオススメしないよ」と矛盾することを言ってしまっていますが、きちんと理由があります。

  • 質がピンからキリまである
    • 精査がない、公開しようとしたらポンと出せる
  • 自分が欲しい情報を、正確性なども判断しながら選んで吸収できるくらいの前提知識がつかないと活用は難しい
    • あくまで個人的な意見
    • 新技術の紹介など、エラー解決以外の技術の情報の場合は特にそう
      • エラー解決も間違った情報はところどころあるが、偏見・意見が入りにくい(体感)
  • 最新技術に追いつくためには、これらのトレンドを見るのが良い手段

ブログを自分でサーフィンするのが面倒な方に

そんなあなたに
モヒカンSlack
と呼ばれるSlackのワークスペースがおすすめです!

加入はこちらから

技術ブログのRSSリーダー(新着通知的な奴)をカテゴリ別にまとめてくれてるワークスペースで、エンジニアの情報収集を楽にするという目的で作られました。
ものすごい量のトピックがあり、興味のあるチャンネルに参加することができます!

トピック例

  • 言語・フレームワーク系: Go、TS、React、Vue、Rust、Pythonなど
  • インフラ系: Docker、Kubernetes、DBなど
  • クラウド系: Firebase、AWS、GCPなど
  • その他: 機械学習、Linux、技術イベント開催情報など

ぜひ活用してみて下さいね!

まとめ

色んなことを言いましたが、要するに

  • 通学時間が長いなら、そこで興味ある分野の勉強してみない?
  • 良いエンジニアになるためには継続的な情報収集が必要
    • 新しく・正確な情報
  • 情報収集にオススメの手段を紹介したよ
    • ステージによって手段を考えることで、誤情報を鵜吞みにするリスクを減らせる

ということです。
これらのリソースを活用して、エンジニアとしての成長を目指すのも悪くないかもしれませんよ?

ここまで読んで下さってありがとうございました!
それではみなさん、良い電車通学ライフを。

Discussion