キャリア

エンジニアとしての実務経験の積み方とは?

エンジニアとしての実務経験

こんにちは、ポンです。就活中でもクラウドソーシングでもよく言われる実務経験。今日はこの実務経験についてお話します。

そもそも実務経験ってなんだろうか?

一言で言うと【経験からくる慣れ】です。今日の内容はこれに尽きるんですが、一応ちゃんと説明していきます(笑)

まずフリーランスエンジニアとしてやっていく際に必要なのは自分で何か作る際やクライアント様から依頼を受けた時に【成果物をイメージできるか】という点が非常に重要です。細かい仕様は別として「あーこんな感じで作れそうだなー」と思えるかどうかという点ですね。

そもそもエンジニアとして、クライアントと話して要件定義できるかということが一つの能力になってきます。

プログラミング未経験・初心者は成果物がイメージできない

ものすごく大雑把に言うと、プログラミング初心者は自分が作ったことのあるものしか作れません。アレンジや修正が分からず、さらに元々のインプット量も少ないので作ったことのあるものしか作れないのです。

その点で言うと「就活にはポートフォリオを持っていたほうが有利」とよく聞きますが、これはその人の経験や熱意を買っているわけであって個人が作った謎のプロジェクト自体を評価しているわけではありません(笑)

 

これはどんな職種にも共通していると思いますし、進研○ミでも「アッ、この問題ゼ○でやったとこだ!」いうシーンはよくありますがまさしくこの通りで経験が多いエンジニアは幅広い知識と応用力を持ちやすいです。これが開発に求められている「実務経験」です。

実務経験の付け方、磨き方

実務経験の付け方と言えば当然実務を積むしか無いのですが、効率的な吸収の仕方はあります。ここでは稼げるフリーランスエンジニアになるためのレベルアップ方法を書いていきます。

 

1.とにかく量をこなす

これに関しては当たり前なので省略します。近道はありますが歩かないことには始まりません。

2.好奇心を持って色んな所をいじってみる

これは成長するのに非常に大きい要素です。コードを書いたら書きっぱなしな人がいますが、修行を積んでいる段階の時はとにかくあちこち修正したり削ったり足してみたりすることをオススメします。

これはRPGで例えるなら1度の戦闘で10ポイントしか稼げなかった経験値が50や100くらい稼げる感覚です。どことどこがどう繋がって、どんな風に変化するのかということを理解してくるとプログラミングの構造自体が見えてきます。英語は形式的なフォーマットだけ学んでいる状態だと実践ではなかなか使えませんが、プログラミングも全く同じです。

言語はカタチを暗記して見せびらかすものではなく、本質や目的に沿って必要な単語やコードを使うだけです。ちなみに私は高校生や大学生の時に授業でやった英語はめちゃくちゃ苦手でしたが、上記の様に考えて気楽に使うこと集中したら1人で海外に行けるくらいにはなりました。

3.できる人からのフィードバックを受ける

学ぶ時はできる人に聞くのが1番です。1,2をやるだけでもエンジニアとしては前進するのですが、方向性が正しくないと非常にもったいないです。できる人は当然ですが自分よりも多くの経験を持っています。さらにコードは人に公開して色んな人が加わってくることでより洗練されていくものですので今であればGitHubなどを積極的に活用してコードを公開したり人のコードを見に行ったりしましょう。

尊敬できる人やめちゃくちゃ頭のいい人のコードをみると自分の書いているコードがアホすぎて膝から崩れ落ちたくなるときもありますがフリーランスエンジニアの人生は膝から崩れ落ちてからがスタートですので頑張りましょう(笑)

4.誰かと共同で仕事をする

1人で書いている時と全然勝手が違うためまた膝から崩れ落ちます。ただしある程度大きな案件になってくると複数人での開発は当たり前ですので成長することができます。あえて仕事という表現にしたのは仕事だとやらなければいけない強制力があるからです。知り合いと適当に面白そうなものを作ろうかなーくらいだと(しかもお互い初めてだと)投げ出してしまえるので仕事として嫌々やってみることも経験です。

5.大規模な開発や企業のサービスなどに関わってみる

自分で書いたコードは読みやすいですし機能が絞られたサービスであればボリュームもそんなにありません。そんな方にはぜひ企業で働いてみて自社サービスの案件などに携わってみてほしいです。

「あれれ、おかしいな?なんか1万行以上あるぞ?」というアハ体験ができます。ちなみに私は見たことないですけど、銀行のシステムは全体で1000万行を越えるんだとか。日本語でも読みたくない。

6.それぞれの知識を繋いでいく

これはオマケです。1〜5をやっていれば自然にこうなると思うのですが、様々な経験を積んでいくと段々と作りたいもののイメージが具体的にできるようになります。最初に書いた成果物をイメージする力にプラスして、どんな方法で取り組めば良いのかが分かるようになってきます。

まとめ

以上、実務経験(経験からくる慣れ)の言語化でした!

フリーランスエンジニアとして仕事をする以上、実力や経験はいくらあっても困るものではないのでレベルアップしまくって強いエンジニアを目指しましょう!