「C言語」を含む日記 RSS

はてなキーワード: C言語とは

2018-07-11

anond:20180711162801

学生時代UNIXC言語を独学していた頃。

ちょっとした事(たしかグローバル変数ローカル変数挙動の違いとか、そんな事だったと思う)を試してみようと思って、20行くらいのプログラムを作ったんだ。

でも、動かないの。

どんな短いプログラムでも意図しない挙動をしてしまうことはあるものだが、そんなレベルの話ではない。

ただ、計算した結果を画面に出すだけのつもりなのに、何も表示されないんだ。

で、少しずつコメントアウトしていったのに、それでも何も表示されない。

しまいには、"A" って画面に出すだけのコードになったのに、それでも何も表示されないんだ。

(この日記言及先を見れば、ネタは一目瞭然なんだろうけど)


で、もう一本別のコードtest2.c という名前で作ったら、ちゃんと "A" と表示された。

一番始めに作ったコードも、すんなり動いた。


そうさ。最初コードtest.c という名前で作ったのだ。

から、できた実行ファイルtest

カレントディレクトリ よりも先に /bin に PATH が通っていたので 、単に test と打つと、 /bin/test が実行されていたんだ。

2018-07-05

借金までして大学に進んだ意味

奨学金と言う名の借金を背負って大学に進んだ。

大学で学んだことは、仕事に活かせるものでは無かったように思う。

C言語Javaを学べたのは楽しかったし良かったんだけど

単位をフルで取りながら遊んで過ごした。

空いた時間があれば、空いている教室友達と絵を描いて遊んだ

ゼミに居るとき料理したりもした。

結局、大学で得たもの殆ど無くて

借金のみが手元に残った。

友達4人しか居ないけど、良い子たちだから良いんだけどさ。

得たものなんてほぼ無いじゃん。

給料が増える?こんな微々たるもんで?

体の骨格を直す整体みたいなの行ったけど

考えてみたらその人達時給5000円くらいもらってるよ。私の5倍だよ。

半分もらってるとしても、私の残業代時給の2倍だよ。なんなんだ。

借金額が手元に無いからどのくらいかからないけど

5年経過した今、半分くらいあると思う。

ボーナスのみで返済している。月々2万返済かな。

計算したら30年くらいかかるじゃん。どんだけだよ。

それだけの価値があるかといわれたら、無いじゃん。ふざけんな。

(親が大学薦めてきたのに金は一切払わないという笑える展開)

大学行けよって流れほんと淘汰されてほしい。

いらないわあんな遊んでばっかの時間

2018-06-28

時代とともに変わるソフトウェア開発の基礎

コンピュータソフトウェアを開発、運用するエンジニアが持つべ知識スキルの基本セットとは何か?

例えばインテルCPUアセンブラが書けます!と言った場合就活で有利になる場面がどれだけ想像できるか。

UMLクラス図書ます!とか、暗号化理論バッチリだぜ!とか、相対性理論なら任せとけ!とかの場合

おうおうおう、だったら弊社のホームページをカッコよくしてくれよみたいな案件無難にこなせるのかというと

甚だ疑問では無いだろうか。

一昔前はソフトウェアハードウェアのおまけだったわけで、ハードウェアこそがエンジニアが抑えるべき基礎だった。

時代は変わり、ソフトウェアでできることはものすごく多くなった。スマホアプリを作るのに組み込み知識がなくても困らない。

からこそ、現代ソフトウェアのみのエンジニアは旧来のコンピュータ関連エンジニアと道を分かたれている事を自覚しなければならない。

自分キャリア自分デザインする必要があるということ。

古いエンジニアの教えに沿えば、自分も古いエンジニアになる。

今の時代の最適解を見つけるのは困難かもしれない。

だけど組み込み系やマイコン制御をしないのであればアセンブラC言語よりも優先して学習することはいくらでもある。

C#C++よりもPHPが優先される場面もある。

html,css,javascript をある程度自在に扱えるようになるのも長期間の訓練による積み重ねが必要になる。

コンピュータサイエンスネタが無いな……これはプログラミングに役立つネタももちろんあって、構造プログラミングオブジェクト指向プログラミングなんかもそうだけど、表層的に関数分けました、クラス分けましたとかしてもうまくいかない。ネストが浅けりゃいいってわけじゃない。プログラミング以外のネタもある。サラリーマン巡回問題とか。

