見出し画像

プログラミングが得意じゃないとダメですか…?

はじめまして。TENTOでエンジニア/講師をしている藤原です。
TENTOでは5年ほど働いています。ここ1年くらいはTENTOの授業で利用しているnoizというツールの開発をメインでやっていますが、以前は授業もしていました。開発ばかりしているのはつかれるのでそろそろ授業もやりたいな、と思っています。普段は別の会社でエンジニアをしています。
この記事は、今TENTOでプログラミングを学んでいる、もしくは学ぼうとしている皆さん、そして学んでいる・学ぶことを検討している方の保護者の皆さんに向けて書いています。 少し長いですが、お付き合いください。またあえて不正確な表現をしている箇所もありますが、識者の方にはおめこぼしいただきたく思います。

エンジニアのイメージってどんな感じ?

さて、皆さんは「ITエンジニア」と聞いてどのようなイメージを持ちますか?プログラムを書く人?黒い画面に文字を打っている人?
もしIT業界に詳しい方が読んでいるとしたら「そんな大雑把な括りでまとめるな」と怒られてしまいそうですが、実はIT業界のエンジニアにも様々なエンジニアがいます。 Googleやメルカリといった皆さんが知っているような企業にも得意分野が違うエンジニアが在籍しています。

どんなエンジニアがいるの?

さて、自己紹介の部分で「別の会社でエンジニアをしています」と書きましたが、僕の所属する会社での肩書は「インフラエンジニア」です。詳しくない人からすると「なにそれ?」という感じかもしれません。インフラエンジニアの仕事はざっくりというと、ネットワークやサーバーの保守・管理・運用です。
例えば、みなさんが今見ているnoteの記事。
これはどういった仕組みで皆さんのもとに届いているのでしょうか?簡単に説明すると、記事を保存しているコンピューター(=サーバー)があって、皆さんが使っているWebブラウザー(ChromeとかEdgeとか サイトを閲覧するためのソフト)から送信されたリクエストを回線(=ネットワーク)を通してやり取りしています。
サーバーに使われるコンピューターはみなさんが使っているパソコンやスマートフォンとあまり変わりありません。違うのは画面がついていないことくらいです。このサーバーだったりネットワークを構築したり管理したりするのが、僕たちインフラエンジニアの仕事です。
インフラエンジニアにも色々なひとがいます。 特に僕はサーバーを管理するエンジニアで、画面のついていないコンピューターにネットワーク経由でアクセスして、アプリケーションが動くように設定したりします。黒い画面に文字を打ち込んでいるエンジニアをイメージしてもらうといいです。あんな感じ。
ネットワークというのは、皆さんが利用している携帯電話の通信(LTEとか5Gとか)だったり、無線LANだったり、もしくは有線LANだったりします。こういった電波や電線でたくさんの機械を繋ぐ事によってインターネットというのが構成されています。さらに、海外と通信するために、なんと海の中を物理的に光ファイバーというケーブルで繋いでいたりします。実は結構アナログなことをやっているんです。
なんだか、ワクワクしませんか?
こんなふうに、電線を繋いだりコンピューターの面倒を見たりするエンジニアもいます。もちろん、プログラムを書くエンジニアもいます。中にはデータを処理/整理するエンジニアなんてのもいます。 色々な人が協力してサービスを作っているんです。

プログラミングが得意でないとITエンジニアになれないのか

さて、本題です。
最初に結論を書いてしまうと、僕の考えでは「プログラミングができたほうがいいけど、コンピューターが好きかどうかのほうが大事」です。上でも書きましたが、すべてのエンジニアがプログラミングを日常的に使っているのかというと、実はそうでもありません。僕の先輩には「プログラミングは得意じゃない…。」と言っているけどサーバーのことを頼むとすぐに解決してくれる人がいます。
ネットワークをつなぐエンジニアがいないとインターネットは繋がらないし、プログラムを書くエンジニアがいないとサービスは作れません。記事を読んでくれた皆さんの中には、「パソコンは好きだけどプログラミング実はあんまり得意じゃないんだよな。。。」「もっとすごいやついるしな…。」「うちの子、プログラミング向いていないんじゃないか」と思っている方もいるのではないでしょうか。
そういった方に、実はITエンジニアは「プログラミングが全てではない」ということをお伝えしたくてこの記事を書きました。
僕の個人的な話をすると、僕自身は「プログラムをたくさん書くインフラ屋さん」です。最近では、ネットワークやサーバーもソフトウェアで再現するというのが主流になってきています。とっても性能の高いコンピューターを用意してその中で、仮想的にコンピューターを何台も起動するという仕組みです。
この仮想的なコンピューターはソフトウェアなので、スイッチを押さなくてもプログラムで起動させられます。ネットワークも同じで、実際にケーブルを繋ぎ変えなくても通信できるようにしたり、全く別のネットワークにすることが可能です。
こういった指示を出すのはプログラムの仕事なので、そのプログラムを作ったり管理したりするのが僕の仕事です。僕はプログラミングがとっても得意というわけではないけれど、サーバーについてもある程度の知識があったのでこういう仕事をしています。
先程も書いたようにどんどんソフトウェアが進化しているので、プログラミングが必要とされる領域は増えています。だからといって、物理的なサーバーやネットワーク・海底ケーブルがなくなるわけではありません。
プログラミングが得意じゃないな、と思っていてもやっていたことが役に立つということは普通にあります。プログラミングを知っているのと知らないのでは理解できる範囲もぜんぜん違うので、得意じゃないけど知っている、というだけでも知識の幅が全然違います。

最後に

まとまらない長文お読みいただき、ありがとうございました。
僕の実務の話をベースに書いていますが、仕事に限らず趣味であっても同じことが言えると思っています。まずは、世界を広げるために「やってみたい」と思うことに挑戦してみてください。
そして、パソコンは好きだけどプログラミングはあんまり好きじゃないかも…って人がいたら、ぜひTENTOへ遊びに来てください。僕みたいなエンジニアもいます。(最近は授業に出ていないので、もしサーバーやネットワークの話がしてみたい・興味があるぞ、という人はこの記事を読んだことをお伝えください。)
もちろんプログラミング好きだよ、って人も大歓迎です!授業でサーバーやネットワークを扱うことは難しいかもしれませんが、まずはお話できればと思っています。
待ってます!
(エンジニア/講師 藤原 尚聡)


この記事が気に入ったらサポートをしてみませんか?