『パーフェクトPHP』小川雄大さんが考えるプログラミング上達の極意とは?



『パーフェクトPHP』小川雄大さんが考えるプログラミング上達の極意とは?
目次
  1. プログラミングとの出会い
  2. プログラミング上達の極意は「なんで?」を突き詰めること
  3. 確実な成長は、積極的なアウトプットとよき師匠との出会い
  4. エンジニアにとって幸せな世界をつくっていきたい
  5. 最後に、プログラミング学習者に向けたエール

業界をリードするトップエンジニアの皆さまに聞いた、プログラミングを始めたきっかけやご自身のスキルアップの極意、初心者へのアドバイスなど、貴重なお話をお届けするシリーズ「トップエンジニア・インタビュー」。トップエンジニア・インタビュー第一弾!

プロフィール:小川雄大(おがわかつひろ)パーフェクトPHP

プログラミングとの出会い

小川雄大氏

ープログラミングを始めたきっかけについて教えてください。ープログラミングを始めたきっかけについて教えてください。

パソコンがなんとなく好きで、とりあえずキーボードに触っていられる仕事に就きたくて高校の先生に相談したらこの業界とかどう?と勧められて。

プログラミングについては全く知らない状態でこの業界に入ったけど、昔から考えることが好きだったこともあって、やってみたら面白いなと思ったのがきっかけです。PHPを選んだのは、当時イケてるイメージがあったから(笑)。

ー在学中からアシアルにアルバイト入社されていますが、その時点ですでにご自身でサービスやプロダクトをつくられていたのですか。ー在学中からアシアルにアルバイト入社されていますが、その時点ですでにご自身でサービスやプロダクトをつくられていたのですか。

いいえ、全く。学校の課題をクリアしていたくらい。プログラミングを始めて半年くらいの頃で、C言語がちょっとわかっていたくらいのレベル。今思えばよくあれで採用してくれたなと思います。当時は何の自信もなかったです。ただ、現場に入ってしまった方が一番成長できると思ったので、踏み込んでみようと勢いで入りました。

プログラミング上達の極意は「なんで?」を突き詰めること

小川雄大氏

ーその後の小川さんのスキルアップや成長を支えた上達の極意はどんなことだと思いますか。ーその後の小川さんのスキルアップや成長を支えた上達の極意はどんなことだと思いますか。ー その後の小川さんのスキルアップや成長を支えた上達の極意はどんなことだと思いますか。

プログラミングを学び始めたばかりの方を想定して言えば、エラーメッセージをよく見ることが上達の極意でしょうか。エラーメッセージを見ればちゃんと書いてあるのに、英語で書かれているというだけで読まない人もいるので。

また、「なんで?」を突き詰めていくことがプログラミングの基本だと思っています。プログラミングにはいろいろな書き方がありますが、そもそもそれが何のために作られたのか、どういった場面でこの機能は使われるべきなのか、役割についてしっかり考えることですね。

ー単に覚えるのではなく、そもそもの役割や必要な場面を考えるというのは非常に大事な考え方ですね。ー単に覚えるのではなく、そもそもの役割や必要な場面を考えるというのは非常に大事な考え方ですね。ー 単に覚えるのではなく、そもそもの役割や必要な場面を考えるというのは非常に大事な考え方ですね。

論理的思考力が大切な分野だと思っていて、「なんで?」を突き詰めることが何よりも重要だと思っています。なので、論理的思考力を磨くことはずっと意識してきましたね。プログラミング上達の土台部分だと僕は思っています。

ただ、考えても答えを見つけられないことっていっぱい出てくるので、そういったときにどう乗り越えられるか。考えに行き詰まったら、紙に書き出してみたり、声に出して人に説明してみたり、積極的にアウトプットをすることで、自分の頭の中を整理する習慣をつくって思考力を鍛えました。

確実な成長は、積極的なアウトプットとよき師匠との出会い

小川雄大氏

ー積極的なアウトプットということですが、コードや自身の考えは積極的に外にだすことが大切だと。ー積極的なアウトプットということですが、コードや自身の考えは積極的に外にだすことが大切だと。ー 積極的なアウトプットということですが、コードや自身の考えは積極的に外にだすことが大切だと。

僕自身なんでもひとりでやってきたわけではないです。勉強会にしても、最初は会社の人が教えてくれて、連れて行ってくれて。職場や勉強会で出会った人たちからアドバイスをもらって、周りの人たちといっしょに振り返りを繰り返したことで、大きく脱線せずに成長できたと思っています。

ー以前、小川さんが登壇されたときのスライドにも「よき師匠に出会う」というキーワードがありましたね。ー以前、小川さんが登壇されたときのスライドにも「よき師匠に出会う」というキーワードがありましたね。ー 以前、小川さんが登壇されたときのスライドにも「よき師匠に出会う」というキーワードがありましたね。

僕の師匠の久保敦啓さんは、僕が初めて触ったフレームワークをつくった方なのですが、彼の勉強会に参加することでフレームワーク以外のことも指南していただいたりして、僕の方向性を見出し、導いてくれた方でもあります。

独学では、プログラミングの広い世界で逸れずに成長していくことはけっこう難しいと思っていて、導いてくれる人やそういった環境が、もっといろんな人に与えられるといいなとすごく思います。

ー師匠になっていただきたいと思った方に出会った時は、どのようにアプローチしたらよいでしょうか。ー師匠になっていただきたいと思った方に出会った時は、どのようにアプローチしたらよいでしょうか。ー 師匠になっていただきたいと思った方に出会った時は、どのようにアプローチしたらよいでしょうか。

