エンジニア4年目がエンジニアを語ってみた。


こんにちは、アンドレです。
気付けばまた1年が過ぎ、今年でエンジニア4年目となりました。
そしてこの1年で、エンジニアとはどうあるべきか、度々考えることがありました。
今回は、新たにエンジニアを目指す人に向けて、また自戒の念も込めて、僕なりのエンジニア像を語ってみたいと思います。

エンジニアとは…

考える・こだわりを持つ

ウェブエンジニアの仕事は、基本的にはデザインをHTML・CSSで再現し、必要な機能を実装することです。
しかし、それは最低限の仕事であり、真にエンジニアというなら、パフォーマンスや保守性なども考慮しながらコードを書く必要があります。
具体的には、前者は、短くスマートなコードを書くことや、関数の呼び出しを最低限にするなど。
後者は、コードに一貫性を持たせたり(命名規則等)、コード(コンポーネント)同士を疎結合な状態にしておくなどです。
CSS1つ取っても、例えば要素を横並びにするのにはいくつか方法がありますが、それぞれ特性があるので、デザインやレイアウトから考えればどの方法がベストか、定まることが多いです。
要は、「なんとなく書きました」ではなく、「〜だからこう書きました」と言えるのがエンジニアです。

HTMLのclass名表記はロウワーキャメルケース、HTMLのclass命名規則はMindBEMding、JSの変数名表記はスネークケース、JSの関数名表記はロウワーキャメルケース

自分のスタイルを確立する

物事を正確に理解する

例えば、新しい技術の入門記事を見て、その通りにやってみて、なんとなく理解した気になる。
導入はそれで構いませんが、その状態で知ったかぶるのはNGです。
その技術はどういうことができて、何のために使うのか。今打ち込んだコマンドで何をどうしたのか。
そういうこと(本質)を正確に理解・把握するのがエンジニアです。
本質を理解するようにしていれば、例えば派生・発展した技術が出てきた際にキャッチアップが容易になったり、デバッグ作業でどこで引っかかっているのか突き止めるのが早くなったりします。
僕自身、単語1つでも正確に理解、説明できるよう心がけています。

gitとは?・gitとGitHubはどう違う?・フェッチとプルの違いは?・コミットとプッシュの違いは?・SourceTreeはgitクライアントだが、Subversionが扱えるのはなぜ?

それぞれの意味・意義を正確に理解する

誇りを持ち、楽しむ

僕はエンジニアが世界で最もカッコイイ職業のうちの1つだと思っていますし、自分なりに満足のいくコードが書けたときは嬉しいし、楽しいです。
もちろんそれで満足して終わりではなく、次に身につけるべき技術・知識について勉強したり、よりよいコードが書けるように試行錯誤します。
自分の理想とするエンジニア像に近づくのは、終わりのない道程ですが、その課程を楽しめるのが、エンジニアだと考えています。

最後に

例えば10の知識・経験を得る機会があったとして、自分次第で得られるものは10にも5にも1にもなりえますが、実際僕は、上記のような感覚を持つ前と後では、得られる経験値が変わってきたように感じています。

エンジニアという職につくことは簡単です。しかし、エンジニアという言葉を資格・称号のようなものとして捉えた場合、その意味、重みは全く違ったものとなってきます。
僕自身、胸を張ってエンジニアであると言い切れるよう、今後も研鑽を積んでいく所存です。