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

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

新規登録して質問してみよう
ただいま回答率
85.50%
アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

C

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

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

3回答

3205閲覧

皆様の今までの人生の経験談をお聞きしたいです。どうか聞かせていただけないでしょうか?

carnage0216

総合スコア194

アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

C

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

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

1クリップ

投稿2018/04/24 13:28

<皆様にお尋ねしたいこと>
あの私の質問に解答していただいているエンジニアの皆様は学生時代はどのように送られていたのでしょうか?
学生時代で学んでいた時期と会社に就職した後で学んだこと、どちらが勉強になることが多いでしょうか?
また、自分で解決できないときは上司の方に相談できたのでしょうか?
私個人として大学には行っていませんが、大学生活で学べることは時間的な意味で短いと思います。そのため学べることに限界があると思います。
なので就職した後のほうが勉強なることが多かったり、大学や専門学校で学んでいた時よりも勉強になることやスキルアップにつながることが多いのではないかと思い質問しました。
また、会社の仕事とは別に個人で作りたいものがある際に壁にぶち当たった時、会社の人間や同僚にアドバイスなどを問うことはあるのでしょうか?あるいはそのような経験はありますか?
組み込みのお仕事をなされてる方はいますか?
例えばあるCPUあるいはマイコンでのプログラムを考える際にハードの構造などの情報を基にアセンブリやC/C++でプログラムを書いているのでしょうか?
また組み込みの仕事上でPCの作業があると思いますが、デバッグやライブラリを使ってのビルドなどの仕事もするのでしょうか?
僕はまだライブラリの使い方など基礎ができていないので今勉強しています。

<今行っていること>
私は将来ハードやソフトの組み込みエンジニアといて働きたいです。具体的にはFPGAでGPUを実装して機械学習をさせたり、画像処理を行い人の人生を守るような製品を作りたいと考えています。大手に行きたいとは思っておらず自分の行いたいことが少しでもできればいいと考えています。
しかし、今は大学などに行くための資金稼ぎと過去の回答者様からの助言から基礎勉強に専念しています。僕は思い込みや間違った知識で行ってきたことが多く今からでも間に合うと思いもう一度一から受け身ではなく積極的に基礎勉強にいそしんでいます。
基礎とは別ですが将来の就職のためにとOpencvを読んでいます。他には画像処理のアルゴリズムを基礎から勉強してgccやVS2017の力を借りて勉強しています。
以前はCPUやGPUのデータシートを基にOpencvのような画像処理ツールを作りたいと考えていましたが不可能(時間的な意味ではなくデータシートだけでそんなものは作れないことをデータシートを読んで納得しました)であることが納得でき、少しいい気分というか思い込みから解放されて落ち着きました。自分の勝手な思い込みで少し病みかけていました。

どうかよろしくお願いいたします。

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

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

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

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

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

carnage0216

2018/04/24 14:31

わがままな質問で申し訳ありません。どうかお許しください。
carnage0216

2018/04/24 14:48 編集

申し訳ありません。確かにプログラミングに関係のない質問であります。しかし、プログラマ様の皆様がどのような経緯で力を付けたのかをお聞きするためにはここを利用することしか思いつきませんでした。どうか大目に見ていただけないでしょうか。
carnage0216

2018/04/24 15:43

そんなつもりはありません。純粋にききたいだけです。
guest

回答3

0

まず、質問者さんへのアドバイスをさせていただきます。

質問者さんにとって一番勉強をしなければならないのは**「日本語」**です。
質問者さんの過去の質問や回答者さんへの返信を読むと、
間違った日本語が沢山あります。

ということは、おそらく「説明書」や「教科書」
プログラムに関する本などを読んでも、内容を正しく理解できていないと思われます。

ですから、質問者さんがこの先、どんなに勉強をしても、
間違った技術しか身につかないと思います。

まずは正しい「日本語」を勉強してください。
学校の教科でいうと「国語」です。
質問者さんの国語の成績はどうですか?
また、質問者さんは学校の友達などと会話をするときに、
友達から「話が分かりにくい」とか「何を言いたいのかわからない」などと
言われたことが無いでしょうか?
もしあるのであれば、それは質問者さんの「日本語」がおかしからです。

