表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
4/12

2025年10月15日「C++が最強にいいということがわかった」

こんにちは、こんばんは。

どうも!こんばんは!?


出している時間帯が午後なので、こんばんはでいいんじゃね!?


というどうでもいいことを思ったり。


背中が疲れている……。笑


歩いてくると、膝とか足とかの疲れよりも、背中の疲れのほうが強いですね。

ボキボキ鳴らしたり、寝たりして治すしかない!!


今日は同人作業はしませんでした。

理由は昨日書いた通り、様子見をするためです。

新作を出す必要があるのかないのかです。

明日も見て、同じくらいの売り上げになったら、もう出しません。笑


勉強にブッパします。

とはいえ、来月出したいので、少しずつクオリティを上げて、必ず背景を足すとか、デッサンや陰を気をつけるとか、ボリューミーにするとかしますね。


そのあと、『やさしいC++』を読んでました。

これはやさしいとはいえ、難しい本です。笑


大抵、~入門とか、やさしい~とか、全然そんなことないというのが、お決まりのパターンです。


エンジニア界隈のやさしいは、やさしくないです。大抵。


フルスタックは逆に、フルスタックではないというのもお決まり。

ハンズオンも置いてきぼりなパターンもお決まり。

ステップバイステップは、楽すぎというのもお決まり。


じゃあ、なにがいいんだよ!


いろいろ読んで相補的に補完していくかしないです。

もうこればっかりは、仕方ないです。

そういうもんです。

一冊でわかろうなんて、甘い甘い。


ただ、一冊を三周くらい読んでから、違うのに行くのが最初のステップです。

それをさらに、AIに聞きながらやるといいです。

コードを実際に書く必要はあまりないです。


コードを書くことがしたいのならば、Paizaさんで問題を解いてください。

それで大抵書き方のパターンがわかると思います。


それだけじゃないのでね。技術というものは。


そのあと、『C++実践プログラミング』を読んでました。

オライリーの本です。

古い1996とか1997とかの本です。


めっちゃ古いです。stackは、今のC++なら、標準搭載されておりますが、構造体と関数で定義する感じをとってます。この本では。


だから、例えば、基礎知識の低レイヤー部分も知れるということですね。


C++が好きならば、簡単な今のC++だけでなく、古いC++も学ぶべきですし、Cも学ぶべきです。


そうじゃなくて、書けるぜ!は、楽しすぎなC++の可能性があります。


int ans = 0;

for (int i=0; i<n; i++){

ans = max(ans, a[i]);

}


とかも、


int ans = 0;

for (int i=0; i<n; i++){

if (a[i]>a[i+1]){

ans = a[i];

}

}


で書けることがいいです。

ほとんど変わらなくね?と思いますか?


ifやforだけで実はプログラムは作られているということから、ここまで細分化して書けることの重要性が大事なんです。


重要性が大事という頭痛が痛いみたいなw


これが書けないエンジニアがいたら、結構……うふふな感じなので、しっかり書けるようになりましょうね!


MooMooMooみたいに書いていくプログラミング言語みたいに、うふふだけでやるプログラミング言語とかあったら、面白いですよね。笑


実際に、日本語でプログラミングをするという言語もありますよ。確か。

何ていうやつだったか、忘れましたけど。


うふうふふうふうふふふうふがHello World!かもしれません。笑←嘘


何を言ってるんだ?


何だっけ……。あ、古いC++の本も読んだほうがいいし、C言語もやったほうがいいですよ、という話ですね!


vectorというコンテナの概念が登場するまで、静的配列とかでやりくりしてたとかね。


Paizaさんでも古い問題の解答では、静的配列で、vectorは使ってないとか、初期化にmemsetを使うとか、そういう古いやり方があったりして微笑ましいです。


vectorを使えば、初期化はかっこなだけですからね。


ぼくも最初は静的配列でやってました。Javaとも互換性があるので。


