エンジニアで学歴も経験もなければとにかくアウトプットしろって話
こんにちは。転職活動中のたいきゅんです。
経験1年1ヶ月の私が転職活動始めて1ヶ月。今回は「エンジニアで学歴も経験もなければとにかくアウトプットしろ」ってタイトルで書いていこうと思います。
このテーマは私がこの1ヶ月で痛感してきました。自身への戒めも兼ねて書いていきます。
私のスタック
開発経験:1年1ヶ月
開発言語:php(受託開発)
学歴:一応大卒。飲食店からITエンジニアに昨年転職
年齢:20代中盤
①結論
結論から言うと、タイトルそのままなのですが「エンジニアで学歴も経験もなければとにかくアウトプット」すべきです。
私のように自社開発ではなく、受託でひたすらコードを書いている人で学歴もキラキラでない人はもっとその比重が大きくなってきます。
年齢だけで押し切れることなんて決してありません。これがIT業界のいい所であり現実です。
一つ一つ掻い摘んでいこう見ていきます。
②経験が一番大事
当たり前ですが、経験が一番です。
特に自社開発企業では、「自ら提案してプロダクトをこう変えていった」といった経験がめっちゃ大事です。
自社開発企業では自身で提案し試行錯誤することでプロダクトを日々リリースすることが当たり前かと思いますが、現状の私には中々こういった機会がありません。
この経験があるか否かで評価が全然変わってくるなとすごく実感しております。
③学歴が見られてないなんてことはない。
経験の浅い人材にとって企業が学歴を重視するのは当然のことです。
学歴をカバーできるくらいの経験があれば問題ないと思いますが、私にはないため厳しい戦いを強いられています。
学歴は一生ついてくるのであるに越したことはないですね。
④経験+学歴+アウトプットをしている転職者が多くいる
ただでさえ上記2点で遅れを取っているのにも関わらず、転職市場には2点を抑えかつアウトプットしている方が非常に多いです。
私の肌間ですが、Quita,Zenn,ブログ等でアウトプットをしてるか否かを重視している企業は非常に多いと感じます。
この方々と一緒に戦っていく必要があるわけですから、厳しくなってしまうのは至極当然です。
⑤今から変えられるのは経験とアウトプットしかない
このように学歴と経験が弱い転職者がこれから変えられるのは「経験」と「アウトプット」のみです。
私はアウトプットはこのブログとGitHubのみでしたが、ブログの更新頻度はあまり高くなくGitHubのみな状態です。
転職活動前は「GitHubの草だけ意識すればいいだろう」と軽く見ていましたが、これはもはや当たり前であまり意味をなさないです。
GitHubの草は前提でプラスアルファのアウトプットが必要であると身に染みました。
この反省を機にQuitaにポートフォリオ作成の記事を書いてみようと思います。
以上になります。
私のような境遇の方で同じような目標を掲げている方がいたら是非参考にしていただければと思います。
最後まで読んで頂きありがとうございました。
TDDで1年間開発してきた私が改めてTDDについてまとめていこうと思う。
こんにちは。読んでいただきありがとうございます。
最近改めてTDDに関して考える機会を得たので、ブログにアウトプットしていきたいと思います。
私はエンジニア歴1年1ヶ月でずっとTDDで開発してきたのですが、今更ながらTDDもどきであることにこの度気付かされたのでそれについても最後にまとめます。
本日のアジェンダは以下です
- TDDとは
- TDDの開発手順
- TDDのメリット
- TDDのデメリット
- 私の関わってきたTDD
①TDDとは
TDD(Test Driven Development)とはその名の通り、テストファーストな開発手法になります。「仕様を決めて実装してテストする」というのが一般的な開発手法かもしれませんが、TDDでは「仕様を決めてテスト仕様書を書いてそれを元に実装する。」という流れで開発していきます。
私は受託開発でレガシーな開発をしておりますが、アジャイルのモダンな企業においてもTDDを取り入れられている所もあるそうです。(最近知りました。)
②TDDの開発手順
改めてTDDの開発手順についてまとめていきます
手順1.レッド
TDDの肝とも言える、テストコードを記載することです。仕様を満たすテストコードを書いて実行するため、最初はエラーしか出てきません。それからレッドと呼ばれるようになったみたいです。ここが一番重要だったりします。
手順2.グリーン
レッドだらけのテストコードがグリーン、つまりエラーが出なくなるようにソースを書いていく段階をグリーンと呼びます。ここでは、エラーを無くすことと動くコードを書くことが大事です。
手順3:リファクタリング
最後にリファクタリングをかけて完了となります。
③TDDのメリット
1.後工程へバグを持ち越しにくい
テストコードさえ間違っていなければバグを生みづらく、後工程にも影響が出づらいです。これが一番のメリットではないかと私も実感しております。
2.システムの要件をより深く理解できる
テストコードを書く際は、システムの要件を理解することが前提となります。要件を細分化してリストアップして作成していくので、システムの要件をより深く理解できます。
④TDDのデメリット
1.開発時間がかかってしまいがち。
どうしてもコーディングの時間が長くなるため開発に時間がかかってしまう可能性があリマス。
2.仕様が変わるごとにテストも書き換える必要がある。
開発を重ねただけテストコードも増えていきます。その結果仕様を変更したいとなった際、昔書いたテストコードの書き換えの作業も発生する可能性があり、開発スピードに影響する可能性があります。
⑤私の関わってきたTDD
私はTDDで開発してきたものの、一度もテストコードを書いたことがありません(レガシーですね)。工程としては先程紹介したやり方ですが、テストコードなしのTDDなのでTDDの良さを最大限発揮できていない開発を行っています。
テストコードを書かない理由は、仕様変更の頻度が多いことにあります。テストコードを書くと変更が莫大になってしまい、もっと開発スピードが遅れてしまうのが原因です。
個人的には、テストコードをたくさん書いて保守性の高いコードにしたいのですが、、こればかりは私にはどうしようもないです。
テストコードを書くのが当たり前の世の中ですから、私も早くテストコードを書く経験を積んでいきたいものです。。。
今回は以上になります。
最後は少し愚痴っぽい話になってしまいましたが、でも自身のやりたいことを尊重してくれて挑戦させてくれる企業で私は働けるよう、日々精進してまいります。
転職活動も難航の色が見えますが、挫けず頑張ります。
最後まで読んで頂きありがとうございました。
Webエンジニアとしての今後のキャリアを考えてみた【経験一年経過】
お久しぶりです。たいきゅんです。
今回はエンジニアとしてのキャリアをどうしていきたいか、現時点での考察をまとめてみます。
-
エンジニアのキャリア
-
スペシャリストの特徴・なるには
-
ジェネラリストの特徴・なるには
-
現時点でのまとめ
今回は上記4点を書いていきます。
①エンジニアのキャリア
エンジニアとりわけwebエンジニアのキャリアとして現時点で考えられるのは以下の二つです。
- スペシャリスト
- ジェネラリスト
一つ一つに関して考察してきます。
②スペシャリストの特徴・なるには
これは一番想像しやすいキャリアパスかもしれません。
スペシャリストになるには
開発経験をガンガン積んでいくこと
これにつきます。またその時の技術トレンドに敏感に反応して、適応していくことも必要です。
開発経験を積むには様々な方法がありますが、正社員としてやっていきたいと現時点では考えているため正社員+副業で経験を積んでいく必要があります。
そのため技術的に成長を感じられなくなったタイミングで転職も必要になってくるかもしれません。
とにかく実務経験を豊富にすることを最優先でキャリアを積み重ねていく必要がありそうです。
③ジェネラリストの特徴・なるには
ジェネラリストとして挙げられる職種としてはPdm・マネージャー・上流工程に携わる・等があるかと思います。現時点でこれらのポジションになる方法としては下記の2点があると思います。(他にあったら教えてください。)
- 経験をつけてPDMとしてアサインする
- 現場経験をたくさん積んでPDMに上り詰める
どっちにせよ経験がなければなることが難しいポジションであることがわかります。
④現時点でのまとめ
スペシャリスト・ジェネラリストについてまとめてみましたが、結論「どちらのポジションを目指すにせよ、技術力や経験値なしでは至れない」ということ。
まだ経験がほとんどない私に今必要なのは、技術力を磨きまくって磨きまくってまずスペシャリストを目指す。そして天才には勝てないなって思えるレベルまで自身を磨いたら、マネジメント系に進む道も考えても良いのかなと考えるようになりました。
また記事を書くにあたり、「キャリアプランを常にアップデートして今の自分に必要なことを考えて行動する」ことはとても大事だなと思いました。また2年目になったら再度考えてみようと思います。
最後まで読んで頂きありがとうございました。
静的言語の基礎を学ぶ~ポインタとは~
皆様お疲れ様です。たいきゅんです。
今回は「ポインタ」について学習したので、アウトプットしていきます。
①ポインタとは
ポインタはメモリのアドレス情報のことを指します。
つまり変数・構造体・関数などがメモリ上のどこに配置されているかを確認できると言うことです。
ポインタ変数は、メモリ上のアドレスを値として入れられる変数のこと。
ポインタ変数には指定したアドレスの値が格納されていて、表示しようとするとそのアドレスに格納されている値が表示される。
つまりポインタ変数を変更していなくても、ポインタ変数の指定先の値が変更されると、必然的にポインタ変数が表示する値も変更されます。
現状ポインタに関してはコードで触ったことがなくあまり実感が湧かないところです。
また詳しくなったら説明します。
引用先;
静的型付け言語の基礎をまとめる〜構造体とは〜
皆様お疲れ様です。たいきゅんです。
現在静的型付け言語(GO)の学習をしております。
静的言語経験はSpringwを使ってCRUDを実装したくらいでほぼ経験がなく、知識不足が露呈しております。。
そのため今回は、今まで知らなかった基礎用語に関してざっとアウトプットできたらなと思っております。
テーマは「構造体」です。
①構造体とは
一言で言うならば「変数を寄せ集めた変数のこと」です。
ただ「変数を寄せ集めた変数のこと」と聞くと「配列と何が違うの?」と率直に思う方も多いのではないでしょうか。
私もその一人でした。
この「配列との違い」について深掘りします。
これは言語による例外はあるものの、配列は「同じ型の変数を寄せ集めた変数」を指し、構造体は、「異なる型の変数をかき集めた変数」と言う点に違いがあります。もちろん同じ型の変数をかき集めて構造体を作ることも可能です。
で、私は普段PHPを使用して実務をしているのですが、「異なる型の変数をかき集めた」配列をよく扱っています。そのため構造体との違いにいまいちピンと来なかったのかなと言う印象です。
つまり「配列と似ているが、中に定義できる変数の型を複数設定できるのが構造体」と言う理解で今のところ大丈夫そうです。
この理解でつまづいたらまたアップデートします。
②Goにおける構造体の定義方法
これは下記の記事の構造体のセクションがとても分かりやすかったです。
これを読めば理解できると思います。
今回は構造体について簡単にまとめてみました。
最後まで読んでいただきありがとうございました。
応用情報受験を終えて。〜振り返りと今後の反省会〜
久しぶりの更新です。
というのも仕事と応用情報の勉強で更新できていませんでした..。
今回は昨日10/10日の応用情報技術者試験の振り返りと今後の反省をしていきたいと思います。
①振り返り
(1)独学&過去問のみで十分対応できた。
これは多く散見されますが間違い無いです。
午後試験は筆記なのでなんとも言えませんが、私は過去問のみの学習で午前試験パスできました。(解答速報では)
今まで試験となると、何かと予備校に通って合格を目指すというプロセスを取りがちだったのですが、
今回は独学でなんとかなったのでよかったです。
これは自身なったので今後の自信にしていきたいです。
(2)試験名に惑わされないこと。
ご存知の通り、「基本情報」と「応用情報」と二つありますが、そんなに差はないのかなというのが本音です。
私も基本情報を飛ばして応用情報から挑戦しました。
もし学習時間を割ける場合は応用情報から挑戦しても良いと思いました。
(3)実務に活かせるのか
実務における知識をつけるために応用情報の学習をするのはいいとは思いますが、
試験を受けるまでも無いのかもとも正直思いました。
むしろ実務における情報系の知識をつけたければ、やりながら分からない部分を勉強していくほうが効率がいいと感じました。
私は公務員試験に挑戦していた経験から情報系より経営系の問題で得点を取るという方法を取りましたし..。
そのため今回落ちていたとしても、再挑戦はしません。時間がもったいないからです。
これは意見が分かれる所ではあるとは思いますが、私は受けましたがもう応用情報の勉強はしないと思います。
(4)Sler・SESの企業が勧める理由が分かった。
上でちょっと書きましたが、この試験は情報系の知識以外で補填することで合格することも可能です。
全く勉強しないのは無理かと思いますが..。
なので「応用情報持っている」=「情報に精通している」というのは必ずしも正しいという訳ではないと思います。
そのため「応用情報合格=評価が上がる」というのは自社開発の企業ではなくSler・SESの企業で多くなるのが当たり前です。
経営者目線で考えると、
Sler・SESの企業は自社の人材を売るのでそれに泊がつくのは、プラスに働くからです。
一方で自社開発企業は、人材を売ることはしないため資格が関係なくなるのは自然です。実務能力が重要ということです。
これに気づくのが試験申し込み前だったら、受験を辞めていたのですが、
テスト前に気づいたので最後までやりました。
そのため開放感が半端ないです。笑
②今後の反省
(1)試験=自身との戦い
今までは試験となるとどうしても周りとの戦いということを意識しすぎる余り、
試験と戦えてないことがありました。
しかし今回の試験は、試験に集中して周りは一切気にしないことを徹底した結果、
かなり集中できたのかなと感じました。
今後の試験でもこれは徹底していこうと思いました。
(2)模擬試験的な学習を一度挟むべきだった。
これは当たり前の対策かと思いますが、私はこれをしませんでした。
その結果、午後試験で知らない言葉が多く時間がなくなり少し焦ってしまったのがよくなかったです。
今後の試験ではシュミレーションを欠かさず行うこととします。
(3)年に一度は試験を受けよう。
情報系の試験はもう受けませんが、これからはTOEICを受験していこうと考えています。
TOEIC=英語ができるではないとは重々承知ですが、海外で過ごすことは考えてないので、国内の転職では
TOEICが見られる傾向は続くかなと思います。
まずは毎日単語からスタートして、目標立ててそれに向けて頑張ることを大事にしようと思います。
最後まで読んでいただきありがとうございました。
副業をやってみようと思うんだけど…。
こんにちは。
今回はエンジニアの副業に関して書いていこうと思います。
最初に言っておきますが、今回の記事はまとまったものにはなりません。(現在も悩んでいるからです。)悩みの共有程度に読んで頂けたら幸いです。よろしくお願い致します。
①手取りが少なすぎるですわ、、笑
働き始めて3ヶ月。給料貰いながら学習している身分なので、威張って言えることではありませんが、いかんせん給料少なくて泣けます。笑
何も貢献できていないので、何も言えないのが悔しいですが、前職の手取りの方が圧倒的に多くて、「やば!お金がない!」と思うのが本音です。。
正しい勉強を続けることでいつか花咲くことを信じてはいるものの、今の生活がカツカツすぎてやばい。人生においてこんな経験今後ないと思うので、楽しみつつですが、いかんせんもうすこし手取りが欲しい!そう毎日思っております。
それから気になり出したのが副業です。
②エンジニアの副業ってメリット多い。
先人の方々の情報を集めていくと、共通しているのは、「メリットが多い!」ということです。
勉強できる。経験を積める。知り合いが増える…などメリットが多いと思いました。これはやるしかないって思えるやつですね!
③不安もある。
一方で不安があることも事実です。
・製造についていける?
・そもそも仕事受注できる?
・本業との両立できる?
などなど。
私は副業も人生初ですし、臆病になってるなと感じております。
ただ失うものも少ないですし、得られるものが多いからこそ、挑戦して自信に、本業に還元したいなって思ってます。
④小さな仕事から受注してみようかな
初の副業!初のエンジニアの副業!となるとハードルが高くなるので、まず単価とか考えずに経験を積んでいきたいと思っております。データ入力とか簡単なものもあったので、そういった所から始めていこうと思います!
最後まで私の主張にお付き合い頂きありがとうございました!!