はてなキーワード: Railsとは
Railsなんかをいじることを覚えて、大学に入ってから数年間インターンでWebデベロッパーをしている。
(エンジニアというとはてなでは怒られがちだし実際、不正確な用語だと思うので自分の職種のことをWebデベロッパーと呼んでいる。)
自社開発のスタートアップとかは特に、労働者としては緩いところも多くて楽そうに見えるので、将来は可能ならそういう方向に就職しようと思っていた。
でも何社かで働いてだんだん気づいてきたのだけど、同じ職種にどうにもあまり仲良くなれそうにない人が多い。
うまく言えないんだけど、賢めの男子校っぽいノリを結構頻繁に感じる。ホモソーシャルというのか。
特有の選民思想みたいなものを感じる。合理的で賢い俺ら、みたいな。これは同じ学生のインターンに限らず、社員に対しても。
そのわりに、口頭で話すとあまり面白くもないし、俺は文系の学生なんだけど、人文科学や社会科学の知識がどうも薄いんじゃないかと思わされることもある。
(これはでも俺も自然科学や工学の知識が薄いと相手は思っているだろうからおあいこかもしれない。)
もちろん、そうじゃない人もたくさんいるというのはわかっているんだけど、技術的には到底かなわないような、確かに頭の切れる人でもそういう性質を孕んでいることは多くて、結構失望させられる。
Twitterなんかでも性格が悪いとしか言いようのないツイートや、明らかに距離感のおかしいリプライをしていたりする。
Webデベロッパーしか知らないのでこう書いているが、機械学習や組み込み系なんかのエンジニアもあまり変わらないかもしれない。
そういうコミュニティに既に多少属してしまっているので、どこにもこんなことを言えないので増田に書かせてもらった。
言葉足らずな感じですまない。俺もまだうまく整理できてない。
To go to Sugar Hill way up in Harlem
You'll find you missed the quickest way to Harlem
Hurry, get on, now it's coming
Listen to those rails…
記入する項目の例
「やりたいこと、興味のある仕事・分野」記入例
開発環境について触れる
今まで小さなチームでインフラからフロントエンドまで全てを担当してきたが、次は少し大きなプロダクトでバックエンドのパフォーマンス改善に挑戦できるような環境で仕事がしたい。
------------------------------------------------------
興味のある分野・領域について触れる
Railsアプリケーション設計・開発から、Heroku, AWS, GCPなどのインフラ構築もできるような、Webアプリケーションエンジニアになりたいと思っています。興味のある分野は、医療・健康などです。現在転職活動中です。 ------------------------------------------------------
より具体的な記入例
例1
# 目標 新しい技術に柔軟に対応できるようにしたい 自社開発のサービスに携わり、常に機能の改善・拡張を考えながら開発がしたい
# 興味のある仕事 自然言語処理や画像分析など、データを扱うアプリケーションの開発
# 転職先に求めること 新しい技術に対して敏感に反応し、プロダクトにマッチする場合はどんどん導入してゆく風習があるような職場で働きたいです。
発注と検収のいたちごっこみたいな仕事に嫌気が差して、入社して2年目からちびちびと転職活動をしていた。
入社して2年目は転職サイトとか転職エージェントとかを使って、もっと手を動かす仕事が良い!みたいな希望で活動した。
何社か応募したけど、採用どころか面接にすら全然届かない。経験も実績もないから、仕様無いと今になっては思う。
でも数少ない面談した企業の方からは「小さくてもいいからWebサービスを作ってみるといい」とか「うちはRails使うことが多いから、Railsわかる人だと嬉しい」みたいな具体的なアドバイスはもらえた。
ちなみにどことは言わないけど、転職エージェントは「年収が下がっていいならすぐに見つかります!」「正社員じゃなくて派遣から始めるのはどうでしょう!?」とか不穏な誘いが多くてすぐに使うのを辞めた。
3年目はもらったアドバイスに従って、仕事の合間に小さなWebサービスを作ることにした。(Railsは使わなかったけど)
流行りのフロントエンドフレームワークを使って、PaaSで公開。テストも書いて、CI/CDもちゃんと整備した。
フレームワークや言語の学習も含めると半年以上かかったけれど、納得のいくものが出来た。
4年目。業務転換があり、ベンダと要件の狭間でストレスが絶頂になった。
この環境から逃げたい、というひどく後ろ向きな理由で転職活動を再開した。
幸い3年目の成果物がある。Twitterの転職タグとかを使って成果物のURLを貼り付けたりすると、5社くらい話を聞いてくれることになった。
驚いたことに、エンジニア業界では有名な会社とかも声をかけてくれたりして、ちょっと有頂天になったりした。
しかしながら結果は惨敗。オンラインのコーディング試験や技術面接に歯が立たず、ほぼ全てがお祈りとなった。
ある企業の面談では、「希望年収の半分くらいなら」と言われたこともあった。この日のことは、未だに忘れられない。
4年目の惨敗を受けて、5年目はしょぼくれていた。
面接で出来なかった問題こそAtCoderなりアルゴリズム本なりで勉強していたものの、「こんなに勉強しないといけないなら、もう現職でいいかな」という思いが大半を占めていた。
なんとなくはてブの技術エントリを読んだり、Qiitaとか面白そうなチュートリアルを手慰みにして時間を潰していた。
そしてそんな折に、知人経由で大手ITを受けてみないかと声をかけられた。
いやいや無茶でしょう、というような有名企業で、自信を喪失していた自分には恐れ多いとしか言いようがない。
とは言え、落ちるだろうから受けない、というのもあまりに後ろ向きな話。
なので、受けるだけ受けることにした。知人の顔を立てる、というくらいのモチベーションである。
内容の詳細は秘密保持の関係から記載できないけど、3年目のサービス開発で学んだ知識と、惰性で技術エントリを読んでいた経験が活きた。
それなりに回答できて、手応えはあった(現職で得た知識とかももちろんあるけど)
結果は通過。そこからあれよあれよと面接ラッシュで、すったもんだありながらも最後は内定。
待遇も満点ではないけど十分な内容で、迷う余地がなかった。強いて言うなら、休みが減るのがちょっとネックかな。
元増田に言いたいのは、一回動くと何かが変わるよってこと。
私が結果としていい転職ができたのは2年目の活動の際に「Webサービスとか作ってみるといい」ってアドバイスをもらえたのがきっかけだし。
ベンチャー企業の人から声をかけてもらえたりするくらい頑張ってるなら、胸を借りるくらいの気持ちで話をしてきたらいいんじゃないかな。
人生の分かれ道は意外なところに落ちていたりするよ
なんか以前からずっと思ってたんだがRailsというかRuby界隈は宗教というか自己啓発ビジネス臭さえするのがイヤだ
金持ち父さん…とか7つの習慣とか、そういう詐欺のカモっぽい人も多いイメージがある
しかし、Ruby登場当初からやたらとエレガントに書ける、スッと書ける(この「スッ」という表現も詐欺で多い表現なので嫌い)とか、
そんなことは個人的にはどうでも良くて、ソフトウェアを使うユーザーは機能が便利かとかそういう視点でしか見ない、悲しいけど
保守の観点からも美しいソースコードを書こうという意気込みは間違っていない、というか正しいと思う
しかし、プログラマーが美しいコードが書けたと悦に浸る、自己満足におちいっているだけのようにも見えるのが納得いかない、不愉快にさえ思える
C++やJavaのような型のあった時代から、型なんてダセーよな、プレステの方が全然おもしれーよな、を経て、また型に戻ってきてる
型推論云々にかまけてパフォーマンスよりも綺麗なコード、富豪プログラミングからまた元に戻ってきてる
学習コストが高いものほど評価されるような傾向も個人的には感心しない
どうせ同じゴールなのに、そこに辿り着く方法が険しいほど評価されるなんて、プログラマーの美徳の怠惰だのから逆行している
実によろしくない
そういう点ではRustよりもGoやC#の方が評価できる気がする
もちろんRustの守備位置はそこではない気もするので単純比較はおかしいのだけど、ゴールが同じなら自分はC#やJavaで書いて終わらせるのにと思うことがある
別にWebだけでなくコマンドラインでの捨てコードにPHPやJavaScriptも適している
そういう意味ではPythonはやはり強い、Glueだからだろう
正直PHPなんかよりPythonの方が言語としてはおかしい気もするのだけど、正しいとかエレガントが生き残る条件ではないのである
しかし、学習コストとしては低いシェルスクリプトは便利ではあるが流石に古いというか罠が多い気がする
PowerShellの方が使える気がする、少なくともWindowsでは優先的な選択肢になった
生き残るというのはそういうことではないのではないか
今までの自分のスキル関係なく、今日からスクラッチでソフトウェア開発するとしたら、どんな環境がいいんだろう?という問いかけです。
ちなみに自分は以前組み込み系のエンジニアでWeb系は詳しくない&ここ1年ソフトウェアの仕事から離れてましたが、最近Webアプリ作りたいなと考えてます。
・組み込みソフト・・・基本C言語、最適化するとこはアセンブラ、マイコンのコンパイラが対応してたらC++
・Windowsアプリ・・・C#(.net framework)、nodejs(electron)
・スマートフォンアプリ・・・3DだとC#(Unity)、Dart(flutter)、javascript(React)、作り込むならネイティブ(iOSはswift、androidはKotlin)
・Webアプリ・・・nodejs、ruby(on rails)、Dart(flutter+firebase)、python(Django)
・社内アプリ・・・社内がマイクロソフト環境(outlookとかteams)ならPowerApps
・AI開発・・・python(TensorFlow、scikit-learn)
人工知能で詐欺まがいなことしてる香具師に引っかかった、という話をこれからしていく。この記事は「人工知能ば詐欺だ」ということでなく、「詐欺師は人工知能を使いたい」ということを語る。
もう10年ぐらい前になるのだけど、人工知能には色々あるのに「深層学習だけが人工知能」だという無勉強な馬鹿に引っかかったんだよ。本当は人工知能なんて LISP から始まって、色々あって今の AI につながるているのに、その歴史は全く無視してね。Python のライブラリでどうにかできないものは不要とのことなので、「ふーん、そうなんですか」ぐらいで対応してた。なぜなら、自分は人工知能にAPIを叩いてブラウザに表示する部位を担当したからだ。
その会社にはエンジニアがいないので、人工知能とデザインを除いた全てをほぼ自分だけでフロントエンド(当時はFlash)からバックエンド(Django)とデータベース、クラウド部分を設計・開発・運営をやることになった。それは慣れてたから良いのだけど、ひとりでぼちぼちやるのは変な感じだった。ホームページには10名近い社員がいます、とのことなのに。
この理由はなぜなのか理解できたのは、インターンがやってきてからだ。そいつは結果を出せないから有能な人がやってこないのた。それで社員数を水増しするためにインターンを社員としてカウントしていたのである。なんとインターンの無給の学生ばっかり声かけて、ただ働きさせて「成果は自分のもの、ミスは能力のない学生のせい」みたいな畜生の極み、のようなことをして糊口をしのいでいる自称『天才』に俺は捕まってしまったのにここではじめて気がついたのだった。信じられないことに。
それで、ついに API をつないで一つのシステムにしましょうという日が来た。なんとか力量で解決したのだけど、はじめて彼のソースを見せてもらったときの衝撃度ときたらね。驚いたよ、スカスカのコード過ぎてね。おかげで深層学習がライブラリを使えば簡単にできるのも学んだけのだど。
閑話休題。
まぁ、コードを書くのが本業でない人だから良いか、と思ったらなんと、Python 教室を開くというじゃないですか。それで、成果をサイトに掲載するのですよ。自分のコードは絶対に載せないのに、他人のコードを添削して「弊社は実力があります」みたいな事例にしていたのですよ。驚いたことにね。
なぜ、そのような香具師が存在できたのかというと、「人工知能は効果判定をしにくいけど、将来的にはメリットになる可能性が高い」という計算機科学の領域では珍しい特性を持っているのよね。ほら、業界人にとってブラウザやデータベースといったものは、ちょっと触ったら特性が感覚的にわかるじゃないですか。そこが人工知能はちょっと違う。
もちろん人工知能は世の中に必要不可欠なものになるのは間違いないのだけど、というよりも現状でもスパムメール判定やゲームでは活躍していますけど、おそらく個人がどうにかできるものではないのよね。理由はこれ以上はアルゴリズムの向上が困難で、高コストな専用ハードウエアを扱える資本家に対抗する術を個人が持てないという限界と、教師あり学習のような判断基準の元になる資料をどう収集するのかという問題点を解決した人や組織が皆無という状態にあるからなんですよ。特に最後の部分は未だに twitter レベルの組織ですらやらかしているので、まだまだ難しいと思われます。
学習の根拠になったもの自体をどうやってキレイなものにするかということすら、データサイエンスという学問が出てきて苦労しているのですから、ユーザーエンドからしたらこの領域は未だにキャズムを超えていないと判定されるのは仕方がないことなのでしょう。それは、そういうもんだから良いのですよ。将来的には解決される可能性が高いでしょうし。
それでですね、やっと本題に入れるのですけど、問題点は「人工知能は効果判定をしにくいけど、将来的にはメリットになる可能性が高い」という非対称性をこの領域は抱えているのですよ。これはですね、バイオ(健康食品・代替療法)や金融商品(暗号通貨・バイナリーオプション)なんかに出てくる胡散臭い「何しているのかわからない」香具師が介入しやすい環境なのですね。それっぽいことを言って、専門家なら絶対に言えないコミットメント(金融だと「100%絶対に儲かる」とか)を宣言し、私はアメリカの有名大の(別領域の) Ph.D. を持っています(嘘)、日本はゴミです、さあ皆さん『人工知能で夢』を叶えましょう、なんていうクサい台詞を(非技術者向けの)講演会で語るやつがいるのです。残念なことに。
でも、皆さん、ちょっと考えてみてください。なんで(トーシロ限定で)講演会なんてする必要があるのかと。人工知能の世界で講演会をして資金集めをする、っておかしくありませんか?OSS で有名なコミッタだったり、インパクトファクターのつく雑誌に名前がのるような人材がですよ、この御時世にわざわざ資金集めする必要がありますか?世界中から「金を出させてくれ」といって金がわんさか集まってくるに決まっているじゃないですか。逆に、プロを避けるような人物に金を出したいと思いますか? よって、(トーシロ限定で)資金集めのための講演会なんかをひらくような残念な人工知能開発者が金を稼ぐことはありません。同様なケースに遭遇したら、出資したら泣き寝入りすることになりますよ。
※ この記事はアキネーターの下りがクソです。もう少ししたら自分の言葉で書き直します。ただ、この記事を消すことはしないです。これ技術的な話をしているようにみせてますが、わかる人にはしっくりくる符牒のつもりで書いています。
うん、でも、わたし講演会でその人のつくった人工知能が動いているのみたよ、まるでアキネーターみたいな、というのでありましたら「良いものを見ましたね」とこたえますよ。あれは良いものです。実はアキネーターのクローンは今だと学生レベルのスキルで作れます。具体的にのべますと、なにかテーマを固定して、そのテーマに関係する情報を片っ端から集めて、Python のライブラリを使ってデータ処理を行い、機械学習のライブラリを介して5段階の入力に対して適宜返せるような状態に持っていき、Rails/Laravel/Django で HTML を吐き出すようにして、ウェブ・ブラウザで Vue/ReactjQuery に呼応するようにすると計算機科学ができる人だと作れちゃいますし、見た目を重視したければ美大生にでも声かければ、似たようなキャラを描いてくれることでしょう。
この程度だと、二人の学生を無休(給)のインターンにやらせて、詐欺の商売道具をただで作れます。これは、アキネーターは駄目だとは言ってません。説明すると長くなるので省きますが、あなたを騙す道具を作るのにプロは要らないと言っているのです。
それで話を続けさせてもらいますが、哀れな学生は酷使されたうえに、会社のサイトに「インターンの思ひ出(検閲済み)」を実名で掲載されるという、デジタルタトゥーを刻まれるのです。かわいそうに。
※ ここを疑え、というポイントを追加。
これだけでは済みません。詐欺の道具はこれだけでは不足しますからね。本は良い権威の道具になりますよね?そうなんですよ、出版社の知識のない馬鹿共が「学生だけが書いた技術書」(前書きと終わりにだけを本人が書き、しかも自著として講演会で提示するという狂気の書)を出しやがった。これ、マジで有名出版社がやらかしたので驚いたよ。
で、こいつもう一冊も本(これまた共著なのに、自著として講演会で使うイカれた書)を出してるのよね。まぁ、読んでみたらあまりの頭の弱さに感動したのだけど、驚いたことにこの本を出典として Wikipedia に何度も記載しようとチャレンジするキチガイ(本人かは不明)がいたのよ。もちろんリジェクトくらっていたのだけど、ビビるよねー。繰り返すが、人工知能が悪いのじゃないのですよ。人工知能を使って、投資家を騙そうとするのが許せないのであって。
ちなみに、わたくしはそいつにコードの添削されたのですけど、おそらくそいつは FizzBuzz テスト、クリアできませんよ。なぜなら、If/Else がかけないのではなく、四則計算のミスが酷いので。チューリングテストは通るとおもうけど。どうして、大切な投資家向けの資料なのに単純な数値が一致しないのかわからないのですけど、何故か数値の足し算がおかしいことが多すぎるのよ。数値が一致しない、ってヤバすぎるだろ。それ、多分病気だから、哀れに思った(元)奴隷ちゃんたちは、病院へ行くように諭してあげてください。きっと、逆上するでしょうけど(笑)。
えっ、なんでお前はやんないのか?って、そりゃ「めちゃくちゃそいつのこと恨んでいるから」に決まっているじゃない。オレは、そいつを救えるほど、冪等な人間じゃないんだよ。だって、オレは天然知能だからな。
p.s. 多分、この記事で言及している人物の被害にあった方はは多いので、「アイツだろうな」とわかるように書いてあります。「アイツってどんな人?」と聞かれたら、説明するのが辛いでしょうからこのページをさっとみせられるようにこの記事を書きました。私も辛いのです。10年フラッシュバックに悩まされてきました。ただ、これ以上の犠牲者が出ることが耐えられなくなり、今回この記事を書かせていただきました。この記事で言及している人物は専門ではないのに人工知能・情報工学という餌を使って、相変わらずボニーアンドクライド気取りで若者を搾取しています。ソーシャルエンジニアリングを使われると、若者はかんたんに騙されてしまうものです。かつての自分がそうだったように。世の中にしなくて良い苦労はあるのです。
イベントサイトで「もくもく会」とか調べると各地でやってる。最近はコロナでリモート開催が多いので、逆遠い場所のコミュニティでも参加しやすくなってる。まあ自習するだけだが、知り合いできると楽しいよ。
https://connpass.com/dashboard/
あとは書籍やチュートリアルをコツコツやるか、動く慣性サンプルをチュートリアルとかGitHubからダウンロードして改造しまくるといい。作りたいもの決まってるなら、よく似たサンプル探していじりたおすのが早そう。
何やっていいかわからない場合はRailsチュートリアルやるのがいいかな。https://railstutorial.jp/
アプリならFlutterとかでいいかなと思ってる。ここは自信ない。
Udemy(https://www.udemy.com/) の中で評判いい講座をやるのもよいと思う。毎月セールやってるのでセールで買うこと。かなり安くなる(普段が高い)。ちなみに明日までセールしてる。ただ、無料のチュートリアルやってからでもいいかなと思う。
参考になれば。
Railsある程度できるぜって謎の自信つけちゃった人が応用的なことしようとした時に挫折しないだろうか
自分自身いまRailsチュートリアル中なのでRailsで何ができるか正直わかってないけど
(DBに登録したり読み込みする時にINNER JOINやサブクエリ使うようなちょっとややこしいSQL使ってしないといけないようなものとかできる?)
DjangoとかRailsとかって、プログラムのいろはを知っている人でも理解するのに苦労するような独特な構文が多い
あくまでフレームワークで面倒な部分は省いているから仕方ないんだけど。
デコレータが何なのか継承が何なのかとかわかっていてもその意味を読み解くのに一苦労する。
ましてやRailsから勉強しよう!なんて人にとったら「なんかわからんけど動いた」という人が大半になるんじゃないかと思う。
Railsから入った人はたぶんRailsのためだけのやり方しか習得できんし、応用が利かないレベルになっちゃうんじゃないかと思う。
ORMを使わずに純粋にJavaなりでバックエンド書いてDB設計したりとかリクエストが来たらJSONを返すアプリケーションサイドを作ったりってなんとなく経験した人がRailsなりDjangoなりやるとこういうことか、これは便利だ、でもここは融通が利かなくてつかいにくいなみたいなことがわかるんだろうけど
よく「プログラマは勉強し続けなければいけない」といいますが、嘘です。
それは、レベルの低いプログラマの話です。そういう人たちが想定しているのは、たとえば流行りのフレームワークが出てきたらそれを勉強するとか、仕事で特定のプラットフォームの知識が必要になったのでそれを勉強するとかです。
こういうことを一所懸命勉強している内は、プログラマとしての実質的な成長は見込めません。それらを勉強しても、特定のフレームワークなどの使い方が分かる人になるだけです。ほとんどの場合、5年も経てばその知識は役に立たなくなります。
実は、ソフトウェアの技術などは、コンピュータの黎明期から本質的な進歩はほとんどありません。だから、本質部分が分かっている人は、流行り廃りのある技術の習得に余計な労力を割く必要がありません。
プログラマが勉強すべきはこの本質部分、つまりコンピュータサイエンスの基礎です。フレームワークの使い方は知らなくてもリファレンスを見れば良いのに対し、コンピュータサイエンスの基礎はググっても決して身に付きません。
プログラマが身につけるべきコンピュータサイエンスの基礎は、多くの大学の計算機科学・情報工学の2〜3年生で学ぶような内容、
などです。逆に、こういう素養がないのにプログラミングスクールでRailsとかCakePHPみたいなのを触って、プログラミングできる気になっている人に5年後10年後の市場価値はありません。