はてなキーワード: バックエンドとは
最初の数年はWindowsプログラミング、そのうちWebプログラミングにうつり、必要があればミドルウェア等の修正もしていました。
その中で特に印象深いのは、当時存在していなかったDBの接続ライブラリを制作した経験です。
これは私にとって未知の挑戦であり、それを克服することで得られた達成感や、新しい技術の習得が自分の世界を広げてくれる感覚は何物にも代えがたいものでした。
また、自分の会社を立ち上げ、一人でプロジェクトを進めるのもとても楽しかったです。こちらもやったことないことをやるということで、とても良い経験をしたと感じています。
それとは別に、テックリードとして2年、プレイングマネージャーとして半年の経験もありますが、正直マネージメントの世界は自分には合わないと感じました。
そもそも人にお願いすることが苦手であり、自分でやってしまおう、ってなってしまうのです。
基本的に一人で作業するのが好きで、最近の「みんなで開発していきましょう!」みたいなのには辟易しています。
例えば、コードレビューの際にはカッコの位置や変数名など、些細な点での指摘が多く、これには正直疲れてしまっています。
私はコーディングにおいて「完全な正解」は存在しないと信じており、そのため目的の達成(仕様を満たすこと)において多少のバリエーションがあっても良いと考えています。
過去には車でドライブすることを趣味として楽しんでいましたが、最近はその機会も減ってしまいました。
技術的にはWeb系のバックエンドや中規模のインフラ構築が得意分野です。
インフラは本業の詳しい人には敵わないけど、ほどほどの規模なら構築/運用できます。
若い世代の技術者がどんどんと頭角を現し、狭い分野では差を感じることが増えてきました。(その分視野は狭いな、と感じますが)
新しいブックマークサービスを作成するには、以下のステップを考慮することが重要です。
技術的なスキル、リソース、ユーザーのニーズに基づいて、最適な方法を選択してください。
まず最初に、どのような独自性や付加価値を提供するかについて考えましょう。
はてなブックマークと同様の機能を提供するだけでなく、ユーザーにとって便利で魅力的な要素を見つけましょう。
例えば、新しい機能の追加、デザインの工夫、ユーザーインターフェースの改善などが考えられます。
特定のユーザー層に焦点を当てることで、より効果的な機能やデザインを考案できます。
基本的なブックマーク機能に加えて、タグ付け、カテゴリ分け、ソーシャルシェア、検索機能、ユーザープロフィールなどを考えることができます。
サービスを実際に開発するためのプラットフォームや技術スタックを選択しましょう。
ウェブアプリケーションとして開発する場合、フロントエンド(ユーザーインターフェース)とバックエンド(データ処理)の両方を構築する必要があります。
ユーザーが保存したブックマークデータを管理するデータベースと、ユーザーの要求に応じてデータを提供するサーバーを設計・実装します。
ユーザーアカウントの作成、ログイン、パスワードのセキュリティなどの要素を実装します。
開発中および完成後に、バグを見つけて修正し、機能が正常に動作することを確認します。
完成したアプリケーションをインターネット上に公開するために、適切なホスティングサービスを選択します。
ユーザーのフィードバックを収集し、サービスを改善していくプロセスを継続的に行います。
サービスの宣伝、広告、ソーシャルメディアでの露出などを通じて、ユーザーベースを成長させていきます。
ユーザーデータの取り扱いに関する法的要件とプライバシー保護について考慮しましょう。
開発にはプログラミング、デザイン、データベース管理などのスキルが必要です。
必要に応じてプロフェッショナルなアドバイスやチームの協力を得ることも検討してください。
違法な投稿(名誉棄損とか)でトラブルが発生するから、これの対処で仕事が発生する。
要するに面倒くさいということだね。
個人開発してますとかバリバリ一人法人CEOみたいなつよつよエンジニアって出身がソフトウェアエンジニアかバックエンドエンジニアであることが多い。
じゃあそういう人がどうやってフロントエンドを学んだかって、「入門してみた」とかで2ヶ月位で身につけてる。
逆にフロント出身の人が「AWS入門してみた」とかで2ヶ月でマスターしてる例はあんまりない(たまにある)
なのでそういうのを見てるとフロントエンドは片手間で身につけるものという印象が与えられてしまってる
もちろんめちゃくちゃ凝ったデザインのものは別だけど、Wordpressのテンプレートと遜色ないようなものはなんか片手間で作られてるような印象。
最近は最前線から離れててあんまり追えてないけど、現役のときの2008年くらいから10年くらいの間で、仕事のやり方や設計の考え方が大きく変わったIT技術要素で、いまぱっと思い浮かぶのはこんな感じかな。
分野にもよるし、調査して試作した結果自分の業務には採用しなかった技術とかもある。流行ると思って使えるようになったけど流行らなかった技術を入れるとたぶんもっとある。
あと、新機種が出てOSが新しくなったり、ミドルウェアの新バージョン対応、テスト手法の進化もけっこうカロリー高いけどここには書いてない。
「自分はフロントエンド専門でReactしかやらない」みたいに分野を絞れば大分減るけど、その技術が何年持つかわからないから普通はリスクヘッジのために他の技術も齧らざるを得ないし、バックエンドとかの人と議論するのに結局他分野の知識もそれなりに必要。
NoSQL(memcached, Redis, Cassandra)
クラウドアーキテクチャ、XaaS(AWS, Google Cloud, MicrosoftAzure)
CI/CD(Travis CI, CircleCI, Jenkins)
トランスパイラ(Browserify, webpack, CoffeeScript, TypeScript)
型システム(Rust, TypeScript, Haskell)
オーケストレーション(Ansible, Kubernetes, Terraform)
機械学習(Python, MATLAB, 線形代数等数学知識)
SPA(React, AngularJS, Ember.js, Vue.js)
3Dゲームエンジン(Unreal Engine無償化、Unity5)の他分野への普及
GraphQL
機械学習ライブラリ(Tensorflow, PyTorch, Chainer)
Jupyter Notebook
NFT
完全に独立した技術スタックになりつつある、しかし出来る人間が非常に少なく胡散臭い優秀なフリをしたエンジニアが数多くいるように見える。
さらにとっつきやすさから新人も参入しやすくカオスな雰囲気を感じる、自分の周囲を見た感じでも技術スキルは低めの傾向が見える。
トンカチを持ってそれを振りかざすことを目的にしちゃってるような人間が多いように見えるし、そうでない人間はそもそも技術へのキャッチアップが低い傾向にある。
昔からそんなに変化がない、AWSやGCPの運用や設計もやることがある。
WEBアプリケーションのフレームワークが無いと仕事できない、とにかくDBが大事でプログラミング能力はフレームワークの使い方に寄っている。
DBが大事なのでプログラミングスクールだろうが独学だろうが、勘所を掴むのは困難で実務ありきで成長する必要がある。
大量のトラフィックを扱う人は分散のための設計なども心得ているものの、大抵は場当たり的な対処しかしていない。
IaaS登場以前は空気が乾燥した寒い部屋で黒い画面相手に定形作業をしていることが多かった。
昨今SREと呼ばれるようになり地位が向上しつつあるが、業務内容も広がってきておりIaaSの設計能力が大きく問われるようになってきた。
WEBフロントエンドほどではないが、仮想OS、IaaS、コンテナなどそこそこのテンポで技術が進歩している。
この他にも過去の名残だったりIaaSを触る都合、社内SE的な仕事もしたりする、相変わらず深夜対応もある、辛い…
年1回、必ず新機能が出てくるので定期的に技術をキャッチアップ出来る必要がある。
国内に限定すると技術スキルは高めの人が多い傾向が見えるが人間としては癖の強い人が多い傾向も見える。
(ちなみに少ない観測範囲だが海外勢は微妙な技術レベルの人間が多かった。)
給与レンジはピンのほうはそんなに高くないがキリのほうはそこまで低くない。
ここ20年ぐらいで台頭してきたITエンジニアとは別種の雰囲気を持つ印象、詳しいことは分からない。
技術力はあまり重視されない、コミュニケーション能力や簿記などの会計知識が重要視される。
給料は低め。
---
WEBフロント、バックエンド、SRE、アプリあたりは幾つか交差する領域がある。
弊社、お世辞にも給与が良いとは言えないんだけど、働きがいはあると思うのよ。
採用のハードルが低くて、Webエンジニアとしてのやる気さえ何かしらの形で見せてもらえれば、経歴は問わない。会社のバリューへのマッチ度とか一切見てない。
こんな感じの会社だけど、人が見つからないんだよね。。。高望みしすぎかな?仕事探しが上手くいかないはてなー見てると、弊社に一度応募してみたら?と思うんだけど。
[B! ネット] 攻略ツールをGameWithに模倣されたお話|oliver|note
GPLを理解していないコメントがあるのは仕方ないとしても、これにスターが大量に集まるのはバカの見本市すぎるだろう。
模倣元のツールはMIT Licenseで公開されていたらしいので、状況は概ね3パターンに整理できる。
パターン1はどんなオープンソースライセンスでも問題にならない。
パターン2はMIT Licenseでもライセンス違反なのでGPLを選ぶ必要がない。
(MIT Licenseは著作権者とライセンスの表示が必須で、少なくともソースコード上に「Auther: ○○」「License: MIT」と記載する必要がある)
パターン3はGPLでは問題にならない。FSFのFAQより引用する。
Q. ある会社がGPLが適用されたプログラムの改変バージョンをウェブサイトで動かしています。GPLはかれらは改変したソースコードを配布しなければならないと言ってますか?
A. GPLは誰もが改変したバージョンを作成し、他に配布することなく、使うことを許しています。この会社が行っているのはこの特別な場合です。ですから、この会社が改変したソースコードをリリースする必要はありません。
というロジックになっている。結局、どのパターンでもGPLを選んだところで問題は解決できない。
また、次のコメントも間違っている。
CC-BY-NCの定める「営利目的」はソフトウェアを売買したり利用料を得たりするような行為のことで、アフィリエイトで広告収入を得る行為は含まれないから抑止にならない。
この中でまともなこと言っているのはこの人だけである。
GPLv3含め通常のOSSライセンスではバックエンド利用は再配布に該当しない(お前らはApacheやFFmpegのソース配布してるか?)。XaaS提供を縛りたい場合はv3フォークのAffero GPLv3が必要。
ただ、模倣先のツールはクライアントサイドアプリケーションらしい(≒パターン3ではない)のでAGPLv3を選ぶ必要はあまりないだろう。内容は的確だが、ちょっと惜しい。
-----
ここ最近感じていること:コメントの質が云々というより、スターを付ける人の質が悪いので一向に改善されない問題のほうが根深いなあ。
自分は、論文を書いているが、確かに英語の文章の文法とか自然な言い回しとか勉強になる。関連研究とかもAIは強いと思う。
おそらく、論文のPDF全体を捉えることができないんだろう、トークン数の制約ってやつかな。
chatPDFとかも出てるけど、厳しい感じ。
おそらく、論文を読んだり、理解したり、査読したりってのはそのうちできるから、論文は書けるようになるんだろう。
はよ来て欲しい。
SNSは面白いが、怖いなあと思っている。最近は、女性は全部ブロックしている。
しかし、AI生成のSNSなら、暴言吐き放題、セクハラパワハラ脅迫し放題だろう。それなら昔の2chみたいで面白いじゃん。
数学が弱いという話があるが、アルゴリズムができることを考えると多分できるようになると思う。
そのレベルではなく、「数学の定理を証明する、数学の未知の定理を予想して証明する」といったような、本気の数学者レベルでの発展が欲しい。
数学をAIが発展させるようになれば、相当人間の知の領域が拡大する
AIvtuberとか流行ってるし、最近のメールはAIに考えてもらっているが。
これを、リアルタイムの会話で、ギャルゲーの選択肢形式みたいにしてほしい。
自分は、会話がとても下手くそなので、ミスがない普通の人みたいな会話をさせてほしい。
できれば、口を開かなくても、腕時計なりで選択肢を選んで、自然にAIが発話してくれる感じにしてほしい。
とにかく、コミュニケーションのミスがない様な感じが欲しい。他人と会話するの怖いし。
AIなら、セクハラとかパワハラとかしないだろうし。AIの選択肢選んだなら、責任を多少はAIになすりつけられるだろうし。
弁護士や弁理士、税理士みたいなバックエンド系は、本当にAIにしてほしい。
AI弁護士とか出てるらしいが、本当に使えるレベルになって、スタンダードになってほしい。
そもそも、司法とかの判決がIT系とか特に異常だったりで、これに付き合わされるのは厳しい。
もうすでに、化学とかでは一部実験して実験結果出すとかはあるらしいが。
もう少し、色々できてほしい。