2018-06-24

プログラミングを何から始めればいいのか悩む

プログラミングってこれから時代必要っぽいし、なんとなくイケてるスキルっぽい。

ゲームとかアプリとか作ってストアで公開とかしたら就職とか転職めっちゃ有利じゃね?

俺はこういうのが出発点で良いと思う。

でもプログラミングを始めようとすると「何がやりたいの?」と聞かれてソッコー詰まる。

俺は「何をやればいいの?」って思って調べてるつもりなのに「何がやりたいの?」って突き放される。

ここで混乱して立ち止まってしまう。

でも一呼吸おいて、初心者とそれ以外の間に生じる認識の祖語について1つずつ解消しなければ先に進めない。

俺はプログラミングを覚えるということは、何でもできるようになることだと思っている。

でも先人たちはそのようなスキルをすぐに教えてくれない。それどころか「何をやりたいの?」と言って、他につぶしの利かない小さな範囲知識を与えようとしているように見える。

アプリ作りたい」と言えば、どんなアプリ?という問いが続くし、特定の具体的なアプリしか作れないような知識しかもらえないだろう。

どういうことか?

試しに「何でも作れるようになりたい」と言ってみると「じゃあC言語やろうぜ」とか言われる。

C?いまさらCで何作れるんだよ。AndoroidアプリJavaじゃないの?C関係ないでしょ!?Cでスマホアプリウェブサイトも作れないじゃん!何言ってんの!?


スマホアプリ作りたいの?じゃあJavaでいいじゃん」

ち・が・う!何でも作れるようになりたいの!あんたみたいに!Visual Studioだろうとgccだろうと、cとかc++とかc#とかjavaとかpythonとかrubyとかphpとかテンサーフローとかhtmlとかjavascriptとかjqueryとかgoとか駆使してたくさんウェブサービスとかアプリとか作りまくってるあんたみたいに!

「じゃあ今挙げたやつ全部やれよ。ちなみに今の俺は10年以上プログラミング勉強してるから。10年後今の俺になったところで、俺はさらに10年積んでるからな。一生追い付かんな」


から今すぐ追いつく方法教えてって言ってるの!


「じゃあ今、あるいはこれから使えるものを重点的にやっていくしかないな。で、何がやりたいの?」


何がやりたいのってどういうこと?むしろ何ができるの?


アプリ作るとか」

わかった!じゃあアプリ作るわ!

「どんなアプリ作るの?」

…………どんなアプリ作れるの?

「ストアにあるようなやつ」

じゃあFGOみたいな……

「お前には無理だからw」


はぁっ!?ストアにあるようなやつって言ったじゃん!






そこでまた数回やりとりが発生して、プログラムを書くコストとかスキル問題について再確認することとなり、

現実的に俺個人が支払えるコスト範囲で、何を作れるようなスキルを取捨選択するかという問題になり、

結局は教科書サンプルをちまちま作っていくしかないのではないかというつまらない結論脳裏に浮かぶし、

その道筋でさえ結局何年も積む必要があり、そのころには別の言語とか開発環境が主流になってるかも……

「そこだよそこ」

えっ?


「まずさ、日本語教科書を読むには日本語必要じゃん?それでも国語辞典とかwikipedia調べながら知らない単語概念は別途補てんする必要がある」

う、うん。

プログラミング教科書とか風潮を読むにはプログラミングの基礎が必要。それに加えて、作りたいものに合わせて新規に開発環境なり言語なりを学習することになる。だから何でも作れるようになりたけりゃ、この世の全てを体得する必要があるけど無理だろそんなの」

え、えー

「でもいくつもの開発環境言語を使って、ソフトウェアをいくつも実際に作ってると、基礎的な引き出しは大きくなるし、追加で新しい環境とかを学習する要領もつかめてくる。何年も積み重ねがあるとなおさらね。するとより少ない労力で新しい技術追従できるし、新しい開発環境アプリの分野でもサクサク作ってるように見える。それが、お前の言うところの『何でも作れる』ように見えるものの正体さ」

なんか夢から覚めた気分。

