こんにちは。熊本で25年以上ITエンジニアをやっているよしハムコロリと申します。私は主にプログラマーとして従事しています。
現役プログラマーの方で、「スキルアップってどうやるんだろう」と思っている方はいませんか?今回は、主にプログラマーとしてのスキルアップの方法をご紹介したいと思います。プログラマーとしてもっと知識を増やしていきたい方に見ていただけたら幸いです。
尚、本記事にはアフィリエイト広告を掲載しています。私がこのサイトや勉強用の環境として使っている「ConoHa VPS」をご紹介します。料金もお手軽でとても使いやすいので、是非使ってみてください。
管理人よしハムコロリについてはこちら
業務でできることには限りがある為、自分の時間の中でやろう
業務では役割分担があったりして、必ずしも自分がやりたいと思ったところを行える訳ではないと思います。業務でできることには限りがあるので、プログラマーとしてさらにスキルアップをしていこうと思ったら、自分の時間の中でやりましょう。自分の時間の中でやる分には、全て自由です。時間を決めてがっつりやることも、状況に応じてゆっくりじっくり進めることもできます。私は、主に休日にやっています。平日もやりたいのですが、業務の稼働が高いのであまり時間が取れません…
自分が欲しいものを作ってみよう
さて、自分の時間の中で何をしよう…となる訳ですが、私が一番おすすめするのは、自分の生活の中で「こういうソフト(、アプリ、Webサイト)があればいいな~」と思うものを作ってみることです。私もこれまで色々作ってきたのですが、その中の一つに、「自分用カラオケリンク集」というものがあります。
私はカラオケアプリで歌うことが趣味なのですが、当時そのカラオケアプリには「自分が歌った曲を検索する機能」がありませんでした。なので、自分が歌った曲を登録して検索できるWebサイトを作ろう!と思い立ったのです。自分が欲しいものだから、モチベーションも維持しやすいと思います。
実際の開発工程に沿ってやってみよう
これも私のおすすめですが、例えば、ウォータフォール開発モデルや業務で行っている開発工程に沿って、要件定義、基本設計、詳細設計、環境構築、製造…とやってみると力になります。ほとんどの場合でデータベースを扱いますので、「テーブル設計」はじっくりやった方が良いと思います。この土台がしっかりできていないと後になって毎回ここに戻ってこないといけなくなる為です。…となるとテーブル設計をじっくりやる為には、どういう画面が必要で、必要な入力欄、表示内容、ボタン…くらいは検討する必要があるので、「要件定義と基本設計(画面設計、データベース設計)」はじっくりやった方が良いでしょう。
業務で使っている言語やミドルウェアを使って業務でも役立てよう
当たり前ですが、業務で実際に使っているソースコードやドキュメントなどの資産を持ってくることは厳禁です。ただ、業務でLaravelを使っているとか、業務でAWSを使っているとかあれば、業務で使っているものを使った方が既に持っている知識もありますし、自作システムの開発の経験が、実際の業務で役立つこともあります。予習、復習のような意味合いを持っていると思います。
もちろん、知らない言語や環境に挑戦したい場合は、それでもOKです。
たくさんのトラブルにぶちあたろう
おそらく、自作システムの検討~開発~リリースにおいて、数多くのトラブル(うまくいかないこと)が出てくると思います。サクサクいかないとモチベーションが下がる…なんてこともありますが、このトラブルを1つずつ解決することこそ、スキルアップにつながる点です。1つでも多くのトラブルを解決することで「問題解決能力」を上げることができます。これは間違いなく業務でも役立ちます。例え全く同じ現象でない場合でも、「あれ、これって前うまくいかなかったやつと同様の方法で解決できないか?」って思えるようになるからです。自分の時間ですので、果敢にトラブルに挑みましょう。今はインターネット上に文献も豊富にあり、AIに聞いたら高精度で解決策を提示してくれると思います。解決策を適用する場合は内容を理解してから適用しましょう。
1日で終わらようと考えないでやろう
作業をやっていると時間を忘れます。ちょっとしたシステムでも軽く数日は掛かったりしますので、全て1日では終わらないことを認識して行った方が良いです。ただし、複数の日にまたがると「あれ、前何やってたっけ?」と記憶が曖昧になり、モチベーションにも影響しますので、「直前は何をやっていたか」、「次何をやろうとしているか」のメモを残すようにしましょう。私はGoogleスプレッドシートを作ってその中に要件、テーブル設計、画面設計、課題(トラブル)一覧、メモのシートを作って開発を進めるようにしています。形式ばったものではなくフリーフォーマットです。
スキルアップを目指して最後までやり切ろう
システム開発の開始(要件定義)~終了(リリース)までを一人でやらないといけないので、やることは結構多いです。それだけ、得るものや気付くことも多いです。「あ~、この工程ってこんなに大変だったのか」など新たな見方をできるようになるかもしれません。リリースできたときの喜びも大きいので、最後まで諦めずにやり切ってほしいです。期間はどれだけ掛かっても良いと思います。
最後までやり切る為のコツとしては、こだわるポイントとそうでないポイントを割り切って進めることです。コーディング(実装)のスキルを上げたいのであれば、あまりデザインにハマり過ぎない様にするとか。道がそれるとモチベーション低下に繋がりますので、割り切ってやることをおすすめします。
さいごに
最後まで読んでいただきありがとうございました。今回のまとめを列挙しますね。結構多かったですね…。
- 業務でできることには限りがある為、自分の時間の中でやろう
- 自分が欲しいものを作ってみよう
- 実際の開発工程に沿ってやってみよう
- 業務で使っている言語やミドルウェアを使って業務でも役立てよう
- たくさんのトラブルにぶちあたろう
- 1日で終わらようと考えないでやろう
- スキルアップを目指して最後までやり切ろう
おまけ
例でご紹介したカラオケリンク集です。PHP(Laravel)で開発しています。Dockerで構築することによって開発環境から本番環境への移行もしやすかったです。サーバは、初めはAWSに置いていたのですが、運用が少し煩わしくなって、今はConoHa VPSに移動しました(この移動もかなり勉強になりました!)。ConoHa VPSは様々な種類のサーバを簡単に立ち上げることができます。スペックをそこまで高くしなければ使用料金もそんなに高額にはなりませんので、是非使ってみてくださいね。
コメント