おふとんの中から

2015年4月から組み込みエンジニアになった人の備忘録

愛知県民ってなにしてんのって話 #ruraladvent

はじめに

このエントリは「地方在住ITエンジニア(元・地方在住も可)Advent Calendar 2015」の 10 日目の記事です。

 

www.adventar.org

とりあえずの自己紹介

このブログを見る方は私のことを知らない方がほとんどだと思いますのでね。

 

名前:ゆいな(@yuina_i)

住んでる場所:愛知県の刈谷市

名古屋が近くて遠いです。東京いきたかったです(

 

仕事としては大手SIerで車載ECUの組み込みエンジニアをしています。

新卒で入ってまだ1年目ですが…

 

そもそもなんでこれ書いたし

愛知のエンジニアでブログ書いている方だと業務系・Web系の会社の人をよく見ますが、それ以外の人達は何してるんだって話です。

 

それ以外の愛知県民ってなんだよ

こう思った方も多いのではないでしょうか?

実際私が多数のそれ以外の人たちなんですね。

 

愛知って車の仕事が中心なんですね。

私の周りに高卒で就職する人は基本的に車の部品工場の現場での仕事している人が多いです。場所柄もありますが。

情報系の専門学校へ行き、必死にOracleMasterやなど業務系で使える資格を取り、自分でrubyもろもろを勉強して就活しても、結局車載ECUの開発をしている私のような人もいます。

 

そうです。私本当はアプリ開発やweb系の開発がしたかったんです。

大手SIerの陰謀で配属通知時点から仕事が変わっているとか秘密の話

 

愛知県の車以外の仕事の門扉が狭い

これに尽きると思います。

 全国的に組み込みエンジニアが不足していると言われる現在。

特に愛知県は車載の技術者が不足しています。

私が現在行っている案件も本来ならばもっと人員が必要ですが、アサインできる人員がおらず…

同じ部署の別案件はデスマーチ化している現状です。

 

だからといってこの業界に来いとは言いませんが…

 

 

Web系の仕事したいです・・・・

 

 

 

 

 

 

 

 

 

アライメント調整って…?

こんばんは。ゆいなです。

9月までの社畜とは打って変わり、現在は4連休満喫しておりますw

 

ということで、先日上司に指示されて疑問に思った内容を整理していこうかと。

 

その指示とは…

「アライメント調整して」

 

一瞬私は車のアライメント調整を思い出す。

 

( ˘ω˘).oO(いきなり足回り調整しろってどういうことだ・・・?)

 

意味がよく分からなかったので、上司に聞いてみる

「簡単にいえば、構造体のデータの大きさを揃えることだ」

 

一体何をすればいいのかよくわからなかったので、ググる

 

f:id:yu1056y:20151103181328p:plain

 

やっぱり車じゃないの????

 

f:id:yu1056y:20151103181454p:plain

 

こ れ か

 

ということで、いま出てきたサイトの内容を要約してみると・・・

 

・構造体の大きさは4の倍数byteにする

・アライメント調整をすることで、データアクセスが早くなる

・CPUによってはこの調整を行わないと例外でリセット地獄に陥る

 

ということが書いてあった。

組み込みの分野ではこれが基本という話を上司に合わせて聞き、

まだいろいろと考えなきゃならんことがあるのか・・・

と思うゆいなであった。

 

社会人になって半年経っていた件

こんにちは、ゆいなです。

1ヶ月近く仕事が忙しく、ブログを書く暇すらありませんでした。

社畜ってこわい

 

ということで早くも10月。去年の10月は内定式とかあったなーという記憶しか残ってないです(

それだけこれまで必死にやってたんだなと感じてます。

 

とりあえず社会人になってからを振り返ってみようと。

 

◆4月

入社式と本社での研修。

入社式の懇親会で専務と意気投合していた記憶w

研修は最初ヌルゲーでしたね・・・。

SQLとかは資格を持ってるレベルなんで半分寝ながらSQL叩いてた気がする。

2年前に触って以降触っていなかったC言語を思い出すのが大変でしたけど・・・。

 

研修の最後は全員同じテーマでハッカソン。

コマンドラインで図書管理システムを作れという内容だったような。

自分のチームが一番高評価を貰えていました。そりゃ、最低限の関数化だけで可読性が高いコードにできたんだもの。

見づらいコードはただのスパゲッティだ(

 

◆5月

本来ならばまだ本社研修があったが、配属先の部署の都合で名古屋に戻ってきて研修。

初めて基盤を使って組み込み系のプログラムを作成。

業務系とは考慮する点も違うし、元々ハード系は苦手だし・・・

とちょっと追い詰められてました。

なんやかんやでどうにかなったんですけど(

 

◆6月

今居る部署に配属。

配属されてすぐって基本的にコーディングやテストから入ることが多いと思うが、私の場合は設計前段階から入ったため、最初は部署特有の車載系の勉強をしていました。

CANってなにそれおいしいの??????

 

◆7月

最初は6月と変わらず。

後半になってからは実際の業務を教育係の人とやり始めました。

これまで修羅場っていた案件自体もここからスタート。

 

◆8月

主に修羅場っていた案件の仕様確認を中心に行っていました。

ソースコード仕様書はお友達状態(

月末頃から実際の設計を開始。

規模的には一人でできる案件ということもあり、助言をもらいながらの一人作業。

知らないことをどんどん吸収できていちばん楽しかった月でした。

この辺から、自分の案件の他部分についても仕様が分かってきて上司と仕様について対等に話ができるようになったからかもしれません。

 

◆9月

さ あ 地 獄 の 始 ま り だ

 

月初めは前月と同じく設計、後半はコード書いてました。

毎回のレビューで心折れそうになってた上、コードレビューで死にそうになってました←

変なコードは書いていないつもりではいるが、やっぱり仕事で書くコードと勉強で書くコードが違うということを改めて痛感しましたね。

 

 

そんなこんなで社会人生活半年となりました。

今後も死にかけていると思いますので、なかなかブログ更新できないかと思いますが、生暖かい目で見守ってやってください。

 

 

 

 

C言語のextern

こんばんは。ゆいなです。

もうこのブログ備忘録でいいんじゃないかなとか思い始めた。

 

ということで、今日は会社でクラス図を書くときに引っかかったexternについて書いておこうかと。

 

externは複数ソースコードを跨いで変数やメソッドを利用するときに使うらしい。

そして、externを付けた変数は静的変数になるとのこと。

 

静的変数になるということは、クラス図にも乗るということ・・・。

externの性質を完全に忘れていた私はここでひっかかったorz

 

まあ専門学校でまともにやったの構造体までだから・・・。

と言い訳。

Macでバックスラッシュを打つ方法

こんばんは。ゆいなです。

 

今日も備忘録を兼ねてちょっとだけ。

 

会社で簡単に処理を確認するテストコードが打てないので、Macでコードを打っている訳ですが・・・

 

いくら¥ボタンを押してもバックスラッシュになってくれない・・・。

ということで調べました(

 

どうやら option+¥で\が打てる模様。

でも毎回押すのはめんどくさい・・・。

ということで、Google日本語入力を弄ってみました。

 

f:id:yu1056y:20150901194806p:plain

 

¥キーで入力する文字をバックスラッシュに変えれば常に\が打てるようです。

 

でももし¥を打ちたくなったら・・・

その時はoption+Yキーで¥が打てます。

 

ということで備忘録でした。

誰か困ってる人が見つけますように。

 

Xcodeを入れずにC言語開発環境を作る

こんにちは、ゆいなです。

 

今日も備忘録と、私と同じようなことを考えそうな人が他にもいそうな気がするので、簡単に環境構築についてまとめようと思います。

 

そもそもこのきっかけは、Xcodeが無駄に容量食ってるなーと実感した所からです。

仕事が組み込みプログラマーという性質上C言語を主に利用するので、仕事以外の場所で手を動かしてロジックを考えるために環境を作ろうと調べていたらXcode

 

私の使っているMacBook Airが11インチで最低スペックの128GB。

そもそものソフトウェアが2GB食ってるのは少しきついところがあり・・・。

なんとか軽く環境を作りたいという所から調べていた結果です。

 

1.Apple DeveloperからCommand Line Tools for Xcodeをダウンロードしてインストールする

 

Apple Developer

上のリンクから、OSのバージョンに合うCommand Line Tools for Xcodeをダウンロードしてインストール。

基本的にはベータ版以外の最新バージョンを拾ってこれば問題無い。

インストーラーは日本語なので、こちらも特に問題はないかと。

 

このCommand Line Tools for Xcodeコンパイラが入っており、C言語コンパイラとしてgccが入っています。

 

 

2.ターミナルを利用してgccが正常にインストールされているか確認する。

 

私は基本的にソフトやコンパイラを入れた後は動作確認を行うので、簡単に。

 

単純に、ターミナルを開いて「gcc -v」を入力してエンターぶっ叩くだけです。

コマンド自体に反応がなければ正常にインストールされていない可能性があります。

 

 

3.とりあえずHello worldでも作って動かしてみる。

 

はい、いつものアレです。

別にヘッダーとか何も書かずともWarningが出るだけで一応動いてくれるので、

メイン関数にprintfでHelloworldのアレを。

 

作成したらコンパイルして動かしてみる。

 

先程のgccのインストールチェックで問題がなければ普段通り動くはずです。

 

 

BCDコードってなんだっけ

こんばんは。ゆいなです。

自分の備忘録も兼ねて技術ネタとは言い切れない初心者記事でも。

 

仕事でBCDコードを扱う必要がある処理を実装することに。

値がBCDコードで3桁らしいので

桁ごとにBCDコードを確認して一意の値を取り出す必要がありそう?

それとも普通の2進数計算のようにビット演算で纏めて見れるのか・・・?

 

そもそもBCDコードってなんだったっけ・・・?

ということでGoogle先生にお世話になってみました。

 

二進化十進表現 - Wikipedia

10進数の0〜9を桁ごとに2進数で表現するとの内容。

 

ということははビット演算でなんとでもなるかもしれない。

 

試してみよう。

BCDコードで「999」を表現すると

「1001 1001 1001」となる。

これをビット演算して16進数で表した場合は

「0x999」

 

あれ、これいけんじゃね(

 

一つ一つ桁を見て判定するよりかはビット演算を行った方が処理的にも軽く済むし、コードも見やすいのかなと思ったり。

 

後はどう処理して一意の値を見つけるかかなー。