
7,746 文字

ソフトウェアエンジニアの日付の表記方法は私たちとは違うようですね。これだと6月になるはずです。「ちょっと待って、何か過去のものを読んでいるのか…いや、未来のことが書かれているのか?」いいえ、彼らの日付の表記方法が違うだけです。
私がよく考えることがあります。他の職業もこんな感じなのかと思わずにいられないのです。ソフトウェアエンジニアであることは大変です。最初からいくつかのプログラミング言語やツールを知っている必要があります。でもそれだけでは不十分です。企業は、彼らが使っている特定のフレームワーク、例えばRailsやDjangoやLaravelなど、何であれ知っていることを期待しています。
CSSも必要です。一生かけて学んでも、なぜレイアウトが崩れるのか分からないでしょう。でも、なんとかやり過ごせる程度に知っていれば何とかなります。
実はこれについて少し意見を言いたいと思っています。ソフトウェアエンジニアリングを他の職業と比較するのは常に良くないアイデアです。その理由は、例えば電気工学を例に取ると、イーサネットのケーブルを渡されて、接続したい場所からそれを引っ張ってくるという作業があります。そこから壁に穴を開けて接続を設定し、必要なことをして、小さなボックスを設置して、それを柱に固定し、すべての配線が正しいことを確認する必要があります。
ソフトウェアエンジニアリングの世界では、彼らはあなたにワイヤーを与えることができません。あなたはワイヤーとは何かを頭の中で形成する方法を学ばなければなりません。あなたのシワだらけの脳が、ワイヤーとは何かを理解できるかどうかを決定するのです。はっきりとしたアクセスポイントはなく、あちこちに散らばった何百、何千ものファイルの中にあるデータの断片がどのように操作されているかを理解する必要があります。
そして、CSSについては、実際にはかなり良くなっています。現在Luaで自分のレイアウトを書いている私としては、DOMが恋しいです。皆さんは本当に恵まれています。CSSとDOMについて不満を言う人の多さ…あなたたちは負け犬です。DOMとCSSはレイアウトを非常に簡単にしてくれます。少しTailwindを振りかけて、コード全体に5,000のクラスを配置すれば、皆さんは毎日インターネット上でそれがいかに難しいかについて管理していますが、黙ってください。DOMは魔法のようなソフトウェアです。タグを閉じ忘れても心配ありません、buddy、私がやっておきますよ。何を不平を言っているのですか?私の気持ちをお伝えしておきます。
JavaScriptを扱わないといけないことはまずないでしょう。実は、これについてもう少し言いたいことがあります。ウェブ上での基本的なソフトウェアエンジニアリングをするために以前にやっていたことを知っていますか?ClearFixというものがありました。ClearFixを見たことがない人は、見るべきです。これは私が積極的に使っていたものです。おそらく私のアカウントにサインインすれば、このボタンに「いいね」がついているのを見ることができるでしょう。
それは過ぎ去った時代のものです。ClearFixでは、content:””、after、この小さな空白スペース、visibility、display、height:0、clearといったことをやります。これにより、奇妙なフロート問題をクリアすることができます。古い時代には、画面の中央にこのような3つのパネルを配置したい場合、floatを使う必要がありました。そして、ここに何かを置きたい場合、この魔法のようなコンテナのclear fixingを行わない限り、それはここに表示されるだけでした。そしていくつかのブラウザでは動作が異なり、非常に面倒でした。
今の生活と快適さについて考えるとき、UIを開発するためのプラットフォームとして素晴らしいと思います。正直言って、それは簡単です。物事を成し遂げるのがとても簡単な環境で、フレームワークがこれほど使われていることに常に驚いています。今はずっとシンプルになっています。
あるいはJavaScriptを扱わないわけにはいかないでしょう。幸運にも、あなたが維持しているレガシーアプリに時々jQueryを少し振りかけるだけで済むかもしれませんが、物事は変わります。
JavaScriptを使わない職業もたくさんありますよ。JavaScriptが避けられないと思う必要はありません。しかし、実際にはそうなのです。サイドプロジェクトをやっていると、時々JavaScriptが少し交差することがあります。これは少し悲しいことです。これが現実です。人生へようこそ。
ある時点で、Facebookの人々がReactを構築しました。数万人のエンジニアを抱える会社で、昔からフロントエンドとバックエンドという2つの専門分野があったことが判明しました。プログラミングの集合知は集合的にReactがソフトウェアを構築する正しい方法だと決定しました。しかし同時に、企業はより多くのエンジニアを雇う余裕がないと判断しました。そして見よ、フルスタックエンジニアが誕生し、あなたはそれになるのです。Reactを学び、すでに知っているバックエンドテクノロジーの上にRESTAPIを構築することになります。
このフルスタックビジネスについては常に興味があります。フルスタックは企業がより多くのエンジニアを雇う余裕がないという決断から生まれたものではないと思います。一般的に言えば、それははるかに便利なだけです。フルスタックは会社によって異なる意味を持つことは理解しています。
バックエンドに触れることができず、フロントエンドだけを行う会社で働いたことがあれば、それは本当に迷惑なことです。フルスタックについて不満を言う人は、代替案を理解していないように感じます。代替案は最悪です。チケットを開く、はい、チケットを開く、ハハ、そして待ちます。バックエンドの神々が私を祝福してくれることを願います。私の機能を持つ可能性で私を祝福してくれることを願います。
書いたチケットが完全ではなかったことが判明します。書いた方法ではうまくいかなかったことが判明します。今や図面に戻らなければなりません。今あなたはPMと話し、上司と話し、これらのことが何も機能していない理由は、あなたがチケットを開いたからだと言っています。チケットは下手に書かれていて、今では何もしない3週間に直面しています。そして、あなたはそれを感じています。
正直なところ、フルスタック的な方が良いです。多くのフルスタックの役割がフロントエンドエンジニアリングの役割と同じ給料を支払っているのを見てきました。あなたはそれを感じましたね。
私は誰か他の人の後ろに座って待つことが好きではありません。自分自身でそれを行う自由と責任を持つことは本当に素晴らしいと思います。だからこそ、スタートアップで働くことは本当に素晴らしいと常に思います。多くの人はスタートアップでどれだけ学ぶかを理解していません。スタートアップはあなたにそのような露出を与え、あなたは単に異なる帽子をかぶる必要があります。
スタートアップと言うとき、初期段階のスタートアップを意味します。Amazonのような会社を意味するわけではありません。「私たちはスタートアップです。世界最大のスタートアップです。皆さん、週60時間働きに来てください。そして、2年後まであなたに株を与えませんが、その前にあなたを解雇するか辞めさせようとしますが、心配しないでください、私たちはスタートアップです。」というようなことではありません。
また、Reactを擁護するために、Reactは実際に立ち上げられたときには大部分が嫌われていましたが、私がそれを使った瞬間、「ああ、これはjQueryの世界から来た私にとってはるかに便利だ」と思いました。JavaScriptの中にDOMのように見えるものを書いて、それが画面に出力される能力は、私にとって非常に素晴らしいものでした。JSXは素晴らしいと思います。他の環境で働いたことがあれば、UIにDOMを書く能力について素晴らしいことがたくさんあることを理解すると思います。それは単に事実ですが、時には少し嫌なこともあります。
それだけでは終わりません。型が必要です。TypeScriptを追加してください。これは間違いなく非常にウェブ視点の文書ですが、はい、それは非常に真実です。そして、これらの型は、悪いニュースですが、ニュースフラッシュ、常に型がありました。それは単にリンティングです。型ではありません。それは決して型ではありませんでした。単にリントです。あなたが「わからない」と言えるような型システムはありません。
本当にReactで状態を管理するつもりですか?Reduxを追加しましょう。ああ、この記事は私の痛みを伴う公園の散歩のように書かれています。その両方を回避したことで賢いと感じていますか?Webpack、ESBuild、Rollup、Prettier、ESLintの設定を楽しんでください。あの「No」と言うガイフのgifはどれですか?それが私がノービルドを選ぶ理由です。
あなたは「でも、私はこれまでやってきたやり方でやり続けることができます。それはうまくいっていました。Reactは必要ありません。」と言います。もちろんできます。あなたは速く動き、お金を燃やすスタートアップで、どこでも行われているやり方から逸脱することができます。新入社員にReactだけを聞いたことがある人々にサーバーサイドレンダリングの喜びを教えるために利用できると上司に伝えてください。
この記事が痛みと苦痛の中で書かれたことを知ってほしいです。この哀れな男性は非常に苦痛の瞬間を経験し、それを紙に書くことにしました。
そして、実はまだ始まったばかりです。恐竜が地球を歩いていた頃、システム管理者と呼ばれる職業の種類がありました。彼らの仕事全体は、あなたのバックエンドがうまく機能していることを確認することでした。彼らはインフラストラクチャの変更、データベースシステムのアップグレード、システムのアップグレード、デーモンの実行維持、再起動などを処理しました。
そして、DevOpsが来ました。現金不足の会社がどこかで、これらすべてが今エンジニアによって処理されると決定し、全員が同意しました。Dockerを学ぶ必要があります。あなたのアプリ全体が単一の静的にリンクされたバイナリで、Dockerを必要としないとしても、Anbleを学び、systemdに渡す必要のあるオプションを理解するのを楽しんでください。
それは真実ですが、また、ユーザーがいないスタートアップにいる場合、これらの多くのサーバーレスの利用可能なものの1つを使用することもできます。SSTを使用することができ、サーバーレス企業を使用する必要もなく、Amazon上や他のクラウドプロバイダー上で直接起動して、それで実行することができます。
すべてのものを持つ必要はなく、それほど心配する必要はありません。私たちは本当に奇妙な世界で働いています。難しいことやら企業が苦労しなければならないことすべてに対して、より多くのお金を払い、それを心配する必要があるポイントに達する前にそれを行うこともできます。
多くの場合、ヨットの問題と日常の問題を混同していると思います。スタートアップで50万ドルの資金がある場合、私たちのすべてのサービスを起動する方法を学ぶと言う人を雇う必要はおそらくないでしょう。おそらくそれはあなたのお金を燃やす正しい方法ではないかもしれません。おそらくあなたたちはそれについて気にしていないだけかもしれません。
Daxは素晴らしい仕事をしました。openjs2は名曲です。Daxはそれについて素晴らしい仕事をしました。
まだ半分も終わっていません。AWSを学ぶ必要があります。農民のようにGUIを使用してインフラストラクチャを設定することはありませんので、TerraformとPalumiまたは何でも学ぶ必要があります。
良い仕事をしました。あなたはマネージャーに昇進します。ところで、それは私たちのソフトウェアエンジニアリングの奇妙な部分でもあります。十分な人々がこれについて話していないと思います。または、多分彼らは話していますが、私は知らないだけかもしれません。なぜ私たちは最高のエンジニアを取り、彼らをマネージャーにするのでしょうか?それは何についてですか?
どうしてそれが通常の道なのでしょうか?あなたは自分の仕事が上手で、プログラミングを止めてマネージャーになることになります。「プログラミングと物事の設定と人々との協力と物事をうまく機能させることに非常に優れていることが判明したあなた、プログラミングをやめて管理に行ってもらいます。」それは奇妙です。それは私たちが人々にする奇妙な道です。
しかし、おそらく別の側面から考えると、何かがあるかもしれません。聞いてください。必死にマネージャーになりたい人々は、彼らが社会病質者かマゾヒストのどちらかであると確信しています。それだけです。他に何が考えられるか分かりません。なぜなら、それは単に意味がないからです。そして、彼らがあなたのマネージャーになることを本当に望んでいますか?わかりません。わかりませんが、それは大丈夫です。それは最終的な至福です。
ここにあなたがする必要があるいくつかのことがあります。締め切りを推定し、チームメイトにタスクを割り当て、タスクを指定し、年次レビューに参加し、製品会議中に貴重なフィードバックを提供します。この時点までにあなたの会社が従業員数を4倍に増やしていることを願っています。そうでなければ、上記のすべてに加えて管理を行うことになります。
そしていつでも悪化する可能性があります。数日前、秘密の会社のエンジニアポジションについて、リクルーターが私に連絡してきました。彼らはRails、Hotwire、そして信じられないほどネイティブモバイル開発におけるシニアレベルのスキルを必要とすると決定しました。なぜカーネルとコンパイラ開発もそこに追加しないのでしょうか?
本当にRailsとHotwireとネイティブモバイルアプリ開発で真にシニアであることは、非常に難しいです。それは非常に印象的でしょう。ちなみに、HotwireはRails用のHTMXです。Laravelバージョンは何ですか?Livewireですね。そうです。ホットワイヤ、ライブワイヤ、HTMXはすべて同じようなものです。
ソフトウェアはより複雑になります。この複雑さにはすべて理由があります。しかし、専門化はどうなったのでしょうか?家が建てられるとき、多くの人々が関わっています。建築家、土木技師、配管工、電気技師、れんが職人、インテリアデザイナー、屋根葺き職人、測量士、舗装業者など。これらすべてを行うことができる単一の人物や単一の会社を必要としません。
再び悪いアナロジーです。これは、複雑な単一目的のアプリをさまざまなプラットフォーム用に構築するマーケティング会社で働いている場合には理にかなっていると思います。そうすれば、この人が来て、モバイルアプリを設定して、成功できるようにします。すべてを適切に配置し、すべてがとても素敵に見え、基盤エンジニア、エージェンシーを持ち、次のプロジェクトに移り、再びそれを行い、次のプロジェクトに移り、再びそれを行います。すべての詳細を学び、すべてを設定し、皆さんが…
プログラミングでは基礎レイヤーを本当に持つことができるでしょうか?それが可能かどうかさえ確信が持てません。なぜなら、この人がプロジェクトからプロジェクトに手動ですべてを設定している場合、ここで何が起こっているのかを自動化できないかと尋ねなければならないでしょう。なぜこれが起こっているのか、なぜこれをしているのか、これは実行されるべきコマンドのように思えます。
そして、住宅市場などの場合、フレーミングが上がると電気技師が入ってきますが、電気技師はフレーミングに対して直交しています。ソフトウェアエンジニアとして開発する機能で、コードベースに対して直交しているものはありません。ちなみに、エンジニアは「直交する」という言葉を使うのが大好きですが、誰かがReactの使用を開始し、Reduxや望むライブラリを導入し始め、あらゆる種類のものを投げ込み始め、すべてがどのように進むべきかについて彼らの心の中で正確な設計を持って、この全体のアーキテクチャを構築するようなものではありません。あなたは単に入ってきて「ああ、私は電気技師です。あなたがやったことの残りの部分とは完全に別のことをする必要があります」とは言えません。
そのように存在する世界はありません。電気技師が来て電気技師のことをすることはできません。配管工が来て配管工のことをすることはできません。それはソフトウェアエンジニアリングの世界では可能性がありません。フロントエンドとバックエンドですらそうではありません。なぜなら、バックエンドで行われる決定はフロントエンドに影響し、フロントエンドで行われる決定はバックエンドに影響を与えようとするからです。それは単に一つの巨獣であり、それが私たちがマイクロサービスを発明した理由です。巨獣を避けるためですが、巨獣はまだ巨獣です。
数回のプロンプトで全体のアプリを構築できる未来はそれほど悪くないかもしれません。しかし、その結論は私を傷つけています。正直に言って嘘をつくつもりはありません。最近、特にプロンプトコーディングでたくさんのバイブコーディングを行った者として、プロンプト処理を受けたコードベースについて一つ言えることは、それは皮肉のように見えるということです。
人々はしばしばこれらのAIをジュニア開発者のように例えますが、同時に彼らは巨大なPhD候補者のようだとも言います。ちょっと考えてみてください。彼らはこれらすべてのものを一緒に置き、これが起こっていることだと言います。これが私が見るものです。ジュニアエンジニアは少なくともアーキテクチャの試みを考え出すでしょう。その試みは良くないかもしれませんが、それは試みです。プロンプトにはアーキテクチャがありません。スプーンはありません。それは以前に行われた他の何かに関係なく、それが行われるべき場所で、行われる必要があることを行います。そして、それは感情的に傷つきます。
回復中の人、以前のプロンプト回復者として、あなたに伝えておきますが、それは本当に本当に悪く傷つきます。一方で、再度言いますが、カーソルタブは非常に良いです。非常に良いです。名前はプライモジェンです。


コメント