データ処理に関する世界観です。
データ処理をしましょう。
プログラミングの基本は、データ処理をすることだと僕は思います。
たとえば、正規表現でパターンマッチをして、文字をカウントしたりすることができます。
あるいは、テキストをパースするパーサーを作って、ツリー構造のデータ構造に変換したり、そのデータを操作してさまざまなことが解析できたりします。
データ処理について、かつてよりUNIXでは、動的スクリプト言語が使われていました。
かつてはPerlがもっともデータ処理が得意な言語でしたが、今ではPythonやRubyがデータ処理によく使われます。
Rubyの参考文献として、Ruby Way 第2版をおすすめします。Rubyによるデータ処理やデータ構造の操作のことが、一通りきちんと書かれています。Rubyの基本文法を学び終えて、「Rubyでさまざまなことがやってみたい」と思う方には参考になる書籍だと思います。
また、データ処理とアルゴリズムは紙一重です。アルゴリズムを書くということは、多くの場合データ処理をするということです。
ですが、基本的に、Perlのハッカーになることからデータ処理のマスターになることを目指してはいかかでしょうか。
Perlがきちんと書ける人間は、データ処理をマスターすることにもっとも近いと思います。
Perlの参考文献として、有名な結城浩さんのPerl言語プログラミングレッスン 入門編をおすすめします。Perlにおいて、特に正規表現による文字列処理を行うのであれば、この書籍がもっとも入門者向けだと思います。
また、もうひとつ、Common Lispの参考文献としてANSI Common Lisp (スタンダードテキスト)をおすすめします。Lispはもっとも抽象度が高いとも言える言語であり、その抽象度の高さが「美しいアルゴリズムを書く」ということに良い効果をもたらします。
これらの書籍を読めば、おそらくデータ処理のマスターになることができるでしょう。なんらかの文字列やデータを解析するパーサーを書くのであれば、オープンソースプロジェクトでみんなが使うような、優れたオープンソースのパーサーを作ることなどを目標にしてはいかかでしょうか。
2023.06.12
データ処理を行うのであれば、2ちゃんねる専用ブラウザを書くことがおすすめです。
2ちゃんねる専用ブラウザは、掲示板のあるサーバー上にあるdatファイルをダウンロードして、それを解析し、HTMLなどのビュー画面に変換して表示します。
この「datファイルを処理して画面上に表示する」ということが、データ処理における良い初心者向けの入門になるのです。
ですが、最近の5ちゃんねるでは、そのような2ちゃんねる専用ブラウザを簡単に作って配布することができなくなりました。
もっと別の例として、スクレイピングがあります。スクレイピングは、インターネットにおけるWebページを自動的にダウンロードして、データを処理する技術です。
昔であれば2ちゃんねる専用ブラウザで行えたことが、今ではスクレイピングで行えます。
ただし、スクレイピングは禁止されているWebサービスもあるので、注意して行いましょう。
2ちゃんねる専用ブラウザについては2ちゃんねる専用ブラウザを、スクレイピングについてはPython入門(応用・モジュール)を参照してください。
2023.06.12
僕は、プログラミングのコツは「ファイル処理を恐れないこと」だと思います。
UNIXのコマンドラインツールは、多くが引数からファイル名を取得してファイルオープンしたり、標準入出力を操作したりしながら、ファイルに対して処理を行い、処理を行った上でファイルを保存します。
このように、基本的なプログラムというのは、ファイルを処理することを中心に成り立っています。
確かにファイルを処理する以外のプログラムもありますが、ほとんどのプログラムはなんらかのファイル処理をしています。2ちゃんねる専用ブラウザであっても、スレッドの過去ログの保管のために常にファイルをローカルに保存して読み書きします。
なので、ファイル処理を恐れないことです。C言語やPerlのようなプログラミング言語で、ファイル処理を行うプログラムを書きましょう。それがプログラミングの技術向上に繋がります。
2023.06.30
Perlを参照のこと。
Rubyを参照のこと。
Common Lisp入門を参照のこと。