解決済みの質問
はじめにお断りしますが、私はプログラマーになるつもりは全くないです。
それとプログラムの知識もほとんど全くありません。
純粋に興味として質問をさせていただきます。
以下はC言語の入門者用の目次からなのですが、
----------------------------
if,switch,for,while
2次元配列、自作関数、ポインタ、
関数への・コマンドプロンプトでの引数の渡し方
ファイルへの読み込み・書き出し
バイナリファイルの入出力
構造体、共用体と列挙体、マクロ、
複数ファイルのプログラム
malloc関数
----------------------------
(1)以上のもの+α程度を習得して、さらに人の助言などによって発展性をもたらすことができたら、具体的に(※)何のプログラムが自作できますか?
(※)カレンダー、オセロゲーム など??
(2)C言語を扱うプログラマーとして会社に入社して、最初の1年目で任せられるようなプログラムとは具体的にどういうものがありますか?
特に(2)の質問は範囲が広すぎて回答が困難だと予想されますが、質問している私自身が何もわからない人間なので、質問の範囲を狭めることができません。申し訳ありませんが上手く答えられる方、お願いします。
投稿日時 - 2009-02-08 21:44:18
こんばんは。
(1)
他の方の回答にもあるように、すべて基礎です。
C言語はあらゆる分野で活用されていますが、これを、C言語の基本を「学習する」ということをベースに考えると、コマンドプロンプト上で動く「住所録」というところがひとつの到達点になると思います。
・新規登録
・一覧表示
・編集
・削除
・保存
・CSVファイルからの読み込み
・CSVファイルへの書き込み
Windows で動くものを作ろうと思ったら、もっといろんなことを勉強する必要がありますし、Cじゃないほうが簡単です。
(2)
私は業務エンジニアリングを主とするベンダとお付き合いがあるフリーランスのシステムエンジニアですが、C言語を学んで入ってくる新人がいないので、非常に重宝すると思います。ただし、私が今いる分野だと、Cを使うことがあまりない!
業務エンジニアリングの分野では、半年は仕事の流れを勉強することになるでしょう。成果に応じて、先輩が作ったプログラムのテストをしたり、簡単なバッチプログラム(たとえば、上であげたCSVファイルからの読み書きとか)を書いてもらうと思います。そこで、ちゃんとポインタがわかってるかとか、Cのわかりにくいスコープを理解しているかとかを見極めて、1機能を任せるようにします。
こんなんでいいですかね?
投稿日時 - 2009-02-09 02:53:46
お礼
ご回答ありがとうございます。
(1)
>住所録
具体的な例で非常によくわかりました!
たしかに入門書レベルの知識の人間でも「想像できる範囲」の作品ですね!
(実力としてできるできないは別として)
(2)
プログラムのテストやバッチプログラムですね。ありがとうございます。
>1機能
これをお聞きしたかったです
----------------------
実は単に暇つぶしと興味でC言語の入門書をパラパラ読んでいます。
そこで、C言語の入門書に書いてあるレベルのことが、実際世のプログラミングのお仕事でどう使われているのかが知りたかったのですが、ネット上や他の方とshin_nosukさんのご回答をあわせてみてみると、どうもC言語の初歩的知識とプログラマーがする仕事とはあまり関係がなさそうですね。
なんなら入門書に書いてあるレベルのことを学ばずとも支障はなさそうですね。(会社会社の実践の中で必要なことを覚えていけば)
投稿日時 - 2009-02-09 11:30:35
3人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(5件中 1~5件目)
気になる発言があるので、ちょっと一言だけ。
一応、C/C++を主に使う組込系メインの業種についてます。
>なんなら入門書に書いてあるレベルのことを学ばずとも支障はなさそうですね。(会社会社の実践の中で必要なことを覚えていけば)
この考えが最初にあるようでは、いいものは作れませんし、そもそも仕事を与えられません。
「基礎」を理解せずに「応用(仕事/プログラム)」ができるとでも?
そう考えてるならこの業界はあきらめたほうがいいでしょうね。
入門書のレベル程度のことができない(理解できない)ようでは、まともに仕事なんかつけさせることはできません。
他の回答者が回答していることも「基礎ができていなければ」そもそも作ることだってできません。
会社は仕事をしてもらう「対価」として給与を払います。
確かに、入社直後なら右も左も分からないから多少なりとも教えてくれるかもしれません。
しかし、そこまででしかりありません。「成果」が期待できなければ……
勤務時間以外、プライベートでも学習する意欲を持ってなければ何にもなりませんよ。
特にこっちの業種は「当たり前のように利用している」関数がなかったり、メモリ管理もシビアでありプログラムの組み方一つで高価なハードを壊すことだってあります。
そんな高価な機材を利用するプログラムを「仕事の中で勉強すればいい」と考えている相手に貸し出して仕事を任せられるとでも?
これは一年目だろうが何年たとうが一緒です。
この境界は文字通り「秒進分歩」。常に新しい技術が出てきています。常に新しい技術や知識を学習していく気構えがなければやっていけません。
投稿日時 - 2009-02-09 12:59:23
お礼
書いているように私はプログラマーになるつもりは全くないです。
一般人として興味のみで質問をしました。
入門書レベルのことと実践の仕事との差異については興味があるので、別の機会に改めて質問させていただきます。
投稿日時 - 2009-02-09 13:48:05
どちらの回答も「センス」によるでしょう。
(1)日本語をどの程度習得したらどんな小説が書けますか?
という質問に似ています。
語彙が少なくても面白い小説を書く人もいたら、語彙が凄く
沢山あっても小説が書けない人がいる訳です。
また、オセロなどはプログラミング技術もさることながら
強いプログラムを作ることは困難でしょう。
プロのプログラマでも100人に1人も出来る人はいないと思
います。
(2)1年くらいでしたら、最初から出来る人はいません。
問題の本質を探り、効率よく分からない部分を調べられる人
は、何でも出来ます。
何が分からないか分からない人は何年経っても仕事をしてい
るフリだけです。
投稿日時 - 2009-02-09 00:53:57
お礼
ご回答ありがとうございます。
私のような素人に合わせた文章表現で助かるのですが、具体的に何かが掴めず困惑しています。
「センスによる」のだとすると一般レベルのセンスの人は何をやっているのでしょうか?
最初の回答者さんは「一年目は仕事じゃなくて勉強をやっている」と
2番目の回答者さんは「たとえば製品を検査するためのプログラム等をやっている」
とおっしゃってますが、、
投稿日時 - 2009-02-09 01:16:10
(1) 独自仕様のデータベースシステムといったところか?
独自仕様のメモリ管理 I/F
ゲーム等は、グラフィック I/F がない(+αどころではない)と難しいです。
(2) 製品のコアの部分よりも個別の I/F になるのではないでしょうか?例として、製品を検査するためのプログラム等
投稿日時 - 2009-02-08 22:13:18
お礼
ご回答ありがとうございます。
I/Fはインターフェースのことですね。
「データベースシステム」「メモリ管理I/F」といわれてもいまいちピンと来ないので理解できず残念です。
(2)はなんとなくわかりました。
ありとうございます。
投稿日時 - 2009-02-08 22:19:01