10秒目をつむったら…

現在の職場で、システム設計とのやり取りの中で、プログラムの学習が必須になりました。

しかし、過去数学的な勉強を避け続けてきたせいもあり、論理的な思考等、プログラミングの学習に必要な最低限の知識すらない状態で、困っています。

今回の質問は、私の様な、プログラミングの基礎の基礎すらも知らない人間がプログラムを学習する際にどの様なステップで学習を行っていけば良いのかアドバイスをいただきたいと思っています。

当社、複数の言語を使用しているため、大雑把にC言語でプログラミングの基礎、考え方等を学習できる様にという話を聞いているのですが、C言語をベースにすると、どの様なところから学習していけば分りやすいのでしょうか?
キーワードだけでも結構ですので、アドバイスをよろしく御願いいたします。

A 回答 (3件)

C言語では、


カーニハン&リッチーのC言語しかないでしょう。
この本を知らない熟練C開発エンジニアは、いないと思います。
古いですが…
    • good
    • 0

初心者向けの入門書としては、


猫でもわかるシリーズが分かりやすいかと思います。
http://homepage2.nifty.com/c_lang/

ちなみに、
C言語を勉強する人でつまずく人は、
大抵、ポインターか構造体でつまずきます。

しかし、この二つを理解しないとC言語を勉強する意味がないですし、
おそらくこの二つの概念を理解させる為に、
会社の方はC言語の勉強を進めたのだと思います。
がんばってください。
    • good
    • 0

>>C言語をベースにすると、どの様なところから学習していけば分りやすいのでしょうか?



C言語それ自身の文法は、わりと小さいものなので、たぶん、中学レベルの数学を普通にできていた方であれば、書店にあるC言語入門書で独習すれば、1週間以内でわかるのではないでしょうか?理解の早い方なら、1日あれば、それなりに理解できるかもしれませんね。そういう方なら「C言語なんて、楽勝、楽勝!」と感じられるでしょう。
(ただし、ポインター関係は、すんなり理解できない気はしますが・・・。)

でも、C言語だけを考えるのじゃあなく、実際の開発業務を考えて、「システム設計・プログラム設計を行う」という視点で考えるとなると、とたんに膨大な知識・経験が要求されますね。

・OSの知識(Windwos,Linux,Solaris等)
・Cコンパイラーのインストール方法、使い方、デバッグ方法
・C言語の基本ライブラリの使い方の知識
・C言語でアプリを開発しやすくするための、各種ミドルウエアの使い方の知識
・コード体系の知識(Ascii/Shift-jis/EUC/Unicode等)
・ネットワーク(TCP/IP)の知識
・データべースの使い方

もちろん上記以外に、プログラム設計のやり方、システム設計のやり方の知識も必要になりますが・・・。

なので、あまりにも要求されるものが多いため、情報処理専門学校・大学では、系統だっての学習もできるでしょうが、企業であれば、C言語の基本的な文法を覚えたら、あとは「業務上、必要に迫られた知識をとりあえず泥縄的に学習する」ってなるのではないでしょうか?

ちなみに、「普通のアプリがC言語で作れる」っていうレベルのプログラマが、ネットワーク関連のプログラムを開発できるようになるには、2年程度の実務経験が必要とコンサルの本に書かれていました。

>>今回の質問は、私の様な、プログラミングの基礎の基礎すらも知らない人間がプログラムを学習する際にどの様なステップで学習を行っていけば良いのかアドバイスをいただきたいと思っています。

上記のように、単に「C言語の文法が理解できた」というだけだと、学習に多くの時間は要求されないのですが、「C言語で○○システムの設計ができるようになりたい」という要望の場合、とても多くの知識が要求されます。王道は無いと思います。必要と思えるものを列記して、分かりやすいもの、必要に迫られているものから着実に1つずつ身につけるしかないのではないでしょうか?
プログラマーとしては、そういった学習を「ライフワーク」としてひとつずつ「地道にマスター」することになると思っています。

なお、C言語について、私が学習していたころ(1980年代後半)は、C言語の中級~上級レベルの良書が書店に多くあったように思うのですが、最近は、あまり見かけなくなったような気がします。業務アプリを作るっていう意味では、そういう地道な技術よりも「お手軽にRubyやPhpでWebシステムを手早く作る」っていう方向がコストパフォーマンスが良いと思われているのかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!