C++入門サイトを公開

http://touchcpp.blogspot.jp/

メニューが使いにくいので修正したいです。bloggerのテンプレートの仕様がよくわからないのでいまいち使いにくい感じでした。

 

なかなかテキストメインのサイトに適したものが少ないので、そのうち自分で1からテンプレートを作って見ようかと思います。とりあえず次はJavaScriptのサイトを作成予定です。

CPP入門サイト公開まで後一歩

とりあえず公開できる程度のページ量が確保できました。大小合わせて80ページとなりました。これをベースに使い方や実例のサンプルを増やしていこうと思います。メニューを作成し終えたら公開予定。

 

翻訳で苦労した点

fomal parameterは仮引数、parameterは引数、augmentも引数。

Longman English Dictionary Online で辞書をひくと

parameter: a set of fixed limits that control the way that something should be done:

augment: formal to increase the value, amount, effectiveness etc of something

パラメータは目盛りをグリグリして出力を調整するイメージ。augmentがよくわかりません。数式に近い感じでしょうか。関数呼び出し時はaugment、関数内部ではparameterかと思いましたがそんなこともないようです。

 

もちろん全文を読めばどういう意味で言っているのか理解できますが、関数呼び出し時の~や関数内部の~と読む人が混乱しないように補足すると文章が長くなってしまいました。

 

あとは能動態か受動態あたりでしょうか。受動態が多くなるとやや読みにくくなるので能動態に直しました。合わせて品詞も入れ替えましたが間違えがないか少し心配です。

 

今後の予定

実際に1つサイトを作るといろいろやりたいことが出てきました。とりあえず次はSwiftの入門サイトを作ってみようかと考えています。

C++サイトの進捗

とりあえず応用編が完了しました。あとはオブジェクト指向編を終えたら一旦公開しようと思います。

 

現段階で30ページほどになりましたが、書けば書くほど足りないものが出てくるような感じです。現状の自分の能力的に解説しきれないものが多いのもつらい。こう書けばこうなるということは言えても、「なぜそうなるのか」と一歩踏み込んだ解説ができないことが多いです。それでも開発はできるとはいえ、初心者向けサイトとしては至らないと感じる箇所が多々あります。

 

いわゆる教科書的な言語の仕様に関する説明は程々にして、ケーススタディを増やすほうがわかりやすくなるかもしれません。小さくてもしっかりとした、または自分で使えるようなアプリケーションをつくるための情報を追加していこうと思います。

 

最終的な目標として、段階的な学習のサポートができるようなサイトを目指しているので、短いサンプルを提示して終わり、というのを解消したいです。再入門向けにC11/14の情報もまとめられたらと考えています。同じサイトでやるかは別にして。

C++の応用編を書き終えて

自分で作ってみてC++入門サイトの何が難しいかというと、魅力あるサンプルコードではないかと思います。何か処理してコンソールにちょっと出力するだけのものだと、地味すぎてプログラミングができるようになりたいと思わせる力が他の言語に比べて弱いのではないでしょうか。

 

かと言ってOpenGLやDirect Xを使うと敷居が高くなりすぎますし、Windows APIを使うとWindows+Visual Studioの限定されてしまうのも良くないように思います。

 

C++の汎用性のようなものが初心者にとって理解し難いのかもしれません。携帯用ゲームを作りたいというのであれば、開発環境に違いはあれど言語はJavaと決め込んでサンプルを動かしていくような、わかりやすい上達方法が初心者でも思いつきます。一応C++でも携帯ゲームは作れるようですが。

 

C++に限らずプログラミング言語全般で初心者向けにゲームを作ってもらおうというのは良くありますが、最近はライバルが強すぎてC++は劣勢じゃないでしょうか。個人的には環境設定、もっと言えばVCの初期設定が足を引っ張っているように感じます。

 

コンソールでゲームを作るようなサンプルも考えましたが、コンソールでゲームを作ってリリースしたいと思う人はいないでしょうし、何のためにC++を学んでいるかブレさせる気がしてしまいます。

 

エクセルを読み込んで編集してみたり、コマンドラインやバッチファイルと組み合わせて自動化してみたりということも考えてみましたがやはり地味。昔の学習スタイルではなかった、またはできなかったようなことがなにかないかと考え中です。自分の勉強も兼ねてメガデモ作成あたりをやれたら良いなと思います。

 

 

GitHubへの導火線

初心者向けの書籍やwebサイトはゲームで言えば説明書のようなものだと思います。説明書を読んで理解したところでゲームがうまくなるわけではないように、プログラミングも次のステップへ進む必要があります。

 

ゲームに習って言えば、SNSやブログで情報を集めて自分でやってみるといったところでしょうか。最近では動画配信サイトtwichを見るというのも流行りの手段でしょう。

 

