はてなキーワード: アセンブラとは
10/28 に行われたGo言語のカンファレンスに参加してきました。
いつからGo conferenceが行われているのかはよくわかりませんが、例年春と秋に開催されるのが通例のようです。
今回私は、Wantedlyが行う「学生応援支援プログラム」という枠組みの中で参加することになりました。学生応援支援プログラムというのは、学生に対してカンファレンスへの参加に伴うチケット代や、会場までの交通費を全て負担してくれる制度です。詳しくは https://boards.greenhouse.io/wantedlygoscholarship/jobs/4459011002 を参考にしてください。
Go conference 2019 autumnに限った話だと、Wantedlyの他にも同じようなプログラムを実施している企業がいくつかありました。
今後もそのようなプログラムが実施されることがあると思うので、学生に限った話ではありますが、興味がある人は応募してみるといいと思います。
ここからは私が今回のカンファレンスに参加しての感想を書いていきます。
私は、大してプログラミングの経験があるわけでもなく、技術力も高いわけではありません。Go言語に関しても今回のカンファレンスに参加する半年ほど前から触り始めたというレベルでした。それでも、そのくらいの経験値の人が特定のプログラミング言語をテーマとするカンファレンスに参加して何か得るものは有ったのか、みたいな視点で書いていきます。
今回参加して良かったと思えたことの1つは、Go言語そのものに限らず、幅広い知見が得られたことです。カンファレンスの各セッションで触れられる話題というのは、コンパイラやアセンブラなどの低レイヤな話から、テストや設計に関する普遍的な原則、また比較的新しい技術スタックを使用したプロダクトを開発・運用していく中で得られた発見など、かなり多岐に渡ります。そのため、Go言語をテーマの主題としつつも、普段であれば自分から能動的に掘り下げない分野・領域についての話を聞くことができます。
これは、私にとっては特に嬉しいものでした。私は、Go言語を使ってAPIサーバのバックエンドを実装したり、簡単な CLIツールを作ったりしたことがあるのですが、その時に自分で調べることは、あくまでも目の前で分からないことがあって、それをどうすれば解決できるか、という狭い範囲についてでした。
そのような狭い範囲の探求を繰り返すことも開発を進めていくためには重要ですが、自分が経験したことの無い領域、また自分が詳しくは知らない領域について学習することも大切だと考えています。しかし、そのような領域についての学習は自分の中での優先順位が低く、かつ調べるためのキーワードすら分からないので何をすればいいかもよく分かっていない、という状態でした。
そのような一種の停滞状態を打開するものとして、今回のGo conferenceは絶好の機会でした。
これは、今回のGo conferenceに限った話ではなく、他のconferenceや技術イベントについても言えることだと思いますが、自分の知らないor詳しくはない領域についての学習を続けることで、技術に対する新陳代謝(?)のようなものを常に保っていくための機会は大事なものだと思います。
孫さんなら海外事例も沢山知っていると思うが、ソフトバンクの情報網を使えなくなったときに代わりの情報網を構築できるかわからない。
一企業とはまた質も違ってくると思う。
じゃあ誰ならとなると、ヤフーなり、マイクロソフトなり、NTTグループなりになるのではないのか。
GoogleやAWSは凄い詳しいんで議事録は全てGoogleドキュメントで、会議室全てにGoogleハングアウトを入れて、という人を望んでいるのか?
Apple製品が出たらいち早く国会議員全員にiPad配って2年置きに更新するとか、
Kindleで自主出版された本に書かれいることを国会答弁で述べるとか、
Instagramでフォロワー1万人とか、YouTuberでゴールド認定とか、
そういうのでもないだろう。
>>無理である。
>努力はすべき。
よろしいでしょう。そこは同意できる。
強いて言えば、可能であるかどうかの線引きはしてくれないと困る。例えば「屠殺場の閉鎖」などという主張はダメだ。今はまだ代用肉の開発までにとどめてくれ。
>>失われるものが大きい。
>それが何かわからない。
まず人類の健康である。大豆とサプリ食ってればタンパク質は足りる、などという主張は「毎日20キロ走れば毎食マクドナルドでも太らない」に近い欺瞞だ。筋肉は健康の資本であり、ヴィーガン食は筋肉を減少する。すなわち健康を害する。
あと文化である。言うまでもなく料理は文化の重要な地位を占める。子牛が使えないフランス料理、寿司が食えない日本料理に何の意味が?また、代用食がそれらを担えるというのは楽観的すぎる。ハンバーグやサラミや溶けたチーズの代用食なら、まあ100年もすればできようが、しかし刺身は無理だ。分子アセンブラが必要なレベルだ。
そして上記二つによって重要なものが毀損される。人類の幸福である。
>>苦痛が消えない。
>そうだが、やる価値がある。
一定の同意が得られたが、ここでも程度問題で認識の違いがあるように思われる。「恐れ」ではなく、殺さないことで明確に新たな苦痛は生まれる。
例えば、蚕という虫は、いまや人間に家畜化された状況でないと生きていけない生物であるとして有名だ。実は多くの家畜というのはその水準に達している。牛、豚、鶏卵らは、野良に放されればたちまち絶滅する。
あと、兎、鹿、猪、熊、象、鯨などの生き物は、むしろヒトが狩らなければ生態系を破壊することがよく知られる。
>違うし
違うともちろん貴方がたがは言うであろう。
これは僕の持論だ。先に述べたように、ヴィーガンは人間の幸福を減ずることを推進しようとしている。すなわち、人間の幸福を軽視している。なぜそうなのか? 貴方がたがありのままの人間を愛せないからだと思う。
特に、今回やようなデモで極端な主張に走る人たちはそうであるはずだ。ペット虐待反対運動なら、俺も賛成するよ? フェイクファー推進や象牙禁輸もまあゆるすわ。しかし社会的な肉食の禁止とは! 自分と自分以外の他者の人生を嫌悪してないとその発想は出ないんじゃないか。
ハードウェアをシミュレーションするの技術を身に着けたいんですけど、
そういうプログラミングコンテストってありませんか。
習得したいことは
C++で、
メモリ→メモリアロケーションとかガーベジコレクションとか
CPU→アセンブラで命令を与えてCPUの挙動をシミュレートしてみるとか
ハードディスク→保存・削除を何万回実行する、とかディスクフラグメンテーションとか
自分で作ってみたりはしてるんですが、どうも抜けや漏れがあるだろうし、
コンテスト形式で動作確認ができるのであれば利用したいのですが・・・、
AtcoderとかTopCoderとかって数学とか計算機科学とかで
Kaggleは機械学習だし、AI系のコンテストはわりとあるんですが・・・。
誰かご存知ありませんか?
https://teratail.com/questions/163664
レベル1:組み込み関数のソースがOSのAPIをどうやって呼び出しているかの仕組み
レベル2:OSは実際のPCにどのようにそれを処理させているかの仕組み
レベル4:AND回路などをどう組み合わせて計算ができるCPUになるのかの仕組み
レベル5:AND回路などはどういう電子部品の組み合わせで出来ているの仕組み
レベル6:電子部品はどういう物質でその電子特性を得ているのかの仕組み
レベル7:なぜその物質が電子回路を作れるような特性を持っているのかの仕組み
レベル8:この宇宙の物理定数はなぜ今のようになっているの仕組み
レベル9:なぜ何もないのではなく何かがあるのかの仕組み