自己啓発の為、独学で他の言語を学習したいと考えています。
C/C++、Ruby、JavaScript、Objective-C、Scheme等々考えられます。
いくつかの言語を同時に身につけたいと考えておりますが、
そのようにして、学習をされている方はおられるでしょうか?
要領よく身につける方法や、注意点などがございましたらお教え願えませんでしょうか?
よろしくお願いします。
自分の駆け出しのころの話ですが、ご参考までに――。
要件を1つだけ決めて、同じアルゴリズムを複数の言語で実装するという修行をしていました。
算術処理系は、ハレー彗星の出現予報をするという要件で(年代が分かっちゃいますね)、これを C, FORTRAN, BASIC, PL/1 で実装しました。
論理処理系は診療支援エキスパートシステムという要件で、これを Lisp, Prolog, SmallTalk で実装しました。
同じ要件を同時に実装すると、モジュールの作り方の癖や、レスポンス向上のための肝が分かりますね。
注意点としては、できるだけ簡単なプログラムから始めることです。実用的で複雑なものを手がけようとすると、途中で息切れしてしまいます。
いまなら、暗号化処理とかどうでしょう。
また、うちのホームページの「PHP中級テクニック」で毎回簡単なプログラムを紹介していますので、これを他言語へ移植してみるのも面白いかもしれません。
Haskell 、Cをまずおさえたほうがよいです。
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門 | |
![]() | 山下 伸夫 ソフトバンククリエイティブ 2006-06-01 売り上げランキング : 49756 おすすめ平均 ![]() ![]() ![]() Amazonで詳しく見る by G-Tools |
C/C++言語は独学で少しかじった程度です。
ご紹介いただいたHaskellの本も購入して、勉強してみたいと思います。
どうもありがとうございました。
やはり、ただ本のサンプルなどを入力するだけだと、モチベーションが上がらないので
基本的な文法などを覚えたら、仕事のツールなどを他の言語で作ったりすると良いと思います。
簡単なツールを勉強中の言語で作成して、仕事で使ってみたり、他の人に公開してみるといいのではないでしょうか。
私もいろんなツールを色々な言語で書いたりしています(他の人がメンテしないツール限定ですが)
会社の同僚に使ってもらったり、オープンソースやフリーソフトとして公開してみるのもいいと思います。
仕事のツールとは、具体的にはどのようなツールなのでしょうか?
自作のツールを用いて仕事をするという事がなかなか想像出来ません。。
ある程度、実装が進めばオープンソースにしてみたいと考えています。
どうもありがとうございました。
>仕事のツールとは、具体的にはどのようなツールなのでしょうか?
>自作のツールを用いて仕事をするという事がなかなか想像出来ません。。
私は組込み系のプログラマなので、いろいろ仕事用のツールを自作することがあります。
例えば最近はZigBeeのRSSIとPERを測定してパソコンで表示するツールを作成しました。
本業はC/C++のプログラマですが、簡単なツールは勉強がてら、RubyやVB.netで作ったりします。
あるいは通常の業務を楽にするためのツール(例えばEXCEL,WORDなどの定型処理を自動化したりするツール)などであれば、自分用に作ったツールが他の方にも使ってもらえるのではないでしょうか。
まぁ正解なんてないですけど・・・
私はRubyとRuby on Railsをお勧めしておきます。
実装に近いCとオブジェクト指向のJavaを習得されたとのことですので、
次は洗練されたObject指向の実装のひとつであり、ツールとしても利用の容易なスクリプト言語としてRubyをどうぞ。
また、いまどきのWebフレームワークの代表格であるRuby on Railsを習得されると、
ここ数年のフレームワーク(とそれによる生産性向上)の進化が理解できるかとおもいます。
その後Javaの世界に戻ったときにもきっと今までのJavaのスキルとは一味違った見識が持てる(あらたな発想が身につく)と思います。
お返事、ありがとうございます。
pahooさんは、色々な言語で実装をされておられるのですね。驚きました。
僕自身は、画像処理に興味がありますので、
同じ処理を別々の言語で実装するという、勉強方法が良さそうです。
ご丁寧にありがとうございました。