計画を立ててプログラミングスキルアップを行う方法
こんにちは。
プログラミングを学習する際に、挫折する人が多い印象です。出来るようになりたいという思いはあるものの、次第に飽きてきてやめてしまう。。。私も何回もありました。
そのため、今回は、計画を立ててプログラミングスキルアップを行う方法を紹介します。※実験中なので参考程度に・・・
目次
プログラミングを学習しようと思った背景
私は元々画像処理の研究をしていました。自分の趣味はスキューバダイビングなのですが、スキューバダイビングと画像処理を掛け合わせて研究に取り組みたかったので、水中画像の色補正という研究を行っていました。トップカンファレンスの国際学会やIEEEのジャーナルなどにアクセプトされ、まずまずの成果は得ることが出来たのではないかと思います。
しかしながら、入った企業は画像処理とは関係のないIT企業です。研究のときはMATLABというプログラミングしているとは言えないツールでコードを書いていました。これは全く会社では役立ちません。画像処理の知識も同様に役立ちません。そのため、コードも書けませんし、プログラミング言語とかサーバのこととか、全くITスキルは持ち合わせていませんでした(javaとjavascriptの違いもわかっていない)。なのでシステムを理解しコーディングが出来るようになりたいと考えました。
もちろんコーディングをするだけがエンジニアでは無いと思いますが、やはり必須な技術だと考えています。(他にもプレゼン・ビジネス・コミュニケーション・英語・マネジメントなど必須なスキルはいっぱいありますね!)
つまり、IT知識のない現状を変えて、自分を成長させるために、プログラミングを出来るようにしたいと思ったわけです!
継続して学習する方法
継続して学習を行うために最も大事なことは、勉強を生活の一部に取り入れることです。つまり、習慣化する必要があります。皆さんは毎日歯をみがいたり、風呂に入ったりしますが、これは特に意識せずにやっていることだと思います。これらの生活習慣の一つに取り入れることで、継続して学習していくことが出来ます。
私の実施している継続方法は、仕事帰りに家に直帰しないということです。家庭のある方だと難しいかもしれませんが、家に帰ってしまうとやることが色々あり、学習以外のことに気を取られてしまいます。そこで、直帰せずに毎日カフェに行くことにしました。カフェに行くことで学習をやるしかない環境に身を置けるので、集中して学習をすることができます。仕事で疲れていても「とりあえず、カフェ」に行ってみて下さい。
実際に立てた自分のプラン
継続して学習出来るようになったら、目標を立てていきます。目標は何でも大丈夫です。例えば、資格の取得を目標にする、ブログを書くネタのために学習するなどなどです。
そして、目標に対して、学習を実施するために計画を立てていきます。
自分は以下のように目標と計画を立てていきました。
**目標
- Python+Djangoを極めて、webサービスを1から作れるようにする
- Web Designを極めて、誰もが美しいと思うサービスを作れるようにする
- 過去受けた、これから受ける資格のアウトプットし、スキルを定着させる。また、社会に貢献する。
PythonとWeb Designですが、実務レベルまで到達することを目標にポートフォリオを半年で4つ作ります!ただ、基礎知識が足りないため、PythonはPyQで学習。Web Desginは資格や副業を通じて基礎を固めます。資格のアウトプットは適宜行おうと思っています!
**6ヶ月計画
12月:
PyQの学習コースに取り組む
1月 :
- Pythonを使った成果物を作成①
- 一週間に1本以上記事を投稿する
2月 :
- Web検定を4分野制覇
- Pythonを使った成果物を作成②
- 一週間に1本以上記事を投稿する
3月 :
- Pythonを使った成果物を作成③
- 一週間に1本以上記事を投稿する
4月 :
- Pythonを使った成果物を作成④
- 一週間に1本以上記事を投稿する
5月 :
- 自由枠
- 一週間に1本以上記事を投稿する
なかなかハードなスケジュールだとは思いますが、ヒトは負荷がかかったときが一番成長すると思います。実際に研究でも論文投稿の期限に間に合わせるために研究室に10連泊したときは大分伸びましたし、仕事でも負荷がかかったときはいい感じに伸びたと思います。
学習を行う上で大事なこと
学習を行う上で大事だと思うのが、得た知識をアウトプットすることです。今までは、知識のインプットが中心でした。知識のインプットとしては、資格の取得を利用しました。
過去2年間で取得した資格
・色彩検定2級/3級
・Pythonエンジニア基礎試験
・ウェブデザイン技能検定3級
・Microsoft Azure Fundamentals
しかし、知識のインプットをしただけではなかなか実践的に使うことが出来ません。そこで、これからはアウトプットに重点を置くことで知識の定着を促し、かつポートフォリオを増やして行こうと考えました。
最後に
以上の説明で紹介した計画をこなし、継続的に努力することでスーパーエンジニアになれるようがんばります。ただ、この6ヶ月だけ頑張るのではなく何歳になっても年齢を言い訳にせず継続して勉強を行っていきたいですね!
スキルを持っていればやりたいことが好きなように出来る環境に身を置くことが可能かと思います。好きなものを作って、お金を稼いで、好きなものに投資して..というように。好きなことをした方が作業効率もあがりますし、人生の幸福度もあがるのではないでしょうか?(好きなことばっかりやっててもだめかも知れませんが、だからといって好きじゃないことばっかりやっている人生はつまらないですよね?)
将来的に、コーディングを続けているかはわかりませんが、コンピュータ・サイエンスのプロフェッショナルとして活躍したいですね!
そして、ビジネスを立ち上げ成功していければと考えています。もちろん国内でとどまるのではなく海外で通用するような人材になりたいと思っています。
最後に、この文字だらけの記事を呼んで頂いた方に感謝いたします、是非この記事でモチベーションが少しでも上がる方がいてくれたらと思います。
とりあえずこんな感じです!
以上!