はてなキーワード: 競技プログラミングとは
20代後半(つか三十路直前)、アプリ屋やったり組み込みやったし、web系なんかでもフロントエンドで一時期携わって学生時代バイトもしてたくらいのプログラミングが大好きで
つかもう、開発やIT系の仕事が大好きで、基本設計書からやるのだって楽しい、完璧な設計書でどんな言語でも同じモンが作れる!っていう自信とかそういう設計するのだって大好きだ。競技プログラミングだって勉強会で夜通し技術のことで語らうのが好きで好きで仕方がない。そのおかげでこの年で800万はもらえてる
金にも困ってねえし特に使う充てもないから、そろそろ1000万は貯金超えてるかな
そんなわけで今週の金曜日、社長に呼び出されて営業(セールスエンジニア・プリセールス)やるか管理職やるかしろと言われた。
これ言われるまで、この業界のキャリアパスが最終的に営業かPMとか見たいなマネジメント系しかないってことくらい、頭には入ってたが、組み込みとかweb系ならそんなことはないと思っていたが、全くそうでもなかったんだな。俺には関係のない話だと思ってた、ただ開発ができればいい、いいもん作ればいいと思ってた、天職だと思ってたよ。
わかってるよ、社長や周りの人らだって好意で言ってくれてるってことくらいは、一生開発だけやったって40過ぎくらいでどんなエンジニアでも放り出される、管理職や営業にこの年でキャリアアップできること自体、凄いことだ、マネジメントやプリセールスが出来れば、君なら年収1000万だって起業したって可能性が広がるし不可能じゃないって、でもさ、俺がそんな営業やら管理の仕事なんてしたことないのわかってるだろ?普通に話すのは良いけど、セールストークなんて大学出てから7年間やったこともないよ
俺は何も言わなかったが、仲の悪い先輩にこう言われてカチンと来たと同時に、なんか急激に日本のIT業界に対する熱意がすー、と冷めていくのを感じた、100年の恋も冷めたって感じといえばわかりやすいか。
「お前、”開発”なんかいつまでもやってられねーんだぞ?営業になるかマネジメントやるかで仕事取らないと…」
最終的なキャリアパスが、営業かマネジメントしかないんだよな、日本のIT業界って、これはweb系でもSIでも自社パッケージ開発でも関係がないんだろうな
そんで、時間も取れなくなってXCodeすら開けなくなるのか、というかVBAすらできなくなるのか、そんであと死ぬまでずーっと開発が仕事にできなくなるのか。
叛逆して続けたところで、35歳過ぎには仕事が先細りして、40過ぎには組み込み系ですら放逐だろ、50過ぎだって活躍してる?そんなのネットの都市伝説で俺は一人も見たことねーぞ
所詮理系だろうが文系だろうが、技術者なんて使い捨てなんですね、この国はさ、なーにが技術立国だよ、笑わせんな
そんで営業なんてやったことないからできなけりゃ馬鹿だ糞だゴミだなんだ言われんだろ?PMになって派遣の技術者をねちねちいびって客先で飲み会いくだけのしょうもない職業一生やらされるんだろ?
何かもう急激に冷めたから、PG講師の口か、田舎の発電所か工場で、社内SEの口でも探して引っ込もうかなと思う。
一言言わせてくれよ。
こんな糞でゴミで、2020年には崩壊するの確定してる業界にまかり間違っていく前に、本当にIT好きな奴は海外にいけるように学生時代からホームステイの一つでもしておくべきだよ、マジで35や40で営業かマネジメントいかなきゃ放り出されるみたいだぞ、それに俺は英語読み書きできてもしゃべれねえからさ…
主語がデカいとか喚き散らす有象無象の意識高い系自称エンジニアのカスどもがなんかゴチャゴチャ抜かしそうだから一言言っておくけど、俺の年収抜いてから偉そうに物言えよ、ボケどもが
今までありがとやんしたー、いい夢見させてもらってちゃぶ台返ししていただいて、おかげで熱意が急激に冷めましたわー、本当にありがとう、心から願うよ、死ね、糞どもが、地獄に堕ちろ、日本人に生まれたことをこんなに後悔したこと今までになかったわ
まー、この国じゃITなんてもんは1000年早かったんだろうな、戦争でも起きてITも伸びまくってる中国かアメリカの領土にでもなってくれねえかな、そうしたら開発エンジニア続けられるのにな
こーんな糞みたいな業界に行かないで、もっとマトモでカタい職についてくれよな、学生の諸君は
追記
出世したいならマネジメントや営業に回るしかないって、だったら最初から技術者なんぞやっとらんで営業か総合職で就職しとるわ、アホが
今更どうやってセールスエンジニアや営業、マネジメントなんて1からやるんだよ、俺来年30だぞ?出来なかったらクビで業界にすら残れないんだろ?こんな糞みたいなキャリアが当たり前の業界なんて世界にあるか?仕方がない仕方がないって明らかに異常だし、派遣法改正以前ではそんな話すら聞いたこともねーぞコラ
だったら最初からいっとけよ、そうすりゃ24~5の時にでも最初からセールスエンジニアにでもPMOにでも一般派遣で回って経験積んでたわ最初から
35歳定年説は嘘だの、webは違うだのゲームは違うだのとさ、なんならネットでエラソーに技術ブログ書いてるような会社や業界の大半の内情暴露してやろうか?詐欺師共が、そうすりゃ100万人はこの業界目指そうと思う奴減らせる自信はあるがねw
そんなんわかりきってこっちはわざわざ技術屋やってんだよ、なのになんだこの仕打ち、ふざけてんのはそっちだろ
もうつくコメントからしてますます熱が冷めたね、勝手に滅んでやがれよ、そのうち前科者くらいしかこなくなるような業界にでもなってろよ
「残業を減らせば業務効率が上がる」という言葉をよく聞くので実践してみた。
「定時に帰る」ということが頭にあるので、
今からやると中途半端になる仕事に手を出さなくなった。(結局残業になるから)
結局、翌日にガッツリやれば想定より短い時間で終わることが多かった。
今月、明らかに任される仕事が減っている。
「定時に帰るから大きい仕事を任せづらい」と思われている気がする。
(チームで対応する案件の場合、定時後に問題が発生した場合に対応できないから。)
そういえば、定時で帰ってる人で仕事のできる人はいない気がする。
まだ、社会人2年目だけど、
いや、だからこそ、周りからの信頼を得ることに心血を注いだほうが懸命な気がする。
久々に定時で帰って、そんなことを考えた。
macでもwindowsでもいい、core i3以上、メモリが8G以上が乗った持ち運べる物。これは絶対に買うべき。atomやceleronが乗った廉価機は避ける。どうしてもお金が無いなら5年以内の中古でも良い。
これは講義資料などの閲覧用。なくても良いが、あると非常に便利。逆にプリンターは大抵の大学にあるのでいらない。情報系の教科書はweb上に無償で公開されている物が多いので、それらを活用して学ぶべし。MOOCを活用するのもよい。
どうせいつか覚えるので、早めに使えるようになっておいて損なし。
基本。
使えると色々自動化できて便利。個人的にはpython(3)がオススメ
必須では無いと思うが変換ツールと合わせて使うと便利。レポートにも使える。
どちらかお好みで。大抵のエディタ・IDEで使えるため汎用性がある。筆者はemacs派。
ひとりで手を動かして継続的に学べるのであればそれでいいが、そうで無い人間の方が多いのでは無いかと思う。筆者もそうだ。そういった人間は他者と共に学ぶのがよい。
大学に情報系や電気電子系のサークルがある場合はひととおりみておくといい。真面目に活動していて、ソフトウェアなりロボットなり成果物があるようなら入って良いと思われる。唯のオタクの溜まり場になっているようならまあ入らない方がいい。
サークル以外にも、都市部に住むのであれば技術を主体としたコミュニティが多くある。SNSや同期、先輩のツテを使って興味のあるものに参加してみるとよい。
プログラマーのバイトなども良い経験になる。しかしブラックな職場もあると聞くのでよく選ぶべし。
といっても、課外活動に惚けて大学の授業を疎かにするのは愚の骨頂。大学の授業で学ぶのは全ての基礎なので、これを知らずにどんな最新技術に触れようと意味が無い。
これは情報系学部で学ぶならやらない理由が無い。プログラミング力を鍛えるには最適である。
AIZU ONLINE JUDGEやAtCoderでゲーム感覚で楽しむとよい。
思いつきで書いたので書き漏らしはあると思う。あとよく言われる教授に質問に行ったりして活用しろ〜などは情報系でも同じ事が言えると思う。
情報系の学生として最もやってはいけないことは、読んだだけ、聞いただけで理解した気になってしまう事だと思う。授業で聞いた事全てとは言わないが、せっかく場所を問わず実験ができる学問なので、興味を持った内容だけでも良いのでコーディングして動かしてみて欲しい。
『やさしいC++』という本を買った。第三章まで読んでみた。
この本を読み始めた理由は、「TOP CODER」というオンラインの競技プログラミングをやりたいと思ったから。
元々将棋とか競う系が好きだったんだけど、生産性の無さに自信を無くして、新しいものがないかなと思ったら、出会った。
TOP CODERというやつは、実力でレーティングされているらしい。
プログラミングで数学の問題を解くというのに、かなり興味を惹かれている。
世の中の問題はこうやって解かれているんだなあというのを知りたいからだ。
また、プログラミングで強くなることは、そのまま知性につながる。
将棋の場合はソフトさんにとってかわられて微妙なところだが、C++での強さはまだまだ現役だろう。
とりあえず、100時間くらいは頑張りたい。
まずはそれでスタープレイヤーになる夢をみんなにもってもらい、野球選手になりたい子供のようにプロのITプレイヤーになりたいとか思う子を増やす
試合は何かしらのコンペとし、期間は3日〜2週間程度とする(案件によって違う)
テーマにそったハッカソンや、ISUCONみたいのや、リプレイス案件とする
その期間、チームは外出禁止の泊まり込み作業とする(作業の外部持ち出し禁止)
泊まり込みのため、1週間やったら次の1週間はメンバーは休みを義務付けられる
1日目にコンペ概要発表があり、PMはそれを資料に落とし込み、その枠内でアーキテクチャ、プログラマ、デザイナ、テスタなどをアサイン調整し、決定後交代不可
1週間常に見てる余裕がある一般社会人もいないので、毎日定時にPMは作業進捗報告を義務とする
最終日に、コンペでどちらが選ばれたかを含め、その他の定量的評価で勝敗を決める
例えば、コンペ選択 10点、メンバが残業しなかったボーナス 10点、スピード納品 日数x5点、資料充実度、テスト充実度、不具合チェック など
狙いとしては、競技として巨人戦のようにみんながテレビやニュースで見るようになれば、
どういう発注がよくて、どういうPMがよくて、設計のよさ、プログラマ・デザイナはどういうことが求められていて、それに応えていくか、
の選球眼というか、まわりの目を育てられるといいなあ
夏のこの時期にこういうことを書きなぐりたくなるのはわかる。
個人的な経験をいうとその大変さを解決するにはいくつかの選択肢があると思う。
まず一番いいのは、外部の環境を探すこと。プログラマのアルバイトとかインターンの中には、あまり経験がなくても学生なら雇ってくれる募集もたまにある。増田が低レイヤー寄りの技術に関心があるなら、それを学べるバイト先を探すのが良いだろう。無いかもしれないけどね。
もしそれができないなら、ある程度ゴールや学ぶべき内容が明確な分野を選んで独学するのが良いと思う。具体的には競技プログラミングや資格試験など。
競プロは役に立たないなんて言う人もいるけど、少なくとも研究や就活のためにプログラミングを学ぶのであれば最も費用対効果の高い分野の1つなんじゃないだろうか。
アプリ作るのがいいなら、ウェブ開発は自由すぎるのでiOS開発等が迷わなくていいと思う。
あとは、本を全部読もうとしないで、手を動かせるところまで読んだらまずはコードを動かしたり修正したりしながら遊んで、その過程で湧き上がる自然な疑問を元に学習を始めると良い。ソフトスキルズにそんなことが書いてあった。
こんにちは、シャイニング増田(シャイ増)です♥町中で良くリクルートスーツの就活生を見るようになりましたね。先日後輩の紹介で○○大学の学生からグーグルに入りたいという相談を受け渋い気持ちになりました。○○大学ではTopCoderのRed Coder相当の実績でも残していないと入れないでしょうし、ネームバリューだけでなんとなく「ビッグデータ♡」「人工知能♡」と言っている様は山師スタートアップの「フィンテック事業部を新設しました」のIRと同等クラスの浅ましさです。そこで若者に捧ぐ私が考えるプログラマのキャリア論を参考にしていただければと思います。
http://www.shiningmaru.com/entry/2016/04/29/212824
を見て、あんまりプログラマがどうやって高給取りになれるかというキャリアの話って見たこと無いな、と思ったので書いてみます。
全てのプログラマが給料を一杯稼ぐことを目指すべきだとは思いませんが、私のように、研究職でもなく、マネージャー職でもなく、コード書いてお金が貰えるならなんでも書くよ、という節操のないプログラマ志望の大学生にはとてもおすすめの高給取りになるための方法です。
まずは目標である高給取りになるにはどうすればいいか考えてみましょう。どんな能力があれば年収1000万円もらえるの?と思われるかもしれませんが、そもそも残念ながら給与というのは純粋にあなたのスキルによって上下する余地はあまりありません。
年収500万円のプログラマが頑張って仕事後も勉強会などへ行き、頑張ってスキルアップしても、会社が年収を1000万円にしてくれることはほぼ無いと考えてください。年収500万円のプログラマと年収1000万円のプログラマの一番大きな違いは職場です。大抵の会社はどんなに優秀なプログラマでも給料で大金を払うことはできません。
身も蓋もないんですが、高給取りになりたいと思ったら、自分磨きなんて糞くらえで、自分に給料を一杯払ってくれる会社を見つけて入社するのが一番重要です。
金回りがいい会社が一番です。どういうところがいいの?というと、ざっくり2つのグループにわかれると思います。
1. 世界的にシェアのあるサービス・プロダクトを持っている会社
1の典型的な企業は、ベイエリアとかにある、世界向けのプロダクトを持っていて、競争力のある会社です。とても金回りがいいです。有名どころではGoogle、Facebook、Appleや若干株価が心もとないTwitterなんかがあります。何故これらの会社がプログラマに大金を払い、何故日本の大抵の会社がプログラマに年収1000万円を払えないかについてはhttps://note.mu/whynotgetrich/n/nd71f86a3e0cbを御覧ください。
2はあまりプログラマの人は縁がなく、存在すら知らない会社が多いのではないでしょうか?とても勿体無いですね。例えば金融系の企業はとても金回りがよく、社内システムの開発でもその恩恵を受けることができます。例えば外資金融系ではGoldman Sachs、Merrill Lynchは給与がよく、保険系では東京海上とかもまったりと年収1000万越えるらしいんで、狙うといいんじゃないですかね。あまり詳しくないので、具体的な業務内容はインドに発注と管理するプログラマというよりはSEなのかもしれないですけど。
では他のドメスティックなネット系企業はどうなの?というと、残念ながらあまりいい話は聞きません。
数年前に年収1000万円で新卒を採用(http://news.livedoor.com/article/detail/5997716/)、みたいな話が数社から出てきて、ようやく日本でも人材獲得競争が激しくなってきたな!と思いましたが、どうなったんですかね?全然うまくいかなかったからもうやっていない、という話を聞きましたが、実際どうなのか現場の話を聞いてみたいものです。
私が最近聞いた中ではLineは年収1000万円を軽く越えるオファーを出していて、他のインセンティブもついてたら、上場したあかつきには軽く2-3000万円はいくんじゃないかと思われます。Lineくらいになってくると、1のグループに入ってる感じですね。景気いいですね。うらやましいです。
そんな会社全部よくわからないよ!無理だよ!私が志望しているこれらの会社の中からだったらどれ選べばいいの?と思ったら技術部門の最高責任者っぽい人とかの給与を調べましょう。それより多くは絶対にもらえません。あとは平均給与を調べてみましょう。プログラマは社内の中でも特に多く給料が貰える職であることは少ないと思われるので、平均給与が1000万円越えてなければ、プログラマとしてキャリアを積んで1000万円の大台に達することは難しいかもしれません。
と、1000万円を稼げる企業がおわかりいただけたかと思いますので、次にこれらの企業に入社するにはどうすればいいかについて考えてみましょう。
まず先に2のグループの企業についてですが、私は全く明るくないので、どんな採用プロセスなのか全然わかりません。とりあえず英語憶えてたほうが外資系が選択肢に入ってくるのでいいんじゃないですかね?
次に1ですが、こちらもやはり英語がわかると、海外での勤務が選択肢に入ってくるので同じくおすすめです。新卒で日本法人に入る場合は、企業によってはちゃんと英語習得のためにフォローが入るので、技術力優先だったりもします。
ここまできてようやく技術の話が来ましたが、具体的に何ができればいいの?というと、まずポインタと再帰呼び出しを理解できるか調べてみましょう。
Joel先生が書いてますが、ポインタと再帰呼び出しはどんだけ優秀なプログラマでも何故か書けなかったりするので(http://local.joelonsoftware.com/wiki/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA)、まずこれらをちゃんと理解してるか見てみましょう。私も世界中の100を越えるプログラマの面接を行ってきましたが、再帰呼び出しを書かせようとすると絶望するプログラマはとても多いです。
ポインタは使う機会は大分減ったと思いますが、再帰呼び出しはまだ現役なので、理解できなくて、プログラマになりたいわけではなく、ただ高給取りになりたいのであれば、別のキャリアを目指した方が楽かもしれません。
採用において重要なのは、履歴書の実績と面接での技術力です。ベイエリアなどの企業のプログラマの採用面接では、「あなた自身を動物に例えると何ですか」みたいな質問を聞いてくることはありません。技術的な質問、又はコードを書かせる問題を出してきます。Top Coderのような競技プログラミングと似てるので、練習しておくことをおすすめします。各種データ構造とアルゴリズムの計算量を憶え、うまく適用できるよう勉強しましょう。
面接官によってはコンピュータ・ネットワークの仕組みについて聞いてきたりするので、ヘネパタ、オペレーティングシステム、詳解TCP/IPあたりは読んどくといいかもしれません。後々色々な技術を学ぶ時に理解が深まりやすいので、どちらにせよ読んでおいて損はないです。
面接対策だけでなく、プログラムはよほど専門的な内容でなければ、レファレンス引きながら問題なく実装できる、というレベルには達しておきましょう。履歴書に華を添えるなら、オープンソースプロジェクトに参加するかソフトウェアやサービスを公開してみてください。githubのアカウント名やプロダクト名、サービスの概要とURLを書いておけばあなたの技術力がより上手く伝わるはずです。
外資だと必要になる英語ですが、技術的な話がを中心であれば、一般会話より必要なボキャブラリが限られており、習得は思われているほど難しくはありません。かつ、メールのテキストベースでのやりとりが中心であれば、最初のうちは大変ですが、ゆっくり時間かけることもできます。
あなたの技術力が認められ、年収1000万円はないかもしれませんが、結構な高給取りになれました。おめでとうございます!さてここから昇給するにはどうすればいいのでしょうか?
競技プログラミングというより、計算機科学を実践できるかどうかを問うているんだと思う
全員が計算機科学を修めている必要がある業界はあまりないと思うけど、
計算機科学の知見が足らないと不合理な状態に陥りがちなのでは、とも思う
海外の記事で、プログラマ採用試験でタイトルのような実装を試験に出す、というのをたまにみる。
こういうの見るたびに、答えがわからないので自分はまず落ちるだろうなと思う。
かと言って自分は底辺 && 向上心ゼロで使い物にならないか?と自問すると違うと思う。
今の会社でRailsのサービスを少なくとも4つ以上リリースしているし、バージョンアップなどの保守が2年以上できている。プライベートでgemを作ったりしているし、サーバの小規模なサーバであれば運用もできるくらいのLinuxの知識(小並感)もある。何よりプログラムを通して問題解決をするのが好きだ。
競技プログラミングには興味あるけど、今はLinuxへの興味のほうが強い。
僕は情報系の世界にいるのだけれども、女の子は女の子であるだけでちやほやされるし、ずるい
もちろん色んな苦労もあるんだろうけれども、ずるい
僕は競技プログラミングをやってるのだけど、僕も、ちょっと練習したり、成果を書くくらいでちやほやされたい
ってことで、女の子になってみた。女の子だと偽るのはずるいので、女の子として振る舞うことを表明しつつ、女の子でないのが解るようにしてみた
具体的には、Twitterで@meguru_compってアカウントを作った
女の子(エロゲーのキャラ)になりきって、ひたすら競技プログラミングの問題を解き、思ったことや解き方、ソースコードをひたすらに書いていくアカウントだ
これで僕もちやほやされるに違いない。ちやほやされたら僕もやる気が出て、最強になれるに違いない
なんでだろ。何が悪いんだろ。誰かおしえてください