こんにちは。
心理系学生の皆さん、プログラミングはしていますか?私は就職した今、学生時代に聞いたこともない言語のプログラミングをさせられています。辛い…
さてそんな中で、心理系学生が「動けばいいや」でコードを書くと就職後に地獄を見ることに気付きました。今回はその理由と対策について書きます。
問題1:新しい言語の学習効率が低下
心理系学生の皆さん、ラボで使うプログラミング言語は何ですか?色々あるでしょうが、多くの場合以下のようなものでしょう。
- R
- Python
- マクロ(VBA)
- C/C++
企業で研究開発する私が仕事で使うのはマクロ(VBA)とMATLABです。Rは完全に使用禁止*1です。
学生時代と違う言語を使う為、多くの場合は0から学び直しになります。その時には「動けばいいや」でコードを書く癖がついていると、参考書に書いてあるプログラミング用語の意味がわからず学習に膨大な時間を要することに…。
問題2:他人が自分のコードを読めない
私の学生時代(5年くらい前)、コーディングの目的は統計処理や実験構築、面倒な前処理の自動化が目的でした。コーディングは自分の為にしていたのです。ソフトの動きや分析結果を先生に見せることはありましたが、コードそのものを先生に見せる機会はありませんでした。
他の人にコードを見られる機会がない私は、以下のような問題あるコードを書いていました。それでもマクロVBAで統計処理の為の前処理を行い、趣味の一環で資産運用に使うソフトすら作っていたのです。
- 型宣言を知らない*2
- 変数の名前はテキトー
- 変数のスコープを把握していない
こんな状態で企業に来て何かのシミュレーション用コードを書くと、「君のコードは読んでもわからない」と毎回のように言われます。
私の場合、何かのソフトを作るためにコードを書いているわけではありません。あくまで1ユーザであるにも関わらず他の人がコードを読めるか?が求められます。
対策:良いコードを意識的に学ぶ
RやExcelマクロの入門書では、外部からのデータ読み込みやForループ、IF分岐など初歩的なことは教えてくれます。ただし、仕事で使いたいならそれでは足りません。
- コードの読みやすさ
- コードの流用しやすさ
といったプラスαのことも知っておく必要があります。そしてこれらは意識して学ばないと絶対に身につかないものです。そうでないと凄腕プログラマたる取引先の方に対して「動けばいいじゃないですか?」と言う私のようになります。
良いコードの知識を得るためには、Qiitaのようなエンジニアコミュニティサイトを読んだり良いコードについての本を読むべきです。
有名なものだと、こちらの本ですね。
このようなエンジニアコミュニティのサイトでは、RよりもPythonやCなどの言語で解説されることが多いです。その為、学生時代に最低限Pythonの文法がわかるようにしておかないと、読んでも理解できん…となりがち。