
【12/6】私のポートフォリオ暦紹介
はじめに
お疲れ様です。ご存じの方がいればありがたいですが、Marvelシステム部の社員の中です。
特段目立った経歴などはなく、ごく一般?エンジニアだと自分では思っているのですが、周りを見渡せばすごい方々ばかりのこの業界の場合、そんな目線の記事も需要があるかもと思って筆を取らせていただきました。
少しの間お付き合い頂ければ幸いです。
本題
今回自分の体験としてご紹介したいことはズバリ個人開発についてです。
個人開発の目的自体は色々あると思いますが、自分の場合はエンジニアとして自己アピールに利用するポートフォリオ制作が主でした。
自分は他業種からこのIT業界に入ったため全くの実務未経験状態だったので、「頑張って勉強してます!」って言いながら飛び込んでいくのは正直無謀だと思ったんですよね。。。
素人ながらなんとなくこの辺りの考えは業界を調べていくうちに形作られたので、結果としてポートフォリオを作ることになりました。
これからどういった経緯で初めてのポートフォリオを作るに至るか話させていただきますが、その前に前提として、現在改めて個人開発及びポートフォリオに関して思う率直な感想を言わせてください。
ちゃんとポートフォリオ作ってネットにサーバー立ててデプロイして公開することってめっちゃ難しくないですか?
IT業界に入った当時も普通に思ってましたが、ある程度実務経験を経た今さらにそう思います。
本当にこれは僕の浅い主観の経験と感想でしかないんですが、基本的に今までやってきた実務って既存の既にある程度出来上がってるPJに入ってそこで追加開発したり障害対応したり保守運用したりが多かったんです。0から1で新規開発したり技術選定したりする機会って、あまり多くはないと思うんです(ここは本当に個人によると思いますが。。)。
で、大抵そのPJにはインフラエンジニア様とか、インフラとかサーバー系の運用を担当して頂ける古参のベテランエンジニア様がいて、基本的にインフラの難しいところや核となる部分はその方々がメインとなって運用して頂きます。お陰様で自分は担当部分のweb開発などをローカルで作って〜、gitとかで管理して〜、タスク完了したら納品して〜、手順書に従って本番にリリースして〜、等という感じで携わることができていました。
そしてある日唐突に訪れる焦燥感、もっとスキルアップしてもっともっと一人前のエンジニアにならなければという使命感。
という感じでポートフォリオなどを作ろうと思い立ったりするのですが、これが難しい。今まで実務でも既に出来上がっていたところや、慣れている方にお任せしていた分野をいきなり自分1人で全部やらなければならなくなるので、やっぱり難しいですよねっていうのが自分の率直な感想です。
では、気を取り直して初めてのポートフォリオについて触れていきます。
初めて作ってみたポートフォリオ
初めてのポートフォリオですが、この前に当然プログラミング自体を勉強する過程を踏むことになります。これは俗に言うプログラミングスクールに通って勉強しました。
プログラミングスクールは賛否ある印象ですし実際そうだと思いますが、当時は全くの素人から独力でプログラミングを勉強していく自信が持てず、そのようなスクールに通うことを選択しました。
今思えばモチベーションになっただとか入り口にスムーズに入れたようなメリットもあったような気がしますし、安くない月謝を払っていたので頑張れば自分の力でもっとやれたような気もします。本当に賛否両論ですね。
そんな感じでスクールには最終的にポートフォリオ作成のサポートがあり(実質ほぼテンプレのECサイトのようなものですが)、それをgithubに上げてからconohaというレンタルサーバーで公開するところまでを行います。
生のPHPを使ってローカルでECサイトを作成するところまでは今までの勉強の延長だったため何とかなったのですが、やはり問題はインフラ系でした。
今現在も相変わらず個人開発で最も苦戦する箇所ですが、とにかく奥深くて難しい。。!
結果的にスクールの講師に直接指南を受けてネットに公開するところまでこぎつけることができました。
そこまで出来ればもうインフラは完璧、これからどんなポートフォリオでもネット公開まで楽勝だぜ〜!。。。ということは全然なく、正直手順書の内容も講師からの説明もどうやってネットに公開されているのかもチンプンカンプンでした。
何が分からないかが分からないレベルですね。
「ドキュメントルートって何だ?」「.confファイルは何のために変更してるのか?」「一度githubに上げる理由って何だ?」「ssh接続って何してる?」「Apacheってそもそも何?」という感じで、根本的に分からないことだらけでした。
今思い返して上記のように思い浮かぶ言葉はあるのですが、当時はほとんど言語化すらできていなかったので中々根本的に解決することが難しかったですね。
初めてのポートフォリオの体験談としてはこんなところです。
散々な結果ですが取り敢えずネット公開まではできたので、その後それを利用して就職活動なりを行っていました。
IT業界に入ってからの個人開発orポートフォリオ
実務を始めてからはしばらく個人で開発する機会は少なくなっていったのですが、転職の際やスキルアップを目指す際に何度か挑戦しては中途半端なものを作ってきました。
少し実務を経験し、初めの頃よりもプログラミングを理解できたという自信は見事に打ち砕かれました。
流行りのgolangを使ったりした時は何とかローカルで動くものは作れましたが、Herokuでデプロイして公開しようとするも度重なるエラーで断念。
実務で使っていたvue.jsを活用してバックエンドはFirebaseに任せる形で個人開発を行った際の発想は悪くなかったと思いますし、デプロイして公開するところまではいきました。ただし実務ベースの、ある程度完成度のある物を目指した割には、環境構築やPJ全体の構成が甘く色々とチグハグなものとなってしまい、状況も変わってvue.jsのポートフォリオを作成する理由も見失ってしまい結果お蔵入りとなってしまいました。
改めて思い返していますが根本的に中途半端なことはやはり良くないと思います。
途中経過だけでも得られるものはありますが、ある程度納得できるところまでやり切るという姿勢を持つことは今後の自分の課題かと思いました。
現在作成中のポートフォリオ
そういった今までの失敗を踏まえつつ、現在作成しているポートフォリオはReactのNext.jsを使ったwebアプリになっています。
今後自分が進んでいきたい方針となるReactを選択し、今回はある程度まで作り切ることができるように環境構築やインフラ関係の技術選定を導入の時点でちゃんとこだわって、気持ちの良い開発環境を作ることができました。
今現在は土台を作ったばかりで本格的なwebアプリの開発はここからですが、既にこれまで盛大に引っかかっていた箇所を乗り越えられた感触があるので、今までのポートフォリオの二の舞にはならない。。。いや、してはならないという気持ちがあります。
それもひとえに一番のベースとなる環境構築・インフラに今までよりさらに時間をかけて慎重に向き合った成果だと思います。
また何よりも中途半端に終わったとはいえ、これまでのポートフォリオの失敗も活きたと思います。
初めのポートフォリオでいずれまた挑戦しなけばという意識が植え付けられ、golangのポートフォリオで身の丈に合ったものを選ぶべきだということを知り、vue.jsのポートフォリオで現在の物のベースとなる発想が生まれました。
まとめ
今回の記事は体験談ベースのためあまり技術自体の深堀が出来ていなかったため(技術などに特化したブログリレーなのにまずい。。。)、tips的に最新のポートフォリオ作成の際に気をつけたことや、意識したことなどをご紹介させていただこうかと思います。
高すぎる目標を設定しない、ゴールまで走り切れる土台を作る
これは僕の場合過去の失敗から明確で、当時はバックエンドもフロントエンドも頑張って全部作り切ろうとしてしまっていました。
結果こけまくって息切れして爆散しました。
なので現状の解決策としてはフロントだけは頑張るです。
昔は知る由もなかったのですが俗にいうBaasと呼ばれるジャンルのクラウドサービスがあり、簡単に言うとバックエンドは用意されたサービスに大体任せてフロントエンドの開発にだけ集中できるものがあります(詳しくはリンク参照)。
Firebaseなどがこれにあたります。
今回の開発環境は大まかにnext.js,vercel,supabaseとなっています。
この中でvercelがPaasでsupabaseがBaasというクラウドサービスにあたります。個人的に何が一番優れている並びかというと、githubを介してそれぞれが密接に連携されており今までかなり苦戦していた、開発したものをネットに公開するという作業が自動化により容易にできることでした。
この並びをちゃんと発見して自分の身の丈に合った開発環境を選定できたというのは、まさしく今までの失敗が活きた瞬間だと感じました。
最近の記事やブログなどをちゃんと探して参考にする
これは本当に基本といえば基本なのですが、昔はこれがまるで出来ておらずバージョン違いでのエラーが無限に発生していました。
エンジニアは技術や知識はもちろん重要ですが、地味なところですが検索力というのも本質だと思っています。
チャットGPTを使う
他力本願みたいな感じですが、やっぱり知識の浅い分野は素直に頼るのが良いと思います。
昔と今の自分の開発では、このAIがあるかどうかも明確に大きな違いだったのは間違いありません。
もちろんAIの言っていることが本当かどうか、精査して検証しながら運用することが前提だと思います。
以上が今回の僕の記事になります。
誰かの何かの参考に少しでもなれば嬉しいです。
Marvelでは今年も『Marvelアドベントカレンダー2024』をやります🎄🎅Marvelのエンジニアがクリスマスまで記事のバトンを繋ぎます🦌🛷
是非毎日のお楽しみとしてご覧ください🎁
★Marvelのアドベントカレンダーはこちら
https://note.com/marvel_engineer/m/ma7e8d8ae4288
Marvelが少しでも気になった方は是非Wantedlyもご覧ください🙌