タグ

プログラミングに関するm_ogawaのブックマーク (70)

  • 凄いやつになる方法|牛尾 剛

    私の勤めるマイクロソフトにも、レイオフがやってくるようだ。それもパフォーマンスベース。つまり、今首になると、「この人はローパフォーマー」とわかるので、再就職が難しくなるだろう。 自分はマイクロソフトの仕事が面白いし、職場も最高なので、こんな中途半端に首にはなりたくはない。ただ、自分がハイパフォーマーとはとても言えない。周りの人はめっちゃ優秀やから。 私は今までは、自分の性能が「三流」であるけど、ダメな自分を「戦略」でカバーして何とかしてきた。しかし、この流れを見ていると、「三流」のままでは早晩解雇されてしまうだろう。たとえ今回のレイオフを生き延びても、記事を読むと、ワークフォースは減らさないと書いてあるし、出来ない人はいらないという流れなのだと思う。 「優秀」になるしかない 今まで、自分がダメなのは受け入れていたが、これからはそうもいかないのだと思う。「優秀」になるしかない。この面白い仕事

    凄いやつになる方法|牛尾 剛
  • 定期的に何度も読み返している個人的名エントリを置いておく - 空の箱

    思い立ってから10分くらいで頭に浮かんだものをつらつらと書いた。なんとこれらは全て無料で読める。他にもあるかもしれないので、それは思いついたら都度追記していく。必然的にだが、僕にとっての長澤まさみ枠な人たちが名を連ねている。 行動をするときに「自分には向いてないかも」と悩む時間は必要ない soudai.hatenablog.com id:Soudaiさんの記事。特に前川さんの「もし、お前に才能が無かったとして、じゃあお前はどうするんの?そのifの中に実装があるの?何も無いんだったらそのifについて考える時間は無駄じゃん。必要なくない?」っていう言葉が核心付いててめっちゃ好き。年に何回か訪れる気持ちがマイナスになった瞬間とかに読みに行くことが多い。 長く活躍できるエンジニアになるためには? 技術者として大切にしたいこと speakerdeck.com id:naoyaさんのスライド。先のそー

    定期的に何度も読み返している個人的名エントリを置いておく - 空の箱
  • Operating System in 1,000 Lines | OS in 1,000 Lines

    Operating System in 1,000 Lines ​Hey there! In this book, we're going to build a small operating system from scratch, step by step. You might get intimidated when you hear OS or kernel development, the basic functions of an OS (especially the kernel) are surprisingly simple. Even Linux, which is often cited as a huge open-source software, was only 8,413 lines in version 0.01. Today's Linux kernel

  • ゲームプログラマー志望の大学一年生を弟子にとってみたけど、うまくいかなかった話|三宅俊輔 ( TECO )

    記事は、学生人から許可を頂いて書いています。 はじまり こんにちはTECOPARK株式会社代表の三宅と言います。会社の代表作はPICO PARKという協力アクションパズルゲームです。今はゲームデザイン業務がメインですが、職業ゲームプログラマー歴が13年、メインプログラマー経験があります。 さて、事の始まりはそんな私がゲーム会社でゲームプログラマーをやってた時代にさかのぼります。私は当時、ゲームプログラマー志望の就活生のプログラムコードを見る機会がありました。ちゃんと設計されているコードを持ってくる学生ももちろんいるが、今のこのタイミングでこのレベルのものを持ってくるとなると厳しい就活になりそうだなと思う子もいました。就活のタイミングではなくもっと早いタイミングで見る機会があればいくらでもアドバイスできたのにな。そう思うこともありました。 その時、思ったのである。 「専門1年または大学1

    ゲームプログラマー志望の大学一年生を弟子にとってみたけど、うまくいかなかった話|三宅俊輔 ( TECO )
    m_ogawa
    m_ogawa 2024/12/17
    非常に示唆に富むお話。書いてくださってありがたい。
  • エンジニアの「センス」とは何か / What is the sense of engineers

    2024年10月19日開催の「PHP勉強会 in 広島 vol.1」の登壇発表資料です。 https://hiroshimaphp.connpass.com/event/321216/

    エンジニアの「センス」とは何か / What is the sense of engineers
  • 見積せえへんねやったらどうやって予算取りするねんという話|牛尾 剛

    私は世界規模のクラウドプラットフォームの開発者で、現在はシアトル付近に住んでいる。 先日書いた自分のポストに対する反応で面白い意見があってそれを読んでそらそう思うやろなぁと思った。ただ、私も別に嘘を言っているわけではないですし、これでビジネスも回っている。面白そうなので、その辺も調べてシェアすることにしてみました。 ウォーターフォールからアジャイルって開発側の話はいいのだが、それだと管理とか経営とか非エンジニアの理解を得られないので、納得できるところをちゃんと言語化してほしいんだよな。アジャイルの人の「見積もりがない」って言葉を使われるのが一番苦手、ストーリーポイントの設計は「計画と見積もり… — えふしん (@fshin2000) August 1, 2024 自分のチームの開発プロセス的なものこちらの方に自分のチームが現在やっている開発プロセスは書いてある。アジャイルとか、DevOps

    見積せえへんねやったらどうやって予算取りするねんという話|牛尾 剛
  • C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -

    C言語(C++を含む)を習得したい人,ポインタを勉強したい人はgcc-14を使いましょう.難しいところは gcc-14 が丁寧に解説してくれます C言語の難しいところ 例を示します.C言語で記述された,たった6行のソースコードです int main() { int buf[10]; buf[10] = 0; return 0; } このソースコードには問題があります.初見でわかるでしょうか? : : : 問題があるのは buf[10]=0 の部分です.C言語でやりがちなミスですが,これがバグやセキュリティホールの原因になります. C言語が難しい理由は二つあります.この手の問題を見逃しやすい点と,この手の問題を理解することが難しい点の二つです gcc 14 に解説してもらいましょう 上記の6行のソースコードをgcc14を使ってコンパイルしてみます ソースコードのファイル名は test.c と

    C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • プログラミングというより物事が出来る思考法~実践編|牛尾 剛

    大変多く読んでいただいた「プログラミングというより物事が出来る思考法」というポストや、世界一流エンジニアの思考法の書籍で紹介した内容がある。 私の職場でも、ものすごく出来る人が「実践」しているところを何回も目撃しているので「実践編」として皆さんにシェアしようと思って今回のポストを書いてみた。 タイトルにもある通り、私はエンジニアだが、ビジネス書である書籍と書かれた多くの思考法と同じく、あまりエンジニアリングというものに関係ない要素であると感じている。 上記のポストや書籍でシェアした内容を端的に言うと「理解には時間がかかるがかける価値が十分あり、それによって自分が物事をコントロールしている感覚を身につけることが出来る」という自分の小さな発見だ。私がこのことを最初に発見したのは、新卒の出来る人々との出来事がきっかけだが、今回その小さな自分なりの発見を後押しするような出来事がいくつかあった。それ

    プログラミングというより物事が出来る思考法~実践編|牛尾 剛
  • Enumとてもつらい、でも負けない - エムスリーテックブログ

    列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

    Enumとてもつらい、でも負けない - エムスリーテックブログ
  • アウトプットガチ勢が作った高速記事作成フレームワーク - Qiita

    はじめに 記事はアウトプットの心構えのカレンダー | Advent Calendar 2023の4日目の記事です こんにちは!!@Sicut_studyです! 私はアウトプットの大切さを日頃から発信しており、実際にQiitaにたくさんの記事を投稿しています そんな中で、自分なりに高速に記事としてアウトプットできるフレームワークを使っているのでそのフレームワークについて紹介していきます アウトプットの大切さ まず言っておきたいのはアウトプットは質より量です 量が増えるとだんだんと質もあがります 私は駆け出しのエンジニアの方に普段から「100記事を書けば人生変わる」と言っています。 そもそも世の中に100記事を書いたことのある経験をしたことがある人はごく僅かです そんなごく僅かな人になれれば絶対人生が変わります。 多くの人ができないことをやり遂げられる。しかも記事という形で目に実力が見え

    アウトプットガチ勢が作った高速記事作成フレームワーク - Qiita
  • リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog

    どうも、レコメンド商品のシステム開発をしている野川と申します。 私は、2021年にモノタロウに新卒入社し、2022年5月からレコメンド商品の開発に関わり始めました。 モノタロウのレコメンド商品は、下の図の①~④の流れでクライアントサイドで表示しています。大部分の処理はJavaScriptで構成しており、UIもそのHTML部分をjQuery(JavaScript)で作成しています。 図:レコメンド商品表の流れ 入社当時私は、ソフトウェアエンジニアとして、「可読性の低いコードは駆逐するべきだ」「読みやすいコードだけが正義である」「理解しやすいシステムだけが皆を幸せにする」と心の底から考えていました。加えて、「なぜ先輩たちは可読性の低いコードを放置して平気なのか?」と疑問を持つこともしばしばありました。 レコメンド商品周りのコードはまさに可読性の低いコードベースとなっていたため、当事者となった私

    リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog
  • はじめに - Writing an OS in 1,000 Lines

    書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま

    はじめに - Writing an OS in 1,000 Lines
  • 最小限のコードで動く最も汚いコードから始める

    最小限のコードで動く最も汚いコードから始める コードを書く際の重要な要点は、読みやすく他人に理解される「良いコード」を書くことです。しかし、完璧を目指して最初から書こうとすると行き詰まります。代わりに、荒削りながらも動くコードを作成し、徐々にリファクタリングして完成度を高めます。型エラーやリントエラーを無視しても構わないので、まずは動くものを作成しましょう。それからリファクタリングして「良いコード」を作成できます。 コードを書くときに最も大切なことってなんだろう?聡明な読者諸君ならご存知だろうが、コードは書く時間よりも読む時間のほうが長い。だから他人に読まれることを意識して、読みやすい「良いコード」を書かなくっちゃならない。コンポーネントは適切な粒度で分割されていて、適切な名前がつけられている。型システムに安全性だって守られてるし、最新のなんとかアーキテクチャにも準拠している。素晴らしいコ

    最小限のコードで動く最も汚いコードから始める
  • まだOpenAI使ったことないの?この記事で全員ハンズオンさせてやんよ!

    目次 はじめに 今回作成するシステムの概要 Azure OpenAI セットアップ Azure DevOps の Azure Repos をセットアップ Next.jsフロントエンド構築 Azure Static Web Apps へ Pipelines を用いて Deploy 動作確認 お片付け はじめに 昨今ちまたで話題の OpenAIchatGPT はさらっと触ったけど、API までは触ってないなぁ…という方向けのハンズオン 🖐️ となります。 この記事の目標としては、OpenAI を触ってみたい全てのアゲアゲエンジニアがハンズオン出来ることです。 セットアップで詰まるところはどんどんコメント欄に質問していただいたら、がんがん返していきますので、ご遠慮なく質問してください! では、Let's ハンズオン! 今回作成するシステムの概要 今回作成するシステムは Azure 上で作

    まだOpenAI使ったことないの?この記事で全員ハンズオンさせてやんよ!
  • strong, b, em, i, u, …、違いがわからんHTML要素の仕様を調べて「新しい見た目」を考えてみたら理解が深まった

    「strongもbも太字になるのにどう違うんだ…?」 「emもiもイタリック体になるけど、そもそもイタリック体ってなんなんだよ…?」 「strongの重要と、emの強調って何が違うんだ…?」 などなど、使い方がよくわからなくなりがちな HTML 要素(主にテキストレベルセマンティックスに分類される要素)の違いを調べてみました。 長めの記事になっていますので、気になる要素だけつまみいしてもらうのもよいかと思います。 今回の調査対象はこちら span strong b em i dfn cite var mark u ins del s strike big small ブラウザのデフォルトの見た目確認用 CodePen 調査する内容 HTML Standard の仕様に書かれている説明 一部、HTML 4.01 から HTML 5 での変更が理解の助けになるものもあり、HTML 4.01

    strong, b, em, i, u, …、違いがわからんHTML要素の仕様を調べて「新しい見た目」を考えてみたら理解が深まった
  • モブに早く慣れたい人のためのガイド

    ソフトウェア開発における「パーフェクトな意思決定」/Perfect Decision-Making in Software Development

    モブに早く慣れたい人のためのガイド
  • ゲーム開発者ら、ロード画面の“進捗バー”を「わざとガクガクさせている」と明かす。進捗バーは、プレイヤーのために嘘をつく - AUTOMATON

    ゲームのロード画面においては、ロードの進行を表す“進捗バー”が用意されていることもある。この進捗バーは、わざと不規則な速さで進むように設計されていることが多いという。開発者たちがSNS上で明かしている。 開発者の口からロード進捗バーについての意外な“真実”が明かされる発端となったのは、コメディアンのAlasdair Beckett-King氏のツイートだ。同氏はゲームのロード画面の進捗バーは均等な速度で動くべきであり、ロードにかかる時間を適切に反映する必要があると問題提起。そうした仕組みを用意してからほかの部分の開発を進めるべきである、との願望を伝えている。ゲームにおいてロード進捗バーが止まったり急に進んだりしがちという、いわば「あるあるネタ」を述べているのだろう。 Game developers need to invent a loading bar that moves at an

    ゲーム開発者ら、ロード画面の“進捗バー”を「わざとガクガクさせている」と明かす。進捗バーは、プレイヤーのために嘘をつく - AUTOMATON
  • 「有能なバカ」ChatGPTを使って1週間でiOSアプリを公開する方法

    初めまして、にわとろです。 さて今回は、ChatGPTを使ってiOSアプリをイチから作ってみました。ChatGPTの記事なんてもうオーバーフローするほどあるのですが、今のところiOSアプリを最後まで作り通した記事はありません。 理由は簡単で、ChatGPTは「バカ」なのでiOSアプリなんて複雑なモノを完成させられないからです。 しかしバカも使いようです。上手く使いこなしてやれば、アプリだって作ることができます。ChatGPTはバカですが、有能なバカです。でもあなたがヤツをわかっていなければ、やっぱり無能のままです。だから、この記事を読んで理解してあげないといけません。 それじゃあ、ChatGPTと仲良くなりにいきましょう。 ChatGPTを使う極意 早速ChatGPTを使う極意を教えます。全部読み通せなくても、これだけは覚えてください。 いい上司になれ。 何を言っているかというと、Chat

    「有能なバカ」ChatGPTを使って1週間でiOSアプリを公開する方法
  • やはりお前らの「公開鍵暗号」はまちがっている。

    ※タイトルの元ネタは以下の作品です。 はじめに この記事は、公開鍵暗号の全体感を正しく理解するためのものです。数学的な部分や具体的なアルゴリズムは説明しません。気になる方は最後に紹介するオススメ書籍をご覧ください。 少し長いですが、図が多いだけで文字数はそこまで多くありません。また、専門的な言葉はなるべく使わないようにしています。 ただしSSHやTLSといった通信プロトコルの名称が登場します。知らない方は、通信内容の暗号化や通信相手の認証(人確認)をするためのプロトコルだと理解して読み進めてください。 公開鍵暗号の前に:暗号技術とは 公開鍵暗号は暗号技術の一部です。暗号と聞くと、以下のようなものを想像するかもしれません。 これは情報の機密性を守るための「暗号化」という技術ですが、実は「暗号技術」と言った場合にはもっと広い意味を持ちます。まずはこれを受けて入れてください。 念のため補足して

    やはりお前らの「公開鍵暗号」はまちがっている。
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena