スキップしてメイン コンテンツに移動

投稿

ラベル(プログラミング)が付いた投稿を表示しています

ブログを翻訳

COBOLの職人は“絶滅”するのか?——200人プロジェクトが証明した言語進化の真実

うわっ…言語が変わるだけで、人はここまで不安になるのか!? ■社会人6年目、突然の「Java化」 社会人6年目。私は、日本の金融業界の中心を司る巨大企業の基幹システム刷新プロジェクトにいた。これまで長年、COBOLで作り上げられてきた巨大なシステム。その変換先として提示されたのが「Java」だった。 最大時には200人を超える大規模プロジェクト。だが現場に広がったのは期待ではなく、不安だった。 「COBOLしかやってきていない自分たちは、Javaに対応できるのか?」 ■COBOLという“設計至上主義” COBOLは手続き型言語だ。プログラムは上から下へ、順番通りに積み上げる。 一行の文字数、配置、メモリの使い方まで厳密に意識しながら書く。 部品を呼び出すというより、「業務の流れ」をそのままコードに落とし込む。 だからこそ、設計がすべてだった。 設計で全体の順序を完璧に組み立て、それを忠実にコードに写す。 このスタイルに慣れたエンジニアにとって、「自由度の高いJava」は未知の世界に見えた。 ■Javaがもたらした“構造の解放” しかし、実際にプロジェクトが動き出すと、状況は大きく変わった。 Javaはオブジェクト指向をベースに、部品化・再利用・柔軟な構造を許容する。 さらに、メモリ管理の負担も軽減されている。 COBOL時代のように、細かい領域を意識し続ける必要はない。 この“制約の解放”が、現場に新しい風を吹き込んだ。 設計者もプログラマーも、思った以上にスムーズに適応していったのだ。 ■「言語は違えど、本質は同じ」 振り返ると、気づくことがある。 プログラム言語は違っても、「構造を理解し、論理を組み立てる」という本質は変わらない。 実際、Java以降の言語は構造が似ている。 現在主流のPythonやRubyといったスクリプト言語も、オブジェクト指向ベースであり、英語に近い記述で理解しやすい。 つまり、一つの言語で“構造”を理解した人は、次の言語にも応用が効くのだ。 当時のJava移行は、今で言えば「Javaからクラウド(Lambdaなど)への移行」に近いインパクトだった。 それでも、現場は乗り越えた。 ■200人が証明した「進化できる力」 最終的に、この200人規模のプロジェクトは成立した。 COBOLの...

英語でコードを書く時代が来た!?——“技術×言語”で進化するエンジニアの新常識

Cobol世代からAI時代へ——学び方が変わる瞬間 うわっ…英語ができないとコードすら書けなくなるのか!? ■「Javaってどう学べばいいの?」という時代 社会人になりたての頃、Cobolをずっと習ってきた先輩たちから、こんなことを聞かれた。 「Javaって、どうやって学べばいいんだ?」 今なら簡単だ。YouTubeを開けば、いくらでも解説動画がある。 だが当時は違った。まだYouTubeはそこまで流行っていなかった。 だから、基本は“本”。 それが唯一の学習手段だった。     ■分厚い本=ステータスだった時代 Javaの日本語の本も確かにあった。 しかし、正直に言えば難しかった。 理解が追いつかない。 読み進めるほどに、自信が削られていく。 そんな中で、多くのエンジニアが持っていたのが、オライリーの分厚い本だった。 あの本を持っていること自体がステータスだった。 「これを読んでいる自分は、できるエンジニアだ」 だが現実は違う。 その分厚さと難解さに、多くの人が挫折していった。 ■答えはシンプルだった——英語で学ぶ では、どうすれば良かったのか。 答えはシンプルだった。 “英語で学ぶ” 最新の情報は、いつも英語から始まる。 だから英語の本を読み漁るしかなかった。 辞書を片手に、一文ずつ理解していく。 正直、かなり難しかった。 それでも、得られるものは大きかった。 ■“システム英語”という武器 そこには、単なる英語以上の価値があった。 「システム特有の言い回し」が身についたのだ。 これは普通の英会話では絶対に学べない。 そもそも、英会話の先生でシステム開発を理解している人はほとんどいない。 日本の開発事情を理解している人もいない。 だからこそ思う。 「システムを英語で学ぶ」のは、非常に合理的な選択だ。 ■今の時代の学び方はどう変わったか では、今の人たちはどうしているのだろうか? YouTube?ネット記事? 確かに、それも正解だ。 だが、もう一歩踏み込める方法がある。 ■日英で学ぶという新しいスタイル 例えば、システム開発について日英両方で発信しているYouTubeを使う方法だ。 同じ内容を、日本語と英語で比較する。 それだけで理解が一気に深まる。 字幕を付けることもできる。 だが、あえて付けない方がいい。 耳と文脈で理解する力が鍛えられるからだ...

