Project Flower ブログ

Project Flowerのブログです。

C++を学習する

自分の知らないプログラム言語を習得しようとする時、社会に出てからは、一から手取り足取り教えてもらえる機会はなかなかない。

自分は新しい現場でC++Builderを使う事になったが、C++Builderの本はあまり見つからなかった。

神保町の三省堂で見つけたので購入してみたが、内容が多くリファレンスマニュアルのようなものだったので、どこから覚えるべきかわからずあまり役に立たなかった。

そもそも大学のFreeBSDでCでHello Worldを学んだ程度で、本格的にプログラムを書いたのはC#Javaしかなかった。(子供の頃にMSXFM TOWNSでBASICを書いてはいたが)

C++に拡げれば様々な本があるし、Webで学習する事もできなくもないが、選びきれない。そんな優柔不断で横着でせっかちな私が見つけた初心者にお勧めだと思ったのがこれ。

日経ソフトウエア 2010年 04月号付録の“C++まるごと学習ブック”。(絶版)

日経ソフトウエア 2010年 04月号 [雑誌]

日経ソフトウエア 2010年 04月号 [雑誌]

 

この冊子の何が良いかと言えば、“ページ数が少ない”という事。

C++でプログラミングをする上で最低限必要な知識を、実際にコーディングしてコンパイルして実行するという手順を示してシンプルにわかりやすく解説されている。

クラスの継承について重点的に説明しているのはもちろん、コピーコンストラクタや分割コンパイルについてもしっかりと解説されている。(現場ではこのあたりをよく理解せずプログラムを書いているコーダーは多いと感じている)

演算子の多重定義・例外・テンプレートまで解説されていて、それでいてボリュームも大きくないので、初心者にとって抵抗感は小さい。この冊子を一読する事でC++に対する不安は和らいだ。

なお3月号は“C/C++基礎から学習ブック”が付録となっている。プログラム言語を学習するのが全く初めての場合は、こちらから読み始めた方が良さそう。

日経ソフトウェアバックナンバーを電子化しているのだが、これらの付録は電子化されていないので、現在のところ、古本以外で手に入れる事ができないのが残念なところ。一部の付録は電子化されているので、この冊子の電子化も期待したい。

ちなみに日経ソフトウェアは2012年頃にインターン女子C#を学ぶという連載マンガがあったが、これも実に良かった。MSDNライブラリで難解な解説を読んでも理解するのに時間がかかるが(何故MSDNライブラリは図や画像の掲載が極端に少ないのだろう?)、マンガとして噛み砕く事でわかりにくい知識も比較的すんなり受け入れる事ができた。

Windows 10 Creators Update

エクスプローラからコマンド プロンプトを起動させることができなくなり、標準がPowerShellに変わりました。

一向に構いません。でも、

desktop.ini

このファイル何とかなりませんか?

そもそもINIファイルってもはや非推奨なのでは?

学習

私は某SIerの下請けとして開発職に携わっている。

この会社の社員の学習意欲は総じて低い。

新入社員は意外と多い。入社後しばらくは研修としてC言語のプログラムの書き方を教育されているようだ。

しかし実際現場に入ると設計も任される事になる。

設計の仕方を知らない新人がどうやって設計をすれば良いのか?

それは、先輩達が書いた設計書と同じようなものを作れば良いのである。

そしてそれは設計書とは言ってもファイルの一覧やプロセスの一覧が書かれた表のようなものがある程度で、そこからソフトウェアを作成していく事ができるとは到底思えない代物。中堅の社員でさえ、フローチャートしか書けず、ER図やシーケンス図を書いた事がない。

つまり、文書を作成するだけなのだ。

そしてプログラムはこれまた先輩達が作ってきたものをベースに書き換えて、動けばいい。最早設計書など必要ない。客から要求されているから仕方なく作っているようなものだ。設計書がいい加減だからテストを作成するのも苦労する(ちなみにこの会社は単体テスト=画面レベルのテストと認識している。それ以下のレベルのテストはないので、関数レベルのテストはプログラマーがこっそり作成する事になる。当然、自動テストもCIも導入する気はない)。

開発で主に使用するIDEC++Builder。それもXEではなく、Borlandだった頃の6。10年以上前の開発環境を新規案件でも使っている。

何故C++Builderなのか?答えは簡単、他のツールの使い方を知っている社員がいないから。

この会社は今時珍しく(?)中途採用の社員が殆どいない。

そして社員が受ける研修らしい研修は前述のC言語だけ。文系大卒も多いので、どの程度のレベルの内容かも想像はつく。

だから何か新しい事を始めようとしてもリスクを恐れ一向に踏み出せない。

先日Windows Serverの新規案件があったのでASP.Netを提案したが、“誰も作り方がわからないし、ASP Classic(VBSで書くASP)は今までやってきた実績があるから”という理由で一蹴され、Classicになってしまった。

そもそも新しい技術とは今までできなかった事や不便であったものを使えるように、或いは更に使いやすくするために登場するものである。

“使った事がない”“使い方がわからない”“何が起こるかわからない”と言って躊躇っていてはいつまでもその恩恵を受ける事ができない。今まで10行書く必要があった処理を1行で書く事ができるようになれば、品質を向上させる事にだってつながる。

最近どういう風の吹き回しか、ある社員によりJavaScriptを導入する事になった。新しい技術を使えるようになって自らのスキルをアピールする事は結構な事だ。

しかしその人から渡されたコードはWebで拾い集めたサンプルコードを組み合わせただけのようなものだった。

私は自社の研修でJavaScriptの研修があったのでそれを受講した。研修ではMEANを扱った。衝撃を受け、愕然とした。

現実的に今からASPからNode.js等に移行するのは無理だろうし、MEANの話をしたら拒否反応を示されるだろう。

でも、仮にもお客様に納入する製品をサンプルコードの組み合わせで実装するというのも如何なものか。

私のような協力会社は割といる。しかし協力会社は立場が低く、意見が採用されない。開発環境が良くないからこれを使いましょう、余所の会社ではどこでもこれをやっているのでやりましょう、等と言っても怪訝な顔をされるだけだ。

私はこの会社が中途採用をしたがらない理由が最近わかってきた気がする。同社に流れている生ぬるい空気を見知らぬ風に吹き飛ばされるのが嫌なのだろう。自社の社員の学習意欲は低いので、中途の社員の方がスキルが高い可能性は高いのである。そして社員同士は切磋琢磨する必要がなくなるので、学習意欲もきっと向上しない。

PF Mouse 更新

PF MouseWindows XPで起動しなくなっていたため修正しました。

又、余計なデバッグ情報が含まれておりファイルサイズが肥大化していたため修正しました。

移行しました。

はてなに移行しました。

過去記事はhttp://blog.goo.ne.jp/project_flower

Backside ProjectにPF TrashとPF Clockをアップロードしました。お試し下さい。