以下、質問への回答です。

あの私の質問に解答していただいているエンジニアの皆様は学生時代はどのように送られていたのでしょうか?

私はもう30年ほど前ですが、学生時代はBASICとアセンブラC言語を学びました。
それぞれ学校にあるマニュアルのみでの勉強です。
当時はネットも無いし、本屋に行ってもプログラミングの解説本などはなかったので、
すべて独学です。

学生時代で学んでいた時期と会社に就職した後で学んだこと、どちらが勉強になることが多いでしょうか?

就職してからですね。なぜなら、そちらのほうが年月が長いですから。
学校で学ぶことは「基礎」のみ。
会社に就職したら、その会社で必要な技術を学ぶことになります。
しかし、学校で学んだ基礎ができていないと、苦労することになります。

私個人として大学には行っていませんが、大学生活で学べることは時間的な意味で短いと思います。そのため学べることに限界があると思います。

会社に就職してからのほうが勉強する時間は少なくなりますよ?
大学なら1日中勉強できますが、就職したら1日の半分は仕事です。
就職したら勉強できる時間は1日1~2時間くらいです。
大学に行って基礎をみっちり学ぶことをお勧めします。

また、会社の仕事とは別に個人で作りたいものがある際に壁にぶち当たった時、会社の人間や同僚にアドバイスなどを問うことはあるのでしょうか?

「個人で作りたいもの」は個人で独学しましょう。
基本的に、会社の人にアドバイスを問うのは、会社の中で発生した問題だけです。
それ以外の話は相手の仕事の妨げになります。

組み込みのお仕事をなされてる方はいますか?

はい、少しですがやっています。
ハードウェアの情報をもとにアセンブラ,C言語,Javaをやります。
ハードウェアの情報は主にメーカーや顧客の説明書です。
組み込みシステムの場合、メーカーの独自の仕様が多いので。

また組み込みの仕事上でPCの作業があると思いますが、デバッグやライブラリを使ってのビルドなどの仕事もするのでしょうか?

当然です。
デバッグやビルドを行わなかったら、ちゃんと動作するかわからないでしょう?

<今行っていること>
私は将来ハードやソフトの組み込みエンジニアといて働きたいです

将来の夢を持つのはすごくいいと思います。
ただ、冒頭にも書きましたが、質問者さんは**「日本語」の能力がちょっと低い**ようです。
なので、いくら勉強をしても「思い込み」や「間違い」だらけになるのです。

まずプログラミングやハードウェアの知識よりも、「日本語」を学んでください。
そうしないと、どんなに資料や説明書を読んでもムダです。

具体的でオススメな勉強方法としては、検定試験を受けることです。
試験なら問題文を正しく理解して正しい回答をする必要があるので、
必ず勉強になると思います。
組み込みシステムを作るなら「情報処理技術者試験」がベストでしょう。
「ITパスポート」→https://www.jitec.ipa.go.jp/1_11seido/ip.html
「基本情報処理」→https://www.jitec.ipa.go.jp/1_11seido/fe.html
「応用情報処理」→https://www.jitec.ipa.go.jp/1_11seido/ap.html
「エンベデッドシステムスペシャリスト」https://www.jitec.ipa.go.jp/1_11seido/es.html

少なくとも学生のうちに「基本情報処理」までは余裕で合格できるくらいの
能力が無いと、組み込みシステムの仕事には不向きです。

「遠回り」かと思うかもしれませんが、
質問者さんには近道をするだけの能力がありません。
なのでまずは「日本語」です。

がんばってください。

追記

上記の「情報処理検定」は、次回の試験が今年の10月なので、
ちょっと勉強時間があります。
なので、その前に「日本語検定」を受けてみてはどうでしょうか?
これなら6月にあります。受付も5/11までのようです。
https://www.nihongokentei.jp/
ネットで過去問を使って勉強することもできます。
https://www.nihongokentei.jp/check/

組み込みシステムエンジニアになりたいのであれば、
日本語検定の2級に合格するくらいの能力が必要だと思います。
普通に就職するとしても3級は必要でしょう。

投稿2018/04/25 02:49

編集2018/04/25 05:07
jm1156

総合スコア866

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

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

carnage0216

2018/04/25 03:10

