はてなキーワード: atCoderとは
NTTの退職エントリが流行っているようなのでそもそも入れなかった人の話でも書きます。
といっても1X年前の話です。
リーマンショック直前の超売り手市場に新卒で4月初頭というゴールデンタイムにNTT系列何社も受けて全滅したアホ。
趣味はプログラミング。ICPFCとか参加したり小さいツールを書いたりしてた。
大学の専攻は数学。日本ではやたら偏差値の高いらしいT大学に現役で入ってそのまま修士卒。
NTT株、NTTD、NTTS、NTTH、NTTCなど。略称がどこを指すかは適当に考えてね。
全部落ちてます。4月はこのせいでお祈りされまくり、結局決まったのはNTT以外で夏ごろで。
電話がとても好きだった。高校ぐらいのときはモデムから高速リダイヤルをかけるアプリとか、
公衆電話の番号を探すツールとかを書いていた。PHS、携帯が普及しだしたころから
そもそも仕様があまり手に入らなかったので興味を持てなくなった。113はよくお世話になった。
就活のときそのへんのことを思い出したのと、プログラミングが好きだったのでNTTなら
なにかできるんじゃないだろうかと思いたくさん受けた。
当時はプログラマというものの地位がものすごく低い時代だったと思う。
そんな時代に「プログラミングやりたいです。ICPFCとかめっちゃ楽しいです。」という割に
基本情報すらとっておらず、コミュ力も非常に低い上に専攻が純粋数学とか落ちて然るべき。
更にNTTがどういう人材を欲しているのかという企業研究もろくにしていなかったため、
自分が御社にどういう貢献ができるのかを説明できず、ただやりたいことだけを喋っていたた。
また純粋数学は研究内容の説明がしにくいというのはわかりきった話だったので、それは対策するべきだった。
3分で研究内容を話すというプレゼン。SPIがよかったらしく1次面接は免除という連絡をいただき、
喜んで2次面接に望んだところ純粋数学の研究発表で、「この研究の社会的意義はなにか?」という質問をされ無事死亡。
社名にソフトウェアなんてついてるぐらいだからプログラミングがガッツリできるんだろうと思い、
某CPUの命令セットの素晴らしさとその効率的なエミュレータ実装について熱く話す。
面接官の「そんなことにしか興味ないんですか?」という返事は今でも覚えている。
グループディスカッションで落ちる。コミュ力とか見られてたきがするが審査員は見てただけなので詳細は不明。
面接前に社員と雑談する謎の時間があり、「T大の人、ぜひ来てほしいんですけどNTTDとかNTT株に
取られちゃって蹴られてしまうんですよね…」という話を聞く。その時点でDには落ちていたので苦笑いして面接へ。
当時盛り上がっていたNGN関係の話で面接官と盛り上がるも俺が考える最強の通信スタックの実装法を
NTT系列はだめだったので結局某SIerに就職。年収は300万弱から5年ぐらい在籍しても500万弱ぐらいだった。
最初は流石に年収低すぎということで某Rエージェントで転職活動をするもリーマンショック真っ最中で
在籍も1年とかだったため「君なにしにきたの?」オーラがすごかった。その時点での転職は失敗。
SIerによくある通り仕事でコードというものはほとんど書かず、Excel、Wordがメインであった。
ただ仕事自体は暇だったので、合間にひたすらProject Eulerをやっていた。
今はお仕事が変わり、AI関係のソフトウェアエンジニアみたいなお仕事をしている。
相変わらず面接ではコード書きたいですとかAtCoderとかの競技プログラミングの話しかしていないのだけど、
10年前に比べると反応がとてもよくなったと感じる。年収も都内に何の不自由もなく暮らせるぐらいまでは
もらえるようになった。プログラマの地位は相当向上しているのではないだろうか。
個人的にはAtCoderやTopCoderで黄~青ぐらいのプログラマの社会的地位が10年で年収400万から1000万ぐらいまで上がった感じがある。
今は1000万!と言いたいところですが、うまい棒5万本分ほど足りません。一本行けるように今後も精進します。
ただ今都内はソフトウェアエンジニアバブルといってもよく、かなり年収水準が上がっている気がします。
ですので多少は夢を持ってもよいのかなと。
キリの人も入社時は優秀だったんだと思います。あともし採用されるポテンシャルがあったとしても
ちゃんと業界研究しないのはだめかと。いろいろな意味で私はだめでしたね。
1990年代はまだ固定電話の古い交換器や緑・ピンク電話などが残ってた時代で、電話の面白い挙動が
NIFTY-SERVEのフォーラム等で盛り上がっていた時代でした。そのため当時は同じような人が結構いました。
うけてません。NTTの社風に合わないと全滅する可能性もあった(そして実際そうなった)ということで、
最近のNTTDのOSS関係へのコミットは凄まじいですね。あの部隊は尊敬しています。
あのへんのコミッタ方たちはどういうルートで採用されたんでしょうね?
大学時代はXSSとバイナリ解析に興味があったはずなのですが、就活ではその道は選びませんでした。
忘れていたというのもあるのですが、その数年前に日本のセキュリティ系の団体とちょっともめてしまった
というのがあるのかもしれません。日本のセキュリティ業界はちょっと前までアングラっぽい雰囲気が
漂っていました(世界的にそうだっただけな感じもします)が、そんな方たちも某FF○Iとか某NAとか
ホワイトハッカー側で大きく活躍されてるようで、もしセキュリティ業界に身をおいていたら
そういう変化も楽しめたのかなぁとは思います。
あ、徳丸さんのブログはいつも楽しく拝見させていただいています。
あの某NAのLuminさんでしょうか。当時はとても落ち込みましたが、今では楽しくやれているので
AtCoderとかで良い成績取れば引く手あまただよ
https://qiita.com/drken/items/fd4e5e3630d0f5859067 ← これ。
コンテスト自体が一問5分という制限があるためか、やっつけで片付ける事が目的ですよね。
結果としてビギナーは所詮この程度とバカにしたようなコードしかない。
ガチの初心者ならそれで良いと思うけど、5分でさっと書ける実力のある人がそのコード残すの?
と思うと残念でならない。
私はプログラマでもないし、言語は一つしか使えないし、下手すると解くのに何時間もかかってしまうけど、
というか、私が欲しかったのは、そういう最低限問題が解けるだけの、
豚にメシをくれてやるような雑なコードじゃなかった。
たとえば、第 8 問: ABC 085 C - Otoshidama (300 点)。
ここで重要な知見として 1 秒間で処理できる for 文ループの回数は、10^8=100,000,000 回程度 というのがあります。
なんて書かれてる。
えー。私の環境、for(1..10**8) {} (本当に何もしない繰り返し)で3秒かかりました。
for(1..10**8) { i=0 } (変数になにか代入するだけ)で6~7秒くらい。
ガチ初心者は3重ループしなくて良いんだと気づけるだけで良い。
でもハエを払うように5分で済ませられる実力のある人だったらさぁ……
まず、総当たりする前にそもそも解があるか、超簡単な確認くらいしようよ?
if ( is_resolvable(N, Y) ) { do_something(N, Y); } else { print "-1 -1 -1"; } sub is_resolvable() { if ( Y > 10000*$N ) { # Shortage return 0; } elsif ( $Y < 1000*$N ) { # Too much return 0; } else { return 1; } }
(is_resolvable()って、なんかDNS関係っぽくて好きじゃない名前だけど)
(追:&とか不等号が文字参照になって見づらいので置換。架空言語でも概略分かればいいじゃない……)
もしかして、業界、自力で出来るようにならない初心者は、必要のない初心者?
本当に出来ない人がようやく越えられた一歩なんて、見落としてるのかな。
まぁ私自身は
いじったらすごくなる → たーのしー
これってプログラミングの醍醐味なのかしら?たーのしーと思いつつ、
最終的に丸一日かかって第8問が完成致しました。
ただ単に自分の能力に見合ってない仕事をするから苦しんでるじゃないかな。
有名だから、将来的に安泰しそうだから大企業に行きたいとか、技術力が低いのに将来性のあるユニコーン企業に入りたいとか。
メディア系事業部でもイチエンジニアであるだけで、ニュースサイトに名前がでることはないし。
あってもプロデューサーや部長クラス(稀に、美男美女エンジニア)
例えば自己紹介する時に、「ニュースを運営してます」のと「インフラしてます」のでは悲しいかな雲泥の差。
説明しても「なんか大変そうだね」「難しそうだね」が関の山である。社内でもこれ。
年功序列ではないので、評価によって昇給する。それが年に1,2回。
会社によってかもしれないが、業績は反映されない場合、下手したら1,2年も昇給しないなんて場合も有り得る。
そーなるとどーなるか。
残業代で賄おうと考え出す。そこが地獄の一丁目だとも知らずに。
ユニコーンの場合、例えば上場が目標でVCから「ウン十億の資金調達」というニュースが流れているとしても、
そのお金はあくまで借りているだけ。いつかは投資家の方々に返さないといけない。
エンジニア的には質は大事だけど、兎に角サービスを出さないと利益がない。
”スピード=利益(エンジニアの価値)”のようなもの。(この時点でサービスとして出せるなら質など二の次)
ここに技術力の低い人が入ると、「ブラックだ」と言い出す。(それを見抜けない人事もあれだけど)
ただ、一概に上司が悪いともいえない。
会社は人を雇っている。
このためには、社員に無理をさせなくてはならない場面もある。それが本意でなくとも。
ただし、これがいつまでも改善されないようであれば、組織としてやばい気がするので早めに逃げることをオススメする。
じゃあ、どーするか。
または能力を上げるか。
今なら、学校なら就職窓口があるし、転職なら転職エージェントもある。
相談すれば自分にあったところをピックアップしてくれるだろう。
そこで自分では見つけられなかった企業に出会えるかもしれないし、幅も広がる。
但し、「何をしたいか」はやはり考えておいたほうがいい。
面接でもそうだが、相談時に「どんな仕事に就きたいですか?」と聞かれるので。
ITエンジニアなら以下の知識を付けておいたほうがいいと思う。
・英語
・TOEIC:応募資格に書かれていることもあるし、技術書やプログラムを書くうえでもあって損はない。
・資格
・各種情報処理系:業務ではあまり使わないが、基盤となる知識になる。
・AtCoder,TopCoder,GoogleCodeJam:プログラミングする上での必要な知識を学べる。特定の処理を行うためには複数のパターンがあるが、それらを知る機会にもなる。
あと、選考の一つとしてこれを取り入れている企業も増えてきている。
・ツール
・フレームワークなど:ドットインストールやUdemyなど技術系サイトであれば色々勉強できる。必要であればお金を払おう。ググるより効率的だし、価値もある。
そんなに頑張りたくないけど、とりあえずITエンジニアであればいい人はどうしたらいいか。
玉石混交なので月5-60万(≠月収)契約であればいくらでもある気がする。
だって、がんばらないで自分にあった仕事ができるかもしれないんだから。
要は、上も下も周囲の雑音も聞かずに自分にあった仕事ができればITエンジニアも世間で言われてるほど大変な仕事じゃないはず。
まぁ、それができれば苦労はしないだろうけどね。
macでもwindowsでもいい、core i3以上、メモリが8G以上が乗った持ち運べる物。これは絶対に買うべき。atomやceleronが乗った廉価機は避ける。どうしてもお金が無いなら5年以内の中古でも良い。
これは講義資料などの閲覧用。なくても良いが、あると非常に便利。逆にプリンターは大抵の大学にあるのでいらない。情報系の教科書はweb上に無償で公開されている物が多いので、それらを活用して学ぶべし。MOOCを活用するのもよい。
どうせいつか覚えるので、早めに使えるようになっておいて損なし。
基本。
使えると色々自動化できて便利。個人的にはpython(3)がオススメ
必須では無いと思うが変換ツールと合わせて使うと便利。レポートにも使える。
どちらかお好みで。大抵のエディタ・IDEで使えるため汎用性がある。筆者はemacs派。
ひとりで手を動かして継続的に学べるのであればそれでいいが、そうで無い人間の方が多いのでは無いかと思う。筆者もそうだ。そういった人間は他者と共に学ぶのがよい。
大学に情報系や電気電子系のサークルがある場合はひととおりみておくといい。真面目に活動していて、ソフトウェアなりロボットなり成果物があるようなら入って良いと思われる。唯のオタクの溜まり場になっているようならまあ入らない方がいい。
サークル以外にも、都市部に住むのであれば技術を主体としたコミュニティが多くある。SNSや同期、先輩のツテを使って興味のあるものに参加してみるとよい。
プログラマーのバイトなども良い経験になる。しかしブラックな職場もあると聞くのでよく選ぶべし。
といっても、課外活動に惚けて大学の授業を疎かにするのは愚の骨頂。大学の授業で学ぶのは全ての基礎なので、これを知らずにどんな最新技術に触れようと意味が無い。
これは情報系学部で学ぶならやらない理由が無い。プログラミング力を鍛えるには最適である。
AIZU ONLINE JUDGEやAtCoderでゲーム感覚で楽しむとよい。
思いつきで書いたので書き漏らしはあると思う。あとよく言われる教授に質問に行ったりして活用しろ〜などは情報系でも同じ事が言えると思う。
情報系の学生として最もやってはいけないことは、読んだだけ、聞いただけで理解した気になってしまう事だと思う。授業で聞いた事全てとは言わないが、せっかく場所を問わず実験ができる学問なので、興味を持った内容だけでも良いのでコーディングして動かしてみて欲しい。
増田は気軽に質問できる中・上級者がいない趣味プログラマか学生さんだと仮定。
どうしても合う合わないがある。
筋肉付けたいとしても、筋トレ無限にできる人と無理な人といるでしょ。そんな感じ。
自分の欲しいものをつくる、なんてのは誰でも思いつく話だと思うんだけど、
自分の欲しいものの中で一番機能が少ないものを、ギリギリ最低限の実装でやること。
Webサービス系に限ると小物で欲しいものって無さそうなので、
もう少し違うジャンルで作るのがいいと思う。
最近なら自分専用のLINE botとかいいんじゃないですかね。
2番目のプログラミングコンテストは向き不向きが激しいとは思う。
サービスを作るのに比べると短時間で深く集中する感じになるので、これはこれでオススメ。
最初はAtCoder過去問、AOJ、ProjectEulerあたりを試してみて合いそうか考えるのがいいと思う。
Web系だと仕事に直結はしないかもしれないけど、頭の使い方みたいなところは磨かれるはず。
人材紹介会社が作ってる同種のサービスだと、問題のレベル感としてトレーニングには向かない印象。
簡単すぎる問題を解くくらいなら小物作りでも実戦経験を積むべき。
最後は縛りゲー。つまり、あえて整備されていない道を開拓していく。
いかに金をかけずにWebサービスを公開・維持できるか、というテーマなら
各種サービスの無料枠とかAWS Lambdaとかを駆使して頑張るような話。
もしくは、先人が少なめのソフトウェアについて深掘りするとか。
たとえばAtomやVSCodeの自分専用プラグインなら最初のオススメ内容にも合う。
ニコ生のほうが見てくれる人多いと思うし。
若い人にとってはustreamよりかニコ生のほうが実況しやすい。
詳しい内容
+---------------------------------+
+---------------------------------+
とにかくkaoriya先生の顔に泥を塗ってしまった事をまっさきに詫びたい。
https://twitter.com/kaoriya/status/715743835377111041
https://twitter.com/kaoriya/status/715774856474857477
とりあえず参考になりそうなページ
その他、個人的に引っかかる所。
実は個人で有料チャンネル解説してる人たちって皆企業のバックアップで申請してたりする。
ドワンゴさんだって無料で技術系チャンネルを開設したんだからいいじゃないですか。
http://ch.nicovideo.jp/dwango-engineer
AtCoderチャンネルだって瞬殺で開設が認められたんですよ。
http://ch.nicovideo.jp/atcoder
価値のある活動をしているvim-jpが認められないのはおかしいんですよ。
なんで風呂配信で金玉出した横山緑とか、チャンネル取得後1回目の放送でカメラに向かって放尿した野田草履がチャンネルを持てて、vim-jpがダメなのかドワンゴの中野運営長に問いただしてみたい所だ。