FGOを作りたいなら、FGOをかみ砕いて、自分ならどういうアレンジでそれっぽいものを作れるか考えて、その過程自分能力とか限界を見極めていく必要がある。でもそれは結果論であって、最初は作りたいものをひたすら作ってみるしかない」

ふーん

「何度も聞くけど、何が作りたいの?FGOならFGOでいいよ。やってみろよ」

どうしよっかな……(頭を抱える)

2018-06-22

golangがどうも苦手だ

人々がなぜこれほど機能の少ないC言語のリニュアル版をありがたがっているのか

いまいち理解できない。

もちろん多くの人が使っているのだからニーズがあるのだろうし、素晴らしいのでしょうが

2018-06-15

anond:20180615110356

エンジニアアウトソーシング、一応正社員

どこの企業エンジニアリングを軽視して悲しい

設計を見ていると悲しい気持ちになる

自分勉強して、少しでも良い設計になるよう取り組んでるが

要求分析仕様策定に噛める立場じゃないか限界がある

組み込みオープンWeb系などなどあるが、

ハードウェアが強い業界になればなるほどクソの山だ

成功体験はいいから今成功してくれよって気持ち満載

C言語まがいの実装ベース議論されるのはうんざりだわwww

から仕切りなおしてITエンジニアとして生きていくとして

より合理化効率化できるための技術チャレンジせんとなーって

凡人だから、社内でそれをぶち上げるだけの力がないんだよな

一緒にやってる奴と話し合ってみたり、あるいはすげえ奴に会いに行ってみたり

今とは違う動きをしていきたいと思っている

過去に大きな失敗をして、社内で浮いてるせいもあるけどな

そのせいか社内でやってる開発にはあんま呼んでもらえないのwww

仮に行っても他社さんの開発の一部分を請け負うだけだし面白くないんだけどさwww

最初転職は期待したのと違う可能性が高いと思ってる

でも、今のままじっとしていても、何か変えられる気もしない

いっぺん仕切りなおして、ここから幅を広げてみるつもりだよ

2018-06-02

anond:20180602223530

最初言語は何を選びましたか

C言語

当時はゲームを作りたかったら、まずはC言語に手を出す時代だった。

最初一年間でどんな成果物を上げましたか

何の成果もなかった。

というか、挫折した。当時は中学生だったのだ。

現在プログラミング歴何年目で、どんなプロダクトに携わっていますか?

最初挫折から数えていいなら、20年以上経っている。

プロダクトは…。具体的には内緒

汎用的な部品とかそういうタイプのものを作っている。

勉強中の言語技術はありますか?

Clojure

関数型言語を1個も使えないのが悔しくて、趣味でやっている。まだ本を1冊も終わっていないので、先は長い。

どんなプログラマを目指していますか?あるいはあなたの考える理想プログラマとはどんな人ですか?

プログラマであり続けたいが、こういうプログラマになりたいというのは無い。

2018-05-29

クラウドのみにするって

最近クラウド流行ってるからって全部クラウドに移行するなんていうのをたまに聞く

自分で面倒なことしなくていいから楽だとは思うけど、それってインフラ面をできる人がいなくなるということじゃないの?と心配になる

ほとんどの人がクラウド使うのが当たり前になった頃に、AWSなどが値上げしても、もう1から環境作れる人がうちにいないから高いけど払うしか無いみたいなことになりそう

他にもクラウド提供してる会社がなにかの理由でやめたりしたらすごく大変そう


からクラウド使うにしても全クラウド頼りってなんか賛成できない


でも考えてみたら、今って高級言語かばかりでCとかアセンブリ書ける人は減ってると思うし、IT系会社でもC言語とか低レイヤー系を扱える人が全然いないところだって普通にあるわけだ

私自身それらの言語あんまり詳しくないが、必要になることがないから困ってはない


同じようにクラウド化もインフラの設定や環境作りなんて専門の人に任せておいて、それらに興味がある人でもなければ基本は知る必要もないことになりつつあるのかな





2018-05-13

初カキコども

35歳からプログラミング

今日学習記録

N予備校プログラミングコースJSコレクションループ論理などを習う。

事業所就労A)でCを学習しているのですが2つの言語を同時にだと

私の場合混同してしまます。for文はほぼ同じ印象だったけど配列ではJS、柔軟すぎて戸惑いを隠せませんでした。

私は就労継続支援A型事業所という福祉的な就労の場で就職しました。事業所からアプリ制作を期待されています