おっしゃる通りです。日本人でありながら日本語を書くのも話すのも不得意です。 プログラマとしては致命的です。 私と話されたことがあるかのように私の性格を当てるので大変驚きました。多分、私のような部下がいたのかもしれません。 解答に関して聞きたいことがあります。 >>ハードウェアの情報をもとにアセンブラ,C言語,Javaをやります。 今でも組み込みを行う会社などではハードの情報を基にドライバを作成したりや CPUボードのハードの情報や外付けする機械のハードの情報を基にプログラムを組むのでしょうか? 最後に、pcに外付けはしませんが、CPUボードに外付けするさいのノウハウや過程を駆使すれば個人でpcに外付けをする事も可能ですか? 余談ですが、私の日本語のどのような部分が変でしょう? 参考にしたいのでお答えして頂けると助かります。
Zuishin

2018/04/25 03:29

「日本語がおかしい」という回答なので余談ではなく本題ですね。 個人で PC に外付けできるかどうかという話が余談です。 言葉遣いの枝葉末節のことを言われているのではなく、相手が何を言っているのか、本に何が書いてあるのかを考えようとしていないことを言われているんじゃないでしょうか。
Zuishin

2018/04/25 03:38

物を伝える・読み取るテクニックは色々ありますが、そのうちの一つだけ言っておくと「最初と最後が重要」です。最初が重要でない場合には「前置きです」最後が重要でない時には「余談です」という断りがあることが多いです。前置きや余談でない場合は「冒頭のまとめ」「話の締め」であることが多く、ここが主題となるので重要です。 この回答の場合は最初にも最後にも「日本語がおかしい」と書かれているのでこれが総まとめであり本題です。 自分が何か書く時にも最初と最後を見直し、主題が途中で変わっていないかどうかを確認すると伝わりやすくなります。
jm1156

2018/04/25 05:06

>今でも組み込みを行う会社などではハードの情報を基にドライバを作成したりや CPUボードのハードの情報や外付けする機械のハードの情報を基にプログラムを組むのでしょうか? 会社にもよると思いますが、ハードの情報が無いとプログラムできませんから、 当然、ハードの情報を元にプログラムを組みます。 ただし、そういったハードの詳しい情報は、メーカーの極秘資料ですので、 ネットなどで探してもみつからないと思いますよ。 >最後に、pcに外付けはしませんが、CPUボードに外付けするさいのノウハウや過程を駆使すれば個人でpcに外付けをする事も可能ですか? 「PCに外付けをしない」ということは、PCの中に付けるということですね? にもかかわらず「CPUボードに外付け」という表現はおかしいですよ。 どんなインターフェイスで何を外付けするのかにもよりますが、 知恵と知識と技術があれば可能ですよ。 >余談ですが、私の日本語のどのような部分が変でしょう? 「最後に、pcに外付けはしませんが~」と言う風に、 「最後に」という書き出しで始まっているのに、 そのあとで「余談ですが~」と書いたら、「最後」になっていませんね。おかしいですよ。 それにZuishinさんも言っているように「余談」ではなく「本題」ですね。 さらに「pcに外付けはしませんが」と書いているのに「個人でpcに外付けをする事も可能ですか?」 という質問も、最初に『外付けをしない』と言っているのに最後には『可能ですか?』という 具合になっているのもおかしいですね。 Zuishinさん フォローありがとうございます。
carnage0216

2018/04/25 14:22

どうもありがとうございます。 >>ハードの情報を元にプログラムを組みます。とのことですが、その情報とはアセンブリ命令のセットが書いているのでしょうか? 具体的にお聞きしたいです。どうかよろしくお願いいたします。
jm1156

2018/04/25 23:07

carnage0216さん 私の場合は顧客のシステムに組み込むソフトを開発していたので、 ハードの情報は顧客から送られてくるメモリのアドレスマップがメインになります。 たとえば、メモリのアドレス0001番がセンサーA番,0010番がセンサーB,0100番はLEDのON/OFF,1000番はモーターのON/OFFとかいうかんじです。 これで仕様書に「センサーAとセンサーBがONのときはLEDを点灯」など書かれているので、それをアセンブラで書きます。 (実際にはもっと複雑な処理です)
carnage0216

