- ベストアンサー
COBOLのプログラミング力を上げるには?
私は25歳女性、現在COBOLのプログラマーです。 去年の夏2か月ほどCOBOLのプログラミングをした経験がありますが 初めてで全然できず、いろんな上司に手伝ってもらいながらやっとできました (ほぼ他力)。 今月からまたプログラムを作ることになり、ソースは勉強して読めるようになりましたが、「この処理の詳細設計書いて!」と言われても。全く書けません。 どういう処理なのか教えてもらっても、理解するのに他人の10倍は時間が かかります。 あまりにできなくて自信がなくなり、質問しにいくのも恥ずかしく、落ちこんでばかりです。ネットで調べても、本を読んでも、あまり実務につながりません。 上司もなんだか呆れています。 派遣で今の会社にきて1年半、この間ほぼ事務職だった私には、はっきり言ってプログラミングは厳しいです。 新卒の子は一人一人に教育係がいるのですが、私はすべて自分で動かないと何も進みません。 なのに周りは男性ばかりで質問するのが恥ずかしく、一人で考えて煮詰まっちゃいます。 今のプロジェクトでがんばって、評価してもらおうと気合十分だったのですが、 早くも挫折してしまいました。 このままではタイトなスケジュールの中、私が足を引っ張り他のメンバーに 迷惑がかかってしまいます。 勇気を出して質問にいくようがんばりますが、それ以外に どう努力したらいいのでしょうか><。 どうようもないことで質問をしてすみません。 ちなみに今担当している処理は (1)ファイルを読み込む→データを抽出→抽出したデータをファイルに出力 (2)出力ファイルのデータをDBに取り込む 簡単そうでなかなかできません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
プログラミング力という言葉が使われていますが、この「力」の中には、 1.言語仕様を理解し、コーディングができる能力 2.仕様を理解し、アルゴリズムを作成する能力 のふたつがあると思います。 前者は、他の方が言われているような、MOVE や PEFORM とか IF や EVALUATE だったり、最後にピリオドがなければならない、ということです。 これは言語によって、異なるので、新しい言語を習得するたびに必要なことです。 後者は、 ・詳細設計書を読み解き、実現したい「現象」を(データベースやファイルのフィールドがどうならなければならないかまで)具体的に理解すること と、そのうえで、 ・その「現象」を実現するためのアルゴリズムを組み立てる能力 と言えると思います。 フローチャートの読み方のときに教えてもらったと思いますが、手続き型プログラミング言語の基本構造は、 ・順次 ・判断 ・繰り返し この3つしかありません。すべてのアルゴリズムはこの組み合わせです。 これがわかっていて、フローチャートが書けているならば、詳細設計に書かれている、実現したい「現象」を具体的に理解していますか? 「理解する」ということの、一番簡単な説明は「他人に説明できる」ということです。他人に説明できますか? 他人に説明できるのであれば、COBOLの言語仕様は理解していますか? アルゴリズムがわかり、現象が他人に説明でき、COBOLの書き方を理解していて、はじめて、コーディングができるのだと思います。 フローチャートは書けるとのことですが、おそらくは、「現象」を他人に説明できるほど、詳細設計書を理解していないんだと思います。 さらに、「現象」が理解できないことを、処理をCOBOL言語で書けないことにすりかえてしまっており、(もしくは混同してしまっており)前に進めていないのだと思います。 いくつかのヒントを出しましたが、自分がなにがわからないのかを明らかにし、ひとつひとつ前に進んでいってください。 さしあたり、春の基本情報処理技術者試験の受験をおすすめします。:-) 最後に、えらそうなこと書いてすいませんでした。m(_ _)m
その他の回答 (4)
- QPIE
- ベストアンサー率0% (0/3)
COBOLってすごく単純で、しかし、奥深くて、事務処理や大量データ処理には最適な言語であると思います。長年COBOL言語の仕事に携わってきましたが、最近はなかなかなくて…代わってあげたいぐらいです。 まず、質問することを怖がらないこと!しかし、同じような質問を繰り返ししないこと!自分自身で、『質問の内容』を確認すること。何を聞きたいか、メモっておくことも重要です。ちょっと形を変えただけの同じ内容の質問をされるのは、聞かれる方も時間をとられるわけですからカンベン願いたいと思うだろうし… COBOLの場合は、まったく一からのコーディングをすることもあまりないと思いますが、『こんなやり方もあるんだ!』ってびっくりするような手法を使っているソースなんかをプリントして、自分の辞書的なものを作ってみるのはどうでしょう?規約がたくさんあるプロジェクトもありますが、プログラムの作り方は、個人個人でいろいろあります。 JCLの勉強もしないといけないだろうし…やることはいっぱいあるので、くじけないで頑張って勉強してみて下さい。 それと…この分野はこの人!こんなことはこの人!って他人の得意分野を見極めて質問することも重要ですよ! ご健闘をお祈りします。
- LN-TF
- ベストアンサー率53% (320/596)
どうやらCOBOLと云う言語が目くらましになっているだけで、実はプログラムの設計の力が問題のように思えます。 或る業務或いは或る機能をプログラムで実現するにはどうやれば良いのかです。業務なり求められている機能なりを分析しどのように具現して行くかを整理します。それを紙に書いたものが詳細設計書です。 大雑把の話です。ここでMOVE命令を使うのかとかIF命令の入れ子等と云うのはコーディングの技法です。コーディングの技法も確かにある程度知らないとプログラムは書けませんが、それと共にプログラムの設計力もないと本統に半端な処理のプログラムしかできない事になります。 後COBOLの場合は特にそうですが決まり切ったパターンがあります。例えば帳票印刷の場合の頁換え、二つのファイルの突合、名寄せ作業等です。これらは定型的なものなので取敢えずはパータン化してしまうと良いでしょう。(但し、それはどう云う意味でこのような処理をしているかは必ず確認して置いて下さい。闇雲に当て嵌めると当て嵌まらない場合があります) 実はこのようの事が大切なのですが、適当の参考書が見当たりません。殆どが社内研修やOJTで身に付けているからです。 取り敢えずは他の方のお勧めの「基本情報処理技術者」の試験勉強をされるのも良いかもしれません。これで所謂IT屋の基本常識を勉強する事になるからです。
COBOLで悩むのはあまりないかもしれません。クラスうんぬん、APIうんぬんもなければ、ネットワークどうこうもない。世界一簡単な言語ですから、三ヶ月もあれば、誰でも覚えます。MOVEとPERFORMしかありませんから、できない人はいません。 問題は質問者様がエラー処理や業務知識で困っているんじゃないでしょうか。COBOLは実にムダに長くて、ぱっと見で、関数定義が何百行も続き、1本で何万行も珍しくないでしょう。長いだけです。 実は私も、COBOLを何年もやっていますが、新しい会社に派遣されるたび、業務が理解できない、コーディングスタイルが理解できないで困っています。一度なれれば、なんだこれって感じで、何の苦もなくなります。 COBOLは世界一使われている言語なのに、教科書も少ないですし、情報も少ない。簡単すぎるせいでしょうか。初心者にとっては簡単とは言え、とてもとっつきにくい言語です。よく業務を理解し、その会社のコーディングルールを学べば、プログラムが恐ろしく簡単に見えてきます。COBOLはしょせんエクセルみたいなツールの一つに過ぎませんから、エクセルの関数で悩んではいけないように、それで悩んではいけません、まず業務を覚えることと会社の雰囲気を理解することです。
- ninnincho
- ベストアンサー率46% (115/245)
フローチャートは書けるのですか? (1)ファイルを読み込む→データを抽出→抽出したデータをファイルに出力 (2)出力ファイルのデータをDBに取り込む この程度の処理でしたらフローチャートも簡単ですし、ソースもかなり短いものですが、この時点でつまずいておられるということはたしかに厳しいですね。 とりあえず仕事を覚える段階で恥ずかしいとかいって落ち込んでいる場合ではないのでがむしゃらにこなすしかないですよ。 他の人が書いた仕様書とソースを見比べて覚えたり、分からない所はどんどん聞いて仕事が出来るようになるんです。 私なんかも学校に行って習ったのではなく全くの初心者だったのですが、最初は他の人のプログラムソースをプリントアウトして家にも持って帰って覚えたものです。 1本のプログラムを作るにもマニュアルと首っ引きで作りました。 休み時間はずっと情報処理の試験勉強もしました。 そんなにしてようやく仕様書が書けるようになり、だんだん指導できる立場になったものです。 確かに情報処理の仕事は向き、不向きはありますが、プログラマーはたいていの人ならなんとか出きるようになります。 それと去年ご自分が手がけたプログラムがあるのでしたら、そのソースは持っていますか? 最初のうちは自分の作ったプログラムは仕様書と一緒に自分でコピーを保管しておいて、次に作るプログラムの時に参考にするようにしたほうがいいですよ。 とにかくやる気を出してなんとか頑張りましょう。 やる気さえ出せばすぐに覚えられますから。
お礼
>この時点でつまずいておられるということはたしかに厳しいですね。 おっしゃる通りです。。 フローチャートは書けます。 原因は私の努力が足りないんですね。 以前作ったプログラムのソースがまだあるので、今日は休みなので これを見ながら勉強します。 ninnincho様のようにがむしゃらになって勉強して 早く戦力になって、上司の役にたてれるように頑張ります!! ご回答本当にありがとうございました><。
お礼
ご回答どうもありがとうございます。 確かに、COBOLは簡単な言語とよく聞きます。 エクセルのようなツールの一つに過ぎないんですか・・・ エクセルは得意なので(できて当たり前ですが) 自分にもできる!ともっと自信を持ってやってみます! 業務をちゃんと理解するまで聞いて頑張っていきます!!