プログラミング言語といえば職業訓練学校VB入門書を半分(一冊ではなく)やった程度の素人同然の状態です。

現在研修期間でC言語をやるよう指示されています。何故Cなのか?それはわかりません。少し不満はあります

しかし、プログラミングに興味を持ちながら年齢や障害理由に諦めていた時期に比べれば

前を向き学習している今は充実しているといえるでしょう。

ハイブリッドアプリ制作に興味があるのでこれからJS学習を続けていきます

お読み頂きありがとうございました。

2018-05-07

30歳過ぎて異業種からWebエンジニア転職して初めてMeets Upに参加した

今まで見てるだけだったけど、今日受けた衝撃を伝えたくて初めて増田を書いてみた。

・元々プログラミングに興味があって、前職に居た頃からC言語を中心にオンライン講座とかで勉強してた。

・小さいプログラムだけど形になると面白くて仕事にしたいと思っていた。

・色々な契機が重なって転職した。

・主に受託Web開発をしている会社採用された。多分結構運が良かったと思う。

・今年の4月から働き始めた。

たまたま少し前に参加した懇親会で会ったエンジニアにMeets Up(エンジニアたちが集まって互いに教え合ったり、情報交換したりする会合)に誘われたので、どんなものかよくわからないけど参加してみた。で、エンジニアと呼ばれる人たちのスキルってメチャすごいんだなって衝撃を受けた。あと、すごく良い刺激を受けて、頑張らなきゃって思った。

そもそもPC操作するスキルレベルが違う。何でそんなに次々画面を切り替えて操作できるの?って思った。私は20年くらいPCを触ってきたけど、PC操作を何もわかっていないんじゃないかと思った。

・せっかく説明してもらった技術だが、多分20%も理解できてないと思う。ただどんなことができるかデモンストレーションをしてくれたので、それで何とか概要理解は出来た。

・主に英語で話が進んでいったんだけど、ほとんど英語がわからないし、しゃべれない私も気遣ってくれて、楽しめた。(そもそも参加するレベルに到達してない、とその時思った)

英語話者の人たちだからなのか、そういうエンジニア文化なのかはわからないけど、互いの技術とかやっていること、作っているもの説明する時にとにかく褒めあっていることに好感を持てた。

会社の先輩や上司スキルも凄いと思ってたけど、Meets Upの人達はまた違う凄さだった。日本人プロ野球選手メジャーリーガーの違いみたいなものかな?さらに、その例えでいうと、私は野原で草野球をしている感じ。

・後でFacebookでお礼を言ったら、「何でも質問していいよ」と返ってきた。神だった。

とにかく参加してよかった。職場仕事をしっかりできるかどうかすら覚束ない状況で不安を抱えていたが、別方向からの衝撃でもっと頑張らないといけないと、前向きになった。それにしてもエンジニアってすごい。しかもそんな人達でも「まだ全然。上を見たらキリがない」なんだって

2018-04-27

Youtuberも良いけど、技術動画を出してください

C言語とかJavaとかUnityとか

そういう技術的な動画を出してください。

そっちの方がみんなのタメになる。

2018-04-14

IT系に関する限り、実はたくさん人はいる。

中小企業に勤めてる、派遣プログラマだが。

お客には「人がいない」といってある。

ある意味で間違ってない。「人月70の人はいない」

それは当然だ。perl,java,ruby,python,javascript,HTML,CSS,c言語,C++,bash理解できて、システム設計ができ、かつネットワークセキュリティ理解できる奴。

人月70で用意してっているわけがない。

感覚だが、1人月100出せば、人はたくさんいる。150なら確実だが、それはちょっと無理があるだろう。

人がいないってのは、ようするに「ケチだ」と言ってるに過ぎない。

C言語とかJavaとかRubyAVが見たい(擬人化とかでなく)

C言語とかJavaAVが見たい。それは安易擬人化などでは決してなく、本当にC言語とかJavaとかRubyセックス描写しているものが見たい。

penis.insert(girl.getVagina());

とか

class Jk extends Woman implements Uniform

とか、

おっさんエンジニアが、上記のようなコードを黙々と書いていくのをひたすら鑑賞するの。

見たい。

2018-03-23

