プログラミングは大枠から学ぶ
訪問ありがとうございます。WEBエンジニアの桝谷です。
私はこれまで、SES企業で働いていたということもあり、半年スパンで新しい言語や、新しい仕様を覚えるということを繰り返してきました。
当然、新しい言語や仕様をどうやったら効率的に覚えるというスキルも、経験によって多少は習得できているのではないかと思います。
そんな私が普段新しいプログラミング技術や仕様を覚える上で、大切にしていること、気をつけていくことを共有したいと思います。
大枠から攻めていく
あなたが新しい職場やプロジェクトに入って、まずやることと言えば、手順書を見ながらの環境構築と様々な設定になると思います。
そして、環境構築が終わった段階で、ソースコードや設計書を見れるようになり、まずはどんなものか動いているのかの確認としてソースコードや設計書を見る時間、実際どんな物を作っているのかという説明をされ、簡単な修正タスクや、簡単な機能を質問をしながら開発していくという流れが一般的だと思います。
実際、何かを作ったり修正するとなる段階で、何をすればいいのか全くわからない、ソースコードも何が書いてあるのかわからないという現象にも陥るでしょう。
この状態から、効率よくその言語や仕様を掌握するために、「大枠から攻めていく」というテクニックが有効です。
とはいえ、使われている言語や、ライブラリ、サービスの一般的知識から攻めても、無駄に時間がかかるだけで、全然効率的ではありません。
大切なのは、与えられたタスクの内容から逆算して大枠を掴んだ上で、その掴んだ大枠から、細部の理解を進めていくことです。
例えば、一番最初に与えられたタスクが、ページに表示されているコンテンツの表示内容を修正するという物だったとします。
まずは、その対象となる箇所のソースコードを見るわけですが、何が分からないのか分からないという状態になると思います。
もし、それがWebサービスであるなら、とりあえず私は以下のようなことが気になって質問すると思います。
・表示確認を行うために、今修正しようとしているソースコードが置いてある環境とその位置付けはどうなっているか。
・開発環境で修正した内容はどういう手順で本番環境に適用されるのか。
・本番環境と開発環境の違いは何か。
・開発環境は、どういう構成で作られているのか
・本番環境は、どういう構成で作られているのか
・開発環境で適応した内容がリアルタイムで、自分のブラウザで反映される仕組みになっているが、どういう仕組みでそうなっているのか
・修正しようとしている機能は、Webサービスのどの辺の機能で、TOPページからどういうフローでたどり着いて、どういうフローで抜けていくか
・修正の目的と、実現したい内容
・その現場のソースコードの流儀
・その機能は、どういう言語で実装されていて、どういう仕組みが使われているのか
・なぜその技術を選んだのか。類似の技術は存在するのか。
・実装する上で、どういうところに気をつけなければいけないか
ざっと何も考えずに書いたので、シーンに統一性がありませんが、その現場ごとにまずは、上記のようなことが気になり、聞いていきます。
最初に気になった内容を理解した上で、実際にソースコードを眺めると、「ではこれはどうなんだろう?」という疑問が出てくるのでそれも聞きます。
その繰り返しで、自分が担当した箇所だけは、完全に掌握したと思えるようにしましょう。
その場で大量に質問をして、時間をとってもらったとしても、ちゃんと理解して進めば、同じようなシーンに自発的に対応できるという機会もどんどん増えていき、点の修正を随時していくより、最終的な時間効率は圧倒的です。
このペースで、いろいろな開発を繰り返していると、数ヶ月もあれば、機能の実装や修正であれば大体どんなことでも対応できる、戦力となれる状態を作ることができると思います。
実際に目の前にあるわからないと解決するために悩むのではなく、もっと広い視野を持って、大枠から理解を進めることで、効率的にプログラミングや、サービスの理解を深めていくことができると思います。
------------
最後まで読んでいただき、ありがとうございます。
面白いと思ったら、スキ、フォロー、シェアなどしていただければ嬉しいです。間違っている点、不明点、質問等あれば、Twitterの方でリプライいただければと思います。
Twitterのフォローもお願いします!
この記事が気に入ったらサポートをしてみませんか?