そこが一番キツいの!?——20年以上書いてきて分かった「プログラムの本当の難所」

言語でも理論でもない。最後に立ちはだかったのは、意外すぎる“敵”だった うわっ、まさかそこ!?——今振り返っても、プログラミングで一番苦労したポイントは、当時の自分の想像を完全に裏切っていました。     ■ プログラムで一番難しかったのは何だろう? 今では自動でできるようになったことも、昔は一つひとつが壁でした。大学時代、C/C++の分厚い本を常にカバンに入れ、電車の中でも、空き時間でも眺めていました。理解できない。読んでも腑に落ちない。それでも何とか分かろうとして、サンプルコードを何度も作り直す。コンパイルエラーと格闘しながら、頭を抱える日々でした。 ■ 社会人になって、Javaで「ジャバジャバ」 社会人になると、言語はJavaへ。ここで立ちはだかったのがオブジェクト指向です。「オブジェクト指向とは」という本が、完全にバイブルになりました。クラス、継承、インターフェース。理屈は分かるけど、なぜそう設計するのかが分からない。何度も読み返し、コードを書いては壊し、少しずつ感覚をつかんでいきました。 ■ DBは意外とシンプルだった 一方で、DBは思ったよりも分かりやすかった。スキーマの考え方さえ理解できれば、要は整理しているだけ。データをどう分類し、どう関連づけるか。ロジックというより、頭の中をきれいに整頓する感覚でした。 ■ オブジェクト・パターンとの格闘 デザインパターンは正直、苦戦しました。理解できないパターン、結局使えなかったパターンも山ほどあります。それでも「知っている」ことが後で効く場面は確実にあった。全部を使いこなせなくても、引き出しに入っていること自体が価値だったのだと思います。 ■ 本当に一番苦労したのは「空白」 そして、最終的に一番苦労したのは、まさかの「空白」でした。インデント、スペース、タブ。どのテキストツールを使うのが一番良いのか、という悩みも重要でした。IDE(統合開発ツール)の機能がどんどん拡張されていったのもこの頃。でも結局、シンプルで軽快なSakuraエディタが一番しっくりきた。気づけば20年以上使い続けているのは、ExcelとSakuraくらいです。 ■ いつの間にか、言語は増えていた 使えるようになった言語は、C/C++、Java、Cobol、JavaScript、Python、VB、...

学校の勉強だけで大丈夫?STEAM教育が未来を変える理由

