質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Q&A

5回答

1817閲覧

c言語の習得までについて

maikel

総合スコア61

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

0グッド

3クリップ

投稿2018/04/30 17:14

編集2018/04/30 17:17

c言語についての質問です。
組み込みの仕事がしたいのでc言語やっています。

本題ですが、私はドットインストールで講座を見ながら練習しているんですが、
ドットインストールの講座がどうも中途半端に終わったような気がするんです。
https://gyazo.com/89c918f9763a0458571c2ff124e5ea75

初心者なので気がするだけなのかもしれないので質問しました。
実際、何をどのぐらいできたらc言語ができることになるのでしょうか。
できるようになるまでの経過とともに説明頂けると幸いです。

ノートもとっていますが、勿論、実際にコードしgccで実行しています。
授業はトータルで2回ぐらい聞いています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ドットインストールの動画をおおざっぱに見た感じでは、入門になっているかどうかすら怪しいレベルです。 あたりまえですが、合計で一時間にもならないような動画を見てきちんと理解できるということはありません。

また、ひとつのプログラミング言語を習得するということはプログラミングの大前提であって、言語がわかればプログラミングできるというような簡単な話でもありません。 あなたは日本語をあたりまえのように使っているでしょうが、日本語でなら医学論文のひとつでも書けるかといったらそんなわけはないですよね。 言語と一緒に、その言語で表そうとするものについての理解も必要です。

組込み分野であれば、それで制御する対象の特性などを知っていなければ言語だけわかっっていても何にもなりません。

一方で、日本語を使えるのが当たり前な日本人であっても日本語の文法・語彙を完璧に隅から隅まで知っている人もいません。 それで不便を感じることというのもそうありません。 C言語も同様に、何年もそれで仕事している人でも隅から隅まで知っているというわけでもないのです。

どういう基準でC言語を出来るといって良いのかというのは、ちゃんとした線引きが出来るものではなく、人によって、場合によって異なってしまいます。 しかし、あえて最低限度の基準を設けるとすれば、何か現実的な問題に対処するためのプログラムを作ることが出来たなら、最低限の基準は満たしていると考えてよいのではないかと考えます。 現実的な問題というのは、言語の入門書のサンプルにあるようなものではなくあなたが日常の中で「こういうソフトがあったらいいのに」と思うようなもののことです。

それが出来るようになる道筋としてははっきり言って千差万別で、これも人によって言うことが違うと思います。 個人的には、定番の書籍の一冊くらいはちゃんと買った方が良いと思います。 質問サイトにある質問には前提がまるでわかっていないようなものも多く、それは何かに躓くたびにググってなんとかしてきたような人で、ちゃんと基礎から積み重ねていないことでそうなるのです。 体系的にまとまっている本は学習効率を左右する重要な存在です。 入門者向けの書籍であればせいぜいが二千円とか三千円くらいの安価な値段で買えますので、良さそうな本を買うべきです。

ただちょっと、私が実際に学んだのはずいぶん前のことなので、具体的にこんな本が良いという推薦は他の回答者の方に譲ります。

投稿2018/04/30 18:11

SaitoAtsushi

総合スコア5444

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maikel

2018/04/30 20:31

他の言語では電子書籍もよく使ってるんですけど、電子書籍ではだめですか?
SaitoAtsushi

2018/05/01 01:27

もちろん電子書籍でもいいですよ。 体系的にまとまっている情報が大事という話なので。
guest

0

第一に

C言語というのはOS(WindowsとかMacとかLinuxとか)によって、大幅に内容が変わってしまうものです。
(LinuxとMacは似ていますが)
また、実装するプログラムの内容も、とっても幅広いです。
例として挙げると

  • GUIアプリケーション(画面を表示する)
  • サーバ用プログラム(Webサーバとかストリーミングサーバとか)
  • 接続した機器を使用するためのドライバ(USBで接続したものの制御とか、組み込みもこの辺りです。)

そのため** C言語ができる ** というのは、たいてい

組み込みLinuxCができるよ!

とか

Windowsアプリケーションが作れます!

とか

ロボットの制御できます!

などなど

多岐にわたるものです。
そのため、ビジネス的に言えば、どのCができるようになったという自覚があれば、「できるようになった。」と言っていいのではないでしょうか?

組み込みの仕事がしたい

現状、組み込みはandroidなども含めLinux Cと呼ばれるものか、MISRA-Cと呼ばれる規格で作成されていることが多いと思います。(あくまで、個人的見解なので、間違っていたらご了承ください)
MISRA-Cは、できるだけOSにかかわらずCの標準的な機能のみで作ろうという規格です。
Linux Cに関しては、元々のOS本体をカスタマイズできることから、組み込みのような小さな機械の中で動かすのに適していることから採用が増えています。(androidはlinuxの1種です)

この辺りのことから、自分で今一度組み込みのCに関して調べてみるとよいと思います。追加で、何か聞きたいことがあるようでしたら、コメント欄などでもよいので是非。

投稿2018/04/30 18:06

編集2018/04/30 18:08
GrayWingAliance

総合スコア218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maikel

2018/04/30 20:19