twichはプログラム界隈で言えばGitHubでしょうか。「Krippがやっているから真似してみよう」という代わりに「linusがやっているから真似してみよう」と小中学生が興味を持ち始めるようなことがあるのかもしれません。

 

実際のところ、他人のソースコードを読むということはプログラミング能力の向上に大きく貢献するとは言われますが、そこへ誘導される機会が初心者にとって少ないような気がします。C++Javaという単語とGitHubという単語がなかなか結びつかない。

 

昔は昔でベーマガを写せば手元でゲームが動くというような環境があったようですが、言語が多種多様でプロジェクトも肥大化・複雑化している現在ではソースを読もうとするとレベルに適切なものを探すのは大変かもしれません。

 

よく「○○が読むべき本20XX年版」みたいなランキングは見かけますが、初心者が読むべきコードのようなものは誰かすでにまとめていたりするのでしょうか。そのうち調べていこうと思います。

技術英語を翻訳してて思うこと

C++応用編を作成中

C++に関する英語の文章を読んでいると、割りと日本語よりわかりやすいなと感じることがあります。たとえばなんとなく程度でしかtemplateを理解していなかったのですが、英語だとtemlateの説明にplaceholderという言葉が出てきます。

 

placeholderとはC++に限って言うと、後から決まる一時的な名前(または型)のことで、いわば仮名です。この言葉一つでtemplateの理解が結構進んだ気がします。過去に読んだ専門書などではこういう言葉は使ってなかったように思います。選んだ本が悪かっただけかもしれませんが。

 

逆にわかりにくくなる時は、英語をきっちり訳そうとして適切な日本語を探したりし始めた時であり、収集がつかなくなることが多く、機械翻訳のような文章になりがちです。そうして出来上がった日本語の文章は形は整っているかもしれませんが、読む人にとってプログラミングの理解の助けにならないような気がします。

 

悩みどころ

当たり前ですが、C++の知識が全く無い人がC++の解説を翻訳することは無理だと思います。先入観に囚われたくないからあえて知らないままやるわというほど英語ができるわけでもありません。

 

C++も英語も中途半端な実力で翻訳作業をしていると、どうしても原文に忠実に訳すか、日本人の初心者がわかりやすい訳にするかという間で悩むことがあります。基本的に後者寄りに訳していますが、少なからず情報が抜け落ちてしまいそうという点と、そのことが原因で結果的に嘘を書いてしまうのではないかという心配が出てきます。

 

落とし所を探す

大学教授でもなければ企業の名を冠してやっているわけでもないので、そこまで気を使うこともないだろうとは思います。そもそも直訳したところで元の文章が間違っていた場合、記事を書いた責任がなくなるわけではないですから。

 

コンパイルが通るコードを載せているから大丈夫」よりもう少し高い信頼性の有る記事がかけるようになりたいです。書いていると欲が出てくるもので、アプリケーションの開発例なども作れたらと思います。C++の1次資料的なものの充実というよりは、2次3次のあたりを広く浅くやっていこうと思います。

 

驚き

google翻訳の英語の読み上げは結構ちゃんと作られていて驚きました。ネイティブの人からどう聞こえるのかはわかりませんが。

C++の初心者向けサイトを作成中

C++再入門

自分の復習を兼ねてC++勉強サイトを作り始めました。きっかけは漠然とではありますが、海外と日本の技術サイトの情報量の違いを埋めたいなと思ったからです。大層なことはできませんが。

 

海外サイトの翻訳が中心になりますが、とりあえず基本編がほぼできた状態。自分が触り始めた頃にはなかった仕様などもカバーしていきたいです。

 

C++の需要

見返してみると、C++は流行の言語に比べ、どの言語をやろうかと考えている人に対して訴求力が弱いのかなと感じます。node.jsやrubypythonあたりだとゴリゴリwebからリソースを引っ張ってきてゴニョゴニョしてドーンと派手な感じに見え、かつコード量も少ないものを経験してしまうとC++は時代遅れな感じが否めません。ゲーム向けというのも最近だと携帯が主流のようですし。

 

とはいっても、メモリなどのハードウェアを意識した言語設計は、ソフト・ハードを深く学ぶ上で最近流行の言語にはない長所と言えるのはないでしょうか。最初に触るものとしては悪い選択ではないと思いますが、海外サイトを見る限り人気はかなり落ちてきているようです。

 

入門サイトを作って思うこと

やはり文章能力とプログラミング力は比例するのでしょうか。読み返すと自分が初心者の頃に感じたことと同じような印象を受けることが多い気がします。要はわかりにくい。

 

専門的な英語はどうしても直訳っぽい感じになってしまい、日本語として不自然なものになってしまいがちです。分かりにくければサンプルコードを増やせばいいだろうという短絡的な考えも自身の文章力に悪影響を与えそうです。

 

当分ははてなを進捗、メモ代わりにしていこうと思います。少しでもアウトプットを増やし、文章力、ひいてはプログラミングに良い影響を与えることを期待します。