パイソンもC言語も少しやっただけでもう飽きた。みんなどうやって習得したんや、、、、、

2018-03-18

プログラミング歴とプログラミング能力ほとんど関係無い件について

ほとんどの人はもう既に気付いていると思うけど、あえてこの表題言及している人はあまり多くないんじゃないかと思ったので書く。炎上したら💩なのでここに書く。

結論から言うと、プログラミングを何年やったかプログラミング能力はこのぐらいと言うことは絶対にできない!

これは何もIT業界だけでなく他の分野でもそうだ。たとえば野球とか絵画かにも言えることで、ただ年数を重ねればいいってわけではない。勘違いしてほしくないのは、他の業種ではただ年数を重ねればいいといっているわけではない。

コンビニだったら始めはレジ打ちから入るだろうが、だんだん品出し、他者とうまく調整できv、何が売れるか・何が利益率を叩き出すかを把握し、接客態度は絶えず磨き……というように、能動的にスキルを身につけるなければあっという間に「経験した年数」などというものは何の武器にもならないであろう。(「やっても給料変わんない」とかそういうのは抜きにしても)

IT業界でもこれが言えるのだ。

その証

個人的経験によるサンプルしか無いが、ぼくの経験上では年数が高ければ高いほどいいと思ったことは全くない。もちろん2ヶ月の新人と5年目の人での比較はなかなか難しいが、情熱ある新人プログラマ半年で5年目を追い越すなどということはありふれた話だ。あたか大人小学生中学生さらっと数学英語能力で負けるように負ける。

残念ながらしっかりした実証などはないので、周りの環境がそうではない場合は納得できないかもしれないが、以下は明らかであろう。

経験年数とは時間であり、重要なのは時間を代入すると成長度合を求められる関数(ここではFとする)の違いである。(F: time -> ability)

Fの方が大事理由も明らかだ。timeケチをつけようとする例外を除けば誰にとっても同じであり、おもしろくもなんともない。

Fの次元が違う場合は、能力次元文字通り違う。そのため、かなり重要だ。

プログラミング歴が増えることは恥だと思いたい

プログラミング歴2年だからこんなことを知っている」と周りから評価されるというのは、要は「プログラミング2年生」だということだ。これははっきり言って侮辱である。2年プログラミングをやったから知っているんじゃなくて、2年の間で勉強したことたまたま別の箇所で出現したということだ。決して2年やったからではない。2年の間に獲得したスキルがいっぱいあるからだ。2年は重要じゃない。どれだけやったかだ。2年という期間それ自体は全く重要ではない!

プログラミング歴2年なのにそんなことまでできるのか」というのが真の評価なのだ

これはまあまあ高い評価である。「プログラミングを始めてまだ半年なのにそんなことできるのか」という評価はより容易く得られる。年数を重ねれば重ねるほどこの評価に達するのは難しくなる。したがって「プログラミング10年なのにそんなことまでできるのか」という評価ほとんど得られない。ほとんどの場合、「10年やってるからできるんだな」とか、ひどい場合10年やってるのにこんなこともできない」という評価になる。

これもある種、年数というもの全然重要じゃないとみなされている証左であろう。みんな知らず知らずのうちに周囲の人々の経験年数と能力とでおのおの相関図を作り上げて、標準偏差をなんとなく作り出して、「45歳……クソコード……チーン!こいつは偏差値37!落第!死刑!」みたいなことをやってるんだろう。

プログラミングも慣れてくると、特に新しいことを勉強しなくてもなんとなくできるようになってきはじめる。これが危険シグナルだm

謙虚でありたい

自分プログラミング歴が長いのに、HTTPSの仕組みもTCPの仕組みも詳しく知らず、JavaScriptもまともに書けず、WebAssemblyは全く知らないし、RDBのことは知らないし、もちろんRDB以外のDBちんぷんかんぷんで、デスクトップアプリは作ったことがない、サーバサイドはRailsしか知らない。Railsがどう作られているかも知らない、gitの触りぐらいしか知らない、AWSGCP全然使いこなせない、公開鍵暗号方式もよく知らないし、アルゴリズム簡単ものしかからない。デザインパターン勉強してないし、関数型言語もわからないし、C言語全然読めない、アセンブリはやろうと思ったことすらない、正規表現も複雑なものはいまいちわからないし、機械学習はわからないし、そもそも数学不安で、AndroidアプリiOSアプリもまともなものリリースしたことがなく、エディタは人が作ってくれたプラグインをただインストールするだけで、英語ほとんどできず、セキュリティに関してはザルもいいとこ」