linuxCは自分で使ったり練習したりすることは可能でしょうか。企業の製作ツールの値段に驚愕すること間違いなしみたいなことを言われたのですが。
GrayWingAliance

2018/05/01 07:09

linux Cというのは、maikelさんが使っている(と思われる)MingWがまさにそれです。 MingWはWindows上でlinux Cを実行したり、コンパイルできるようにするものなので、そのままそれを使っていって、問題ないと思います。 ハードウェアに実際に組み込んで練習をしてみたいというのであれば、Raspberry piやArduinoといった、ミニコンピュータを使用してみるのもよいと思います。秋葉原などに行けば、つなげる部品も売っていますし、教材も充実していると思います。本体が諭吉一枚で十分すぎるくらいの値段だったと思います。 本やほかの部品も含めて、2,3万円あれば、事足りると思います。 企業用の製作ツールというのが、ぴんと来ていないのですが、ソフトウェア製作に個人で使えるようにライセンスを出しているところも多いので、一人で試す分には自分は高すぎて開発環境が用意できないようなことはなかったです。
guest

0

まず先に書いておきます。
質問者さんにとって
いい学習の機会選択をするため
参考程度に読んでください。

回答

何をどのぐらいできたらc言語ができる

これはよく言われるのは、ポインタの理解、構造体を使ったデータ構造ができること、
値渡しと参照渡しの違いを理解して関数を作り、それを元に効率よくプログラムを作れること、などあります。
また有名なH氏のC言語入門のビギーナー編から応用編まで理解していること、など特定の書籍を例に挙げる人もいます。新·明解C言語・・・もそうですね。


質問の趣旨からそれるかもしれませんが

組込み現場の「C」プログラミング 基礎からわかる徹底入門
こちら

昔、職場や学生の間で話題になった本です。実際にCやマイコンの理解がすすんだ、
実際に組み込みの現場の作業のこともわかった、など新人さんや現場の評判でした。

同じシリーズで こちら もあります。一度書店でのぞいてみてください。

投稿2018/04/30 17:50

kawakawa2018

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maikel

2018/05/01 17:45

その本書店で探してみます。
kawakawa2018

2018/05/01 17:58

参考になったようでよかったです。
guest

0

maikelさん、

"c言語についての質問" とのことですが、

組み込みの仕事がしたいのでc言語やっています。

と書かれてますので、まず、組込みの方のお話をします。

ところで、炊飯器も、テレビも、デジカメも、3Dプリンタも、Android携帯電話も、自動車も、ハードディスクやSDカードの中にも、いたるところで、ソフトウェアが動いてます。
みんな、"組込み"と呼ばれる機器ですが、だいぶ、環境が違うと思いませんか?

maikelさんは、どのような組込み機器の開発をされたいのでしょうか?

組込みエンジニア、と言われる人は、ハードウェア制御にかかわってくるソフトウェアの開発をしていると思います。なので、ある程度のハードウェアの知識、それを制御するソフトウェアの知識が必要になります。

"組込みエンジニア"募集します!、というと、以下のような知識があることが、期待されてるんじゃないかな、と思います。(特定の分野に偏っていると思うので、参考程度に.)

  • ハードウェア周り
    o 基本的なハードウェアの構成・動作(CPU、メモリ、DMA、タイマ)
    o 基本的なインターフェース(USB, I2C, SPI, GPIO, CAN, MIPI等々)
    o チップのデータシートが読める
    o 回路図(Schematics)が読める

  • ソフトウェア周り
    o システムの状態や遷移の概念、管理、実装方法
    o 割り込み処理
    o 一般的なリアルタイムOSの基本知識、使い方
    o (スタートアップ処理(CPUが起動してから、main関数に来る当たり))
    o (コンパイラ・リンカ・Makefile ..の基本知識)

このようなバックグラウンドの知識があって、要求される仕様を元に、システム全体の制御を、プログラミング言語で実装していく、、というような感じですよね。

ということで、

実際、何をどのぐらいできたらc言語ができることになるのでしょうか。

↑のような知識に比べたら、C言語の知識ってのは、それほどでもないんじゃないかな?? と思います。
Matlabというモデルベースのツールでアルゴリズム設計をしたら、組込み用Cコードを生成してしまう、なんてのもありますし。

たいてい、"C言語を使う"、ってのは目的でなく、手段のひとつなので、専門知識や経験のほうが、重要なのではないか、と思います。

できるようになるまでの経過とともに説明頂けると幸いです。

学生さんであれば、工学部、電気・情報系の大学へ行くのをおすすめしますが... (私も学生時代、そういうのが得意な友人たちから、いろいろ学びました。。。授業???.. あまり...)
いまは、インターネットで調べられることも多いので、独学でやれなくもないと思いますが、実際のハードウェアを使って、組込み機器の開発をされている会社・チームなどに所属して、エキスパートの人のワザを見る、というのがいいと思います。

投稿2018/05/01 07:07

mt08

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

猫でもわかるプログラミングというサイトがお勧めです。
私はこれで習得しました。

投稿2018/05/01 03:07

tekka

総合スコア514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問