2018/04/26 07:04

そうなのですか。 どうもありがとうございます。 ちなみに、マイナーなハードでプログラムを組む際にコンパイラがなくて、コンパイラを作ることから始めるなどはあるのでしょうか? コンパイラがないとプログラムが書けてもハードに書き込めないと思い質問しました。
jm1156

2018/04/26 07:32

あなたの言う「マイナーなハード」が何を指しているのか不明です。 やはり日本語から勉強してください。 いまどきコンパイラがないプログラム言語は無いと思いますが、 (インタプリタやアセンブラを除いて) もしかしてマシン語でプログラムを直接書き込むつもりですか? 出来ないことは無いと思いますが…。 ゼロから独自のハードウェアを起こして、独自の言語を作成して、独自のコンパイラを作りたいとでもいうのでしょうか?
carnage0216

2018/04/28 13:28 編集

説明不足でした。申し訳ありません。 マイナーハードとはintelやARMなどのCPUとは違いコンパイラが存在しないハード(CPU)のことです。 組み込みの仕事ではコンパイラを作らないと聞いたのですが、だとしたらコンパイラの存在しないハードに書き込まないのでしょうか? また、fpgaに関してなのですが、fpgaでCPUやGPUを自作した場合は自作したCPUやGPU用のコンパイラを自作しなくてはいけませんが、組み込みfpgaの仕事などではコンパイラまで自作するのでしょうか? どうかよろしくお願いいたします。
YomogiKOBO

2018/04/29 09:07

本質問のトピック(人生の経験談)と何の関係があるのでしょう。 https://teratail.com/questions/117741 でも様々な意見があったはずです。 まず、GCCのソースなりを参照してそれでも「intelやARMなどのCPUとは違いコンパイラが存在しない」ものを作りたいのであればどうぞ。 http://monoist.atmarkit.co.jp/mn/articles/0702/19/news089.html の図1にH8 CPUが搭載されていますが、LCD、LED部分などを除き自身でFPGAで自作してみてください。 相当な知識と経験と時間が必要であることが想像できるかと思います。 「過去の質問のやりとりから何も学べていないのでは?」と首をかしげている私です。
guest

0

ベストアンサー

こんにちは。

あの私の質問に解答していただいているエンジニアの皆様は学生時代はどのように送られていたのでしょうか?

バイトやってお酒飲んで、クラブでマイコンを弄ってました。
趣味の延長の学科に入れたので専門は結構楽しかったです。

学生時代で学んでいた時期と会社に就職した後で学んだこと、どちらが勉強になることが多いでしょうか?

比べると就職後の方が遥かに有用だったと思います。応用力はやはり仕事しながらが一番身につきます。
しかし、就職前に基礎は身についていたと思います。とはいえ、大学の講義ではなく趣味で学んだものがほとんどですね。若かったから、ひたすらあたって砕けて学びました。あの頃は本当に若かった。今はもう無理です。

また、自分で解決できないときは上司の方に相談できたのでしょうか?

ソフト開発が好きなのに、何を思ったからメーカへ行ったから、専門についてはあまり相談できなかった気がします。

また、会社の仕事とは別に個人で作りたいものがある際に壁にぶち当たった時、会社の人間や同僚にアドバイスなどを問うことはあるのでしょうか?あるいはそのような経験はありますか?

就職後は趣味でプログラム作ることは激減しました。仕事たいへんでしたし、仕事でもプライベートでも同じことする気力は私にはなかったです。それが出来る人って本当に凄いと思います。

組み込みのお仕事をなされてる方はいますか?

私は組み込みの仕事が一番長いです。20年くらいやってました。前半はほとんどアセンブラでした。
後半はC言語も増えてきて、PCはC++が多かったですね。C++Builderありがたかった。

例えばあるCPUあるいはマイコンでのプログラムを考える際にハードの構造などの情報を基にアセンブリやC/C++でプログラムを書いているのでしょうか?

まずは、マイコン内のハードに近い部分(割り込みベクタとかタイマとかI/Oなどなど)の仕様書とアセンブラの仕様書とICE(In Circuit Emulator)の取説を読むのがスタートでした。

また組み込みの仕事上でPCの作業があると思いますが、デバッグやライブラリを使ってのビルドなどの仕事もするのでしょうか?

