はてなキーワード: javaとは
研究やラボで遊ぶ人たちは基本的にシステムやプロダクトの下に膨大なユーザーをぶら下げて、事業を回すための道具だという認識が薄いんですよ。
スキルとかいうふわっとした単語やJAVAなのかJavaScriptなのかもわからないJavaなんて単語使っちゃうような人にはわからないのかもしれんが。
そもそもスキルってどの分野のどの深度だよって話は20年前でさえそこそこ体系化されてる。
アーキテクチャなのかコーディングなのか電話や電力みたいなファシリティ隣接領域、なんならユーザー向けヘルプデスクだって相応の専門性がある。
客先常駐は辞めとけ。よく言われることです。
でもITには未経験だと客先常駐くらいしか無いのです。経験者でも客先常駐しかないのに未経験だと尚更。
私はそこそこ有名な大学の院卒で、27の時に他業界からIT業界に入ったけども、普通に書類選考で落とされてました。最終的に微妙な企業2〜3社しか面接まで行けませんでした。
当時は何も考えてなくて、とりあえず経験を積みたい、と採用してくれた企業に入社しました。年収300万で。ちなみに前職だと年収420万だったからめちゃくちゃ下がりました。
そこそこの学歴で、しかもバリバリの理系でも、未経験だとやはり採用してくれる企業は少ないんです。
ちなみに転職した時は30歳でしたけど、未経験の時に比べて書類選考の通過率はとても高かったです。
安いんですよ、月収20万ほど。
スキルが身につかない客先もあるんです。というか結構多いです。
自社のパワハラは上に言えば対応できます。でもお客様からのパワハラは上に言っても防げません。これもガチャです。
客先常駐って永遠の就活生です。1つの客先が終われば次の客先の面接に。次が決まらないと解雇です。歳を取ったのにスキルがないと客先も見つからない。だから解雇です。
客先常駐のメンバーは使い捨て。忙しい時期はこき使うけど、リリースできるくらいに落ち着いてくると切られます。1つの製品を設計からリリースまで関わることはまずないです。だからやり切った感もなく、愛着は失われていきます。
客先常駐は責任のある作業は損なだけです。責任は人になすりつけるもの。失敗は自分の責任にしてはいけません。なぜなら客先常駐はただの使い捨てなので責任なんて取れませんから。
正直、客先常駐は辞めとけ、と言いたいですが、IT業界の大半が客先常駐なので、辞めたくても辞められないんです。
IT業界は運です。いい企業が運良く求人をかけてれば、年収が高くもなりましょう。いい企業はホワイトなので技術力よりも人間性や若さを重視したりします。実力があっても若さがないと、いい企業に入れなかったりします。文系でもいい企業に入れたりします。
でも逆に運がないと実力があってもいい企業に入れなかったりします。だから経験を積むために客先常駐に入らざるを得ないと言う考え方もあります。
以下は客先常駐に向いてない人です。
正直、公務員を辞めてIT入るのはお勧めしません。年収300万ですよ?年収はなかなか上がらないですよ?年収一時的に下がってもいいから、とか思ってたら一生下がったままかもしれませんよ。
個人的にすぐ辞めちゃうエンジニアの大半は、向いてないのにエンジニアを目指しちゃった人です。向いてない人が来ちゃいけない業界なんですよ。
自分で考えない人。目標達成に向けて努力できない人。指示待ち人間。このタイプは一生大成しません。ずっと安月給で働くならいいですが、IT業界の上層にはいけません。
とめどなく客先常駐について書いてきましたが、私は客先常駐に挫折して、一度会社を逃げ出すように辞めてます。
私はITスキルについて一定以上であると自負しています。もともとは研究職を目指していたくらいの実力があります。そんな私でも客先常駐ガチャに失敗し、パワハラ上司にあたると簡単に挫折してしまうのです。
客先常駐の怖いところ、それは客先常駐ガチャです。人によっては客先常駐はそれほど苦痛ではないと言うでしょう。しかし、「今」が苦痛ではないだけです。ひとたび、客先を切られ、別の客先に行けば、パワハラを受けるかもしれません。
客先常駐は給与は低いです。しかしお客様が支払う単価は高いです。安くても60〜70万、高ければ100万や150万の場合もあります。その場合も給与は20〜30万です。
お客様は100万の価値を求め、私たちは給与20〜30万のつもりで仕事をします。そこに大きなギャップがあり、それゆえにパワハラが起こりやすい環境にあります。
長く働ける環境ではないのです。
私は転職活動をしましたが、それも難航しました。IT業界3年でしたが、堂々と人に言えるようなスキルが身に付いていなかったのです。
なぜなら、最初の客先は運用でした。次の客先はGUIツールを用いた開発。つまり、プログラミングにほぼ触れなかったのです。
そこでJavaでWebアプリを作りそれを売りにしました。しかし、Javaは客先常駐では人気のスキルですが、社内開発ではそうではないのです。
Javaは昔からあるプログラミング言語なので、できる人が沢山います。そのため、大型案件などの人を沢山必要とする案件ではJavaは人気の言語です。しかし、社内開発は少人数開発が多く、人を多く集める必要がないため新しいプログラミング言語が好まれる傾向があったのです。
結局私は技術力を評価されたのではなく、人柄と若さを評価され、転職に成功しました。
若さは大事です。技術力は定量的に評価できるものではありませんが、若さは定量的な評価が可能です。技術を身につけてから転職しよう、など思ってはいけません。若さの方がよっぽど貴重です。
SIerと呼ばれるところは、他のメンバの管理、もしくは技術リーダーなどをすることが多く、年収も高めなのでありでしょう。
パワハラが横行していてメンバーの謎の失踪が常駐化しているヤバい客先もあるでしょう。
しかし、一寸先は闇。
思ったより多くの反応を頂いていて驚いています。
語弊があるようなので補足します。
●研究⇒理学部系の研究者を目指してました。IT系への転職は未経験での転職です。
●未経験転職でももっと良い企業に行けたのでは?⇒若さゆえに転職で自分のアピールをするのが苦手で、しかも未経験だからまずは経験を積ませていただけるのならどこでも良い、と考えてしまっていました。
でも多分、転職で未経験なのに大手行けることはそんなに多くはないと思います。新卒だと学歴フィルターがかかりますが、中途採用だとかけにくいですし、そもそも大手は新卒採用で間に合ってるでしょうから、未経験を中途採用する必要がないですし。
●前職⇒理系スキルをほぼ活かせない業界でオタクには向いてないパリピ向きな職種でした。(教職です。)向いてないので辞めました。
最近はリモートワークも増えたので違うかもしれませんが、基本的にIT系は「常駐は必須かは分からない」けども、とりあえず客先常駐してもらう、というものなんです。
理由としては、①社内ネットワークに接続する必要がある、②ノートPCを配布してどこでもアクセス可能にするとネットワークの監視や紛失などで情報漏洩リスクが出る、③入館カードや守衛さんを配置して物理的なセキュリティを担保して盗難などに備えたい、④普通に協力会社さんがサボってないか目視で確認したい、などだと思います。
そもそも高い賃金が欲しくてプログラマーになったようなやつは勘違いしているようだけど
なぜなら経済として会社を支えているのはどんなときでも営業だからだ
現に9割9分の会社は技術などないが営業が優秀なので存続している
(ちなみにここでいう営業というのはプロモーションや戦略系も含まれる)
例えば流行の機械学習を生業としているようなベンチャー企業であっても
最新のトレーニング手法やパラメータ定義なんかを使っても得られる利益はほとんど無いのだ
Web系でもAngularだろうがReactだろうがVueだろうがどうでもよくて
とにかくデザイナーの出したものを忠実、もしくはそれ以上のものを生み出せれば技術などどうでも良いのである
という人もいるが、残念ながら全ての技術は5年後に負債になっている可能性が等しくあるということを理解していただきたい
そんな中で日本での人材流動性の高まりであるとかプログラマー育成問題なんかもあって
技術系(プログラマー)の市場価値が高まり、たまたま今だけ高給になっているわけである
卵が少なくなって卵の値段が上がったとしても
その卵が美味しいかと言われるとそんなわけはないのだ
どちらかと言うと腐った卵まで流通するのが恐ろしいところである
私が見てきたベンチャーの腐った卵には下記のようなジャンルがある
メガベンチャーや伸び盛りのベンチャー系に多く、特に旧帝大出身(特に東大)に多いのがこのパワハラ系
とにかく(自分の)理論が正しいということを前提に自覚無くパワハラを繰り返す
これが雇われ社員ならそれほど問題でもないのだが、経営者側のCTOなどだった場合は目も当てられない
テックだろうがベンチャーだろうが雇用主と雇用者という関係性は変わらないのに平気でゴリゴリパワハラを行う
雇用主側に主張されると組合も無い弱い立場の雇用者は何も言えない
その状況を理解していないのか雇用主側のパワハラはエスカレートしていく傾向にあり
社員は退職するが新しい人材は集まらずたいていの場合は逆に雇用主側が病む
この手のテックマウントパワハラ系の特徴は、ドメイン駆動や過度の抽象化、もしくは無駄な高速化や機械語への執念などが挙げられる
例示するのは難しいが、PRを上げてきた新人社員をSlack上で公開にボコボコに論破した上に
「社会人としてできて当たり前」
みたいなことまで説教を始める人を何人か知ってる
小さめで大きくなってきているベンチャーに多いのが、この結局全部自分でやる系
締め切りの前日もしくは当日、もしくは過ぎた後に自分で全部やり直す人
それまで部下や関係者が相談しつつ進めていても結局は全部ぶち壊して全部自分でやる
などというのは完全な素人で、単に他者に業務依頼できない人である
「言ってくれればもっと早く出来たのに」
ということしかない
そんな調子で依頼することができないので結局は自分で実装を繰り返し更に時間がなくなる
「俺ほどの技術力を持った人がいなくて困る」
みたいな自己肯定感を醸成しているのでそのうち上のパワハラ系へと移行していく
特徴としてはSlackにしろPRにしろ話が抽象的すぎて文章力が無い人である
「1を聞いたら10を知るのが当たり前だろ!」
と言う人が多く(1と10から100は分かるけど1だけで10を知ったら変態ですよ)
ヒドイ人になるとIssueやPRの管理も全然できず、ブランチも規則無く乱立してしまっていて
新しく入った人もいったい何をどうすればいいのかさっぱり分からない状況で放置してしまう
これも例示すると、新サービスの仕様だけは決まっていてページレイアウトが無い状態で
デザイナーの配属が難しいので実装側が考える、ということになったとき(割とある)
と言っても音信不通で渋々とこれまでのレイアウトを踏襲して3人できっちり作ったところ
リリース前日になってCTOが徹夜で全部作り直す、ということがあった
レイアウトも全然変わっていて、実はニュースリリースの段階から新規テーマになることが決まっていたらしく
それに合わせて全部作り替えたそうだ
新規テーマは1ヶ月も前から決まっていたのだから共有さえしてくれればそれに合わせて作ったのになぁ、という話をした
余談だがこういうときにこの手の人が「デザイン共有できず申し訳なかった」というような一言はほとんど無い
そういうコミュニケーションが取れる人は最初から業務依頼ができるのだ
最後が最近一番多いのだが、単に技術力が無くて頑張ってるだけの技術者
JavaScriptでリストの中に'apple'があるかどうかを調べる時に array.includes('apple')と書くとして、
10個のフルーツのリストがあってそれらが含まれているかを調べる時に10個のincludesを書いてしまうような人である
「せめてfor文で書こう」「そもそもデータ構造がおかしい」「というか本当にやりたい処理は?」
などなど様々な疑問が出てくるが、不思議なことにこれらを指摘しても絶対に直ることは無く、全く同じことを何度もやる
他にも例えば男性か女性かでメッセージを変えて出力しているコードがあったとする
if( gender === 'male') { ... } else { ... }
これに、20歳以下の場合は男女共通で違うメッセージを出す場合に
if( gender === 'male') { if ( age <= 20 ) { ... } else { ... } } else { if ( age <= 20 ) { ... } else { ... } }
みたいなコードを書いてしまう(20歳以下の部分は同じコードのコピペ)
メッセージ表示させるだけなら大したことないが、実際にはもっと複雑な処理をコピペで貼り付けるのである
そのため
「20歳以下の表示部分のバグについて、男性の場合は直ってるけど女性の場合に直ってない」
if ( gender === 'female' && age <=20 ) { ... }
これでもだいぶオブラートに包んでいて、実際にはもっと複雑なロジックをぐちゃぐちゃのまま整理せずに追加するのでとてもじゃないがメンテできない
(最近だとそういう部分はまとめてChatGPTに放り込むと綺麗にしてくれるので非常に助かっている)
こういう低レベルな技術者は結構いるのだが、大企業だと時間をかけて成長していくのに対して
ベンチャーになると自己肯定感が高いのか成長せずに偉そうである
「動いてるものは触らないで欲しい」
「Javaだとこういう書き方するんだよね」(そんなことはない)
みたいなことを言って、とにかく学習しない
曲がりなりにもそういう職に一度就いてしまうと指摘されることもないので学習しないんだと思う
特にCTOだとあくまで雇用主側の立場なので雇用者側から指摘されることも少ないし
同業他社のレビューなんてのもないからそこで時間が止まってしまうんだろうな、という感じ
こういう技術者のコードでも、見た目は動いているので営業側から見ると売るには問題ないのだ
なので営業が優秀だと下手に売れてしまって成功体験からますます自己肯定感が増して手が付けられないモンスターCTOの誕生である
「成功してから伸び悩んで大手企業が買収したけど技術的負債が凄まじ過ぎてリファクタリングだけで一大プロジェクトになる」
「リファクタリングが上手く行かずに仕様変更することになって『大手企業に買収されてダメになった』というレッテルが貼られる」
「当時のCTOは別の会社で新しい事業のCTOとして活躍している」
という流れはこうして生まれている
そこそこのWeb企業が基本的に経験者しか採用しないことについて、教育コストを他に転嫁しているとか、IT業界が先細りする行為で未来を潰しているみたいな言い方をされているときがある。
自分もこれについて課題意識はあって、ここ数年Web企業での採用活動と実際の業務に関わりながら、色々考えたので少しまとめてみたい。
ここではいわゆるキャリア採用ではなく、新卒採用やポテンシャル採用の話をしていると前置きしておく。
Web企業でよく求められるスキルは以下の3つだが、これを満たすような人材はもれなく経験者である。
この3つの条件とそれを満たす応募者について、この記事では以下の様に呼称する。
当然レベル4以上はそう多くなく、それを求める企業では応募者のほとんどは書類選考で落とされてしまう。それでも毎年雇いたいレベルの人が来る(来てもらえるように色々やっている)ような企業ではこの採用基準を下げる意味はないため、いわゆる「経験者しか採らない」と言われる状態になる。
一方で世の中はそんな人気企業ばかりではない。それらの企業ではこの基準を落とすのだろうか?自分の感覚としては「一部を諦める」みたいになっていると感じる。つまり、チーム開発の経験はないとか、自社では使ってない言語の経験しかないとか、コンピュータサイエンスはよく分からないなどを許容するという方式になっていそうだ。よってレベル3以上あたりを狙って、レベル2~4くらいのグラデーションで採用する。
よって、本当の未経験者がWeb企業を受けるためにはまず最低レベル2、できればレベル3に到達する必要がある。そこまでしてようやく「面接に到達する資格がある」という状態であり、おそらく有名な企業では軒並み一次面接で落とされてしまう。
一方で満たしている人は本当に全部満たした上でプラスアルファが多数あるみたいな状態で、多数の有名企業の内定を取って手のひらで転がして悩んでいる。
このような一部の外れ値のような人はどんどん内定を取るが最終的に選ぶのは一社なので、それ以外の企業は内定辞退され辞退率が上がる。すると「それなりに合格は出しているのに人は足りない」みたいな状況になってしまう。
自分は応募者に基本的にレベル4以上を求めている。これは教育に対して年単位で割いているほどの余裕がなく、教育を施しても難しい問題を解決する能力が身につかない可能性のある人を採用段階で落とすことで「当たりを引く確率を上げる」ためである(誤解の無いように言っておくと、単に既にできる人は更に色々と(しかも早く)できるようになる可能性が高いというだけで、レベル4未満は絶対ダメとかそういう話ではない)。
今の会社では新卒であっても入社後半年もすれば手取り足取り教える段階ではなく、社内で自走していけるようになっていると感じる。
これが健全でないと言われればそうであろうと思う。
コンピュータの世界は恐ろしいほどに親の資本力に左右される。レベル4以上の人は早ければ中高生の頃からコンピュータと関わりがあり(自分専用のPCがある、部活動で触る、地域の習い事で……etc)、更に大学に進学して関連分野を学んでいる。これを親の資本力と関わりないと言うのは難しい。
更に地方よりも都会の方が、コミュニティの発達においても、そこに集まってくる人材のレベルについても圧倒的に勝ると学生時代に感じていた。これも当然都心に住居を構える/一人暮らしさせられる親の資本力とは切っても切れない関係にあるだろう。
レベル2くらいに到達することは全くの未経験からでも十分可能である。例えばJava・JavaScript・PHP・Ruby……なんでもいいので一つ選んでちゃんと勉強し、いくつもプロダクトを作ってみればよい。現代ではこれはPCが一台あればできる。動画講座も安価で手に入るし、大抵のことは検索すれば出てくるし、Twitterにいるエンジニアはみんな教えたがりだし、ChatGPTだってある。PC自体もそんな高価な物ではなく、中古で買えるやっすいThinkPadで十分できる。
しかしレベル2~レベル4までの間の壁があまりにも高い。コンピュータサイエンスの広範な知識を身につけるには基本的に大学に行くのが一番コスパが良いと思っているが、誰しもが大学に通える経済力を持つわけではない。チーム開発はやはりどこかのコミュニティに参入できないと難しい。手っ取り早いのは企業のバイトで雇われることだが、これは鶏と卵問題だ。
本来ここの教育は企業が担うべきではなかったか?そういう意識が学生時代から漠然と自分の中にあった。これをやらずに、レベル4以上しか採用しませんというのは他のどこかに教育コストを押し付けていたり、更なる格差拡大に繋がっているのではないかという後ろめたさを感じていた。
企業に入ってもまだしばらくは上記の意識を引きずっていたが、最近は別の考えになってきつつある。
まず、Web企業の使う技術は割とオープンになっていることが多く、隠すインセンティブがあまりないため、企業間での教育はおそらくかなり共通化できる。企業内に囲い込んでから教育を施す意味があまりなく、入る前から知っているという人も多い(Web企業の研修が知っていることばかりでつまらないと思った人も多いのでは無いか)。
これを実現する一つの手段として、入社前の広い母集団に対して何かしらの形で援助を行っていることが多い。例えば以下の様なものだ。
これらは広義の教育であると考え始めた。それらの中で企業はスポンサーセッションなどを通して採用枠をアピールするし、実際それ経由で就職する人も居る。
もちろん支援企業に就職しない人の方が多いが、最終的にどこかWeb企業に入ってくれるなら、これはWeb業界全体で人材教育を行っていると言えないだろうか。
次に、大変残念な現状として「学生時代から触れているのにいまいち地力が伸びていない人」とか「そもそも触れていない人」がその後ぐっと伸びるという事例はかなりレアだと感じる。つまり、未経験ですが頑張りたいです!という人を雇っても伸びず、「これくらいやっています」という人は更に伸びるという(ある意味当たり前の)現実がそこにある。
故に先に挙げた広い範囲での教育を進めていくと、選考よりも前の段階でたくさんの機会をどんどん与えていくことになり、自然と「やったがあまりうまく行かなかった人」とか「機会はあったがやらなかった人」がどんどん可視化されていく。すると選考の段階では今後も投資の価値がある可能性の高い人材が自ずと絞れてしまい、経験者のみが採用されていく状態になるのではないだろうか。
自分はこういったことを考えているうちに、積極的に未経験を雇って教育するよりも、選考よりずっと前の段階から様々な教育機会を提供していく方がお互いにとって幸せなのではないだろうかと思うようになった。
学生は自分の興味ある方向にスキルを伸ばしてそれがマッチする企業を選べば良いし、企業はある程度既存社員を使った教育コストを下げつつ優秀な社員を雇えるようになる。そもそも選考前の段階でエンジニアリング楽しくないなと思う人は素直に向いていないので、参入するのを辞めたほうがよい。
さっき言ったような教育への投資はまだまだ経済的に豊かでない層に届きづらい現実があるように感じている。
実際に自分が大学院時代に奨学金を探すと、地方メーカーが自社への就職を前提に出している奨学金などが多く、国から借りる以外にはあまり選択肢がなかった。
もっと広く機会を提供できると良いなと思っているし、奨学金とかは(下手な条件を付けなければ)かなりフラットな教育への投資であると思うので、企業が給付型奨学金を実施することに対してもっと何らかのインセンティブを付けられないだろうか。
また、イベントやコミュニティはどうしても都心に偏りがちで、地方では開催されなかったりWeb企業の影が薄かったりする。これも年に1回とか2回とかでいいので地方のコミュニティと何かやって、細々とした縁を持てるようにしていけないだろうか。