雑記
大学の課題とお仕事
Shoma Saito
こんにちは。最近単位と卒論に追われている生活をしております。
会津大学の話にもなってしまうのですが、大学は高学年になればなるほど発展的な内容を取扱います。
大学入学直後はC、Java、C++の主に3つを使って基礎的なプログラミングの授業があります。
自分の場合、C++を二年生の時に落としてしまい、今再履修している身なのですが、少し感じる事がありこれを書いています。
仕事のタスク
主にIT企業では何かしらの管理ツールを使って問題を管理、解決していくと思います。
Eyes, JAPANでもJIRAという課題解決ツールを使っており、それぞれのIssueに細かく問題点や改善策、終了条件などが明記されています。
自分は最近、こういった管理ツールがいかに重要かを実感しています。。。
大学のプログラミング系の課題
会津大学でいうと、授業毎に担当の教授がおり、教授毎に課題の提出方法、終了条件などが異なります。
課題は大きく分けて穴埋め問題と大部分を実装する問題にわけられると思います。
終了条件の大切さ
大学の課題で言うと、穴埋め問題の方は終了条件が明確だと思いますが、大部分を実装するとなるとどうしても終了条件が曖昧になってしまいます。
最近躓いたのが、「標準入力から数字を受け取り、奇数ならばファイルに保存する」というプログラムを書けという問題でした。
実際にはこんな問題簡単に解けてしまいますが、解法が無数にあるのでそこで躓いてしまいました。
またこの授業では解答が配られず、どんなにひどいコードを書いたとしても動けばクライアントである教授的にはOKなのです。
お仕事でそういったプログラムを書く場合、自分が最適解だと思う方法を他のアルバイトや社員さんに話して、「こういった実装をする、ここまで実装する」とJIRAやSlackに書き込んだ上で実装しています。
自分が大学1, 2年生の頃はコード自体の良し悪し(可読性が良いか、セキュアかどうかなど)に全く判別が付かず、「動けばいい」と思っていました。
もしかしたら自分のような大学生は多いんじゃないでしょうか…?
出来れば課題にもコードレビューなどの文化を取り入れると良いかもしれない、と思っています。
学生は今後どうしたらいいか
Eyes, JAPANにいるアルバイトの学生は主に社員さんからコードレビューをもらっていますが、アルバイトスタッフ同士でコードレビューし合ったりもしています。
学生によってはゲームを作るサークルに所属していたり、実践的な課外授業を受けていたり、自分のようにインターンをしていたりと自分のコードを他人に見てもらう機会があると思います。
そういった機会を大切に、出来れば図々しくコードレビューをしてもらうといいかもしれませんね。