- ベストアンサー
新米プログラマの相談:理解に時間がかかる。いい方法はありませんか?
未経験からプログラマに採用され、C言語の研修を受けていますが、理解するのに時間がかかります。 例えば、他の研修生が3時間で終わる課題が、私は6時間かかる…といった具合です(もっとひどいかもしれません)。 まったく理解できないわけではないのです。 時間をかければわかるようになるんですが、 どうにも時間がかかりすぎて、いたたまれなくなりますし、こんなことで実務について大丈夫か?と心配です。 とはいっても、プログラミングが嫌いなわけでもないし、今のところは諦めるという選択は考えていません。何とか効率を上げて頑張って行きたいのですが、どうすればいいのやら。 お勧めの勉強方法、仕事の進め方、心構えなど、アドバイスをいただけないでしょうか。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
おまじない的に原理を理解せずに色々覚えていく人よりも, その原理や意味, 意義を確認しながら覚えていく人のほうが後々で有利になると思います. C言語は, 数あるプログラミング言語の中でもコンピュータの ハードウェアに近いところにあります. ある意味で原始的なので, コンピュータの動作原理を絡めてきちんと理解してゆけば プログラム中の「おまじない」が減ってきてそれぞれの意味がわかるようになります. プログラムの設計手法には色々あり, いつかはそれらに触れることになると思います. しかし, 色々なものの動作原理を理解しないで小手先の手法にだけ飛びつくと, 迷信に振り回されることになって実務で恥ずかしい思いをするかもしれません. とりあえず, 今は時間がかかっても動作原理から着実に理解されていくのがよいでしょう. 原理がわかるようになれば, そのうち学習効率も作業効率も上がってゆくはずです.
その他の回答 (7)
- fx70_2150
- ベストアンサー率57% (123/213)
プロの書いたプログラムを読みまくって下さい。 プロの書いたプログラムを変更したり、肉付けをしてみたり、してみて下さい。 自分は、どんなプログラムを作成したいのか? そのためには、どんな手法でプログラムを作成すればいいのか? 明確な目標を立てて下さい。 「どうしても、こうゆうものを作りたいんだ!」という意欲が最も大切です。
お礼
ハイレベルなご回答ありがとうございます。 これからの参考にさせて頂きたいと思います。
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
どのような事でも最初は丸暗記しなければいけないことがあります。 その部分は無理に論理付けを行わずに丸暗記し、応用問題的に検討する部分と丸暗記しなければいけない部分を自分なりに整理しながら覚えれば良いと思います。 例. 変数Aと変数Bの中身を入れ替える。 X=A A=B B=X これは考える余地のない例で丸暗記するしかないです( 適切な例かどうかは自信ありませんが・・・ )。
お礼
なるほど。 私は結構覚えれば済むことまで 考え込んでしまう性質かもしれません。 ご回答ありがとうございました。
業界カミングアウトの者なので、へんてこなこと書いてるかもしれないですが。(^^;) 一応、経験的に思ったことを投稿してみたいと思います。 >未経験からプログラマに採用され、C言語の研修を受けていますが、理解するのに時間がかかります。 ものすご~く基本的なことで申し訳ないのですが、御自身が理解できない(理解し難い)ところは理解できてますか? ちょっと変なこと書くかもしれないんですけど、自分が理解できないところが理解できないというパターンにハマッてしまうとなかなか効率は上がらないと思います。 理解しようとする前に、理解できない(又は、理解し難いこと)を、一度整理するという手順を踏んでみたらどうでしょうか? 逆に、遠回りになってしまうかもしれませんが・・・。(^^;;) >どうにも時間がかかりすぎて、いたたまれなくなりますし、こんなことで実務について大丈夫か?と心配です。 全く問題ありません。 どのような開発に携わるのか分からないので、推測になってしまいますが、実務を遂行する上で大事なのは、開発対象業務をきちんと理解できているかどうかだと思います。 例えば、物流業界のシステムを担当するとか、金融業界のシステムを担当するとか、社内システムを担当するとかだとすれば、 その企業が実際に行っている商売やニーズ、システムの構造、開発工程などが理解できているかどうかが重要になってくると思います。 まぁ、これはSE的な要素になってくると思うのですが、そもそもSEとPGの明確な区別はほとんどなく企業独自で区別してるというのが現状なので。 苦労する点に関してですが、開発環境が使ったことないとか、開発の工程とか、言語に関係ないとこで苦労する可能性の方が大きいと思います・・・。(^^;) >お勧めの勉強方法、仕事の進め方、心構えなど、アドバイスをいただけないでしょうか。 基本的にプログラミング言語はメモリをどう使うかになってきますし、ループとかポインタなど基本は同じようなパターンの使いまわしなので、やってるうちに理解できるようになると思います。 既にみなさん書かれていますが、言語云々じゃなくて設計手法を身につけることが大事。 「継続は力なり」ってことわざありますが、まさにこの言葉どおりだと思いますヨ。 あと、これはちょっとおせっかいかもしれないのですが、言語というものは手段であって、目的ではないという認識を持ってた方が良いかも。 例えば、文章作るのにWordを使うとすれば、"文章を作る"というのが目的で"Word"が手段ですよね。 同じように、あくまで"開発"が目的であって、"言語"というものは手段です。 "言語"が目的になってしまったら、学校で教わるのとなんら変わらないので。(^^;) 以上おせっかいでした。m(_ _)m ガンバって下さい!
お礼
>御自身が理解できない(理解し難い)ところは理解できてますか? それです!何かがわからないけど、何がわからないんだかわからなかったりするんです。。。じっくりテキストを読み直したら、基本的なところを勘違いしてたこともありました。 >実務を遂行する上で大事なのは、開発対象業務をきちんと理解できているかどうか プログラミング以外の面も重要だということなんですね。 丁寧に答えてくださって、ありがとうございました。
- suseimei
- ベストアンサー率35% (17/48)
> 未経験からプログラマに採用され、C言語の研修を受けていますが、 > 理解するのに時間がかかります。例えば、他の研修生が3時間で終わる > 課題が、私は6時間かかる… 具体性がないため、明確な回答を用意できません。ただ、この文面を読む限り、自然な結果だと思います。教え方が悪い、という面も否定できないと思います。 Cを設計したDennis Ritchie氏は、大切なのはコーディングではなくプログラム設計、と述べています。この意味を理解するには相当の時間がかかります。もしかすると、あなたは、コーディングは苦手でも、課題の理解はしっかりしているのかもしれません。少なくとも、課題の分析に時間をかけているのでしょう。 参考URLから公開されているCやC++などの設計者の考え方に触れてみるのも1つの手かと思います。完璧なプログラミング言語などありません。 あなたはまじめな方だと思います。視野を広げてください。大丈夫ですよ。
お礼
ご回答ありがとうございます。リンク先、読んでみたいと思います。 私は現時点ではプログラマさんSEさんの知り合いがほとんどいないので、どのようなアドバイスでも頂けるとうれしいです。ありがとうございました。
- linus1974
- ベストアンサー率19% (71/370)
<補足要求> これだけではアドバイスのしようが ありません。具体的にどういう問題で どう苦慮しているのかを教えてください。
補足
説明不足で失礼しました。 困っていることというのは、専門的なことがわからないことではなく(それもありますが)、自分の力量のなさをどうカバーしていくかという精神的な部分です。精神的、というか頭の鍛え方を知りたいと思いました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
経験を積むにつれて自然と効率が上がっていくと思います。
お礼
経験を積むことで解決するなら、長い目で見てじっくりがんばりたいと思います。 ご回答ありがとうございました。
- kutsushita
- ベストアンサー率21% (44/208)
フローチャートをスラスラ理解して、スラスラ書くことができるようになれば、あとは全部応用です。 私もフローチャートを徹底的に勉強した事が役に立っていると思っています。 参考にやってみてはいかがでしょうか http://www.nikonet.or.jp/spring/sanae/program/flow/flow.htm 私の会社でも、未経験の新人を採用していますが、配属後の叩き上げでみんな一人前にできるようになります。 心配せずに頑張ってください。
お礼
やはりフローチャートは大事なんですね。まだループを真で抜けるか偽で抜けるか間違えてしまい、変なプログラミングをしてしまいます。 ありがとうございます。がんばります。
お礼
おまじない的! そうですね、そういうところがあったかもしれません。 「何だかわからないが、とりあえずそういうものだと思っておこう」は危険ですね。 時間がかかっても動作原理を着実に、ですね。 ご回答ありがとうございました。