あと、Cの本では、int i, j, k, n, mみたいに、宣言をしておいて、さらに書くという書き方を、古い本ではしてますが、普通に初期化の書き方で宣言できます。


int i;

for (i=0; i<n; i++){ホニャララ}


という書き方は、古いです。


普通に問題ないので、


for (int i=0; i<n; i++){ホニャララ}


でいいです。


それと、古い本とか、特定の本では、


for (int i=0; i<n; ++i){ホニャララ}


と、繰り返し処理を、先にインクリメントしてますが、i++の後置のインクリメントで大丈夫です。

同じ意味かと思います。


アルゴリズマー養成講座では、そうなってました。

これ、同じ意味だよな……?

と思って、読んでました。笑


厳密には違うんですけどね。


ただ、forループでは、同じ意味です。ちょっと違いますが、混乱しないようにしてくださいね。


C++にも歴史がかなりあります。


もう数十年とか経ってるのは、確実ですからね。

すごい歴史の深い言語です。


仕様がばかでかい!!


ロベールのC++という入門本があるのですが、それは10cmくらいの分厚さで、30cmくらいの大きさです。笑


しかもそれも結構古い本ですね。笑


やばいですよね。言語仕様がばかでかいのでいくと、最強ですね。


だからこそ!!


何でも作れるというのはあると思います。

だからこそ、低レイヤーが向いているというわけなんです。


だからこそ、ぼくは好きです。


Rustよりも。Rustはなんか、違うなと思いました。書いてみて。


今だったら、Rustなのかな……と思ってますけど。正直。

でも、C++は、今後さらに進化するだろうと予想してます。


Web方面に、拡大していくと思います。


有名なウェブフレームワークが、ないので、C++でウェブアプリを作る人はほぼいないです。


いまだったら、Next.jsでいいです。


それが最適解だと思います。

しかし、他の言語でできないの?

ってことで、Django、Spring boot、Laravelとかがあるんです。



バックの処理を、C++とかでやりたい!というときにできるんですね。


今も、CppConというYouTubeで、C++のカンファレンスが出てます。


まだ発展途上ですね!


ぼくはゲームか、組み込みに行きたいと思ってます。


ナーヴギアに活きると思うので。


これに尽きる!!

ナーヴギアをいつか作りたいから、C++を学んでいるまである。


それしかない。


入りは、アルゴリズムの最適化で入りましたが、あ、これ書けるかも……と思って、C++を書き始め、ナーヴギアに活きるやんとなったという結果論ですね。


C++でしかできないことは、ゲーム開発と最適化アルゴリズム、低レイヤー。

アンリアルエンジンとかは、完全にC++です。


ゲームといえば、C#か、C++です。


C#はWindowsで使えることを前提としてやっているので、Javaと併用するパターンもあれば、ちょっと特定領域かなと。


ぼくのイメージですけど。


Javaでいい環境ではないSESに当たってしまった人は、C#を考えてもいいと思います。


たぶん、行けると思います。


Javaに非常に似ているというか、JavaをCライクに書いたのがC#なので。

JavaライクのCかも。わからん。


ぼくはC++にしたいと決めました。

Pythonがもともと好きでしたが、ライブラリ依存なところがちょっと飽きてきた感がありますね。


C++もincludeでやるじゃん。


いや、もともとは、iostreamとかのインクルードだけで、書けるのが古い書き方であって、書けないこともないんです。


アルゴリズムでは、vectorとかalgorithmとかをインクルードする場合があります。


だから口を酸っぱくして言っているように、C++が好きならば、古い本もチェックする必要があるよという話です。

その低レイヤー感が大事です。

C++を極めるのなら。


C++エバンジェリストというものにプロフィールを変えました。

エバンジェリストというのは、魅力を広める人という意味です。

熱意、パッションを持って、伝える人です。


ロベールのC++買ったほうがいいのかも……と思います。


あと、オライリーのC++とか。


買ったほうがいいですね!!


今度買います!


あれを熟読したら相当詳しくなれそう。笑


