はてなキーワード: コードとは
俺のエスパーがあってればだけど
超初心者向けの環境の構築とかHello Worldとか If forとかはあるけどそっから実際に何か作るところが薄くて、飛んでオライリーでリーダブルコードだのDDDだのっていうことなのかと
時々、行動を起こすことが重要だと思うことがある。
私は障害者であり、ハロワの職員に勧められて自立訓練施設で訓練していたことがあった。そこでの人間関係は楽しいものだったが、訓練が役立ったことはない。
教えられなくとも料理はできるし、裁縫を学んでも実生活で役立つことはないし、OfficeSuiteの使い方なんてものは教わるまでもない。
訓練の一環と言って、無賃で工場勤務をしたこともある。たまに巨大組織に金をむしり取られる夢を見る。これは自立訓練で金と時間を奪われたトラウマと思っている。
「足るを知る」がその組織の哲学だったが、個人の哲学として優れているとしても、企業がそれをやれば「低賃金?障害者のお前たちが働けるだけありがたく思え」という態度になるだろう。
それで...行動を起こすとはどういうことか。例えばそれは自立訓練を抜け出して自分の力で転職活動をするということだ。そして結果的にフルリモートで働くプログラマーになれたわけである。
さてこの先、収入を高めるために転職活動をするべきだろうか。私は箴言の一句を思い出す。
フルリモートで自由度が大きいのに、仕事に対する態度がかなり真面目になってしまい、精神的にもストレスは溜まっている。
真面目に働こうと思うわけである。GWも火曜日からは仕事がある。
ところで、仕事と余暇が同じ部屋であるからか、寝ているときにコードを脳内で走らせるような悪夢も見る。
おそらく代わり映えのない部屋の風景に浸り続けるのがいけないのだろう。今日は散歩でモスバーガーまで行ったが、こういう気晴らしが必要だ。
新人エンジニア社員が現場のベテラン業務委託に話を聞いてもらえないとか、
テスターがエンジニアに話を聞いてもらえないとかいう話をよく聞くけど、
俺は新人の時点でそこそこコード書けたし、エンジニアの割にはコミュ力もある方だったから、実力で一目置かせて現場と仲良くなってた。
ついでに、はっとするような指摘をくれるテスターには逆に一目置いてる。
もちろん明らかに邪険にするような態度を取るのは社会人としてNGなんだけど、実力主義の職種なんだから人のせいにしてないでコミュ力含む自分の実力磨けよなという話。
従来プログラミング業界においては、やれ「ググる力が重要」だの、やれ「分からないことはググればいい」だのと言われてきたわけだが、もうそろそろこういう妄言は根絶されるべきだ。
そもそも、専門知識の要る分野でそれなりの水準の仕事をしようと思えば、ググって済むようなことはほとんどない。
実際、プログラミング以外のあらゆる分野で「ググればいい」なんて言われることはほぼ無い。その分野の仕事に必要な基礎知識を身につける方が圧倒的にウェイトが高いからだ。
「ググる力」とか言ってるアホは、じゃあためしに俺の手元に、タネンバウムの「コンピュータネットワーク」第6版があったから、これと同等の知識を、コーディング時の調べ物だけで身につけてみてくれないか。
こんな知識は業務で必要ない?そりゃお前がその程度の仕事しかしてないってだけだろ(笑)
ネットのサンプルコードコピペするしか能のないIT土方、コンピュータサイエンスや数学にコンプレックス持ってる低学歴は、さっさとエンジニアやめろ。少なくとも、他人(とくにプログラミング初学者)を自分と同じ水準に貶めるな。
まず挙げられるのが、何でもかんでも言わなきゃやらない指示待ち無能への揶揄である、ということ
オブラートを剥ぐと、その程度のこと自力でやれカスが、であるがそんなこと言うと社会人として終わってるのでオブラートに包むのである
つぎにそこまでは無能ではないが初心者へアドバイスとして述べられるパターン
こちらは単純、元増田にも触れられてるが専門知識で調べても出てこない部分はどうしても出てきてしまう
ただしここで重要になるのは直面したその問題が、調べてできることなのか調べてもどうしようもないことなのか、の見当がすばやくつけられるかどうかである
このセンスを鍛えるのに欠かせないのがいわゆる「ググる力」であるのでやってみろと言われるわけなのだ
その最新にある程度追従していかなければならないのは宿命となっている
優秀でなくともある程度マシな人材に育てるにはその感度を鍛えてやる必要がある
ここで重要になるのは「自分から調べる」と言う行為は当たり前であり苦にならないような状態にする必要があると言うこと
もちろん当然であるがググるは比喩であり本当にググるだけでなく書籍や勉強会など必要なものを必要なだけ自分で手に入れる能力である
つらつら思いついたことはこんなところかなあ
まず論文の再現性問題と言って、おなじことをやっても全く再現しないことが多い
それ以前の問題として、論文の内容を正確に同じことをやろうとするにはgithub等でコードを公開しているなどしないとまず不可能
「僕たちの手法はこうでーす!ACCの値はこうでーす!SOTAでましたー!」だけじゃ論文になんの価値もないんだよね
anond:20240427075724へのアンサー
8:00 起床。フルリモートなのでこれで間に合う。二日酔いで気持ち悪いのでとりあえず茶だけ飲んで、いますよアピールのためにTeamsを立ち上げる。
8:30 気持ちが悪い。メールとチャットで爆弾回ってきてないのだけ確認。
9:00 スタンドアップ(毎朝定例)ミーティング。頭回らないので自分が何言ってるかよくわからないがとりあえず1分話してお茶を濁す。
10:00 QA(テストの人)が俺が新規に書いたコードが動かないと言ってくる。30分くらいデバッグしたら超初歩的なタイポ(打ち間違い)だった。ため息つきながら、バグだったよグッドジョブ!と空元気でチャットして一行直してまた上げる。
12:00 お昼休み、というのは無い。アメリカ人マトモに昼飯食わない。昨日の残りのカチカチのピザを齧る。ここから動かない頭でコーディング。
13:30 どういう仕様で動くのか問い合わせがくる。それはお前が俺に教えるものなのだが。仕方ないので2年前に俺が勘で書いた仕様書をコピペして送る。
14:00 まだだるいので風呂に入る。そういう時に限ってチャットがくる。スマホの防水偉い。
18:00 いつ終われば良いのかわからないからラップトップ開けたまま飲み始める。
20:00 酔っ払ったままプロダクション(本番環境)にコードをあげる。8PMに働くとか最初言ってなかったですよね。
これで貯まるのは年200万くらい
いろんなアプリケーションのメンテ(バグ取りとか細かい機能追加とか)を何度か経験してきた。
主にテキストファイルとかCSVファイルとかExcelファイルとかを入出力するものばかりだったんだが、その大半がファイルの拡張子をグローバル変数化していた。
こんな感じ
const TxtFileExt = ".txt"; const CsvFileExt = ".csv"; const ExelFileExt = ".xlsx";
outFileName = 〇〇 + ×× + "ABCDEFG" + TxtFileExt;
みたいな指定をしなきゃならない。
あと、プログラム言語の標準的なメソッドのあらゆる引数も全部変数で定義されてて、そのまま渡すのは禁止、みたいな規約になってる。
たとえば引数が三種類(true、false(未指定時のデフォルト値)、任意の数値(ただし当該プログラムでは0、10、25以外指定不可))しかないやつはこんな感じ。
const 〇〇ParamTrue = true; const 〇〇ParamFalse = false; const 〇〇ParamIntMin = 0; const 〇〇ParamIntMid = 10; const 〇〇ParamIntMax = 25;
const charCodeSJIS = "Shift_JIS"; const charCodeUtf8 = "UTF-8";
以前関わった改修内容に「××の処理は開始時と終了時にそれぞれUTF-8(BOMなし)形式でログを出力する」みたいなのがあって、普通に文字コード指定する部分に「UTF-8」で直に書いたら、規約に従ってないからとコードレビューで指摘されて差し戻されたんだけど、そもそもこういう規約って何の意味があるの?
従来プログラミング業界においては、やれ「ググる力が重要」だの、やれ「分からないことはググればいい」だのと言われてきたわけだが、もうそろそろこういう妄言は根絶されるべきだ。
そもそも、専門知識の要る分野でそれなりの水準の仕事をしようと思えば、ググって済むようなことはほとんどない。
実際、プログラミング以外のあらゆる分野で「ググればいい」なんて言われることはほぼ無い。その分野の仕事に必要な基礎知識を身につける方が圧倒的にウェイトが高いからだ。
「ググる力」とか言ってるアホは、じゃあためしに俺の手元に、タネンバウムの「コンピュータネットワーク」第6版があったから、これと同等の知識を、コーディング時の調べ物だけで身につけてみてくれないか。
こんな知識は業務で必要ない?そりゃお前がその程度の仕事しかしてないってだけだろ(笑)
ネットのサンプルコードコピペするしか能のないIT土方、コンピュータサイエンスや数学にコンプレックス持ってる低学歴は、さっさとエンジニアやめろ。少なくとも、他人(とくにプログラミング初学者)を自分と同じ水準に貶めるな。
ボイジャー1号の問題が1つのチップに起因することを突き止めたNASAのチームは、コマンドを送ってコンピューターシステムの再起動を試み、根本原因を探ろうとした。
3月1日にコマンドを送ったところ、同月3日になって、飛行データシステムの一部に、解読不能なデータとは違う挙動があることを発見。この信号は、飛行データシステムが正常に機能しているかどうかを判断するために使っていたそれまでの形式ではなかったものの、NASAのディープスペースネットワークで解読することに成功した。
この内容を調べた結果、問題の原因が判明。飛行データシステムのメモリの3%が破損していたことが分かった。システムのメモリの一部を保存していたチップが、同コンピューターのソフトウェアコードの一部も含めて正常に作動していなかった。チップの不具合の原因は不明だが、劣化した可能性や、宇宙空間からのエネルギー粒子が衝突した可能性が考えられるという。
科学データと工学データの解読ができなくなったのは、このチップに保存されていたコードの損失が原因だった。
このチップを修理する手段がなかったことから、同チームはこのチップに保存されていたコードを同システムのメモリの別の場所に移すことにした。全てのコードを保存できる区画は見つけることができなかったが、コードをセクションに分割して、それぞれ飛行データシステムの別々の場所に保存することに成功した。
計画を進行させるためには、こうしたコードのセクションが引き続き全体として機能することなどを確認する調整作業が必要だったとNASAは説明する。飛行データシステムのメモリの別の部分で問題のコードの場所を参照している箇所も更新する必要があった。
ボイジャー1号の工学データのパッケージ化に必要なコードを見極めた技術者は、同システムのメモリの新しい場所を指し示すコードを4月18日に送信。この信号がボイジャー1号に届くまでに約22.5時間、地球に反応が戻ってくるまでにさらに22.5時間を要した。
20日、ボイジャー1号から届いた反応は、コードの修正が成功し、再び解読可能なデータを受信できる状態になったことを表していた。
その瞬間、NASAのジェット推進研究所は拍手と歓声に包まれた。
今後も同システムのソフトウェアの問題が起きた部分を別の場所に移す作業を継続し、数週間後には科学データを受信できる見通し。
「ボイジャーにこれから何が起きるかは分からない。それでも飛行を続けて私たちを驚かせ続けている」「数多くの異常が発生して次第に困難になっている。それでもこれまでのところ、幸運にも復旧できた。ミッションは続く。若いエンジニアがボイジャーチームに加わってその知識を生かし、ミッションを継続させている」。ボイジャーのプロジェクトマネジャー、スザンヌ・ドッド氏はそうコメントしている。
Pythonは全くわからないのですべてを生成AIに丸投げすることにした。頼むぜ、Claude3
んで、出力されたコードをJupyter Notebook上にコピペして実行。
すげぇ・・・ 動いた。テキストファイルに増田の各エントリのURLがモリモリと列挙されていく。
(専門学校という謎の学校もあった。欧米では専門学校といえば芸術系しかメーンだが…まさか劇団員?)
欧米中韓みたいに計算機科学や情報数学の博士や修士どころか、学士号持ちすらいなかった
計算機科学や情報学の学位もないとまともなプログラミングやコードを作るなんて不可能なのに
なんで日本のITや情報学の分野では、専門知識を軽視するんだ?
日本でも他の機械工学や化学と言った分野ではそういった学位をもった人たちがエンジニアになっていると聞きます
行数なんて気にするな
お前の1000000超倍優秀なAnders Hejlsbergもこういうコード書くぞ
51267 ./compiler/checker.ts
28578 ./lib/dom.generated.d.ts
11517 ./compiler/utilities.ts
10747 ./compiler/parser.ts
10274 ./compiler/types.ts
9413 ./lib/webworker.generated.d.ts
7522 ./compiler/factory/nodeFactory.ts
6242 ./compiler/emitter.ts
5955 ./services/completions.ts
5418 ./compiler/program.ts
5147 ./harness/fourslashImpl.ts
5065 ./compiler/transformers/es2015.ts
4931 ./server/editorServices.ts
4337 ./services/utilities.ts
4148 ./compiler/commandLineParser.ts
3971 ./compiler/binder.ts
3899 ./compiler/scanner.ts
3832 ./server/session.ts
3389 ./compiler/moduleNameResolver.ts
3381 ./services/services.ts
3363 ./compiler/transformers/classFields.ts
3284 ./compiler/transformers/generators.ts
3161 ./server/protocol.ts
3114 ./server/project.ts
2799 ./services/findAllReferences.ts
2741 ./compiler/transformers/ts.ts
2628 ./compiler/utilitiesPublic.ts
2579 ./compiler/tsbuildPublic.ts
2533 ./compiler/transformers/esDecorators.ts
2442 ./compiler/transformers/module/module.ts
2240 ./services/refactors/extractSymbol.ts
2049 ./services/codefixes/importFixes.ts
2047 ./compiler/transformers/module/system.ts
2022 ./compiler/sys.ts
1968 ./compiler/transformers/declarations.ts
1941 ./harness/fourslashInterfaceImpl.ts
1917 ./services/types.ts
1866 ./services/textChanges.ts
1807 ./compiler/visitorPublic.ts
1785 ./compiler/factory/utilities.ts
1719 ./compiler/resolutionCache.ts
1655 ./harness/vfsUtil.ts