若者をCOBOLエンジニアとして育てることの是非 117
ストーリー by hylom
需要がなくなることはあるのか 部門より
需要がなくなることはあるのか 部門より
あるAnonymous Coward 曰く、
日経Itproにて、「新卒社員にCOBOLを習得させて現場に投入していいのか」という問題提起がされている。
さまざまな言語、アーキテクチャ、開発手法が広がるなか、目先の売り上げほしさに新入社員にCOBOLを学ばせて現場に投入することはよくないのではないか、という内容だ。
といっても今の若者が引退するくらいまではCOBOLのシステムは生き残っているだろうからまっとうなCOBOLエンジニアになれればそれはそれで一生食えるような気もする。
よくわからん (スコア:1)
COBOLは触ったことがない身だけど、COBOLって習得してしまうとほかの言語を扱うことができなくなる呪いでもあるの?
// ファーストインプレッションの言語によってプログラムの思考法がその言語ベースになっちゃいがちってのはあるだろうけど、矯正できないわけでもなく
Re:よくわからん (スコア:4, おもしろおかしい)
んなこたーない
無いけど、最近の言語に比べるととっつきにくいという点では学習コストも
安くないから、それ専門でやろうとするとどうしても専属になりがちになる。
(それに今どきCOBOLやりだしたら、みんな寄ってたかってお願いされて
なおさらほかの言語なんて触る暇なくなる)
という意味では呪いかもしれん
Re:よくわからん (スコア:3, 興味深い)
行長さや変数名長の制限がある古い COBOL の相手をさせられ、それが良いものだと教えられた人は可哀想だと思いますね。
古い C しか書けない、読めない、認めない職場ですが、
・変数名、関数名が 6 文字以内(変な略語ばかり、かつコメントがないのでわけがわからない)
・変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)
・関数分割しないので数千行の関数がゴロゴロ
みたいのを新人に押しつけて何人辞めていったことか……
そして生き残った人間もそれを量産し、C はおろか C# や Java でも同じようなコードを量産して一向に成長しない。
言語も進化している、もっと良い書き方がある、現代的なテクニックがある、ということを教え、成長させる余地を作れるなら、COBOL でも BASIC でも育てるには良いとお思います。
# 新人に「リーダブルコード」を渡したら上司に持って行かれた AC
Re: (スコア:0)
>変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)
それって、先頭で宣言するしないという問題じゃない気が・・・。
Re:よくわからん (スコア:2)
機能機能(=関数)毎にExcelで書かれた変数表とかが対応づけられていて、その順番に宣言していないと怒られるとかそういう現場を想像した。
あくまで想像だよ。
Re:よくわからん (スコア:1)
そして変数名は「モジュールコード2文字+4桁連番」
Re:よくわからん (スコア:3, 参考になる)
二十年以上前に経験したオッサンですが
矯正出来なくはないけど、あれを一番にやったら
ヘンな癖が付きそうだとは思う。
・オブジェクト指向以前に構造化すらろくに出来てないスパゲッティが多い
・古いコードにはバージョン管理なんてされてない部分がある
・メーカー、バージョンによって方言が多い
・上流の仕事を大手元請けや一次請けが占めてるのでいつまでも設計関連の仕事に携われない
COBOL出来る人が足りないと言われているけど、
ああいう汎用機メインの仕事は大手元請けから始まるかなりの多重下請け仕事が多くて
末端の実際の作業員に割り当てられる金額は少ないからたいした稼ぎにもならない。
小規模でも新しい潮流の仕事をやったほうがはるかにいいと思う。
Re:よくわからん (スコア:2)
そりゃ、情報処理試験向けならちょこっと教本眺めるだけなのでクセ付きようも無いでしょう。
Re:よくわからん (スコア:1)
COBOLの問題は、言語や技術にあるんじゃなくて、その仕事環境なんだよね。
まさに「袋小路」なんだよ。
先がないのは目に見えているんだけど、専門的な修行(習得よりも修行と言ったほうがいい)
をしないと使いこなせない。
新規案件は無いんだけど、新たな仕事はある。
人材不足なんだけど、どこも積極的に供給しようとしない。
あらゆる点が矛盾だらけだけど、一定の金額のマーケットはある。
Re: (スコア:0)
クラシックな言語だから、今のモダンな言語のような至れり尽くせりの便利な機能は欠けている
だけどプログラミング言語だからループ、条件判断、分岐は出来る(当たり前)
別にCOBOL覚えたからといって、自分で他の言語を勉強してはいけないということはない
今は様々な言語のフリーの処理系をより取り見取りで入手できるから困難なハードルは存在しない(昔はコンパイラ買えなかった、パソコンで動くコンパイラが無かった)
問題は最初に覚えた言語しか出来ないプログラマになる人が多いことや、一般的なプログラミング言語ならなんでもこなせる基本的な素養を時間をかけて教育出来る余裕が会社に無いこと
#JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
Re:よくわからん (スコア:1)
> #JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
COBOL の言語仕様が分かっても、 COBOL で書かれたあのコードが一体何をしているのか分からないということは普通にありそう。
# COBOL に限らずスパゲッティコードってそういうものだよね。
Re:よくわからん (スコア:1)
言語仕様なんて、適当でOK
どこで使われるか? DBの構造がどうなってるかの方が問題。
それが分かれば、COBOL, Fortran程度の言語仕様なんてどうでも良い。
PC環境だと、UI仕様の方が問題だったりする。
Forthとか、Prolog, Lisp ...まだあったかな。
そんなの見たら、誤差。
Re: (スコア:0)
COBOLは昔にやった事あるけど、かなり考え方が違う。
共通の考えはあるけど、CとCOBOLで言えば、ユダヤ教とイスラム教のようなもんかな。
Re: (スコア:0)
アルゴリズムがそもそも違った様な…
私が習った時はIF文使用禁止って言われたし、ループの条件もC言語系と逆?trueの間回ってるんじゃなくて、trueになったら抜ける?
新人教育 (スコア:1)
ほぼまっさらな新人さんにCOBOLだけ教えて仕事させればサラブレッドになりそう。
なぜ「PCができないのにIT業界に来る若者がいるのか」を推測してみた人の話
https://togetter.com/li/1165051 [togetter.com]
「マイナー言語しかやってないからどこにも行けないよ」 (スコア:1)
新卒で入った会社に3年目で退職届を出したときに言われました。
会社都合で希望と違う部署でマイナー言語ずっとやらされてきたのにこの言い草。
じゃあ違う言語やらせろよと1年別の仕事やって退職しましたが、マイナー言語はそんな感じに新人の可能性を潰すので、反対です。
Re:「マイナー言語しかやってないからどこにも行けないよ」 (スコア:2)
マイナー言語と言っても、「しか」でなくて「も」やってたら強みになるのにね。
Re: (スコア:0)
ド底辺ではテスターというパターンもありますな。
転職でも派遣でも経歴書を見て判断されるのでダメだここはと思ったら客先常駐中であろうとなかろうとさっさと退職することですね。
転職は若いうちなら自宅でこんなプログラム作りましたで通じます。
Re: (スコア:0)
正直、言語はあまり関係ないと思いますけどね。やったことない言語の案件でも「どうせやればできるでしょ?」って言われるだけですし。
Re:「マイナー言語しかやってないからどこにも行けないよ」 (スコア:1)
> 今はRuhyとScala書いてるし
そのマリ姉が声をあててそうな言語について詳しく。
まあ、それはともかくコンピュータサイエンスの基礎がわかってて、そこそこのセンスがあれば、新しい言語の習得は2週間くらいでできるようになるよね。
若者の人生は若者の責任 (スコア:1)
別に業界が COBOL 一色で他に食いようがない、とかじゃないんだから、それ以上は若者の責任でしょ。
COBOL で目先の飯が食えることを選ぶのだって若者だし、それがつまんなくなってきて職を変えるのも若者次第だ。
最初に覚える言語が COBOL だって別にいいし、そもそも最初に何を覚えようと次を学ぶ意思が無ければ将来がないのは一緒じゃない。
Re:若者の人生は若者の責任 (スコア:1)
若者にCOBOLをやらせるのがその若者の将来によくない、ということは認めるのね。
それを「自己責任」という言葉で肯定するということは、若者を不利な立場に追い込んで搾取することにあなた自身はなんの良心の呵責も覚えない、ということにつながるのだけど、それも問題ないのね。
要するに、あなたは自分さえよけりゃどうでもいいという、控えめにいって人間のクズだというのが結論なんだけど、それでもいいのね。
Re: (スコア:0)
まったくだ。
自分で学習した能力を会社に売って食いくものなのに
会社に教育してもらおうとか料簡が腐っとる。
Re:若者の人生は若者の責任 (スコア:1)
悪人が成敗されるのを待つより自分が去った方が早いじゃん。
社会人になったら5年10年あっという間だよ。
経営者が有利な立場というけどさ、忠誠心が高くて有用な社員なんかほとんどいないというくらい希少なのよ。だいたいとんでもない裏切り者か信じられない役立たずばかり。
なんのためにCOBOL? (スコア:1)
業務経験としてCOBOLを使える事と、そのおかげで過去の仕事の経緯を理解できることは役に立っているけれども。
今更COBOLを覚えて、なんかいい事あるんでありますかね?
COBOLが使える人自体は絶賛募集中であっても、現場での業務経験が前提になってません?
というか、COBOLだけ覚えて何かいいことが?まだVB覚えた方が、VBAに知識流用出来て有用なんじゃないですかね。
Re:なんのためにCOBOL? (スコア:1)
システムを使っているユーザーが要求仕様を作ることができれば問題はないのですが、そういう人はほとんどいません。
仕様も作り切れないくせにシステムの更改を要求されたとき、設計者はどうすればいいかというと今のシステムを分析します。
COBOLで作られたものならCOBOLで書かれたコードを読んで仕様を理解するしかありません。
銀行の統合やシステムの更新で大失敗することが多いのはそのせいです。
COBOLが分かる人が現場にいないから設計ができない。
COBOL以外で作り直すにしろ、COBOLでメンテを続けるにしろ、COBOLを覚える必要はありますよね。
そういう仕事をするのならば。
スマホのアプリを作るだけならCOBOLは学ばなくてよろし。
長期的な視点では (スコア:1)
自分の周囲を含む経験上では、大きく2つに分かれますね
・実家住まい、兼業農家など別の収入あり、なにかしら働く必要があるが給料は安くてもいいという層
(「農業の手伝いがあるから休む」などが許されるくらいの緩さ)
-> COBOLでもなんでもいい、そもそもプログラマーやってるのも片手間
・上京してきた若い層など、長期的には自力で首都圏や地方大都市圏で身を固めていく必要がある層
-> COBOLに浸っていたら確実に給与が頭打ちになり、田舎に帰るしかなくなっていく
まず、読み手や当人が上記のどちらの立場なのかを明確にしたうえで考えたほうがいいでしょうし、
本来であれば雇用側(&人出し側)も、その立場を考慮してアサインしてあげるべきではあります
後者の立場の若者が将来性のない開発にアサインされ、30歳過ぎたあたりから徐々に離職して田舎に帰っていく様を
何人も見てきています
(また、実家に帰省すると田舎にはそういう境遇となった旧友が何人もいます)
逆に、田舎で地銀向けのCOBOL開発をやってて給料は非常に安いが実家くらしで生活は別に苦しくはないという友人もいます
(ただ、親御さんの年齢上昇に伴い不安が強まっていっている面はあるようですが)
COBOLより先 (スコア:1)
COBOLより先に消える言語もあると思うが
そしてCOBOLはいつまでもしぶとく生き残る
Re:COBOLより先 (スコア:1)
COBOL「私を殺すと言ってた言語は、みんな死んだよ」
http://www.nurs.or.jp/~ogochan/essay/archives/5033 [nurs.or.jp]
それが理由なら (スコア:1)
COBOLエンジニア云々は些細な問題で、真に問題なのは「目先の利益」しか考えず、人を育てる気のない企業体質でしょ?
実態は単なる派遣屋な中小企業なんかに多いけど、あれはもう言語が何であっても関係ないよ
逆に社員の経歴や経験をちゃんと考える余裕のある企業ならCOBOLエンジニア歴があってもその後の成長につなげられるでしょ?
そういう会社ほど面接なんかで平然と嘘をつくから本当にタチが悪い
いやいや (スコア:0)
> システムは生き残っているだろうからまっとうなCOBOLエンジニアになれればそれはそれで一生食えるような気もする。
くそつまらないシステムのメンテに貴重な若者を縛り付けるなよ
今の老人が責任持ってさっさとシステム刷新してください
Re:いやいや (スコア:1)
いや、後から出てきた世代がCOBOLで書かれたシステムを更新しきれずに
打ち捨て続けてきたからこの有様なんだぜ。
大昔に作った先人たちの功績を超える物を作れなかった世代が悪いの。
何でもかんでも年配者の責任にするのは恥ずかしいぞ。
Re:いやいや (スコア:1)
自分たちの地位が脅かされるのが怖い老人が若者に難癖をつけて刷新させなかった、の間違いだろ
Re: (スコア:0)
その年配者が後進育てられ無かったから
更新できずに後進しちゃったのではないでしょうか
某所では更新のための死の行進となっとりますし
Re: (スコア:0)
若者がそういうところからちゃんと逃げればいいだけだろ。
自分のキャリアデザインもできないような奴は
くそつまらないシステムのメンテに縛り付けられて
一生奴隷働きしてればいいよ。
Re:いやいや (スコア:2, すばらしい洞察)
逃げるにもコストがいるんですよ。
この不況のさなか、そうそう仕事の選り好みができるとでも?
それと「逃げればいいんだよ」は、本来は人事部「が」言うべき台詞なんだよね。
本音はそう思っていながら若者を生け贄にすることに、罪の意識は感じないのだろうか。
Re: (スコア:0)
IT業界は人が足らなくて大変らしいですよ。
Re: (スコア:0)
必要なコストをケチった奴にはろくな将来がないのが当たり前だと思うよ。
自分の将来は自分のもの。
会社は自分の時間を買ってくれる取引相手に過ぎない。
そんな相手に何かしてもらえるとか思うほうがどうかしてる。
Re: (スコア:0)
実力があるなら仕事は選べよ。
ないなら会社にしがみつけ。
おまえは会社にしがみつけ。しがみつくべき。
Re:いやいや (スコア:2)
へー。政権取ったのか。何年後から来たんだろ。
立場によるとしか (スコア:0)
会社として中小SIなら仕事に対してなんだって技術習得しなきゃダメだし
COBOL教育の前にCでもJAVAでも教え込んだ上でサブセットでCOBOL覚えればよくね?
実際SIのくそにはJAVAだけって人なんかもいるけど
よくわからん人らは平気な顔してJava/Scalia/Perl/Ruby/PHP/Python/C#/Kaitlin/Go辺りを使い分けてるでしょ?
話を聞いたらCで頭の中でロジック組んで頭の中で各言語にコンパイルしてるって言われてよくわからなかったけど
Re: (スコア:0)
組んでー というか、まず初めにCでコードが浮かぶんですよ。
で、それをこの言語ではどうやって実現するのだろうか、ということを考え考え。
たまに、あれーこの機能ないのー?めんどくせーとか、
がばって実装したら楽ちんライブラリがあったんだ悔しい!とかになります。
まあ、その言語の特性とか大枠はあらかじめ知っていないといけないのは当然ですが。
慣れないと費やす時間は大体が言語の機能探し
それと、構造の混在。
うっかりCで then~end でくくっちゃったり
コメント構文違えたり
コンパイラに怒られて気が付く
別にいいんじゃないでしょうか (スコア:0)
本人の希望を無視して長年COBOLの現場に縛りつけるとかであれば問題もあるでしょうけど、サラリーマンなら多少は会社都合の仕事を押し付けられるのもやむ無しかと。本当に嫌なら、会社辞めれば済む話ですしね。
言語は悪くない (スコア:0)
現場は糞
COBOLを避けてきた30年 (スコア:0)
これまで数々の開発言語を覚えてきて30年になるけれど、全く触らなかったのがCOBOL。
それは、30年くらい前から既に「COBOLには先が無いからやめとけ」と言われていたから。
くだんの記事を読むと、同じことが書かれている。
「先がない」と言われ続けてン十年のCOBOL。
先が無いと言っていた人たちが間違っていたわけ。
若者がCOBOLをやってたっていいじゃない。
やらずに後悔するよりやって後悔したほうがいいよ。
このCOBOLを30年無視し続けてきた経験でいうけれど。
Re: (スコア:0)
同様に20年以上避け続けてきましたけど、後悔はないですねぇ。あまりにも接点がなさすぎて後悔のしようがない。
Windowsも避け続けてきたけど、こちらは最近面白そうだから勉強してみようと思ってます。
Re: (スコア:0)
COBOLに限らずコードを書くのをずっと避けてきた。
プログラマーなんて安月給で長時間労働と思ってたから。
業務知識に特化してBAやビジネスサポートやってるけど、
楽だし定時に帰れるし給料いいし、言うことないよ。
Re:COBOLを避けてきた30年 (スコア:2)
コードを書く楽しさを覚えてしまうとそこにおぼれちゃったりするからなぁ
良い判断かもしれん
Re:では置き換えて考えてみましょう (スコア:1)
COBOLも進歩しているよ。
オブジェクト指向も、例外処理もできるよ。
Re:では置き換えて考えてみましょう (スコア:1)
#などと言いながら高校時代は古文は赤点