てか、開発ツールは通常はPCで使います。

基礎勉強に専念しています。

その割に基礎的な質問が少ないような気がしますよ。もっと足元を固めてから応用に進まないと時間ばかり過ぎてゴールになかなか近づけないかも知れません。

投稿2018/04/24 14:20

Chironian

総合スコア23272

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

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

carnage0216

2018/04/24 14:30

いつもどうもありがとうございます。 凄く勉強になります。じっくり読みます。読んだ後で度々質問するかもしれませんが、どうかよろしくお願いいたします。 >>その割に基礎的な質問が少ないような気がしますよ 確かにそうですよね。自学しているのですが、いざこちらで質問しようとすると頼り切ってしまったり恥ずかしいミスが目立ってしまい思うように踏み出せませんが、今後は質問させていただきますのでどうかその時はよろしくお願いいたします。
carnage0216

2018/04/24 14:36

あの、組み込みが長いとのことですが、どのような組み込みを行っていたのですが、例えばPCに組み込む際に「PCのCPUのデータシート」や「組み込み部品のデータシート」の二つのハードを考慮したプログラム、アセンブリ言語やC/C++などで書いていたのでしょうか?組み込みとなるとPCのCPUの機械的な構造など深く理解いないと組み込みはできないと思い質問しました。 またFPGAの組み込みなどの経験はありますでしょうか? 是非、詳しくお聞きしたいです。厚手がましいかもしれませんがどうかよろしくお願いいたします。
Chironian

2018/04/24 14:45

PCのプログラム開発を「組み込み」と呼ぶ人はあまりいないかも。BIOSやUFEIあたりなら組み込みっぽいかも知れません。PC向けプログラムは普通にC/C++/C#を主に使っています。(C#は毛色が違いますが、GUI開発にC/C++は辛いので) マイコン用のアセンブラは通常PC上で動作しますので、PCで使いますよ。私自身はFPGAを使ったことはありません。同僚がやっていました。あれはプログラミング手法がCPUとは全然違いますね。基本的な考え方が天と地程も違いますので。
carnage0216

2018/04/24 14:54

どうもありがとうございます。たしかBIOSはPCのl/Oを制御するのでしたね。 そのBIOSを利用してそとずけというか組み込みをする際にPCのl/Oを制御する部分のハードや組み込む部品のハードの構造は知っていないと組み込みできないと思うのですが、会社の方からデータシートや構造に関するデータなどは与えられるのでしょうか?
carnage0216

2018/04/24 14:55

FPGAでの組み込みが最近多いので、PCにFPGAを組み込んでみたいものです。 組み込む際にどんな情報が必要なのかはまだわかりませんが。
carnage0216

2018/04/25 03:19

少し、勘違いしていました。 pcに外付けすることも組み込みだと思っていましたが、違うようです。
guest

0

学生時代で学んでいた時期と会社に就職した後で学んだこと、どちらが勉強になることが多いでしょうか?

ガッコで学ぶことはたかが知れてる。ガッコは学び方を学ぶところじゃないかしら。

投稿2018/04/24 22:57

episteme

総合スコア16614

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

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

carnage0216

2018/04/25 02:06

いつもどうもありがとうございます。 学び方となりますと、調べ方やデータシートの読み方やC言語などの基礎勉強なのだと私なりに推測します。 そうですか。やはり就職してからの方が経験を積むが故に勉強になる事が多いのですね。
episteme

2018/04/25 02:38

「質問のしかた」もね。 "素人の質問"は歓迎するが、"質問の素人"は勘弁願いたい。
carnage0216

2018/04/25 03:12

質問の仕方を他の質問者様を真似て勉強します。 プログラミング 意外にも勉強する事が多いですが、楽しいです。
episteme

2018/04/25 07:15 編集

学び 習う と書いて学習です。 "学ぶ"とは考えて自分のものにすること、 "習う"とは教えてもらい真似ること。 学ばないと習えません、何を問うべきかわからないから。 習わないと学べません、考えるネタを持たないのだから。 ...と、孔子サマも仰っています。
carnage0216

2018/04/25 14:24

わかりました。貪欲に学んでいきます。学ばせて頂く立場として。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問