はてなキーワード: バックエンドとは
誰が指示するの?GANとかあるけど、最終的には人やで?
え、人が指示した結果、相手がどう動くかという話をしているんだよ。
生産コストが下がる(から、あるタイミングで人よりもコスト高であっても、何年か待っていればその頃の製品は人を雇うより安くなるでしょ)って話をしているんであって、販売した個別の製品に追加コストがかかるかって話はしてないよ。
フィードバックがかかる強化学習とかあるけど、イマイチなんだよなぁ。なんか「過学習」とか言い出すし。勉強しすぎて東大に落ちる、って馬鹿の言い訳にしか聞こえないがね。
現時点でも将棋とか特定の用途に用いる人工知能は学習を繰り返してプロより強くなってしまうわけで、汎用人工知能となると、多様な用途それぞれについて学習を繰り返して日々賢くなっていくのだろう。でもそこまで行くと便利になる反面、もしも、使役する側であるはずの人よりも人工知能のほうが賢くなったうえに人による制御ができなくなるケースなどが起きたらやばいかも…という想像なのだが、なにか話がかみ合っていないような?
最近のテック系の生態系を知らずに、ほとばしる若さに嫉妬して学生をぶちのめして申し訳なかったと思うようにはヒートダウンしてきた「年収270万円だった医大生」です。こんばんは!
すごく反省している。ただ、優雅に自分が学生時代に学んだ知識をもって、社会人にその勢いを保持したままで定年まで行ける可能性は高くないと私は思うのだ。おそらくは名門大で、勢いのある会社なら引く手あまたそうな貴方は自分にとっては眩しかったのだ。
本当に認識不足だった。もともと Android/iPhone や jQuery で JSON の操作をしていて、PHP/Rails/Spring でバックエンド界隈から MySQL/PostgreSQLを触り、人員不足で AWS をも触って QA および SRE をしていたエンジニアだったのだけど、ブロントエンドが DB に遠いという理由で簿給だと思っていたのは、各派遣会社の給料をみる分だと間違いだと理解した。知識がアップデートされてないのはオレ自身だったようだ。申し訳ない。
根拠は、NoSQL はスキーマ無しなのは途中までは良いけど、後で負債になる感じがするので。あと、Firebase は Google が中途でやめるとなったときが怖いぞ。JS なら express というフレームワークあるし、Kotlin もサーバーがあるから、古典的なサーバークライエントモデルで良いのじゃないかな?Next なら SSR あるし。
自分のような新卒採用を逃した身分では、サイバーエージェントのような B to C 領域でトップティアにある会社に紹介してもらえるというのは「蜘蛛の糸」のような貴重なチャンスに思えたのだよ。そりゃ、ある程度は経験積めばスカウトが来るかもしれないけどさ、自分は年食っていたから「サイバーエージェントで働けるという可能性」に全力をかけたよ。その結果が、場末の未認可SES って、しかも反社だったなんて、すごくショックだったよ。クソな「自称数学者の人工知能論を聞いて土日が終わり、平日はブラック客先常駐」な日々はうんざりだ。
年収270万の元増田です。2013年のフロントエンド界隈にいた(jQuery と Adobe Flash)のですけど、今って本当に700万近くまでもらえるのですか?例えば、React や Vue を TypeScript でかけたりするとどれぐらいもらえるのでしょうか。
自分は 2013年ぐらいに Java で Android と iPhone にて Objective-C で、jQuery でブラウザのフロントエンド部を書いていたら、強制的に Spring Framework で SQL バリバリのバックエンドを書くように指示されて、しかも AWS EC2 の上でプロダクション用の構成をつくったりしてたのですけど、2社目の社長に「職歴が浅いから、月給25万円ね」と言われて、絶望した記憶があります。
増田がぴえんしてて可愛そうなので書いてみた。
できるだけ親身に答える。
自分は30代中盤のソフトウェアエンジニアです。さすがに20代前半で1000万円は無理だったけど30までには超えたとかそういう感じです。プログラミングを始めたのは20歳過ぎてからだし未踏とか想像も付かない程度のスキルです。でも技術に限らない色んな知識を駆使したり良い感じの待遇が得られる会社を嗅覚を使って見つけ出して生き抜いてます。
まず、なぜ増田は苦しいのかと言うとこの2つをどっちも求めてるからだと思う。
例えば増田が「少なめの給料は許せないので貪欲に勉強する」とか「勉強したくないから少なめの給料で暮らしていく」って選択を許容できるならだいぶ話が変わってくるよね?
どっちも欲しいから苦しんでる。
何かが両立しなくて困っている時は「トレードオフ」と「ウルトラC」の2つの方策がある。
2. 少なめ給料で暮らすことを許容する
3. 両方の望みを叶える方法を見つける。
増田って実は意識してないだけでたくさん勉強してたりしないかな?
この辺が出来る時点でかなり勉強が必要だったはずだけど、どうやって覚えたんだろう。
「レビューを貰って知識が増えて気持ちいい」って発言もあったし増田が「貪欲な勉強」と見なしてないだけで実は結構勉強してたりしないかな?
例えば「作りたい物を作るのに当たって必要な知識を学ぶのは全く苦にならない」とかそんな傾向は無いかな。
大切なのは「勉強」という過程じゃなくて「スキルが上がってる」っていう結果の方だから、過去の経験の中から「増田が楽しんでるのにスキルが上がって行ったような状況」を出来るだけたくさん思い出してみて、その状況を意図的に作り出しにいくと良いよ。
「貪欲な勉強」ではなく「増田にとって自然体な勉強」を探してみては。
あと、通信プロトコルの実装は増田に合ってなかったんじゃないかな? 「与えられた競技で一等賞を取る」じゃなくて「どの競技なら一等賞を取れるのか探す」って発想も大事。
何か考え方を変えることで、少なめの給料が許容できないだろうか?
そもそも、何で増田が少なめの給料を許容できないかというと「他者より良い待遇を得たい」「そうじゃないとプライドが許せない」からだって書いてるよね。
もしかして「中高で未踏ジュニア通してます。20代前半で1000万行きそうです」っていう人たちを基準に考えてない?
それって偏りに偏った集団なんだよね...
(地域差や雇用形態や世帯あたり人数を無視して)雑に見ると、1世帯あたり200万円〜300万円が1番のボリュームゾーンだという事が分かる。
https://www.mhlw.go.jp/toukei/saikin/hw/k-tyosa/k-tyosa19/dl/03.pdf
年齢が低いほど給料も低い傾向があるため、20代前半で1000万行くのは同世代の中でも上位1%未満くらいだと思う。
増田が考えてる「少ない給料」がどのくらいか分からないが、それって本当に少ないんだろうか...? という視点で考えたら妥協できるかも知れない。
増田の望みを言い換えると、
っていう事なので...
でも方法としては、以下のどっちかだと思う。
増田が重大な勘違いをしてそうな点は「エンジニアとしてのスキルが待遇に直結する」と思ってそうなこと。
実際には待遇が良い業界/会社を見つけることの方が遥かに重要。
次に、エンジニアとしてのスキルだけじゃなくて他のスキルと組み合わせるのも重要。
例えば、増田だったらラピッドプロトタイピングとかが好きらしいから「エンジニアリングがわかるプロダクトマネージャー」みたいなポジションとかどうかな。需要も結構あると思うし、そういうポジションに未踏を通せるような人は来ない事が多い。
あと「20代前半までは貪欲に勉強する。そこで経験値と高待遇を得てその後はゆるく働く」みたいなプランはどう?
実際のところ転職する場合の待遇は「前職の給与水準」にかなり影響されるので、一回ガツッと給与を上げられると後が楽だったりする。
増田の話しを聞いて思ったことは全体的に比較対象がおかしいということ。
って偏りが大きすぎるよ...。
高すぎる基準と比較して無用な劣等感を抱いちゃってないか? あと、1つのやり方にこだわらずに増田に合ったやり方を探す事が重要だと思う。
じゃあな!! 頑張れ!!
って言われてしまって申し訳なかったのでなぐり書きだけど書いた。
https://anond.hatelabo.jp/20210710001238
良く分かってないけどこんなのどうでしょうか!?
https://anond.hatelabo.jp/20210710112041
カァァ...///
若い人の間でのビタイチの語意って完全に変わっちゃったのかね それとも鐚一文とビタイチで分離した感じ? お金の話でもないのにビタイチって出てくるとすごい違和感ある
うるせーな...と思ったけど確かに変だな。
直した。
=====
東大卒のヨーロッパでエンジニアやっている人から解説しよう。(ちなみに医学部は防衛医大に補欠合格していた)
エンジニアになるより医者やっていたほうが(国内で頑張る分には)絶対いいと思う
ちなみに医学部にいった友人の何人がむしろテック系に流れてきているという事情がある。
おそらく、増田はたしかに昔からプログラミングをやっていたと思う。頭もいいんだろう。厨ニが溢れていて気持ちが悪い。
エンジニアも厨ニ病でマウント取っていいていい時代でもないです。明らかにマウント取りたくてウズウズしすぎて、大した知識がないのに、
表面的な知識を羅列しているところがあったので突っ込んでいく。
ー>そんなことない。フロントも色々やらないといけないが、バックエンドに比べて経験年数がひくい人も流れ込んできているので、バックエンドの人に比べて
できる領域が狭いので給与が低い、またおそらくDCL、DML、DDLといった用語を知っていることをひけらかしたかったのかもしれないが、全くどうでもいいです。
=>全部できようとして、破綻しているのでブーメランですよ。あなたの想定している、こんなフルスタックは成り立たない。
現場に放り込まれても10年ぐらいかかる。というより、フロントからバックから低レイヤから、モバイルまでやることはもはや現実的ではない。
=>QUICとかマイナーなプロトコルを話すよりはちょっと変化球のあるプロトコルでいけばWebsocketぐらに抑えておきましょう。低レイヤーの話はわたしもわかりませんが、C言語ができないのに「おそらく QUIC か MQTT 」とか分かってない英単語4文字を羅列するのは厨ニ病すぎます。
=>自分はcloudfrontやWafを触ったことがありますが、かなりのインフラエンジニアにならないかぎり、ここ触りません。cdnは影響範囲が大きいし設定に時間が掛かったりします。片手間でできません。インフラエンジニアに触らせます。異常検知、アラートといったものは、実は結構時間がかかるので、強いかどうかではなく責務の分割からインフラに任せます。知らないことは知らないって書きましょう
本当に医学生ならここ数年の技術についてこの指摘ができる程詳しいわけないし少なくとも10年位は業界にいないとこういう感覚は身に付かない。 」
=>こんなにあれこれ、やっている時間はないでしょう。趣味のサイト製作でやるにしても絶対できてない。kubernetesを使っただけで時間切れになる。Kafkaを触ったとかいているが、Kafkaはサーバで使ったのかな?どういう利用シーンかというと膨大なログの収集等で使うのだが(ただのNoSQLではない)、Zookkeeperで調停させて、topic数とか調整するんだけど、わかってます?ElasticSearchだけ書いてたらまぁあるかなと思うけど。Redisもちゃんと使えてる?pub/subとか分かってないと思う(普通に理解する必要があんまない)
それでkotlinなんて触ってる時間なんて絶対にないし、Rustを更に付け焼き刃に付け焼き刃している時間なんてぜええええたいにない。やることが絞り込めてない。無意味にマウント取りたいだけ。なんとなく書いているcode deployなんて、それだけで使いこなすのが大変なれべる。
ci/cdのうちciだけかたっているならわかるがcdとなるとかなり時間がかかる
=>MyISAM をInnoDBに切り替えるなんてことしているところは無い。万にひとつあったとしても、大事で、それだけで数ヶ月のものなので、この付け焼き刃の知識の人が触る機会はない。
=>ES2015以降の差分は微々たるもので、どうでもいいです。ES2018ぐらいの現実的な数字にしてたらばれなかったのにね。
Next でSSRまで踏み込むと結構、フロントのことをキャッチアップするだけでかなり厳しいと思いますが、できているのかな?
=====
ー>アメリカの事情は知らないはずなので知らないことは書かないようにしましょう。
ー>ヨーロッパでは白人様はHRとかマーケやってます。移民にたよってます。ロシア、ウクライナ、インド、パキスタンなど
一応年収1100万のソフトウェアエンジニア(もちろん国内、ただしアラフォー)なのでアドバイスじゃないがどんな感じか説明。
やってることはバックエンド全般。最近はインフラも管理画面も大体バックエンド屋さんのお仕事なので、
要はフロントエンド以外というのが正しいかな?極めてざっくりいうとアミューズメント関係のイベント基盤を
AWS上で構築・運用するお仕事。アプリはBFFはnodeのアプリ、動画とかバッチ系はJavaで書いたアプリをLambdaと
ECS上で運用、ストレージはElastiCacheとDynamoDBを使っていて、基本的にすべての運用はEventBridgeで
Slackに飛んできて自分で保守までやる感じ。これで10人のチームで回している。スマホアプリがフロントに
なるんだけどそっちは別のチームがやっていて多分同じぐらいの年収をもらっていると思う。
わかると思うけど別に全然大したことをやっていない。最新のプロトコルとかよく知らんし、
CSは一応AtCoder青とかいう人材もいるにはいるけどほとんどの人は並ぐらい。
FPGAなんて多分みんな無理なんではないかな。それでもこの年収をもらえるのは単にソシャゲ業界の利益率が
いいからで別に俺がすごいわけではない。AWS知ってる人はわかると思うけど上のスタックって
多分駆け出しエンジニアのちょっと頑張ってる程度の人が練習で作るWebサービスぐらいの技術レベルだと思う。
技術的に一応他よりは高いのかなと思うのはCD/CIかな。アミューズメント業界なので一日10回のリリースとかよくある。
なのでステージング環境でOKならそのままSlackで1スタンプデプロイになっている。
基本的にフロントとの互換性が取れる限りはバックエンドは無停止リリースができる。
残業時間は全社平均して10時間だけど深夜に趣味で新機能の開発とかしてるので実質200時間とかある人もいそう。
俺は一応残業は全部申告してるけど、そもそもゲーム業界は裁量労働制が適用できる業界なので残業代などない。
というわけで業界が好きで、かつ増田ぐらいの知識があるなら1000万は30代になったらいけるんじゃないか。
20代でも500か600万は固いでしょ。ただ業界が好きかどうか/その業界が儲かってるかどうかによるので、
そこだけは妥協せずに選んでくれ。個人的に深夜まで新機能作っててもそんなに疲れないんだけど、
前職のSIerでPMやってたときは定時内ですら苦痛だったわ。客とか上司の顔見るたびに作り笑いしてたけど
転職間際とか引きつってた記憶がある。ちなみに年収270万君が例に出してる会社のひとつなんだが、確かに
入社難易度は高いと思うが(主に学歴フィルターの面で)中にいる人の技術的なスキルは散々が多かったぞ。
(年収270万で)プログラマーを引退して、医学部にきた俺が真面目に考えてやろう。
真面目に読んでいて、ちょっと気になる箇所がある。たとえば PostgreSQL を postgre とか書くヤツは現場では嫌われるぞ。少なくとも postgres と書いてくれ。お里が知れるぞ。
消えていくエンジニアの特徴だけど、叱責されたり馬鹿にされるのが嫌で VCS にコミットしないヤツ、または貪欲にコードレビューをされるのが嫌がるやつは、成長しない。
この業界は数年前には『デジタル土方』と揶揄される業界でした。ちなみに、アメリカでも「テック系はハードだから避ける」という雰囲気でした。つまり何をいいたいのかというと、ソフトウェアの開発者っていうのは「泥臭い領域」なんだよ。エリートとは程遠い場所にあるというね。
いやぁ、是非とも楽天で働くべきだよ。どうせ野村総合研究所とか NTT DATA なんて無理だと思うから。
うん、ココはまずい。基本的にフロントエンドなんて給料が安いのよ。だって、誰にやらせてもデータベースにクソなDCLを飛ばせないから。逆に、データベースを触れることができるプログラマーはリスクと責任が大きいから、給料が高いのだよ。B4 になってもそれが理解できていないようだと、この先くらいよ。
君はソフトウェア・エンジニアになりたいのだろ?世の中は分業で成り立っているのだから、全部やろうとするやつはアホだよ。
インターン生はお客さんなの。君のスキルが通用したのはすごいと思うけど、同じ感覚で仕事はできないから注意しときなよ。
なに言ってるの?そんなことは言い訳にならんよ。プログラマーになりたいのだろ?勉強をしろよ。
逆にいうと、あなたがインターンとして週3で20万円貰えていたのは、参入障壁が少ないからでしょ?強強エンジニアが生き残っているのは、それだけすごいということだよ。
いやぁ、違うと思うよ。その問題が「難しい」なら切り分けて、上に「ココが自分の能力では解決できないです」と持っていくだけなんだからさ。CS じゃないのだったら、仕事をするまで「扱わないまま」なんだよ?しかも、土日に勉強する気もないとなったらいつするのさ?
諦めなよ。ソフトウェアというものが「変化できることに価値がある」ものだから。変化する業界はストレスフルだけど、立身出世する可能性が高いでしょ?安寧なばしょではないの。
いやー、CSでない博士課程に行って、雇ってくれる企業があるかね?無いと思うけどな。
この時点で、君はコピペしかやってきてないことが理解できる。おそらく QUIC か MQTT あたりだろ?逆にいえば、それが実装できたら他社と差のつけられるプロダクトだったはずだ。つまり会社の利益の源泉であった部分をみすみす実装できないようでは、そこらへんの専門卒以下だぞ。
ムカつくというか、虫酸が走る書き方だ。箇条書きにすると、
プログラミングに年齢はないから。自分は9歳ではじめたけどね。
あー、俺も天才が高校のときにいて、マーチの情報工学と旧帝の院の学費を会社持ちという驚異的なやつがいたよ。今もブログ見てると、Android と iPhone のアプリを書いているみたいで、元気そう。
それを上手にコントロールできるプログラマは世界中にもほとんどいねぇ。むしろ、月20万でやるもんならギルドから苦情が来るぞ。オレもアビームの人に給料を答えたら、「こんなヤクザな会社はやめろ」と耳うちされたよ。
人より良い経験をしたいという願望はあるのは素晴らしいと思うよ。しかしながら、君が到達したノウハウは他人にもできることだからね。ワン・オブ・ゼムになりたくないなら、努力し続けることだな。勉強をするのをやめたら、数年で中卒に負ける世界だからな。覚悟しとけよ。
P.S. 医学部に来たのは家庭の都合だよ。それに、自己顕示しないと「場末のコーダー」で読んでもくれないだろ?年収については、自分も低いと思うよ。なぜ低かったかというと、都内私立大学多浪中退の自分にはベンチャーの皮を被った助成金搾取がメインの反社会的勢力のフロント(ベンチャー)企業ぐらいしか相手にしてくれなかったからだよ。そこの会社は外国帰りの MDMA をキメて、未成年の子女に手を出しては警察沙汰スレスレのことをしているキチガイが社長をやっていて、人工知能を作ろうと学生インターンを酷使している会社だったのだけど、「サイバーエージェントに紹介する」という嘘にひっかかって、特定派遣事業の免許がないのに客先常駐させられ、土曜は帰社日、日曜は社長の Python の勉強会に参加させられる、というブラック会社にいてピンはね率(60%)となると、まともに考えることもできず働くアリになってしまってたからだよ。
P.S. ② 年収については、初日から派遣先の会社に引き抜きのオファーをもらって、2ヶ月後に新しい会社に移動したけど、300万だったので CodeIQ というサイトで転職をする準備をしていたよ。たしか、DMM とかサイバーエージェントの面接にいこうとしてたような記憶。その後で家庭の都合で、医学部に来たけど。
P.S. ③ 医学部医学科の6年生だよー。みんなが嫌いな私立医学部だけどね。ちなみに、俺もこの大学が嫌いだ。
P.S. ④「GraphQLをわざわざ書くのは理解できるけどな。」そうだとすると、REST や SOAP も書かないとまずくない?書くのだったら「Rails と Next のデータ受け渡しにGraphQLを使った経験が」という感じだと良いと思うけど。
P.S. ⑤「野村総研とデータを挙げるあたりSI寄りの仕事してたのかな。 」ちゃうねん。オレっちは多浪したからさ、そこのエントリーシートをかけなかったのよね。まぁまぁ大学が名門でさぁ、OB が誘ってくれるけど、年齢で弾かれて辛かったねん。
P.S. ⑥「ダウト。学費をどうやって稼いだんや 」えぇ、親の金です。だから家庭の都合でと書いてるじゃろ。
P.S. ⑦「本当に医学生ならここ数年の技術についてこの指摘ができる程詳しいわけないし少なくとも10年位は業界にいないとこういう感覚は身に付かない。 」たしかにおかしいよな。Kubernetes や Terraform を弄って、CI は GitHub Actions、CD には AWS CodeDeploy を使って、ブログは Jekyll で静的サイトジェネレータを使いつつ、自前のサービスを立ち上げるために Rails, Next, React, PostgreSQL, Redis, Kafka, Elasticsearch, S3 の勉強をしつつ、スマホ環境のために Kotlin と Swift を触れているなんて変だよな。そういえば、Docker が来るまでは Vagrant で環境をつくっていたのも忘れてたよ。あと Rust を今年に学ぶ言語にするなんて、受験生にあるまじき行為だよな。うん。
P.S. ⑧ 年収については、基本給が 22万で、残業が200時間超えたらプラスだった気がする。あと、反社ベンチャーは「ポートフォリオの作成にまる一ヶ月間で拘束された、しかも無給で」という時点でヤバいのだけど、その会社にコミットしたのは「サイバーエージェントに紹介する」ということだけであって、同時期に DMM も面接に行けそうだったのよね。馬鹿なことをした。
P.S. ⑨「特にフロントエンドを見下す感じとか」オレ自身はフロントエンド出なんだよ。何を隠そう、Adobe Flash のゲームをつくっていたから。それでもって言うよ、バックエンドが一番大切だと。
P.S. ⑪「5~10年前に人売りに捕まった話とするなら、年収270万も現実味を帯びる。」特定派遣は消えてくれてよかったよ。俺のところは特定派遣すら未登録だったけど。
P.S. ⑫「いい医者になるのだよ 」うん、頑張る。「オッサン」「社会不適合者」「あるき方がキモい」「プログラミングwww」「同じ班になりたくない」「親も頭が悪い」「生きてて恥ずかしくないの?」とか言われてるけど、頑張る!
P.S. ⑬ 「フロントエンド別に給与低くないよ。」えっ、そうなの?WebDesigning を読む限りだと、400万もいかないイメージだけど。
P.S「医学部6年でまだプログラムに興味あるの不思議。」好きなんだよ、言わせるな///
P.S. 「フルタイムじゃないのでしょ?」いいえ、東京都内でフルタイム(ひどいときで、朝7から夜24)でしたよ。入った会社が「法律よりも、派遣先の評価」という会社だったからね。
P.S. サイバーエージェントさん、ときどき御社の社名を使って「弊社に恩を売ると、サイバーエージェントに紹介する」というベンチャーが跋扈しているので、どうにかしてください。わたくし、1ヶ月間もその嘘で jQuery と Django を回収させられた挙げ句、月給 2000円だったのですけど。本当に千円札2枚だったのですけど。ついでに、Android(Java) と iPhone(Objective-C)と jQuery を使ったフロントエンドシステムに、バックエンドに Rails + Postgresql のシステムで、AWS を介したサービスを作らされたのも「サイバーエージェントに紹介する」と言われたからなんですけど。いったい、何なんですか?お前ん所は、コンプライアンスどうなってんじゃ。
P.S. 「好きそうだし医学部卒業してシレッとgoogle行ったれ 」無理っすよ。オレのスキルじゃ。
P.S. 「病院は」親がクリニックを持っていたけど、潰したよ。クリニックは人に患者がついていて、アルバイトを充てがっても患者さんが不幸になっていくのをみちゃったからね。自分は責任を持って患者さんを見たいから、バイトなんて使わないよ。
P.S. 自分はコードを書きたいタイプだったから、SIer みたいな UML とか書いて下請けにコードさせるみたいなのは絶対に嫌だったのよね。だから SIer にはならなかったよ。やっぱり、現実にある計算機が解決できる問題を、より直接的に触れて解決したいと思っているから。仕事がハードでも全く問題なし。
P.S. FPGA すごいよね。ザイリンクスとアルテラが Intel と AMD に買収されて、すごいと思ったよ。2010年頃だっけ?、CPU の限界を FPGA で突破しようという話があったけど。手を出そうと思ったけど、高性能なチップが 100万ぐらいして挫折した記憶があるよ。
P.S. 「東海大の医学部・学士」は自分は大学を卒業してないから無理でした。あと、それ以上の詮索はやめてくれ...
P.S. 「MySQLそんなに嫌いなのか。」そんなこと書いたつもりはないが、あれ?確かに MySQL は PostgreSQL より嫌いたけど、それは Oracle が親元だったり、Unicode の扱いがファッキンだったり、ストレージエンジンが切り替わるときにカオスな目にあったけどさ、MySQL は好きだよ。お世話になったし。
P.S. 給料については契約後に言われたのよ。というか、もともとは「サイバーエージェントに紹介」するという理由で、ポートフォリオの作成や Django の改修を手伝ったつもりで、入社とかする気は全く無かったのよ。それが、いきなり他所の会社に面接を受けさせられて「君は明日からXXで働くから、履歴書を書いてね」と言われて、抗議したら「俺に恥ずかしい思いをさせるのか!業界に入れなくするぞ!」と大声でシャウトされて、気がついたらあっちが用意した履歴書に拇印してしまったのよね。有料職業紹介と派遣登録をしてない会社だったから、そんなかとはできないはずなんだけどね。ホームページには「年収550万」と書いてあったけど、実際はまったく違ったのだけどね。
P.S.「うーん、いらないかな。IT土方としての仕事しかないと思う。」だよな。おとなしく医者になるよ。ありがとう。
P.S. Elasticsearch は全文検索機能がほしいからやってるよ。Redis はインメモリなセッションストアとして使いたいのよ。Kafka はさ、twitter のファボをじっそうしたいけど、RDB の書き込み速度が上がらないから利用したいの。TensorFlow は全く理解できてないよ。それは、指摘されたとおり。
逆に聞くけど、以下の知識があったらどれぐらいもらえるわけ?東京23区で。
追記----------------------------------
文の拙さや僕の不甲斐なさについてはたくさんのご指摘をいただきまして,もう十分ぴえんぴえんできたので,これから読まれる方は,タイトル(本題.まじでアドバイス欲しい点)について,この若造のエピソードを見てどう思うか(僕へのアドバイスでも,一般論に汎化させたもの嬉しい.語気荒めでもいいので)のコメントをいただきたいです.
---------------------------------------
最初のいくばかを使って,自己紹介とタイトルの理由,この文章を書くに至ったエピソードを話させてください.
html, css, javascript(jquery, express, react(next), vue(nuxt)), python, php, sql(postgre, oracle), graphql, ruby, swift, solidity, unity, c, c++
業務レベルじゃなくていいならgo, kotlin, java, scala, dart, julia,後fpgaも少し.ハードウェア開発は結構苦手で回路図とか上手く書けません.
と主にチャラいところを薄く広くやってきてます.バックエンドは大体firebaseかgcpに任せているので,インフラあたりひいてはネットワークの知識が薄いです.大学もプログラミングはしますが,CSではないので受動的に学ぶ機会も特になかったです.何回かCTFにも出場しましたが,あんまりいい成績を残せなかったというか,毎回毎回超人たちのすごさを見せつけられてました...
自分の理解できる技術(not 言語)で,面白い(バズりそうなもの)をラピッドプロトタイピングすることは好き・得意で,いくつかミニバズっぽいことも経験させてもらってきました.
B3の夏くらいのタイミングで東一上場企業にインターンに行きました.(インターンとしては3社目.過去2社は知り合いに紹介してもらったスタートアップで主に簡単なweb開発か,社内ツールの開発を緩くしてました)
最初の業務は,システムの使用言語を主流のものに置き換えることでした.書き換えなので,基本的に頭を使うことはなくドキュメントを読みながら楽しくダラダラ進めました.もちろん書き換え先の言語でどうセキュアにやったらいいかなど,上司にレビューを貰いながら,増える知識も気持ちよくやれました.何より給料が良かったです.週三フルタイムで20万弱はもらってました.客観的に見てすごい待遇だと思います.分不相応とは思いませんでした.
ただ,この業務を3ヶ月ほどで終わらせて,次に振られた業務が問題でした...
ニッチすぎるし比較的新しいプロトコルで細かく言えないですが,多分このプロトコルの実装に携わってるのは日本で10人もいないはずです.
つまり難易度が急に跳ね上がった.これが辛かったです...言語はC++とJava.
ネットで実装例なんてクソの欠片も載ってないし,プロトコルの理解のために特許資料や論文をくまなく読む羽目になったのは本当に辛かったです.こういう理解であってますか?と上司に聞いて,違かったらしいが,次にその実装に伴うDB改革のタスクも振られかけてきて,僕はパンクしました.
そのプロトコルも理解しきれなかったし,こんな大規模なDB設計なんてやったことないので何からやればいいか分からない.もちろん今となっては一つひとつ順序立てて要件を解決していけばいいと分かっていますが,別件も相まって当時の僕はパンクしました.
個人的な事情(別件)はかなり精神的に僕を苦しませ,毎日の睡眠時間が3時間くらいになってました.
で,僕はインターンに行かなくなりました.個人的な事情の方が忙しいからと言い訳をして.業務は別の人に振られることはなくペンディングになってるみたいです.
追記----------------------
ぶっちしたわけではなく,普通に出勤頻度がだんだん落ちて最後に精神的な問題でほとんど来れなくなることを伝えました.業務も締め切りなかったので損失というか上司の頭を悩ませるようなことは無かったと思います(思いたい)
僕の人間性に関するご指摘が多くて結構びっくりしました(文章がダメ)が,結構人に迷惑かけたりして嫌われるのとか無理な性格なので,そこらへんは意識してない所から矢が飛んできたなぁという感想です.
----------------------------------------
そのままずるずると1年間経ったのち更新をしない旨を伝え職場を後にしました.
ここまでが前提共有で,こっからが本題です.
追記-------------------------------------
(極めて個人的な)僕のつよつよエンジニアのイメージを共有すると,小中学生からプログラミングしてたり(高校生から始めたのといくつか次元が違う気がしてる),未踏や異能などを通して予算獲得経験があったり,企業でバリバリ働いてた経験があったり,Twitterでなにやらフォロワー多めで有名CTOと顔見知りだったり,みたいな感じです.百戦錬磨の30代~のエンジニアというより,中高で未踏ジュニア通してます,まだ20代前半です,もう1000万プレイヤー行きそうです.みたいなキラキラが僕ら大学生エンジニアにとって目につきやすく年が近い分,あぁ俺は未踏ジュニア落ちたなぁという劣等感とともに目で追っちゃうんだろうなぁ.なに書きたかったか忘れました...
------------------------------------------
Twitterとかで(主につよつよエンジニア達によって)エンジニアのべき論が語られていますが,その理想像として
・ひいてはそれを苦と思わない
みたいなのがあると思うんですけど,これ無理だなって思っちゃったって話.とともに,皆さんはどうなんですか?という質問がしたいです.
インターンする前は,正直ツケ上がってたんです.同世代からしたら自主的にプログラミングしてるし(チャラいところだけ),大企業でインターンしてるし.
僕はきっとつよつよエンジニア(の卵)として(新卒でという意味ではなく近いうちに(漠然))1000万プレイヤーにエンジニアとしてなるんだろうなと思ってました(実際会社のエンジニアは結構超えてる人がいたし,インターン上がりならエスカレータ式に入社はできた).
でも,上記のことがあり挫折してしまいました.今までチャラくて気持ちいところだけやってたけど,仕事となると自分が扱ってこなかった技術を使わないといけなくて,扱ってこなかったということはつまり難しいということで.それを勉強することが,また勉強すべきだという共通理解のある分野で生きていくことが無理そうだという気持ちになりました.
このB4の夏,某カリや某INEや知り合い企業に応募する予定やお誘いを受けましたが,このことがあり全てやめましたor辞退しました.
短期なので直接的には関係ないですが,今後のキャリアを考えていく中で,盲目的にエンジニアインターンを乱発していくべきなのか悩んでいるところです.
とは言え,プログラミング以外に一般的な大学生に優っていることが特にないので,プライドの高い(人よりいい思い・待遇をしたいという欲求が強い)僕はどうしたらこのジレンマを抜け出したらいいのか分からなくなっています.
同じような悩みを持っている方や,経験して乗り越えられた方は,ぜひどうお考えなのかお聞きしたいです.
就職した先輩には,ここ仕事量少ないしオススメだよって言われたのですが,聞いた給料に少し不満があり(ここも僕のプライドが高いめんどくさい,この問題を難しくしてる点),総じてこじんまりと(言い方が難しいですが)レベルの低いところで少なめの給料で暮らしていくという選択肢は許容できません.
これも踏まえ,僕のようなクズと言われても仕方のない人材はどうしたら上手く(ストレスレスで高収入の意)生きていけるのでしょうか?
追記------------------------------
ただの深夜の殴り書きのはずが,少し反応が増えたので,文章を少し直しました.身バレ対策も兼ねて.
文章が鼻くそナメクジだったり,(技術スタックのところで)エンジニア的に記法がうざかったらすいません(ただそういう文化というか認識も,なんかやってないなぁというか苦笑いしか起きない人間です.すいません.)
あと,釣りとかイきりとかのコメント多かったのは結構心外でした(文章がダメなのはそう).
どう考えたって,あの技術スタック(なんか強そうなのが目に見えてない and 言語名しか書いて無いから各言語のレベル低そう and チャラい(と認識してる)技術しかやってない)で,イきれないのは分かり切ってるし,イきろうとするならもっとカッコつけて書くし,成果物も全部提示するし.という認識でいてました.
あと,雑魚だしクズって自認してるので,あんまり雑魚とかクズって言わないでください.病んじゃいます.あせあせ.
いくつかのアドバイスをくれた方ありがとうございます。マネージャーやITコンサルは確かになと思い、今日そういう職についた先輩に話を聞いてみました。先輩には博報堂や電通のクリエイティブチームをお勧めされました。Mまで入れるとあと3年弱あるので、そこの周辺の職を探していこうと思います。カンマピリオドについて酷評がすごくて驚きでしたが(増田初心者)、それ指定の文書を書くことが時々あるので、設定がそうなってます。読みにくくてすいませんでした。
p.s. コメントに返信はしてないので、元増田を名乗る人は偽物です。
-----------------------------------
昔、バナナデスク(岡田崇司)という男が売り出してた「下剋上∞」という情報商材を購入した。
当時(というか今もだけど)、精神を病んで医者から就労許可が下りず、なんとか自分で稼ぎたいと思ってアフィリエイトに目をつけたからだ。
「○○するだけで50万円」とかではなく「頑張れば稼げる」という触れ込みにも真実味があると思ったし、人気もあったのでこれを選んだ。
その時点に限っていうならば無駄になったとは思っていない。
問題はそこからで、バナナデスクが開催した無料セミナーに参加したところから始まった。
こいつが「You Tubeで稼ぐ」という高額塾を無料セミナー後に発表した。
ブログだけではどうしても稼げなかった俺は、ブログとYou Tubeの組み合わせで稼いでいく、という文句に乗せられて参加することにした。
今でこそ馬鹿な話だと笑われるが、当時はいつでもサポートを受けられるということも魅力的に感じた。
今思えば内容はひどいものだった。
一昔前、よく観た人も居たのではないだろうか。
どっかのニュースサイトからかわからんけど、テキストをまんまパクってきて音楽をつけて映画のエンディングみたいに垂れ流すだけのクソ動画。
グーグルアドセンスを収益権を取得したあと、あれを最初の一月で100本作れと言われた。
そして一月目で慣れただろうから次の月では300本作れと言われた。
そして俺は律儀にそれを作っていた。
頑張らないと稼げない、という言葉にアホみたいに乗せられていた。
あの文字だらけの、今となってはGoogleに禁止にされたクソ動画はこうやって量産されていったわけだ。
アニメが放映されたら、そのアニメに出演している声優さんたちが出演するネットラジオの番組が放映される。
あれを録音してYou Tubeにアップすれば再生数を稼げる、と教えられた。
ただし、すべてを録音してしまうと著作権に引っかかってしまうからということで、音楽が鳴っているところは削除するように、と。
言われるがままに実行した。
そして著作権侵害ということで、俺のGoogleアドセンスは無効になった。
他のアカウントを作成しても、すぐに紐付けされて「このログインの AdSense アカウントは現在無効になっています。 」というページだけが表示される。
言われたとおりにしたのに著作権侵害に認定され、警告もなしに無効にされたことで異議申し立てを行ったが無駄だった。
そうして俺はアドセンスすらも取得できなくなった。
完全にはめられた。陥れられた。
俺が馬鹿だと言う人は多いだろう。
否定はできない。
だから深く考える余裕すらなく、すがりついてた。
精神疾患で、不調の日は本当になにもできない。
トイレにも這っていくくらい動けない。
なので動ける日、動ける時間はすべてそれに充てた。
でも俺みたいな一生懸命やってたバカは他にもたくさんいたはずだ。
高額な金を出して必死こいて頑張ってる人を踏みにじり、そうした金で「ポルシェを買いました」とか抜かすバナナデスク(岡田崇司)やえのやん(榎原佑太)を許すことはできない。
悔しくて悔しくて仕方がない。
後日、バナナデスク(岡田崇司)のメールマガジンで、「○○さえすれば、楽々稼げる方法を教えます」というようなのが届いた。
「頑張ったら稼げる」という触れ込みだったのに、それが駄目だとなると、こいつもこういう路線に変更したんだなと思い、そこでもまた騙されたということに気づいた。
バナナデスク(岡田崇司)とえのやん(榎原佑太)は今でも活動しているようだ。
YTM Final Editionとかいう、You Tubeで稼ぐという触れ込みの情報商材を、あいも変わらず販売している。
ハッピー「Windows 11」デー。Microsoft(マイクロソフト)は2021年末に発売予定の次期OSについて、これまでで最も詳しい情報を提供してくれている。対人コミュニケーションの大半がPCや携帯の画面を介して行われた1年を経て、同社はコミュニケーションソフトウェアを前面に打ち出している。
Windows 11ではMicrosoft Teamsがプリインストールされ、Apple(アップル)のFaceTimeのようなコミュニケーションプラットフォームとより直接的に競合することを目指している。FaceTimeと同様に、ここではクロスデバイスの統合が鍵となり、人々がデスクトップからモバイルへ、そしてまたデスクトップへと動く際に、よりハードウェアにとらわれないサービスを提供する。
これだけ多くのビデオチャットプラットフォームが溢れている時代に、Microsoftが2011年に85億ドル(約9425億円)で買収した、かつての強者「Skype(スカイプ)」の棺に最後の釘が打たれるのではないかという気がしてならない。Skypeでも試みたように、Microsoftはこのプラットフォームでコンシューマーとプロフェッショナルの間の境界線を曖昧にしようとしている。
Skypeを高いカネ出して買ったのに・・・って意見たまに見るけど、
TeamsのバックエンドってSkype網使ってんだよ。ソフバンのサービス使えばTeamsから一般電話にかけられるけど、Skype網使ってるから可能なこと。
さらにいうとLyncっていうTeamsの前身プラットフォームが昔あって、それはSkypeのインフラ丸ごと使ってた。
https://anond.hatelabo.jp/20210617075257
上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて
2〜3個プロジェクト経験したらテックリードの素養が既に身についてそう。
プロジェクト的にもどっちかが弱いと
Rails/DjangoにjQuery+Bootstrapみたいな構成や
Amplify/FirebaseにVue/Reactみたいな構成も全然あるので
面接はなんとか抜けてもらうとして、
チーム開発での最低限の目標としては、
成果物から、指導、学習コスト、レビューコスト、技術的負債、マネジメントコストを引いた分が正になっていれば
ひとまず「チームに居ていい人」と見なされそう。
チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、
一旦は、正の生産性を目指してほしい。
以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、
一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。
似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。
どっちかしかやらないならJavascriptがおすすめ。後ででてくる、Flaskは適当にExpressとかに置き換える
現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。
どちらも、Python2とES2015以前の記法というレガシーがネット上に転がってるので参考にしないように注意。
・一貫性があって
・正しい書き方がされた
お手本プロジェクトをなにか(githubや書籍など)で手に入れて読むべき。
おそらくフレームワークに乗っかっているので並行して進めることになる。
話の流れで先にこっち
現在のコーディングのグッドプラクティス、デザインパターンはフレームワークの形をしている。
なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。
TypescriptもVue.jsも書き方をどこまで取り入れるかが使用者の裁量に任されてるし、
開発でVueとReactのどっちを使うかはチーム次第なので、
一旦React+Typescriptでガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。
2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。
パッケージとかテスト、タスク&デプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。
バージョン管理とコンテナの思想が優れているのは自明なので、これらはツールと見ていい。
そして、後からプロジェクトに入った人がプロジェクトの流儀に沿って使う分には難しいことはなさそう。
採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、
そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。
構築できる、ではなく、触れる程度で良さそう。
gitはプロジェクトの流儀によると書いたが、git-flowのイメージ図を理解して運用できるのがよい。
https://qiita.com/KosukeSone/items/514dd24828b485c69a05
こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。
あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。
地味にSSHでログインした先の環境だと、vimが主要なテキストエディタになるので
vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。
→ ファイル開いて入力モードに切り替えて書き込んで保存して終了
細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。
これが意図なら
この辺の機能を持った小規模Webアプリを作ってHerokuでデプロイすれば一旦完成とみなしてよさそう。
コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?
慣れると1日あればいけると思う。
フレームワークもなんでもいい。
Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。
余力があれば複数個触ってみたり、人から勧められたらそっちでも。
最近はサーバーレス&NoSQLが流行ってるのでFirebaseとかもやればいいと思う。
に尽きる。
計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて
それらに対して分散や非同期処理で解消しようとするとか、
ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為を
計算量を意識するだけなら、AtCoderのABCのC〜D問題辺りが解ければ十分。
有名な脆弱性や攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている
のでアドリブをせずに正しい書き方でやれば良い。
開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、
ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。
開発の勉強のやり方としては、
・正しいコード見本を手に入れること
この辺りの習慣があればやってけんのかな、
その他、チーム開発って面では
TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。
この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、
そしたらやってけるんちゃうーって感じ。
取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。
重要度が低いものは載せていない。たとえばHTMLとCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。
逆に言えば以下に挙げる技術は、そもそも概念自体がプログラミングにとって普遍的なものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。
基本的に現在では、バックエンド・フロントエンド・運用保守全てができないエンジニアに価値は無い。
以下に挙げた技術(①⑤⑥は他の言語やフレームワークで代替可能)が身に付いていなければまともな企業に就職することは難しい(もちろん、下らない業務システムを下請けで作ってる底辺企業には入れるだろうが)。
経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。
特定の言語やフレームワークの書き方を知っていること自体に意味は無い。
重要なのは、他の言語やフレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。
この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。
基本的な構文や、よく使う標準ライブラリは勿論、高階関数・クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。
言語のみではなく、パッケージ管理、単体テスト、タスクランナー等の周辺ツールの使い方も熟知している必要がある。
また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。
Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、
多くの場合、本番環境やテスト環境はLinuxサーバーであるから、以下のような基本的な概念と使い方を知っておく必要がある。
環境構築、CI、デプロイなどは、現在コンテナを使って行うことが当たり前になっている。
これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。
Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。
フレームワークを覚えること自体が重要なのではなく、Web開発の基本を習得することが重要。HTTP、ルーティング、データベース、SQL、認証、セッション管理などは当然すべて覚える。
データベースは、就職したらMySQLやPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。
作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。
ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式のドキュメントに従ってPostgreSQLを使用して下さい。
SQLite3はファイルにデータを持てる簡易DBなんだけど、Herokuにデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)
参考: https://devcenter.heroku.com/ja/articles/sqlite3
今の時代、フロントエンドをフレームワークなしで作るのはただのバカ。
2021年現在、実用的なフロントエンドのフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。
フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVueを完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。
アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。
高速フーリエ変換のような高度な数学は必要ないが、クイックソートや木構造のような基本的なアルゴリズムは当然、その性質を知っていなければならない。
それらは言語の組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。
また、プログラムを読み書きする際には、そのコードの計算量を見積もれなければならない。
セキュリティは言うまでもなく学ばなければならない。
有名な脆弱性や攻撃手法(XSS・SQLインジェクション・CSRFなど)が何だか理解していて、その対策を実装できなければならない。
各種暗号化技術や署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性は理解する必要がある。
「エンジニアって給料高いしホワイトらしいじゃん。大学卒業したらエンジニアになりたいからプログラミングの勉強しよう」と考えてるタイプの、大学1~2年生に向けた話を書こうと思う。
実のところ、お前らはギリギリなんとかなる可能性があるんだが、詐欺みたいな情報商材やスクールに騙されてやすい層でもある。
頼むから騙されないでくれ。見ていて心が痛む。
これ以外の層、例えば転職しようとしてる奴らには少なくとも増田からまともなアドバイスはできないが、参考になるところはあるかもしれない。
あと、情報系の奴は素直にそのままCSを学べ。学部の勉強を頑張ってくれ。
大学時代で長期インターンかアルバイトで経験を積み、現場のノウハウを身に着けてから新卒でWeb系ベンチャー(給与は並程度だが、ホワイトで今後のキャリアにも繋がる)に就職
これが唯一の正解というわけじゃないが、現実的な路線の1つとして推しておく。要は完全未経験の人がまともなエンジニア職に就くのは難しいため、未経験状態を脱してから就活に臨もうというプランだ。
今回はこれを達成するための話をする。
まず基本的にお前らははカモ扱いされている。前提知識があれば詐欺みたいなスクールに引っかからなくて済むので最低限でいいので把握しろ。
エンジニアは給料が他の仕事より高い部類だと思う。だが、それでも平均で500~600万円台だ。普通に1000万円もらえると思ってた奴はまずこの現実を受け止めろ。
平均でこれなんだから、未経験者が1000万円で雇用されることなどまずありえない。
何の仕事でもいいから雇う立場を考えてみろ。未経験者に1000万円出すか?冷静になって考えれば分かると思うけどな。
もちろん、働きやすさや将来性などを鑑みるとエンジニア職を目指す意味はあると思うが、夢を見すぎないことは大事だ。
「年収1000万とはいかなくても、フリーランスなら高収入かつ自分のペースで働けてウハウハなんでしょ?」とかいう奴も時々見かける。
馬鹿を言うな。これも未経験者には無理なんだよ。未経験者が目指すべきは就職、これ一本で考えろ。
至極当然の話だが、フリーランスはどこかの会社から仕事を発注してもらうことで報酬をもらっている。発注者にとって魅力的な人材じゃないと仕事はもらえない。
仕事を発注する会社はどういうフリーランスを選びたいと思う?そりゃ経験者だよな。スクールや自習くらいの経験しかない未経験者に頼むわけねーじゃん。
「IT業界は人手不足だから未経験者にもチャンスが」とか言われてるけどさ、それは「ちゃんとしたスキルを持った人材が足りてない」という意味であって、人がいれば誰でもいいという訳じゃないからな。
日曜大工で犬小屋しか作ったことないような人に家を建ててほしくないだろ?エンジニアもそれと同じだよ。
とにかく、いくら社会や就活が嫌でも「フリーランスになればいい」という甘言だけは真に受けるな。痛い目を見るぞ。
ここはフロントエンドエンジニア、バックエンドエンジニアとかそういう話じゃない。
お前ら、「稼げて楽な仕事」「将来性がありそう」だと思ったからエンジニアを目指してるんだよな。まずはその関心に基づいた分類を知ったほうがいい。
IT企業には大まかに言って、自社でサービスを企画・開発してリリースしてる企業(自社開発企業)と、顧客から受託開発をする企業の2つに分けられる。
みんなが憧れるキラキラホワイトエンジニアは大抵が自社開発企業だ。受託開発の会社は俗に言うIT土方になることが多いが、どちらも職種としては「ITエンジニア」扱いされる。
「エンジニア」という雑なカテゴリでしか仕事を認識してないやつは、上手く騙されてブラックな受託開発の会社に吸い込まれていく。
当たり前だが、ブラックな方が人手不足なので未経験でも就職しやすい。
そこで、「就職保証」をやっているプログラミングスクールの多くは、キラキラホワイトエンジニアのイメージで人を集めておいて、ブラックな会社に送り込むようなことをやっているケースがある。
最低でもこれには引っかからないようにしてくれ。
ちなみにブラックなところは延々と単純作業をやらされ、転職するためのITスキルすらつかない例もある。
そういう環境に放り込まれると基本的には詰むので、1回でも足を踏み入れてはいけない。
もちろん自社開発が100%ホワイト、受託開発が100%ブラックだとは言わない。
それぞれ例外はあるし、あくまで傾向にすぎないが、受託開発と聞いたら一旦は身構えるくらいの心構えではいてほしい。
プログラミングスクールは「未経験でも頑張れば誰にでも出来る」としか言わないし、広告でも未経験者の体験談を列挙して誰にでもできるような雰囲気を醸し出している。
こういうのを見ると「自分も出来るのでは」と思うかもしれないが、残念ながら物事には適性というものがある。プログラミングは万人が習得できる奇跡のシロモノでもなんでもない。
頑張っているのに何も習得できない人も実際に多く存在する。逆に未経験なのに恐ろしい勢いで理解する人もいる。これらは単純に適性の問題であるとしか言いようがない。
体育が苦手、歌が苦手、数学が苦手、古文が苦手、それと同じで、プログラミングが苦手というだけだ。
苦手な奴が苦しみながら長時間頑張ったとしても、得意な奴には楽勝で追い抜かされている。そんなことを仕事にするメリットはあるのか?
他の分野については得意・不得意が存在することを受け入れているはずなのに、何故かプログラミングだけは「誰でも短期間で出来るはず」と思いこんでいる人が多い。
これはプログラミングスクールのPR手段が詐欺まがいなのが悪いのかもしれないけどな。
もし適性がなかった場合、プログラミング自体に魅力を感じているわけじゃなければ素直にエンジニア以外の道を進む方がよい。ITに関心があるなら、IT企業の企画職みたいな携わり方もある。
別にエンジニアになれなくたって高給・ホワイトな仕事はいくらでもある。なんならエンジニアを超える待遇の仕事だってあるわけだ。
適性がないのに無理してエンジニアになろうとしたところで、先程書いたようなブラック企業にしか入れないかもしれない。それよりは別職種でホワイトなものを探すほうが絶対に良いと思う。
どんな仕事でも就活を突破したら終わりではない。その先にその仕事が続くことを考えると、自分の得意分野で勝負するほうが良いだろう。
語学学習の雰囲気でやってんのかな。プログラミング言語の文法を覚えたらもうプログラミングを習得したと思いこんで、現場に入ろうとする人がいて驚くときがある。
文法っていうのはツールの使い方みたいなもので、それ自体がエンジニアの価値じゃない。プログラミングの勉強に終わりはないから表現として正しくはないかもしれないが、文法ってのは10%未満に過ぎない。
例えば、ひたすら包丁の使い方だけ練習してても凄腕シェフにはなれないじゃん?プログラミングもそれと同じ。
エンジニアってのはプログラミングをするだけの人じゃなくて、プログラミングによって何かを作る人だからな。
プログラミングのための環境構築みたいな周辺知識もしっかり鍛えて、ちゃんと何か作れるようになろう。
「環境構築なしでプログラミングが勉強できます」と謳っているサービスは便利だけど、そこだけで勉強を終わるのは絶対にダメだぞ。必ず自力で何かをリリースできるようになってくれ。
金があったら好きにしろとでも言いたいが、入る前によく考えてほしい。
スクールに入ろうとしている奴は「先輩エンジニアたちはみんなスクールを卒業してエンジニアになった」と勘違いしているのかもしれないが、そんなことはない。
未経験でエンジニアになれているのは、だいたい自主的に勉強して才能を伸ばした奴だ。スクールがきっかけだった奴もいるかもしれないが、あくまできっかけだ。スクールの修了=エンジニア就職と考えてる奴はブラック企業に吸い込まれると思うぞ。
とはいえ完全に独学するとなると、何から始めていいのかわからないという問題はあると思う。そういう意味で何かしらカリキュラムが設定されているスクールが便利なのはわかる。
ただし、数十万するようなスクールに行く必要があるのかは甚だ疑問である。
まずは1ヶ月数千円くらい、格安で利用できるオンラインの教材からスタートするといいだろう。
オンライン教材でも質問サービスを提供しているところはあるから、完全に1人というわけじゃない。
もし、オンライン教材だけで能力が身につけられないと思ったら、その段階になってからスクールを検討すれば十分だろう。
ただし、エンジニアは自分で調べて自分で習得するスキルが必要な仕事だ。もしオンライン教材ですら難しいのであれば、適性が無い可能性を少しは考えておいた方が良いかもしれない。
#駆け出しエンジニアと繋がりたい 的なハッシュタグがあるんだけど、粗悪スクールのカモみたいな奴がやたら多い。
以前定期的に観察していたが、何やら教材の数をこなすのがメインになっている人が多い。
本を読んだりスクールに行ったりといったことでいってエンジニアの力が身につくわけじゃないので、これを見ていると悪い影響を受けやすいと増田自身は思っている。
心細いから初心者同士で繋がりたいと思う気持ちはわかるが、詐欺師まがいの粗悪スクールが紛れ込んでくるハッシュタグで傷の舐めあいをするのはリスクでしかない。
競技プログラミングほどのアルゴリズム能力を求められる会社はまだまだ一握りだ。しかもそういう企業はトップクラスの人間を求めている。
トップクラスの人間は東大や京大で情報系を専攻しているような人間で占められており、悲しいが「未経験の文系が競技プログラミングで大逆転」みたいな事例は聞いたことがない。
趣味としてやる分には全然良いが、競技プログラミングさえやれば就活で安泰だとは思わない方が良い。
それよりも、未経験者レベルであれば、自分で何かプロダクト(Webアプリやスマホアプリ)を一通り作れる方がよほど評価される。
時間が限られているなら、開発スキルの養成を優先した方がいいだろう。
実はこれがあるから、大学生なら未経験からでもエンジニアを目指しやすい。1年・2年でなるべく早い段階でアルバイトかインターンで実績を積み始めるといい。
「未経験から転職」ではこの手が使えないので厳しいという事情もある。
一般的な就活でアルバイトは職歴・経験としてみなされにくいが、エンジニア新卒採用では経験としてきちんとカウントされる場合が多い。
ただし、短期インターンだとプラスにはなりづらいので、インターン≧長期アルバイト>>短期インターンくらいに捉えておくといいと思うぞ。
Web系エンジニアの求人はバイト情報サイト・バイト情報雑誌には掲載されていない場合も多い。載っていても微妙なケースだったりする。
各社の採用サイトやWantedly等だけに掲載されている場合が圧倒的に多いと思うので、そちらをメインに探せ。
まずは自分が知っているWeb系企業の名前と「アルバイト」みたいな検索を掛けてみたら、案外見つかると思うぞ。
「初心者はどの言語から始めればいいのか」というのはよく見かける疑問だが、特に答えはない。別にPythonから始めてもいいし、Rubyで始めてもいい。PHPも悪くない。どれでも正解だ。
そこで、自分が希望するバイト・インターンの候補からスキルを逆算するのも一つの手だと増田は思っている。
例えば、ちょっと興味あるけど採用されるかは分からない、というレベルの企業が「PHP・Ruby・Python・Java等によるWebアプリの開発経験」をアルバイトに求めていたとする。
このような場合、特に注意書きがない限りどれか1つの言語で条件を満たせばよい。一番最初に書いているくらいだからPHPを中心にしているんじゃないだろうか?とアタリを付けて、PHPを中心にした開発スキルの習得を目指せばよいだろう。
良いことなのか悪いことなのかわからないが、日本のWeb系エンジニア新卒採用は学部で足切りされることが少ない。
要は文系学部出身でも、アルバイトや個人開発で実績があれば問題ないケースが多いということだ。
海外だとCSの学位を要求されることも多いので、これに関してはお前ら日本で学生やってて運が良かったなとしか言いようがない。
ただ、この風潮いつまで続くかわからない。今後5~10年スパンくらいで考えるとCSの学位を重視するブームが来てもおかしくはないと思う。
実は結構いるんだけど、プログラミングスクール卒をまるで学歴のように誇示している奴はかなり不利となる。
正直なところ、採用側であるエンジニアはプログラミングスクールに対してネガティブなイメージを抱いている人が多いのだが、スクール卒の人間はそれを誇りに思っている事があるらしくミスマッチが生じている。
これだけ書くとスクールを馬鹿にするなと言われそうだが、ネガティブなイメージには2つ理由がある。
まずは質が悪いスクールが多いこと。さっきから言っているが、昨今のエンジニア志望者は楽して稼ぎたいからエンジニアを目指すという奴が増えている。
その結果として情報商材のパラダイスとなっている。再生するだけで英語力が身に付くCD、絶対に株で儲かる方法、そんなレベルのプログラミング情報商材が大量に出回っている。
これはスクールも例外ではなく、そのレベルの教材だけで生徒をエンジニアとして送り出すところが多い。エンジニアはこの状況を知っている。
それに、プログラミングスクールは無限にある。採用側はそれらのカリキュラムを調べるほど暇ではないため、スクール卒となると全体的にそういう扱いをせざるを得なくなる。
もう1つはスクール出身者の問題。わざわざスクール卒と書く奴は書くことが他にない。
未経験者の採用における理想像は「エンジニアとしての就業経験はないが、これからOJTで学んでいけるだけの基礎知識があり、技術に興味があって今後も新しいことを学ぶ意欲のある奴」という辺りになる。もちろん会社の文化へのフィットなどもあるがな。
ただ、新しいことを学ぶ意欲というのは評価しづらい。誰だって聞かれたらそう答えるじゃん。そこで実質的には、自主的に何か作った経験があるか否かがその指標として機能している。
「技術に興味があれば、習得した技術をより深めて自主的に何か作るもんじゃないの?」という考えを持っているエンジニアが多い。