駆け出しエンジニアは技術入門を繰り返すべき理由

Web系のITエンジニアの技術的なスキルといえば、大きく分けてフロントエンドとバックエンドに該当されます。

キラキラしてる最新のフロントしかやりたくないって人もいれば、 毎回学び直しが嫌なのでバックエンドしかやりたくない人もいます。

フリーランスになってもそういう人は結構いるみたいです。

私からするとどっちもやりゃいいやんって感じなんですが……

自らスキルアップの機会を潰してどないすんのって。

まぁこれは私自身の感想なので押し付けるわけにも行かないので好きにしてくれとしか。

駆け出しエンジニアがやるべきは入門の繰り返し

やれVueだのReactだのRailsだのLaravelだの……

これらの技術を覚えたいという駆け出しエンジニアが結構目立ちます。

大体がどれか1つなんですよね。

エンジニアを目指してるなら全部やったらいいんじゃない。 って思うんですが、返ってくる言葉は決まって

「めんどうくさい」

「わからない」

「むずかしそう」

こういう人は十中八九、気づいたら別のことやってます。

おそらくReactならReduxを扱おうとして挫折したりして Vueに逃げてVuexでちょっとわかったけど挫折。

久々に見てみたらプロフィールが「Rails or Laravelやってます!」みたいな感じの人。

ま、昔の私なんですけどね(笑)

こういう人はある時、一気に成長します。

その「時」がいつかは人にもよりますが、いろんな技術の入門をやっていると 大体「同じところで詰まってそのことについて調べる」を繰り返します。

そうです。自分でも気付かぬうちに反復練習をしていることになります。

エンジニアに限らず技術は反復練習によって伸びます。

1つの人気技術を重点的にやっている人より、 いろんな技術を触って幅広く知ってるほうがのびしろがあります。

「俺これしか興味ないから」って言って1つの技術のプロフェッショナルの人がいた場合 そういう人は天才タイプか、すでにいろんな技術を触って辿り着いた結果なんです。

駆け出しがそういう人を見習って1つの技術にしか手を出さないのは完全に死亡フラグを立てています。

つよつよエンジニアを目指すなら入門しまくれ

駆け出しエンジニアがやるべきは、目指している技術を学びつつ 類似の技術にも同時に手を出して幅広く知識をみにつけること。

具体的に言ってしまえばSNSを作りたいとしましょう。

SNSを作る手段なんてVueを使ってもReactを使ってもLaravelを使ってもRailsを使っても はたまたDjangoを使ってもなんでもできます。

とりあえずこの中から1つ決めましょう。

Laravelを使ってSNSを作るとしました。

ここでやるべきことはまずLaravelで1つSNS風のサイトを作り上げる(作り上げるということが重要)

その次に別の技術を使ってできる限り同じ機能を持ったSNSを作り上げる。

Vueであれば基本的なフロントエンドの仕組みを使い、Axiosを利用してデータベースでやり取りすれば PHPを使わずともサーバーと連携する非同期型SNSを作ることが出来ます。

それが出来たら次はDjangoを使ったりRailsに手を出してみてもいいです。

手を出す順番はどれでもOKです。

ここで気づいてほしいのが「SNSを作る」ということです。

多くの駆け出しエンジニアは「Vueが使える」「Reactが使える」って称号を手に入れたがりガチです。

それは手段であって目的ではありません。

客からすると専門技術なんてどうでもいいということ

たとえばアナタはお客さんとして、ショッピングサイトを作りたいとします。

Aさんは「Railsが使えます」とアピール

Bさんは「Laravelを使って作ります」とアピール

Cさんは「ショッピングサイトを何個か作ったことがあります」とアピール

3人共駆け出しエンジニアで大した実績はありません。

予算の都合上選択肢がこの3人だけになってしまった時、アナタは誰に頼みたいですか?

おそらく大体の人はCさんに仕事を頼みたくなると思います。

こういうことなんですよね。

AさんもBさんも技術的な実力はCさんより高いです。

それどころかCさんはカラーミーショップやストアーズ等でショップを作って実際に販売した経歴があるだけで RailsやLaravelで作った実績はありません。 (カラーミーやストアーズは素晴らしいシステムです。ディスってるわけじゃないです)

それでもCさんが選ばれたのは「ショッピングサイトを作ったことがある」というアピールです。

AさんやBさんはRails or Laravelを使ってこのようなショッピングサイトを作ったことがあります。

とアピールすればCさんより技術力もあってショッピングサイトを作る知識もあるとして 選ばれていた可能性がかなり高まっていたと思います。

これらは極端な例なのですが、フレームワークや言語技術そのものをアピールしても 仕事は取れませんという話ですね。

エンジニアは営業マンに対する営業マンであれ

このタイトルだけで1記事かけそうですが、あえてこの記事に書きます。

フリーランスにも言えることなのですが基本的にエンジニアという職業は お客さんとの間に営業マンが噛むことが多いです。

企業務めのエンジニアの場合は自ら営業をしないことが多いので 大体は同社の営業マンと一緒に仕事していると思います。

営業マンはお客さんから仕事をとってきて、その仕事を達成するために 自社のエンジニアに作成依頼をなげかけてきます。

大体のエンジニアが思う「無茶振りすぎんだろ……」 っていう仕事を押し付けられるのはどこの会社も同じかと思います(笑)

そうならないためにも、営業マンに対してこういう仕事を取ってくる場合は こういう技術で完成品を作りますよ。メリットやデメリットはこうこうで 工数はだいたいこれぐらいかかりますという資料を作っておくと良いですね。

営業マンとしても知識がなくてもそういう資料があれば 口がうまい人であればより契約も取りやすくなりますし エンジニア側としても自分が対応可能な技術の中から仕事を取ってきてくれたら 調査の工数とかもだいぶ削減できるのでWin-Winの関係に慣れます。

このことから直接関わる営業マンに対して営業をかけておくことが重要になります。

乱暴に言ってしまえば自衛ですね(笑)

あと営業マンに対して「なんでこっちから提示しなきゃいけないんだお前が聞きに来い。こっちは忙しいんだ!」 っていう態度を取らないほうがいいです。

なぜなら、営業マンは技術に対して知識がありません。

故にそもそも論エンジニアにどう聞いたら良いかわからないわけです。

エンジニア側からするとそれぐらい勉強しろよって思っちゃうかもしれませんが 逆に勉強されたらエンジニアが要らなくなっちゃうのでやめましょう(笑)

営業マンとエンジニアの溝が生まれるのはこういうところからかもしれませんね。

私が関わってきた営業マンはこういうタイプの人が多かったのもあって コミュ障な私でもある程度コミュニケーション力が身についてきました。

結局仕事はコミュニケーションから生まれるのでエンジニアもコミュ力を磨くべきです。

外部のお客さんより自社の仲間でコミュ力を鍛えられるのであれば これ以上楽なコミュ力向上の場ありません。

将来フリーランスになりたいのであればなおさらですね。

営業マンに対して営業するスキルを磨いておけば フリーになった時仕事も幾分とりやすくなります。