はてなキーワード: railsとは
ChatGPT が脚光を浴びて AI の台頭が本格的になってきている。
1年というスパンでは変わらないが5年後の世界は様変わりしてそうだ。
ChatGPT は素晴らしい。Google Home っぽい LP を作らせてみたらものの5分程度のやり取りでできてしまった。
これからのプロダクトマネージャー・プロダクトオーナー(PO)がこれを活用していくのは間違いない。
自分がPOならこれを使って自分でできることがないかを探ってみるだろう。
とはいえ Rails のアプリで作る複雑なものは大変なはずだ。
できなくはないが、時間はかかる。
「Twitterクローンを Rails で作りたいです。手順を1から教えてください。OSはMacです。」
試しに質問してみたところ、rbenv のインストールから devise の導入から本当に1から手順を書いてくれている。
これで作ってしまうのはスマホだけで動画を作成するティーンネージャーYoutuberのようだ。
プロのデザイナがなくならないけど、プロのデザイナがいなくても動画は作れる。
これはプロのデザイナへの要求レベルが上がる、と言う意味でもある。
さらに直接対話して要求を伝えることで、細かく自分で調整しなくてもいいようにやってくれること。
ソースコード全体を知識にしたIDEができたら、コードの変更の難易度も間違いなく下がる。
プロンプトを作る能力、と言うのはあるかもしれないが、いずれ誰にでもできる仕事になるかもしれない。
ChatGPTの進化を経てその先に残るプログラマーの仕事とは何だろうか。
こうして全ての知的労働がなくなっていったら、最終的には社会的課題しか残らないのではないか。
年明けたけど振り返っておく。
上半期は成長に停滞感があった。5 月で現職について満 3 年が経ち、コンフォートゾーンに入りすぎていた。
いつもと同じメンバーでいつも通り Rails や React を書く仕事に不満はなかったが、成長のためにもっとチャレンジングなことをしたかった。
夏頃、ちょうどチーム異動の打診がやってきたのはラッキーだった。
9 月からは新しいチームに配属されて、チームメンバーや仕事の進め方、技術スタックまで全てが変わり、新鮮な気持ちで働けた。
go が書けるようになったことや、MVC + ORM 以外のバックエンドアーキテクチャを学ぶことができたのは大きな成長につながったと思う。
APEX のランク戦でダイヤ帯に行った。春が終わる頃まではほぼ毎日欠かさずにやっていたと思う。
ダイヤ帯に行ってからは目標がなくなったので引退気味になっていたが。友達とおしゃべりしながら遊ぶ分にはまだまだ楽しい。
ポーカーはあまり上手くなれていない。戦法が凝り固まってしまっている。ターンでブラフレイズを打ったりポラライズベットができるようになればもっと強くなれると思う。座学がまだ足りていない。
人との出会いを増やすために一人で飲みにいくようになった。知らない人と話すのはいい。バーの店員と仲良くなったりした。
やっとマッチングアプリを辞めた。もう一生やらない。
https://celstore.shop-pro.jp/?pid=171912527
ダウンは似合わないけど、これはダウンとマウンテンパーカーの中間みたいな感じでよい。1LDK に売っていた。
映えスポットに行ったら服にカメムシが大量について萎えたが、俺の足はカメムシより臭かった。
RubyKaigi で行った。松坂牛を会社の金で食いまくった。
中目に住んで 2 年になり、旨い店がわかってきた。
めちゃくちゃ安いのに旨い。
2022 年短かすぎだろ。
スペックはアラサーのIT系人材。Web系はだいたい一通り触れてきてフロントエンドもバックエンドもある程度できるけどインフラは最低限くらいにしかできない程度に苦手。言語はPerlとJavaScriptから始まってPHP、Ruby、Python、Go、TypeScriptあたりは言語レファレンスを見なくてもある程度は書ける。非WebだとC++とかも一応書けるには書ける。フレームワークで言うとRailsとかDjangoみたいな全部込み込みのものからFlaskとかpeeweeとか選定して作るみたいなレベルまで色々経験してきたし、フロントエンドもnodeとio.jsが喧嘩してた頃からAngularとかBackboneを経由してReactやVueなんかに触れてきた。某転職サイトでは得意な言語は一通り偏差値65-70で某ポートフォリオサイトの技術力スコアは3.6くらい。運良く趣味やらバイトやらでWeb系をやってきたから外向きに見せられる実績もある程度あるしエンジニア人材マーケット内でもそこそこ需要があるといった感じ。ずば抜けた才能があるわけではないけどどんな現場でもそれなりにスキルを発揮できる器用貧乏タイプだと思う。
そんなこんなで博士に至るまでIT系のスキルを活かしつつだいぶウェット寄りの分野でプログラミングを駆使して色々なことに取り組んでた。民間のエンジニア人材としては平々凡々でも周りがプログラミングできない連中だらけのアカデミアの世界では神扱いされてちやほやされた。そんでもてはやされて勘違いして工学じゃなくて科学の博士課程に進んだのが間違いの始まりだった。
身バレするのが嫌だから詳細は伏せるけど、まあパワハラアカハラなんて日常茶飯だった。指導教員はまともに指導なんてしないし周りの教員たちも工学的なことばっかやってるのを見て好き勝手言ってきた。正直進む道を間違えたのは自業自得だけど、そのくせ「せっかく進学したのにやめちゃうの?」みたいなこと言って引き留めてくるからタチが悪かった。今からして思えばプログラミングができるレアな便利人材を手放したくなかったんだろうなって感じがする。
そんなこんなで博士の終わりが迫ってくる頃にはアカデミアに対してこれでもかというくらい嫌気が差していたけど、それでもやりたいことがあるから一応就活はアカデミア系と民間系で両方やってた。どちらもオファーが来たけど結論から言うとお話にならないくらい民間の方が条件が良かった。
まず給料は民間が1.5倍以上、アカデミアの技術職との比較だと2倍以上の開きがある。しかもこれは「民間の一番下」と「アカデミアの一番上」を比較した数字でそれぞれ逆をとったら正直目も当てられない。その上福利厚生もさまざまな手当も民間の方が条件がいい。給与の伸び代も民間の方がいいし就労条件も民間の方がいい。そもそもアカデミアでフルリモート可なんて存在しないんだから勝てるわけがないんだけど。その上で民間は原則として終身雇用に対してアカデミアは任期付きのポストばかり。就活を始める前からわかってたけどいざ現実として待遇の違いを突きつけられるともはや笑うことしかできなかった。
「それでもアカデミアは自分の研究ができるんだからいいじゃないか」と言う意見を目にするけど、結局はPIとして独立するまでは他の先生のラボで雇われになる。その間にうまくやらなきゃ一生そのまま下請け仕事をし続けることになる。そしてたとえ独立できたとして、選択と集中の名の下に文科省にとって都合のいい研究テーマを立案しなければまともに研究費を取ることすらできない。大口の予算を取ろうと思ったらいかにビッグマウスで役人を丸め込んでそれっぽいことをやれるかで全てが決まる。
自分が外れ値であることは否定しない。プログラミングが楽しくてWeb系の技術が好きで、可処分時間を使って夢中になって勉強したり色んなものを作って遊んだらして過ごしてきたからこそ今がある。でも正直少しでもプログラミングができるならアカデミアに残るより民間に就職した方が待遇もワークライフバランスもいい。きちんとリサーチすればカルチャーだってすごくいい会社はたくさんある。
それを承知の上でアカデミアに残る人は正直すごいと思う。自分がその立場にいることを想像したら気が狂いそうになる。もし似た立場で迷ってる人がいたら心から伝えたい。アカデミアやめて本当によかった。
おとなしく Rails やれよ。
ITにおけるフリーランスというのは、基本的には企業から仕事を請ける、受託開発の仕事だ。稀に、発注主が個人事業主ということはあるかもしれないが。だから、仕事を獲得するためには、企業と契約に至らなければならない。言い換えれば、企業から信頼を獲得しなければならない、それ以前に「知ってもらわないといけない」のだ。
案件紹介サイトみたいなのはあるけれども、そういうところを経由すると費用がかかったり、契約内容に制限がかかったりすることがあるので、できるなら案件紹介サイトのお世話にはならずに仕事を獲得したいものだ。
多くの場合は、フリーランスになる前の会社員勤めなどを通して、同じ職種の人間と仲良くなるだろう。同じ職種の人を経由して入ってくる仕事というのは、以下のケースが考えられる。
仕事してお金が入って生活できればそれで良いんだって話もあるけど、同業者から回ってくるお仕事って、多少の例外はあるけれども基本的に「おこぼれ」なんだ。
一方で、「企業の偉い人たち」という人脈があると、以下のような話が舞い込んでくる。
こういうお仕事を良い案件にするのもクソ案件にするのも自分の実力次第なのではあるが、私にとっては絶対にこっちの方が楽しい仕事だ。
私は、いわゆる旧帝大に入ったものの家庭の事情(主に経済的事情)で中退してしまい、派遣会社(今は亡き「特定派遣」の会社)に就職した。それでも3年間は大学にいたので、サークルなどを通して多くの人と知り合うことができた。体育会系ではないものの活動量の多いところだったので、それぞれの人となりは十分にわかるところだ。
30代前半のときに独立してフリーランスになり、仕事に困る時期も時々あったが、今は40手前。同世代の仲間たちの多くは大企業で偉くなっていたり、士業として開業していたりする。人によっては自ら起業している者もいる。彼らから仕事の相談が沢山あるので、最近では仕事に困ることは無くなった。仕事をくれる皆さんに本当に感謝だ。
以下の点が重要だと思っている。
これらの人脈があったら、フリーランスでなくて会社員をやっていたとしても、いろいろ有利に働くだろうし、フリーランスを目指していなかったとしても人脈は大事にするのぢゃ。
ゆうて私が無職ですけどね!
「もう怖くて何も始めれない/踏み出せない」
っていう肯定感の底が抜けた状態さえ伴走つけて補修できれば、自走を始められるから
(追記)
私は職訓(Java) → Pr◯gate → D◯tinstallである程度勉強してみたけど、
https://prog-8.com/lessons/info
・D社はJS, PHP → Laravel ※最近Pythonも
https://dotinstall.com/lessons
が特に充実してると感じた。
・P社のスライドレッスンは超細切れでわかりやすくて、ゲームっぽく楽しく進められた
・D社の動画レッスン後半はかなり実践的かつ難しくて初学者置いてけぼりにする勢いだったから、なんとかクリアできた人の伴走があるかないかでは、修了率かなり変わると思った(のが教える意義あるかもと思った理由)
https://dotinstall.com/lessons/todo_app_fetch_php
このJS非同期通信編まで繰り返しやって自分でゼロから完成できるようにして、
Laravelレッスンやって、あと自分で調べてUser実装(古いレッスンはあるけど)まで出来るようになれば
大抵のものは作れるようになるから他言語の学習コストも格段に下がるし、
バイト程度なら経歴や年齢問わずさせてもらえるようになるのではと勝手に思っている。
あと別の問題として
いわゆる駆け出しエンジニア界隈の誘惑が強烈すぎるので、理性ある第三者がいないと
一見キラキラのデザイン方面(または◯ffice)に誘い込まれてしまいそう
https://twitter.com/i/events/1495044681947750404
>RailsやEchoを使うことが目的じゃないんだから、
それはそのとおり
浅いねぇ
Go: (この中では)比較的ネイティブに近くできるので高速。メモリ管理はシビア
Java: 枯れてる技術なので採用例が高く、WebだろうがデスクトップアプリだろうがAndroidアプリだろうがある程度柔軟に作れるし堅い選択肢
Python: 機械学習ライブラリが一番充実しているが、扱いやすい言語なだけでパフォーマンスは最悪
PHP: Webサイトが一番作りやすいが古いバージョンはセキュリティ的に難点。型が柔軟過ぎてぐにゃぐにゃしている
Ruby: Linux上のツールを作るのが楽と思いきや、RailsでWeb用途が爆発的に増えたものの、今はもう過去過ぎる技術でもある。もう全盛期には戻れないんじゃないか
https://d.potato4d.me/entry/20220405-nodejs/
が話題になっているけど、本来人類に必要なのはクロスプラットフォームな実行環境であってNodeじゃない。
TSが流行ったのはJSがクソだから。BabelしなきゃいけないのもJSにトランスパイルしなきゃいけないからであって、必要なのはJVMやCLRのような言語実行環境。
Reactが流行ったのはshadow domだけど、必要なのはDOMじゃなくてちゃんとした「アプリ」開発用のイベントモデルとレイアウトマネージャ含むGUI環境。
フロント界隈の流行廃りって本質的な改善ってよりもほかの良い技術をいかにブラウザ/Electron等JSエンジンという限られた環境に持ち込んで幸せになるかがメインに見えるので地獄に見える。
「アプリ」書くのになんでドキュメント記述用のHTMLに今ものっかってんだよと。
MavenやらGemsができて依存管理楽になったとか、RailsがでたときのようなCoC良いねとか開発の考え方を変えるフレームワーク、 rspec/Cucumberがでてテスト最高とか、c10kも怖くない非同期I/Oとか、好きな言語が使えるJVM/CLRそもサーバーならrustでもgoでも好きなものが動くとかとか本来の開発を楽にするという意味のブレークスルーってあんまりみられない気がしている。なんでフロント界隈の新技術ってあんまりわくわくしない。
逆にちゃんとしたクロスプラットフォーム実行環境がブラウザしかないということなんだけど、ブラウザなかなか進化しないし RIA は Apple 様が切り捨てるからなぁ。
ということですべてはブラウザが悪い。JavaScript 以外がちゃんと動くクロスプラットフォームのGUI環境が必要。でもプリインでモバイルでも動いてOSから独立して協調して作られていて、Webという既存の大量の資源にアクセスしやすいものは現時点で実質ブラウザ一択。つまりWASM に期待。次にHTMLであるべき文書はともかくSPAなんてもう「アプリ」なんだからHTML手書き文化もうやめてネイティブアプリ並みの GUI 作成環境も復権しよう。
するとクライアントでも好きな言語が使える。そして同じ言語がいいとサーバサイドで Node.js を使う必要もなくなりへっぽこプログラマが Node のイベントモデルを理解せずに使うこともなくなる。
そしてそれらができたときに Node というか JS/HTML の呪いから解放され人類に平和が訪れるのだ。君はその後も Node.js を使っても良いし使わなくてもいい。
https://foo-x.com/blog/is-spa-high-cost/
ぐうの音も出ない論駁だと思っていたら、はてブコメントがクソ煮込みうどんになっていてワロタ。
IQの高い起業家に対しては、自分でコードを書くことを薦めている。
そのときに明らかに学習コストが低く、当面のスケーラビリティに困らない方法は、SPA(というか、NextJS等のSSG)+BaaS(Firebase等)。
Railsなんぞ使ったら、あらゆるレイヤに戦線が広がって、労働集約的になってしまって、IQでゴリ押しできない。
正直、最近のサービスは高IQの人間にとっては極めて快適だと思う。いわゆる文系の人でも、セキュアかつスケーラブルなサービスを容易に開発できると思う。
アプリエンジニアからインフラも触るフルスタックになる予定。インフラは未経験
転職先で使うらしいからTerraformについて事前に勉強中。入門書手に取りながらいろいろ見たり触ったり。
AWSとかの基礎知識が少ないから「あーこれAWSのあの項目がこうやって設定値として置き換わってるんだなー、便利だなぁ」
ってならんくて次から次に知らん機能の知らんオプション値とかが大量でてきて理解がフワフワしてる感じ
なんだろう、SQLの知識ほとんどないままRailsのドキュメントだけ読んで「ORマッパーでDISTINCTとUNIONの記述が良い感じに変わってます!」
って説明されてるのがずーっと続いてる感じ、基礎知識がないままレベル10くらいの説明されてて脳に定着してない気がする
サービスのめっちゃ種類多いし網羅的に理解するのは結構きついなー
ググりながら構築できたらいいのかしら