中山テック 代表の中山です。

さて、今回はプログラミングについてのお話です(開発者向け)。

代表の中山は元々内勤の保険営業マンであり、プログラミング経験はありませんでした(HTMLぐらい)。
元々パソコンには興味があり、この業界にチャレンジしてみたいと思い飛び込んで早13年目に突入しました。

その中で私が初めて触った言語が、題名にもあるC言語というプログラミング言語でした。
現在最も案件の多いJavaもベースになるほどの優れた言語でもあります。

では何故C言語がプログラミングの勉強に適しているのか、お話したいと思います。

自分のケツは自分で拭かなければならない

いきなり何のこっちゃとお思いでしょうが、実に利便性が高くない時代の副産物なのです。

そもそも、プログラムが動く仕組みは
メモリに命令を置く⇒CPUがメモリから命令を取り出す⇒処理
の繰り返しなのです。

普通にプログラムを書いてる分にはいいのですが、必要なメモリを確保したい場合があり
自分で取得⇒自分で開放してあげる処理を記載しなければなりません。

なお開放しないと実行されるごとに領域がとられ、最終的に枯渇するという憂き目に合います(C言語アルアル)

メモリのアドレスを渡す

昔はメモリの総量が少なく、何とか枯渇させないように工夫することが重要でした。
限定的な処理を記載するのに「関数」という概念があります(何度も同じ処理をする時に効率よくまわす一連の処理群です)。

関数もメモリ配置されるため、都度メモリ増加させて情報を渡すよりメモリアドレス番号を渡せばOKという処理があります。
※ポインタと呼ばれるものです

何気なくプログラムを書くのではなく、サーバにも優しい処理はどうすれば、と考えさせられる概念です。
ちなみに初心者の方はこの処理で躓く方が多いですね。自分ももれなく・・・(汗

データ構造を考える

一つの処理に一つのデータではなく、複数持たせてそこから取り出すというやり方があります。
構造体と呼び、Javaのクラスの元になった処理方式です。
構造体を駆使してモノ単位で考える、まさにJavaの基幹の考え方も知ることが出来るのです。

先人達が「苦労して楽をする」を体現してきたのがJavaです。
その根本を学ぶことで見えてくるモノが沢山あると思います。

まとめ

いかがでしたでしょうか。
私がCプログラミングを始めた時に参考にしていたページが「苦労して覚えるC言語」というサイトでした。
自由度が高すぎる分、バグが発生しやすいのもあり、リスキーですが高速処理も実現可能なプログラムでもあります。
※Javaは制約事項が多い上に処理は重め

Javaは参照渡しという概念がありますが、C言語のポインタそのものですので、是非お勉強してみてはいかがでしょうか。

最後に 中山テックについて

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作
※ロゴ、バナーは外注となります
■SEO対策
Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職
プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル
工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)、データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市)、市原市 他要相
茨城県:取手市、土浦市、他要相談
埼玉県:三郷市、草加市、春日部市、他要相談
東京都:23区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。