プログラミング翻訳勉強法

プログラミング翻訳勉強法

昨日、pythonで書かれたaidemyのブロックチェーンのコードをrubyに翻訳しました。

木下さんにお誘いいただいたGW研究の一環です。テーマはブロックチェーンだったのと僕がrubyの方が得意だったこともあり、rubyに翻訳することを選びました。

一瞬で終わるかなと思ったのですが、意外と時間がかかって勉強になりました。

翻訳することのよさ

いろんな言語を勉強したことのある人ならわかると思うのですが、どこまでが一緒でどこからが違うのかとかって正直覚えられないんですよね。でも、翻訳するとそういった細かい部分のエラーが大半なので、細かい文法の違いを勉強することができます。

他にも難しくて理解ができていなかったところの習得にも向いています。例えば、pythonのリスト内記法やfor文は理解ができていなかったので、rubyに翻訳する段階でコードを理解することができました。

all(k in values for k in required)

とかですね。

 

コード自体の理解が深まる

aidemyやprogateなどのサービスは素晴らしいのですが、自分で一からコードを書く経験にはならないので理解したつもりで終わってしまうことが多くあります。

僕も実際にブロックチェーンの実装は理解したつもりで終わっていました。

もちろん何も見ないで実装できたらそれでいいのですが、なかなかそれをできる人はいないだろうし、モチベを保つのも難しいでしょう。

だからといって、見ながら写経してもいいのですが答えがそこにあって全部コピペしたら動くのがわかっているコードを写すのもなかなかモチベの維持に困りますよね。

 

そこで、プログラミング翻訳勉強法の出番です。

 

文法が違うところを直したらいいだけだと思いそうですが、案外コードの中身を理解していないとうまく翻訳できません。

それに、細かいところが違うのでほとんどコピペができないので、いい抑止力になります。笑

でも、かなり大きなヒントにはなるのでそんなに詰まることもなく簡単に実装できます。エラーもえぐいのは出にくいはずなので、簡単なエラーを読む勉強になるかもしれませんね。

なにより、自分が0から作って動かしたコードという成果が得られるのが大きいかもしれませんね。

 

今回は、aidemyのブロックチェーンを実装しましたが、これぐらいのレベルの完成品は探せばいくらでも出てきます。なにか勉強したいことのある人はぜひてみしてみてはいかがでしょうか。