k242hd's memo

RubyとAndroidと時々TopCoder

情報系大学生に向けて一言

情報系の大学生の方で「プログラミングやってみたいけど難しそうだなー」とか「プログラミング興味あったけど授業で挫折した」というのに当てはまる方へ一言。

 

まず、プログラミングを学ぶためには何か目的が必要となります。

プログラミングは手段であって目的ではないとか、そういう話をしたいのではなく、単に目的がないことには続かないというだけです。

 

ゲームを作りたいとかスマホアプリを作りたいとか、そういう明確な目的があればベストです。しかし、プログラミング言語自体を楽しむとか、新たな技術に触れることを楽しむとか、モチベーションさえあればそんな感じの目的でもいいんじゃないかな、と思います。

 

プログラミングを学ぶための手助けとなるサービスには、

など、探せばもっと見つかります。

これらのサービスを活用すれば、もくもくと本を読むような方法よりもモチベーションを維持しやすくなるのではないでしょうか。

個人的な意見として、これらのサービスはプログラミングを始めるための取っ掛かりとして利用するといいのではないかと思います。

 

上記のサービスを通して、「お、ちょっとおもろくなってきたな」とか「自分でもできるんじゃないか?」とか思ってきたら次のステップですね。

本を買ってみて1つの言語をある程度習得してみるもよし、ネットで調べて何か作ってみるのもよし、だと思います。

 

ただ、何でもかんでも1人でやっていると、分からないことや見えてこないことが沢山あります。綺麗なコードを書く方法や、よりスマートに処理する方法など、本やネットからは学びにくいものです。

 

そういう状態を打開するためには、人に出会うことが重要です。勉強会に参加してみたり、プログラミングのサークルに参加してみたり、探せば見つかるのではないでしょうか?

ペアプログラミングしてみたり、コードレビューしてもらって初めて気づくこと。これがすごく重要だと思います。

 

 

以上になりますが、ここに書いたことは「こうするといいのではないのか」という一例に過ぎません。人それぞれやり方が違うのは当然ですが、初めの一歩を踏み出すことと人に出会うことが重要である、といった点を理解してもらえたら幸いです。

Rubyで素因数分解って簡単じゃん

他の言語で素因数分解をやろうとしたら自分で処理を書かないといけないことが多い。

(...と思われる)

 

ところがどっこい、Rubyだったら超簡単。

primeライブラリの中にそのメソッドが入っているのである。

 

素因数分解したい数に対してprime_divisionメソッドを呼んでやるだけ。

結果は2次元配列で返ってきて、

[[2, 1], [11, 2]] → (2*1) * (11*2) = 242

といった感じである。

 

また、素数と乗数の配列から元の数を生成することもできる。

その場合は、Primeクラスのint_from_prime_divisionメソッドを使うだけ。

 

ね、簡単でしょ。