いいね!


とはいえ、Pythonの本も頼んじゃって、明日届くという……。


深層学習の本です。


そこでなのですが!


OSSを何にするのか?


ということをずっと悩んでおります。


某OSSのC++SDKを作ることはベースとして、C++のOSSもやりたいんです。


となると、やっぱりAIですかね。


C++製の。

そうします!!機械学習をPythonで学んで、それをC++で実装していきたいかなと思います。

ライブラリの中身を一個ずつC++で構築すれば、AIは実質作れると思います。


そもそも、C++でPythonのライブラリが書かれていることが多いので、全然できないことはないです。

むしろ向いているし、ゴリゴリ書いて、AIを作ることも可能です。


そうしたら、JavaとかGoとかでもできるぞという世間貢献的にもいいですね!


いいOSSのテーマかと思います。

自分で言っておきながら。


というわけで、OSSは、AI制作にやっぱり費やします。


そして、ライブラリをコードリーディングしていきますかね。

Pythonとかの。


たぶんC++製のライブラリ多いと思う。


あと、C言語の勉強もセットでやっていきたいですね。

C++を理解するには、エバンジェリストになるのなら、Cもスペシャリスト並みでないとだめですよね。


ただ、Cのメソッドとか、全然違う場合があるので、C++とCは必ずしも一致ではないですね。

延長線上にあるというだけ。


構造体とかが理解に必要になるが、それはCを学べばいいですね。


そこに、クラスというものが出てきます。オブジェクトというわけですね。


何かにまとめるといいということがわかってきたから、オブジェクト指向になっていった……。


と、C++のオライリーの本に書いてあって、そうなんだあと思いました。


つまり、品質をよくするには、まとめることを指向として置いたほうがいいという概念ですね。

だから、オブジェクト指向を取り入れたというわけです。


OOP言語というのは、厳密にはほぼOOP言語なんですが、Pythonもオブジェクト指向やろうと思えばできるのですが、JavaとかC++がOOPをすべてカバーしていると言って過言ではありません。


だから、OOPを習得したいなら、JavaかC++がいいと思います。


C++は、仕様がばかでかいので、Javaがおすすめです。


仕事も、一強なので、Javaを極めておけば、デザインパターンもGoF本で学べるので、とてもいいですね。

おすすめです。


しかも。

Javaのエバンジェリストみたいであれですが、Javaは組み込みもいけるので、最強ですね。


C++もウェブがまだ未発達だから、日の目を見てないだけかもしれませんが、Javaは強いですね。


ただ、うふふな現場も多いと聞きます。


なので、Javaやだー!って人は、C#ですね。


Windowsでいいのなら、C#をやるべきです。


それか、フロントのほうへ行くとか、PHPとかですかね。

TypeScriptできると、結構、いい現場多いと思います。


ぼくはC++のほうへ行きます。Javaでは、デザインパターンの理解で読むかなと思います。


Javaは書けるが、仕事にはしないですね。


C++で行きたい。


Cでも可。


組み込みでも可。


何でもいいですね。


C++でゲーム開発がいちばんいいですね。


第一志望そこで、第二志望が組み込み、第三志望が低レイヤー全般エンジニアですね。


バイトを1年~2年やって、そのまま中途採用を受けます。


C++をやりたいです。


年収はどうでもいい。


もう、C++でできないといやだレベル。


外資とかで年収アップとかはまったく考えてません。


最終的に、C++で上のほうへ行けたらいいなという感じですね。


C++よりもGoのほうが年収は高いです。なぜなら貴重だから。


C++って仕様がばかでかいですが、書ける人が多いというのもある。


だから、求人もそこそこあるのですが、年収は普通くらい。


600万円いけばいいほう。


全然、それでいいかなと思ってます。


よし!!


今回はここまで!!


C++の話ばっかでしたね。


というわけで、今日も明日もC++をやっていきますよー!

ウェイ!!


ではでは。ばいび。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