えっ、学校の勉強だけじゃ足りない!?😲  そう思ったあなた、正解です。学校の教育はとてもよく考えられています。でも、未来を生き抜く力をつけるには、それだけじゃ足りないかもしれません。特に コンピューター と 英語 、この2つの分野は学校教育が追いついていない…!💡 だからこそ、STEAM教育を取り入れることで、子どもたちの可能性を広げることができるんです。 🎒 学校の教育は「基礎」をしっかり作るもの まず、学校の勉強を否定するつもりはまったくありません。むしろ、国語・算数・理科・社会に加えて、体育や美術、家庭科まで学べるのは素晴らしいこと。基礎的な部分は、しっかり学校で身につけることができます。 でも、ここで疑問が出てきます。 「古文・漢文って、現代社会でどれだけ使う?」 「家庭科で習った刺繍の技術、そこまで必要?」 もちろん、文化を知ることも大事。でも、未来の社会で必要とされるスキルと、学習内容がズレている部分もあるのが現実です。 🔥 今の教育が追いついていない「英語」と「コンピューター」 僕は 英語 と コンピューター を駆使して世界と対話しています。でも、日本の学校教育はこの2つの分野で大きく遅れています。 ✅ 英語の授業 → 文法ばかりで、実際に話す機会が少ない ✅ プログラミング → 基礎をちょっと学ぶだけで、実践的なスキルが身につかない これでは、グローバル社会で活躍するための力が育ちにくい…。 💡 だからこそ、STEAM教育! そこで注目したいのが STEAM教育 。 これは Science(科学)、Technology(技術)、Engineering(工学)、Art(芸術)、Mathematics(数学) の5つを組み合わせた学び方です。 STEAMを意識すると、こんなメリットがあります👇 ✅ 英語+プログラミング → 世界とつながる力がつく! ✅ プロジェクト型学習 → 机上の勉強ではなく、実際に手を動かして学べる ✅ 創造力が育つ → 単なる知識だけでなく、アイデアを形にする力がつく 例えば、子どもがロボットを作るプログラミング教室に通ったとします。単にコードを書くのではなく、 「どうすれば動くか?」を考え、試行錯誤し、チームでアイデアを出し合う 。この経験こそが、未来を...

えっ!?プログラミングって文系でもできるの?

プログラミングは理系のもの そう思っていませんか?数学が得意じゃないと無理?理系の人しか活躍できない?そんな固定観念が、あなたの可能性を狭めているかもしれません。実は、プログラミングは文系・理系に関係なく、誰でも楽しめるスキルなのです。 そもそも、理系と文系の区別って必要? そもそも「理系・文系」という区分自体、日本独特のものだと言われています。海外では、大学進学時に専攻を決めることはありますが、「理系だから数学だけ」「文系だから文章だけ」と明確に分ける考え方はあまりありません。例えば、経済学は数学的な分析が必要ですが、歴史や哲学的な思考も求められます。逆に、医学は生物学や化学といった理系知識が必要ですが、患者とのコミュニケーションや倫理的な判断は文系的な素養も求められます。 現代社会のほとんどの仕事は、理系・文系どちらか一方の能力だけで成立するものではありません。それなのに、「プログラミングは理系!」と決めつけるのは、あまりにも単純すぎると思いませんか? プログラミングは「数字」だけじゃない! プログラミングを「理系」と考える人が多いのは、コードに数字や記号が多く出てくるからかもしれません。でも、実際のプログラミングは、ただ計算をするだけではありません。むしろ、論理的に考え、シンプルに整理し、わかりやすく伝える力が重要になります。 例えば、プログラムを作るときには、 「どういう順番で処理を進めるべきか?」(論理的思考) 「使う人が分かりやすい設計になっているか?」(コミュニケーション能力) 「エラーが出たら、どこに問題があるか推測できるか?」(分析力) といった、文系的な要素がたくさん求められます。つまり、プログラミングには「理系的な計算力」と「文系的な論理構成力」がバランスよく必要なのです。 プログラミングが得意な人は「理系・文系」にこだわらない 実際にプログラミングが得意な人たちを見ると、「理系だから得意」というよりも、「純粋にプログラムを楽しんでいる」人が多いことに気づきます。ゲームを作るのが好き、動くものを作るのが面白い、問題を解決するのが楽しいーーこういう興味や好奇心こそが、プログラミングのスキルを伸ばす最大の原動力です。 数学が苦手でも、文章を考えるのが好きな人なら、分かりやすいプログラムを書くのが得意かもしれません。逆に...