
拠点のエースが語る!プログラミングの上達方法
こんにちは、システムエンジニアのようへいです。
新卒で今の会社に入り、18年目です。
自分で言うのもアレですが、上司からは「この拠点のエースだよね」と言われています!
そんな自分がどうやってプログラミングが上達し、エースの座に上り詰めたのか、この記事ではその経験を語ります。
入社後は新人の中の一人として埋もれてしまっていた自分が、今では拠点エースとなるくらいまでスキルが上達できた秘訣を惜しむことなく書いていきます。
こんな人にオススメ
プログラミングをこれから習う方
プログラミングの習得方法を考えている方
入社当時のプログラミングスキル
高校卒業後、北海道にある情報系の専門学校に3年間通っていました。
プログラミングの授業が多かったため、入社後は文法的なところではプログラミングに悩むことはありませんでした。
ですが、入社後に痛感したことは
「プログラム言語の文法を知っているだけでは現場で通用しない」こと。
現場が変わり、全く経験のないプログラム言語に関わった時に全く戦力にならなかったこと。
この2点です。
プロのシステム開発現場で戦力になれるだけの基礎が備わっていなかったため、応用力がついてませんでした。
技術者として、プロとしての高みを目指す
大きな自信を持って入社しても、通用しなかったことで挫折を味わいました。
でもこの挫折がこの後の原動力に変わりました。
もともと技術に関する興味、上昇志向が強く、学習意欲も高かったので、色々試して勉強しました。
色んな言語の本を片っ端から読み漁り、より深く言語力を養うためにアプリをたくさん作りました。
おかげでプログラミング言語のスキルは大きく伸びましたが、言語力を磨くだけではまだスキル不足ということを現場で通関。
具体的には、アルゴリズム、プログラミングのお作法、デザインパターンといった、言語スキルに関連するスキルも身に着けるべき、ということがわかりました。
プログラミングと一口に言ってもこんなに奥が深いんだ!と思えた瞬間です。
これぞ技術者であり、プロの領域であり、この道をもっと探求したい!と思いました。
上達までのステップ
自分は主にこの6つのステップでエースに上り詰めました。
このステップは何かに書かれたものではなく、場数を踏んでこうあるべきという気付きで編み出した学習ステップです。
アルゴリズムの学習
ハンズオン
アプリ開発で実践
プログラミングの美学の学習
デザインパターンの学習
フレームワークの学習
特定のプログラミング言語(文法)を学ぶだけでなく、プログラミングに必要な幅広い知識を持つことが、プログラミングスキルを伸ばす大きなポイントだと思います。
ただプログラムを書けるだけではエースになれません。
プログラミングということに深い知識を持ってチームを引っ張れる人間がエースになれます。
以降、上記について1つずつ解説していきます。
エースを目指してエースになった経験談です。
Step1:アルゴリズムの学習
アルゴリズムは”解法”のことで、ある処理をプログラムで書こうとしたとき、行うべき処理手順を1つ1つに分解し、それらをどういう順番・流れでプログラムを書くべきか、という考え方のことです。
例えば、「カップ麺を作る」という問題を解こうとすると
お湯を沸かす
カップの包装を剥がす
お湯が沸くまで待機する
(沸いたら4.へ。まだなら3.へのループ)蓋を開ける
お湯を注ぐ
3分待つ
(3分経過で7.へ。まだなら6.へのループ)スープの素を入れる
混ぜる
食べる
これがこの問題のアルゴリズムになります。
プログラミングが上手な人は、プログラムの文法を知ってる意外に、アルゴリズムの思考に強いと考えています。
ある処理のプログラムを書いた時、アルゴリズムに長けている人の方が、そうでない人よりもプログラム量が断然少なく、可読性の高い美しいプログラムになっています。
つまり、アルゴリズムの習得により、生産性が大きく上がります。
アルゴリズムの基本構造は「順次」「選択」「繰り返し」。
「順次」は処理が順番に流れること。
「選択」は条件分岐。
「繰り返し」は条件を満たす間の反復。
「選択」と言っても、単一条件、複数条件があったり、それをプログラム的に言うとIfだったりSwich-Caseだったりとテクニックは様々です。
「繰り返し」も、条件を満たす間繰り返すのか、条件を満たさない間繰り返すのか、という考え方もあります。
このように、3つの基本構造を用いて、いかにシンプルに解法を見つけるか、これがアルゴリズム思考の目指すところです。
入社後1年間は現場を通じてみっちり訓練しました。
アルゴリズムの力は、自分だけの努力ではどうにもなりません。
(経験と気づきが必要だから)
レビューを受けて指摘されたり、教材を学ぶことが極めて重要です。
Step2:ハンズオン
昔はよく開発言語のテキストを買っていました。
最近だとUdemyというオンライン学習教材がありますよね。
こういうのでも全く問題ありません。
開発環境を作り、テキストに書かれているサンプルコードをそっくりそのままエディタに書き写していました。
なぜなら「習うより慣れろ」。
文法を知り、文法に慣れないとプログラムは書けません。
まずはハンズオンで言語の基礎をしっかりと頭に入れます。
成果物は求めず、ひたすら写経に取り組みます。
写経によるメリットは
プログラム言語の文法が体で覚えられる
プログラミングのテクニックが頭で覚えるよりも身に付く
基本文法の大部分が身に付く
ということが挙げられます。
アプリを作るということは、言語仕様がしっかり理解できていないととっても時間が掛かるものです。
そこをしっかりと学習し、言語テクニックの引き出しを多く持つことで、アプリの開発時間がぐっと少なくなります。
Step3:アプリを作ってみる
ある程度慣れたら色んなヒマな時間にアプリを作ってプログラム言語力を身に付けました。
アプリを作っていくと、基礎では学ばなかった色んなテクニックが必要になってきます。
それをこのステップで調べながら潰していきます。
成果物は斬新なものでなくて良いです。
そんなのExcelあればできるじゃん!というものでも何でも良いです。
このステップの目的は、動くものを作れること。
一つ動くものが出来上がると達成感が味わえますし、改造してパワーアップして自分だけのアプリができますし、何より愛着が沸きますよね。
Excelで十分なものでもわざわざアプリをいっぱい作ってプログラム文法に強くなりました。
Step4:プログラミングの美学の学習
ここから先は
¥ 200
この記事が気に入ったらチップで応援してみませんか?