はてなキーワード: コーディングとは
今日は入院している祖母に会いに行く日だ。入院前はもう呆けて風呂も入らないぐらいひどい状態だったが、入院してからはちゃんとしているらしい。
それはそうと、lispでpython環境を構築する話だが、結局オートコンプリートはうざいし、使う機能といったらautopep8とisortぐらいなので、以下を.emacsに組み込んだ。
(defun python-autopep8-and-isort () "Run autopep8 and isort on current Python buffer." (interactive) (when (eq major-mode 'python-mode) (shell-command-on-region (point-min) (point-max) "autopep8 - | isort -" nil t))) (with-eval-after-load 'python (define-key python-mode-map (kbd "C-c C-r") 'python-autopep8-and-isort))
.emacsファイルには他にも様々な設定を付与したが、ここではコードを書ききれない。
さてそういうわけで週末コーディングが趣味としてちゃんと機能することはわかったが、毎週作るとなると、いくつも何かを作るよりは一つのタフなものを作りたいと思うわけである。
それで、最有力候補は「Elasticsearchのようなものをpythonで実装する」という話がある。
Elasticsearchが徹底された設定外部化によってjsonを多用するのだが、これがあまり柔軟性がないので、コードを直にいじれるようにしたいと思ったためである。
例えば自作の日本語トーカナイザを組み込みたいときElasticsearchプラグインをJavaで書かなければならない。私はJavaが嫌いであり、プラグインを「インストールする」という手順も冗長に感じる。
それよりはpythonで作られた検索システムに、適当なトーカナイズ関数を実装して呼び出すことができればかなり柔軟であるように思うわけである。
難しい点があるとすれば、大規模分散システムへの対応で、金をかけなければそういうシステムをテストすることができない。
できるだけ金をかけずに趣味をやるというのがモットーなので、これではまずいわけである。
まあ何事も困難というものはある。まずは手を動かすことが重要だ。Linus Torvaldsも"Talk is cheap, show me the code"と言っているではないか。
4連休が始まり、専ら散歩とインドカレーを楽しんでいる。「インドカレーのスパイスで頭がおかしくなるのではないか」と思ったことはあったが杞憂だった。
家で過ごすときは、自分の気力のレベルでも作れる程度の簡単なプログラムを書いている。今日作ったのはポモドーロタイマーとTODOリスト管理ツールだ。
何かを作るとしても、自分が使えるようなものでないとやる気が出ないので、便利ツールとして作っている。
作ったものを自分自身で使って試すのは「ドッグフーディング」と呼ぶらしい。ドッグフードが犬にとって健康的で安全であることを示すには実際に食って確かめろ、というわけだ。
次に作ろうと思うのはブログ記事推薦ツールである。廃人日記を読み込み、ふさわしい記事をピックアップするツールである。
1. ブログ記事を収集しその集合をS1とする。廃人日記を収集しそれをS2とする。
2. S1, S2をベクトル化する。S2は時間減衰関数で重み付けして線型結合し、これをTというベクトルとして保存する。
3. Tのベクトルに最も類似するベクトルを数件S1から取得する。
仕事とは違い、趣味のコーディングはルンルン気分だ。期限もなければ収益もない。自分がほしいかどうかだけがモチベーションである。
世間はGWだが、私は昨日・今日・明日は仕事がある。その後は4連休だ。
ところで午前だけ活発に過ごすという習慣を始めてみて、かなり調子がいい。
早寝早起き、21時には寝る。早朝にランニングして冷水シャワーを浴びる。仕事や勉強は午前のうちに終わらせる。この3つをやるようにしている。
長距離走タイプではないので午後は体力がもたない。リラックスのために仕事が終わってからテレビを見ようとするが、テレビの音のストレスにすら耐えられない。
食事は一日2回ぐらいがちょうどいい。朝と夕である。昼に食べると睡魔が襲うことが多い。
リーナス・トーバルズが健康のために部屋でスタンディングデスクとウォーキングマシンを組み合わせて仕事しているという動画を見たことがあるが、部屋にこもりきりのプログラマーという仕事は、そうでもしないと運動する機会が無い。
私も自宅から仕事をしており、一日の歩数が少なすぎて健康に対する危機感を持っている。
それで朝のランニングというわけだが、聞く話によれば、効果を維持したまま運動の時間を減らすには強度を増やす必要があるらしい。だからウォーキングでは時間がかかりすぎてしまうので走るというわけだ。
ランニングの距離は、息が切れてくるタイミングに応じている。私は体力がなく、500mをそれなりの速度で走ればすぐに息が切れるので、そのぐらいで丁度いいと思う。
雨の日はさすがに外へ出ることはないが、そういう日もあるさと思うことにしているし、家の中で筋トレするようなこともない。
体力的に言って、趣味を行うのは休日だけになる。趣味でなにをやるかについてずっと悩み続けてきたわけだが、週末コーディングと銘打って何か作ってみるのも悪くないかもしれない。
「ソースコードに間違いが見つからないのに想定される出力をしない。あるいはソースコードに修正を加えていないのにいきなり想定出力を返すようになった。」
こういう経験がある人はいるはずだ。なぜこれが起こるのか。一つの原因を見つけた。
それは環境変数や設定ファイルに存在する。デプロイ時には設定ファイルを特定の値に修正してから、ということがあるだろう。
開発環境でコーディングする人が、デプロイ時の設定ファイルには関与せず、デプロイの担当者がそれを把握している。
開発者はセキュリティ上の理由でデプロイ時の設定ファイルの内容を見ることができない。
この場合、設定ファイルの内容が間違っていても、開発者が原因が正しく特定できないケースがあるのである。
対処方法は以下である。まず事前にやっているであろう対処は以下である。
追記:
思ったんだよね俺、コンピュータ・サイエンスにプログラミングは含まれないとか言うアホを見てさ
いや、アルゴリズムは数学であり、それを設計するプログラミングは明らかにコンピュータ・サイエンスの一部だろと思うわけだが、なぜこいつらは「プログラミングはコンピュータ・サイエンスではない!」と言いたがるか
企業で働くキラキラWebプログラマーがプログラミングないしはコーディングをやっているのをみて「アイツラと一緒になりたくない」と自称インテリは言う
「そうだ、サイエンスにはちゃんと定義があるはずだ、その定義で奴らと俺らのボーダーを引こう」と考えて、自称インテリはコンピュータ・サイエンスにプログラミングを含めないのである
当然、日本だろうと海外だろうと自称インテリは存在するので、「コンピュータ・サイエンスにプログラミングは含まれない」と言うと、負け犬の自称サイエンティストが共感のイイネを押すだろう
「俺達はサイエンティスト、あなたとは違うんです」というわけである
はい、JavaScriptによるコーディングはコンピュータサイエンスの一部と見なすことができます。コンピュータサイエンスは、情報とその処理に関する学問であり、プログラミングはその重要な要素です。JavaScriptは、ウェブページを動的にするための主要な言語の1つであり、ウェブ開発の分野で広く使用されています。したがって、JavaScriptを学び、それを使用してコードを書くことは、コンピュータサイエンスの実践的な応用の一部と言えます。しかし、コンピュータサイエンスはプログラミングだけではなく、アルゴリズム、データ構造、ネットワーク、データベース、人工知能など、より広範なトピックをカバーしています。それぞれが特定のプログラミング言語やツールを使用して探求されることがあります。JavaScriptはその一部であり、特定の問題を解決するためのツールとして使用されます。それはコンピュータサイエンスの一部であり、その全体ではありません。それでも、JavaScriptをマスターすることは、コンピュータサイエンスの重要なスキルを習得するための素晴らしいステップです。それはあなたが複雑な問題を解決するためのロジックとアルゴリズムを理解するのを助け、あなたの思考を開発するのを助けます。それはまた、あなたがウェブ開発の世界に足を踏み入れ、あなた自身のウェブサイトやアプリケーションを作成するのを助けます。だから、はい、JavaScriptによるコーディングは確かにコンピュータサイエンスの一部です!
従来プログラミング業界においては、やれ「ググる力が重要」だの、やれ「分からないことはググればいい」だのと言われてきたわけだが、もうそろそろこういう妄言は根絶されるべきだ。
そもそも、専門知識の要る分野でそれなりの水準の仕事をしようと思えば、ググって済むようなことはほとんどない。
実際、プログラミング以外のあらゆる分野で「ググればいい」なんて言われることはほぼ無い。その分野の仕事に必要な基礎知識を身につける方が圧倒的にウェイトが高いからだ。
「ググる力」とか言ってるアホは、じゃあためしに俺の手元に、タネンバウムの「コンピュータネットワーク」第6版があったから、これと同等の知識を、コーディング時の調べ物だけで身につけてみてくれないか。
こんな知識は業務で必要ない?そりゃお前がその程度の仕事しかしてないってだけだろ(笑)
ネットのサンプルコードコピペするしか能のないIT土方、コンピュータサイエンスや数学にコンプレックス持ってる低学歴は、さっさとエンジニアやめろ。少なくとも、他人(とくにプログラミング初学者)を自分と同じ水準に貶めるな。
まず挙げられるのが、何でもかんでも言わなきゃやらない指示待ち無能への揶揄である、ということ
オブラートを剥ぐと、その程度のこと自力でやれカスが、であるがそんなこと言うと社会人として終わってるのでオブラートに包むのである
つぎにそこまでは無能ではないが初心者へアドバイスとして述べられるパターン
こちらは単純、元増田にも触れられてるが専門知識で調べても出てこない部分はどうしても出てきてしまう
ただしここで重要になるのは直面したその問題が、調べてできることなのか調べてもどうしようもないことなのか、の見当がすばやくつけられるかどうかである
このセンスを鍛えるのに欠かせないのがいわゆる「ググる力」であるのでやってみろと言われるわけなのだ
その最新にある程度追従していかなければならないのは宿命となっている
優秀でなくともある程度マシな人材に育てるにはその感度を鍛えてやる必要がある
ここで重要になるのは「自分から調べる」と言う行為は当たり前であり苦にならないような状態にする必要があると言うこと
もちろん当然であるがググるは比喩であり本当にググるだけでなく書籍や勉強会など必要なものを必要なだけ自分で手に入れる能力である
つらつら思いついたことはこんなところかなあ
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万くらい
従来プログラミング業界においては、やれ「ググる力が重要」だの、やれ「分からないことはググればいい」だのと言われてきたわけだが、もうそろそろこういう妄言は根絶されるべきだ。
そもそも、専門知識の要る分野でそれなりの水準の仕事をしようと思えば、ググって済むようなことはほとんどない。
実際、プログラミング以外のあらゆる分野で「ググればいい」なんて言われることはほぼ無い。その分野の仕事に必要な基礎知識を身につける方が圧倒的にウェイトが高いからだ。
「ググる力」とか言ってるアホは、じゃあためしに俺の手元に、タネンバウムの「コンピュータネットワーク」第6版があったから、これと同等の知識を、コーディング時の調べ物だけで身につけてみてくれないか。
こんな知識は業務で必要ない?そりゃお前がその程度の仕事しかしてないってだけだろ(笑)
ネットのサンプルコードコピペするしか能のないIT土方、コンピュータサイエンスや数学にコンプレックス持ってる低学歴は、さっさとエンジニアやめろ。少なくとも、他人(とくにプログラミング初学者)を自分と同じ水準に貶めるな。
おまえプログラマーの人が汗水垂らして必死にコーディングしたはてな匿名ダイアリーをちゃんとおはてな匿名ダイアリーと呼んでるんだろうな?
このAI説明が正しいならデバッガーが不要と言ってる、って話はかなり違うよな。
ここで書かれてるレベルのことは事前の取り決め等で発生を未然に防げることでしかないので、つまりブルシット・ジョブの人が言いたいのは
発生が十分に予想される問題に対して対策可能であるにも関わらず何の対策もしないことによって不要な仕事が発生している、という話でしかなくデバッガーが不要という話では全くないよな。
スパゲッティコード: 構造が複雑で理解しにくいコードは、バグの発見や修正が困難となり、多くの時間を費やすことになります。
コメントアウトされたセクション: 使用されなくなったコードが適切に削除されずに残っている場合、コード全体が読み解きにくくなり、メンテナンス性が低下します。
一貫性のないコーディングスタイル: チーム内でコーディング規約が統一されていない場合、コードの可読性と保守性が著しく低下します。
人類学者であるデヴィッド・グレーバー氏は、現代社会において多くの仕事が無意味であり、社会にとって価値を生み出していないと主張しています。2018年に出版された著書『ブルシット・ジョブ:クソどうでもいい仕事の理論』の中で、彼はこのような「ブルシット・ジョブ」の存在について論じています。
グレーバー氏は、以下の特徴を持つ仕事が「ブルシット・ジョブ」であると提案しています。
企業法務、テレマーケティング、広報、一部の管理職などが、「ブルシット・ジョブ」に該当する可能性があります。これらの職業は、必ずしも社会に貢献していないと断言することはできませんが、その価値が明確に見えにくい場合が多いと言えます。
粗雑なコードを修正するプログラマーは、「尻拭い」のカテゴリーに分類される可能性があり、以下のような問題に直面しがちです。
このような状況下でプログラマーは、本来創造的な活動であるはずの新しい価値を生み出す作業ではなく、過去の過ちの修正に追われることになります。これは、ソフトウェア開発プロセス全体に大きな問題があることを示唆しています。
アジャイルって、調べるほどメンバー全員が経験豊富なベテランという前提で書かれてるだろ、としか思えない
実際のJTCの現場で集まるのは
「この業界初めてです」「アジャイル初めてです」「テストしかやってなくてコーディング経験ありません」「英語わかりません」
みたいな人材ばかり
「できたものからどんどんレビューして実装していこう」と言っても
結局レビュアーが全体像を理解してないから「よくわからないのでもっと具体的に書いて」の指摘で作業が増え遅延するばかり
現場からすれば、作業に区切りが無くゴールもわからないまま全力疾走し続けろ
さらに怖いのはXDDPなる「メンバーが未経験者でもアジャイルが成功する」という
怪しい理論を唱えている界隈があるらしい
調べても成功例は出てこなかった