のように自分を見直すべきである。もちろんほとんどの人はそうしているとは思う。そもそも自分プログラミング歴が長いのに」という部分はもはや要らないだろう。

あとはただ穿つだけである能力は、どれだけ、何を、どうやったかとの方と強い相関を持つ。能力とは現在状態であるのだから、強い相関を持つのは最最もである

結論

少年老い易く学成り難しである

一刻も早く「プログラミング歴」でなんとなくの判定するのをやめて、プログラミング歴1秒の人に対しても、プログラミング1000年の人に対しても、そのFを見るようにし、自分はとっとと次元を越えて昇華したいものである

結局、「いっぱいやればいっぱい成長する」という自明結論自体は変わらないんだが(高)

2018-02-27

C++のいらない文法

多重継承

多重継承がなくてもどんなに複雑なプログラムでも記述できる。

JavaphpインターフェイスRubyMix-inがある。

演算子オーバーロード

+ や - などの演算子に別の動作を与える演算子オーバーロードはなくてもプログラム記述はまったく困らない。

C言語

a = b + c;

と書いた場合解釈は足し算しかない。c + b と書いても同じ。

C++

a = b + c;

と書いた場合、b と c が何かでまったく動作が変わる。逆にして c + b は動作が違う可能性がある。つまりこの行だけ見てもどのような動作になるのか予測できない。

Java はできない

PHP はできない

Python はできる

Ruby はできる

フレンド関数

クラス保護メンバー変数に、アクセスできる関数のこと。通常、privateメンバ変数クラスからアクセスできないが、フレンド関数はそのprivateな変数アクセスできる。

不要例外的文法

anond:20180227105950

結局ポインタが面倒くさい

C言語経験あるやつなら「簡単になった」だろうが、弊社のPHPerに説明できる気がしない

fmt内蔵なのはいい、というか全部の言語そうなれと思う

2018-02-20

PHPJavaScriptのfunctionはタイピングしづらくて糞!

javaScriptPHP関数呼び出しの予約語

function という冗長単語なのはなぜだろうか?

タイプやすいし、書くのがめんどくさい。誰か止める人はいなかったのだろうか?

rubypythondefだし、 最近言語である goswift は func というように書きやすいのに。

C言語javaはこれは関数ですと明示的に示す予約語存在しないから、可読性をあげるために function という長い予約語を導入したということだろうか?

その辺の歴史的経緯が知りたいものである

2018-02-06

入社試験問題で敢えてセキュアプログラミング

昔の話ですが、入社試験問題簡単な入出力問題言語は、C言語)が出たんですよ。

問題は紙ベースでの出題と回答です。

私は何を考えたのか、セキュアプログラミングをわざわざやろうとして、時間がとてもかかって結局うまくいきませんでした。

2回も催促される事になるくらいなら、セキュアプログラミングなんてやらなければ良かったです。

単純にgets入力受付・・・とかそのような感じでいいのですよね。

その会社は落ちて、今は別の会社でSE・PGをしています

2017-10-29

はてなハードウェアエンジニアが少ない件

エンジニア一言で言っても星の数ほどのジャンルがあるが、その中でも代表的なのはハードウェアエンジニアソフトウェアエンジニアだと思う。

まりに広範囲区分けだが、敢えて定義はしないでおく。

さて、自分新米ハードウェアエンジニアで、ソフトウェア趣味人間である

はてなにはソフトウェア記事(及びブックマーク)が多く、日曜プログラマ自分にとって大変有益である

大抵の悩みは検索をかければ解決するし、自分では想像し得ないようなユニーク記事もあり毎日が発見連続だ。

特にユーザコメントが好きで、皆の関心が伺える“はてなはいくら見ていても飽きない。

ただ、ハードウェアに関する記事が少ないことが残念でならない。

エンジニアカテゴリを覗いても、ハードウェアに関する記事が上がっていることは稀である

たまにラズパイIoTキットに関する記事があるだけで、デジタル回路におけるインピーダンスシミュレーションとか、高速差動信号の放射電波対策とか、そういった踏み込んだ記事はほぼ無いと言っていい。