率直に「どうしたらいいですか」と聞いちゃうのがいいと思います。そういった方は割りと教えるのが好きな方が多いと思うんですよ。

知ったかぶりをしていても良いことはないと思っているので、自分の今の迷いとか気持ちを正直にぶつけたらいいと思っています。返してくれる人は返してくれるし、それで返してくれない人は師匠には向かないんじゃないかなと。

僕自身、情熱的な人たちが成長していく様を応援するのは楽しいですし、今のモヤモヤをそのままぶつけてみたらいいと僕は思います。

また、勉強会に来ている人たち、とくに発表されているような人たちは、エンジニアの幸せを願っている方が多いですし、相談にのってくれる師匠は比較的見つけやすいと思いますよ。

エンジニアにとって幸せな世界をつくっていきたい

小川雄大氏

ー経営者やトップ層がエンジニアリングを理解することで、エンジニアの環境や待遇などがもっと変わってくるのではないかと思っているのですが。ー経営者やトップ層がエンジニアリングを理解することで、エンジニアの環境や待遇などがもっと変わってくるのではないかと思っているのですが。ー 経営者やトップ層がエンジニアリングを理解することで、エンジニアの環境や待遇などがもっと変わってくるのではないかと思っているのですが。

プログラミングが未知の分野のことであったとしても、ちょっとでも知っていてくれると、互いにコミュニケーションがとれるので興味をもってもらいたい思いは強くあります。エンジニアがきちんと評価されるためにも、プログラミングに興味をもって理解してくれる人を増やすことは大切だと思います。

ただ、ビジネスでは非エンジニアの方がエンジニアに歩み寄るだけではなく、エンジニアから非エンジニアへの歩み寄りも必要。エンジニアも人との対話を疎かにしてはいけない。エンジニアも「人間はどう考えるのか」をよく考えなければいけないですね。

ーどちらからも歩み寄らないといけない、というのはおっしゃるとおりですね。ーどちらからも歩み寄らないといけない、というのはおっしゃるとおりですね。ー どちらからも歩み寄らないといけない、というのはおっしゃるとおりですね。

人間のやっていることを任せられるのがプログラミングの基本的な役割なので、やはり人間ありき。プログラミングはあくまで、課題の解決方法や手段。コンピュータとの対話に重きを置き過ぎてしまうと、人間にとって幸せでない環境をつくってしまうかもしれません。人間はどう考えるのか、エンジニアは人間ありきでプログラミングを考えるべきだと思います。

僕は今、エンジニアのおかれている環境をもっと良くしていきたいと考えていて、例えば、ライブラリをつくってコーディングが楽になるようにしたり、コーディングのルールを決めることで秩序のあるプログラミングをできるようにしたり、読みやすさを向上させたり。

僕自身、失敗した経験がたくさんあって、一時はプログラミングがかなり苦痛だったこともありました。ひどいバグをつくって自社の本番のデータベースを飛ばしたりとか(苦笑)。その時は、本当に顔面真っ青になって、実際はなんとか対処したのですが、そういった経験から、もっとエンジニアの幸せを考えた環境をつくっていきたいという思いが強くあります。

ー著書『パーフェクトPHP』でも、そういった思いが強く反映されている印象がありますね。ー著書『パーフェクトPHP』でも、そういった思いが強く反映されている印象がありますね。ー 著書『パーフェクトPHP』でも、そういった思いが強く反映されている印象がありますね。

この書籍にはコラムをたくさん設けていて、そこには自身の経験で気づいた、ビジネスの現場でコードを書くときには気をつけないといけないないけど、現場では誰も教えてくれないようなことをたくさん盛り込みました。

僕自身の強みは、現場でたくさんの試行錯誤を日々つづけているからこそ伝えられる「実践的な事例」を数多くだせることだと考えているので、そういったエンジニアが現場で活かせる、プログラミングのスキルアップに必要な知識や考え方をもっと世の中に伝えていきたい。

最後に、プログラミング学習者に向けたエール

小川雄大氏

ー最後に、プログラミングを勉強している皆さんにエールをお願いします。ー最後に、プログラミングを勉強している皆さんにエールをお願いします。ー 最後に、プログラミングを勉強している皆さんにエールをお願いします。

とくにかくたくさん書いて、エラーを出して、自分のコードを何度もじっくり見直すこと。そしてコードはオープンにしてどんどん人に見せて、いいものを取り込んでいくことが大切。

ーやはり人に見せること(コードレビュー)が大切だと。ーやはり人に見せること(コードレビュー)が大切だと。ー やはり人に見せること(コードレビュー)が大切だと。

動かないコードの修正はなんとかご自身で頑張ってもらって、動くコードについては、更に良くさせるためには積極的に人に見せ、ちゃんと日々振り返る(反省する)習慣をつけることが大事かなと思います。

恥ずかしがって見せたくないという人もいますが、プログラミング初心者の方こそ、変な癖がついてしまう前に自分の書いたコードは積極的に人に見せて「振り返る習慣」をもって欲しい。

それから、「なんで?」を追求し、思考を深堀りする習慣をつけること。プログラミングの世界に入ったら、考えることからは逃れられない。理系・文系だからとかじゃなく、どちらにとっても考えることは重要だし、わからないことがあれば勉強すればいい。そのためには、諦めずに考えることがとても大事だと思っています。

関連記事

CodeCampus編集部
この記事を書いた人
CodeCampus編集部
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp