「プログラミングを横断的に学ぶ」ということについて

2021/12/22に公開

この記事は技術同人誌・商業執筆 Advent Calendar 2021 22日目の記事です。アドベントカレンダー参加しまくってたらこの記事で10件目に達してしまい、当日に泣きながら書いてます。まるで試験前の学生みたいですね。

今回は技術系の執筆活動ということで、今ZennのBookとしてまとめている本について紹介してみます。

場所

執筆中です。アドカレ書いてたら進捗が止まってしまいました。

https://zenn.dev/books/671f53d8d79fba

タイトルも考え中で、

  • 欲張りな人に捧げる3つのプログラミング言語入門
  • PythonとJavaScriptとC++の3つを同時並行で学べる本

みたいなものを考えてます。

プログラミングを横断的に学ぶ本ってあまりなくね?

プログラマで書ける言語が1つだけしかないというような人はほぼいないと思います。自分もFortranという古典語から入って今はC/C++やPython、JavaScriptをメインで書いています。他にもVBAやシェルスクリプトとかも一瞬書いたことがあります。

個人的な学習経験からの課題意識として、「最初の言語をある程度書けるようになった後に何を学べばよいかわからなくなる」ということがあります。この時期に体験したこととして

  • 第一言語の次は何の言語をやればよいのかわからなくなる
  • わからなくなって手あたり次第にちょっとだけかじってすぐやめてしまう

といったことが、初級者から中級者にステップアップするにあたって課題になってくるかと思います。

自分の場合これをどうやって克服したかというと、「完全に外発的な理由でPythonやC++を勉強する機会があったので勉強したら、各言語の共通点が分かって霧が晴れたようにコンピュータの知識がついた」という流れでした。この太字部分が重要です。あまりうまく言語化できていませんが、複数言語をやることでわかる「プログラミングの本質」があるのです。これをつかむのがステップアップに重要だと思います。

しかし、世の中「Pythonの本」や「JavaScriptの本」など1つの言語に特化した本はありますが、横断的に本質を学習できる本は少ないと感じています。そこでZennのBook機能をつかって、自分のスキルアップや記録もかねて書いてみることにしました。

「はじめに」より

本テキストは「3つの言語を横断的に学び、共通するエッセンスや言語によらないプログラムの基本思想を学ぶこと」を最大の目的としています。このようなテキストはあまりないでしょう。特性の異なる3つの言語、Python、JavaScript、C++を機能ごとに整理し、プログラミングに共通する機能を同時並行で学習していきます。

目次(予定)

書いてるところなので替えることもあります。

  1. はじめに:「プログラミング言語を選ぶ」ということ
  2. プログラミング言語の種類
  3. 環境構築
  4. 基本的な変数
  5. コンテナ型変数
  6. 繰り返し処理
  7. 条件分岐
  8. 関数
  9. クラスとオブジェクト指向
  10. インターフェース(抽象クラス)
  11. Python, JavaScript, C++の相互利用
  12. 最後に:このテキストを読んだあとにやること

予定

可能であれば1月中くらいには出したいなと思っています。が、どれくらい時間が取れるかによって変わってくるので、がんばりたいと思います...。

Discussion