当然アナログ回路のGNDレイアウトに関する記事は皆無だし、ソフトウェア寄りと言えるRTLコーディング記事さえ見当たらない。

ハードウェアエンジニア守秘義務なのだろうか?

・・・・・・

・・・

ソフトウェア技術日進月歩

イマイチ盛り上がらないハードウェア業界比較して、ソフトウェア業界の隆盛は火を見るよりも明らかである

コーディング環境、つまりPCがあればその先には広大な世界が広がっている。

語弊を恐れず言うが、アイディア次第ではその日のうちにスターダムにのし上がることも可能かもしれない。

当然、アマチュアを含めたエンジニア人口を見るとソフトウェアエンジニア人口は突出しているだろう。

なので記事数の多さは人間性質に依るものではなく、単純に人口の違いだろう。

ハードウェア面白いのに、何故手を出す人が少ないのだろうか。

ロボコンなんか見ていると、胸に込み上がるものがあると思う。

ハードウェア自然界の物理法則の下で成り立っているため、主に電磁気学電気回路電子回路勉強するだけでいくらでも応用が効く。

言うなればソフトウェアよりも参入障壁は低いはずで、高校物理で習ってきたこである程度の回路が組める。

FPGAなりでハードウェアアクセラレータ自作し始めると計算機科学知識必要になるが、ここはむしろソフトウェアエンジニアの方が得意な領域だ。

・・・・・・

・・・

こんなことを言っておいて、自分ハードウェアを始めたのは社会人になってからである

学部修士時代の専攻は材料物理学だったため、工学とは全く縁が無かった。

ここから自分ハードウェアの道に進んだきっかけを書こうと思う。

新人研修の昼休み、あるフラクタル図形を高速描画するハードウェア記事が目に留まった。

当時の自分にはその偉大さが理解できなかったが、2年もの間寝食を忘れて没頭できるその世界に心が惹かれた。

人生を変えることになる出会いだった。2012年の春である

早速オームの法則から復習し、使ったこともない半田ごてやテスターを買ってきて4bit CPU製作に取り掛かった。

ALU(算術論理演算回路)以外はディスクリート部品で組んだため、デバッグ含めて完成までに6ヶ月も掛かってしまった。

その後FPGA存在を知り、8bit CPUを載せてみた。

機械語勉強し、命令デコーダ設計して1年後、自分の考えたプログラム動作したときは嬉しかった。

上述した記事追体験しているようで、仕事を忘れて没頭していた。

続いてFPGAマイコン+汎用ROMの組み合わせでプリント基板を起こしてみた。

目的は勿論、あるフラクタル図形の高速描画である

ここでレベル変換やリセットシーケンスなど、デジタル回路の基礎を身に付けることができた。

基板レイアウトの考え方は専門的であるものWEB簡単情報が手に入ったし、殆ど電磁気学世界なので理不尽ものは無かった。

苦労したのがマイコンプログラムだった。

機械語論理的な手順をコード化するだけだったが、組み込みC言語はそのルールが難解だった。

言い方は悪いかもしれないが、人間の考えたルールだろうと理不尽に思える理論もその設計思想を調べもせず暗記で済ましていた。

メモリリークが発生した場合ハードウェアのように現象を観察して仮説検証することが難しく、ダンプなどのデバッグ手法も知らなかった。

そんなとき、社内でセキュアプログラミングなる研修があったため同期と潜り込んでみた。

参加資格の無い自分が参加できたのは、配線だらけの汚い自作CPU子供のような目で見てくれた上司の厚意だった。

そして1年後、自分モニタの中で鮮やかに描画されるフラクタル図形を眺めていた。

上述した研修講師に1年間師事し、半ばマンツーマン計算機科学を教えて頂いていた。

大学講師の方だったため、C言語ルールではなく命令処理系としての働き、ハードウェアとの関連を核にして叩き込んでもらった。

・・・・・・

・・・

紆余曲折を経て、ハードウェアエンジニアとして働いている。

こういう部署では多少なりともソフトウェアができると光るものである

ただ組み込みC言語以外はサッパリのため、日々独学の毎日だった。

そこで出会ったのが“はてな”だった。

そこにある記事はどれも眩しくて、「ある疑問の解決法」を検索するだけでは決して出会えない珠玉記事の宝庫だった。

きっとハードウェア世界にも、自分では想像し得ないような発見があるはずだ。

それこそあのフラクタル図形のような驚きが。

・・・・・・

・・・

今は仕事の傍ら、奇しくもプロになってしまった自分義務として細々とハードウェア記事を書いている。

残念ながら驚くような技術ではないが、誰かにとって小さな発見があれば嬉しい。

これを読んだ人がハードウェアに興味を持ってくれたらと思う。

2017-10-20

インポート用のファイル形式CSVにする必要があるのか問題

C言語とかで開発してるわけじゃないんだしExcelファイルそのまま読めばいいんじゃないかと思うんだけど

どのシステム見てもだいたいインポート形式CSV

JavaならPOI.NETならNPOIPHPならPHPExcelみたいにだいたいどの言語でもそれなりのライブラリあるはずだし

CSVExcelで開いて編集しようと思ったらコードの頭0が消えてます」みたいなことを言われなくて済む

でもCSV

ユーザーExcelCSVを開いて編集してCSVで保存してインポート

2017-10-18

C言語入門書

AmazonでCの入門書新刊をみかけて、十数年前に「毎年のようのにCの入門書がでてるけど、こんなの一冊あればいいだろ」みたいな話をしていたのを思い出して検索してみたら、あいかわらず毎年のように入門書がでてるみたいだな。

すごい競争率が高いと思うけど「おれだったらもっとわかりやす解説できるぜ」とか思うのかな。

2017-10-03

[]Rails初心者が3ヶ月かけてKindleセールまとめページを作った結果

[追記]

なんの反応もなくて辛い

増田で書いたらいいことあるってどこかに書いてたので書く。

要件

1. 開催中のKindleセールを一覧表示したい

2. かつ各セール対象商品も1ページ内で見られるようにしたい

1番目の要件を満たしているサイトブログはたくさんあるが、

2番目の要件を満たすサイトあんまりない気がしたので、

自分で作ってみることにした。

自己紹介

Railsを選んだ理由

Railsを使ったら簡単webサービスが作れる

ってどっかに書いてた気がしたか

作ったページ

http://www.kindletoku.com/

お世話になったサイト

最初にここをみて作り方のイメージを掴んだ

 https://openbook4.me/projects/92

railsコマンド等で迷ったらここを見た

 http://www.rubylife.jp/rails/

情報

 http://chalow.net/2016-01-18-3.html

からないことググったらだいたいここに行き着く

 https://qiita.com/

スケジュール

1週目

 ・とりあえず『https://openbook4.me/projects/92』をみてイメージを膨らませる

2週目

 ・とりあえずrailsプロジェクト作成する

 ・amazon-apiを叩いてセール情報が返ってきた時は嬉しくて泣いた

 ・ただ、あまりにもゴミデータが多すぎて悲しくて泣いた

(終了済のセール/全然安くないセール/アクセサリ等のセール情報が大量に含まれている)

 ・ゴミデータを弾く方法を色々考える

3週目

 ・ある程度ましなデータが取れるようになったので見た目(view)を作り出す

4週目

 ・ドメイン取る

 ・とりあえず公開する

 ・動作が遅くて/メモリ消費量が多すぎて頭を悩ませる

2ヶ月目

 ・アクセスがなさすぎて泣きたくなる

 ・動作遅い/メモリ消費量多すぎる原因を考えるがわからない

 ・アクセスがなさすぎて泣きたくなる

3ヶ月目

 ・アクセスがなさすぎて泣きたくなる

 ・動作が遅い原因がなんとなくわかり改善する

(キャッシュとか)

 ・見た目も改善する

イマ

 ・アクセスがなさすぎて泣きたくなる

 ・増田宣伝する

感想

  • 振り返ると2ヶ月目何もしてなかった
  • 結構思い描いていたサイトにはなってきた

何も知らなかった状態から頑張ったのでサイトを見ると嬉しい

  • でも誰かに見て欲しい

課題はまだ山積み

- 有効セールを弾いてしまうことがある/無効セールを弾けないことがある

- アクセス数が増えた時、耐えられるかわからない

- みんなが欲しい情報提供できているだろうか

お願い

感想ください。頑張って改善します。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん