はてなキーワード: tcp/ipとは
https://twitter.com/MAEZIMAS/status/1113114798672113665
一流の老害は「君たちこそが真のニュータイプだ」とか言って、若者を自分の既得権益確保のための鉄砲玉にする。
…いやマジ本当に、若い人気をつけてね。若者説教おじさんは、せいぜいまだ極限の不愉快ですむけど、若者応援おじさんに乗せられると最悪人生詰むので…
というツイートが流行っているので、私が遭遇した若者応援おじさんについて書こうと思う。
当時の私は親との折り合いがつかず、学力もそこそこあったし、勉強もしていたのにも関わらず大学に進学せずにフリーターをしていた。実家を出たかったし、大学にも進学したかったから金の工面が当面の目標だった。そんなときに出会ったのが若者応援おじさんのAさんである。Aさんはバブルの頃に就活をしていて、まだインターネットやパーソナル・コンピュータというのが流行る前から電子工作やプログラミングをやっていた人だった。実際、経歴を聞いてみると10回以上転職を繰り返しているものの、有名企業(今にして思えば、カビ臭いSIerだが)で部長をしていたことがあって、年収が1700万ぐらい稼いでいたこともある人だった。
最初に出会ったときは自分が如何にすごいかということを熱心に語っていた。80年台後半ぐらいのコンピュータ開発の大型プロジェクトに関わっていたとか、セキュリティの専門家とか、今までに触ったことのあるプログラミング言語が300個を超えるとか。でも、当時の技術的なトレンド(MongoDB、Ruby on Rails、AngularJSとか)についての知識が限りなく少なく、「フレームワークなんてその場で覚えればいい」みたいなタイプだった。中学生の頃にラジオ工作したとか、はんだごてで電子回路を設計したとか、そういう話は熱心にするのに、Bram Moolenaarの名前を知らなかったりした。要は、最近のプログラマがどういう関心やインセンティブでプログラミングやってるかを知らずに、過去の栄光を語ってるようなタイプだったと思う。
まぁ、それでも、その人のコネで中規模程度のSIerに入社して、そこそこいい感じの待遇だったように思う。当時の私の技術力は『わかりやすいJava入門』『たのしいRuby』を一通り終わらせて簡単な言語仕様を把握したぐらいでろくにコードも書いたことのないような人間だったから、定時で帰れて手取り二十万もらえるのは甘い汁を吸えたとは思うんだ。
でも入社を決めた一番の理由が、そのAさんが私の関心に理解があると思っていたからだ。というのも、当時の私は「人工知能や人工生命に興味があります。三年後に大学に入学するまでにプログラミングスキルを磨きつつ生活費と学費を稼ぎたい」ということを明言した上で、それを叶えてくれる会社を探していた。技術力はないものの、「自頭がいいから入社してからプログラミングを覚えればすぐに戦力になるよ」と複数の人間から言われていて、それぞれ就職先を紹介してもらえるような状況になっていた。今から思えば、そんなコードを書けない人間を自頭なんて胡散臭いもので褒めるような人間は信用してはいけないと思うし、口車に乗せられたと思うのだけど。そこは自分にも甘いところがあったように思う。あ、あと、補足しておくと、当時はDeep Learningなんていうのは全く人口に膾炙してなかった時期で、スチュアート・カウフマンや金子邦彦に憧れてたような、周回遅れの複雑系に魅せられた若者が私だった。
①親との折り合いが悪く、大学に進学したいが、金が足りない
②実家を出るために生活費を稼ぐ必要があったが、飲食のバイトとかではスキルが身につかない状態で、価値の高い若い時間を無駄にしてしまう
③そんなところに現れたのが過去の栄光を話す若者応援おじさんのA
④自分は殆どコードを書いたことのない業務未経験で、21世紀になっても複雑系の話に興味をそそられるような斜に構えたスノッブ
では、入社後の話をしよう。私が配属されたプロジェクトは80万行程度のJavaのコードで動いてるBtoB向けの製品を保守開発してるプロジェクトだった。やってることはGoogleやAmazonやMicrosoftみたいな大手ならやってるようなサービスの完全下位互換みたいなソフトウェアを、情弱だけど社員数は多いみたいな企業に売りつけるような仕事だ。国産とか、セキュリティとか、そういうよくわからない言葉を並べ立てて、海外のUIも洗練されていて、優秀なエンジニアが管理してるものをセキュリティ的に怪しいと不安を煽り立てて売りつけるようなやつだ。そんなクソみたいな製品でも年間5億円ぐらいの売上になるのだから、IT系って糞だなって思う。ネット上では優秀な人間ばかりがアウトプットしてるし、NDAの名の下に詐欺まがいのソフトウェア(今回の例なら無料でUIも洗練されていて、使いやすいサービス)が明るみにならないのだから、こんな国はさっさとスクラップ・アンド・ビルドすればいいのにって思うよ。IT化されてないのが時代錯誤で〜みたいな記事はネット上でもバズるけど、実際には10年前のスパゲッティコードを惰性と不安につけ込んで売りつけるようなSIerがたくさんある。そんで、そんな意味不明なソフトウェアを導入すれば、どこに何があるのか分からないUIの操作に大切な業務時間を奪われて、日本全体の生産性が落ちてしまう。ユーザーの時間と生産性を奪い、開発者にとっても技術的負債にしかならないようなソフトウェアを売りつけてる悪性腫瘍みたいなSIerはさっさと滅んでしまえばいいと思うよ。
まぁ、私が配属されたプロジェクトはそんな感じだ。まるで意義を感じないが金にはなってるプロジェクトに配属された。そのプロジェクトの根幹部分は一人のエンジニアが設計開発しており、そのエンジニアは既に退職して、どこに何が書いてあるのかわかってない人間が後任として保守を行っている。盲腸みたいに全く有難みのない機能を増やすことでより高く売りつけるようなプロジェクトだった。
そのプロジェクトの中にいる人について話そう。プロジェクトマネージャーは仕事漬けで毎月350時間ぐらい働いている60連勤とか当たり前で、常に酔っ払ったような、眠そうな目をしてる人だった。にも関わらず、同じプロジェクトの人間は仕事がなさすぎて業務時間中に関係ない談笑をしたりしていた。プログラマやテスターや文書作成をするスタッフが40人ぐらいいるところで、閑散期(機能追加のサーバーリリース前以外)は暇そうにしてる人が多かった。プロジェクトマネージャーを除いて。要は、PMは一生懸命働いているが、その一生懸命さは惰性で行われており、無能なのに業務時間が長いPMがいて、その人が全部仕事をやってしまう。他人に頼めない性格らしくて、存在意義が分からない業務を他人に頼んでは「なぜこんなこともできないんだ?」って怒鳴るのが生きがいみたいな人だった。頑張ってることがアイデンティティになってて、その頑張りに意味があるのか、必要なのかという吟味ができず、タスクを他人に振ることもできず、情報もそのPM一人だけが握っているから、周りの人も「私が仕事を請け負いましょうか」ということもできない。それで新入社員をイビるような存在意義のわからない仕事を振って、できなかったら人格否定をするような感じの。
私が受けた仕事ととしては、週に1回ベンダーのところに会議をしに行くんだけど、そのときの社内の資料を全部紙でプリントアウトして持っていくというのがあった。文書作成スタッフが製品の仕様をWordでまとめて、600ページぐらいのpdfにしたものが1500万円ぐらいで売れるらしく、その増えた言語仕様をプリントアウトしてベンダーのところまで持っていく。追加された仕様以外にも、今週やったテスト内容をExcelで纏めたものをプリントアウトしたりしていた。紙の量で言うと、一回の会議で2500枚ぐらいで、それをキャリーケースに詰めて客先であるベンダーまで持っていくらしい。聞いた話では、その2500枚の会議資料は殆ど読まれずに捨てられるのに、そのPMはベンダーにその慣習を廃止しようとは提案しない。ベンダーとの週一の会議の他にも、進捗報告を主とする社内会議があって、PM以外の人はあのプリントアウトする悪習は廃止すべきという話が上がっているのにPMが首を縦に振らないから一向に改善されない。まぁ、そのプリントアウトするのをやるのが私の仕事だったわけですよ。毎週4時間ぐらい掛けてWordやExcelの文書サイズとか調整してさ。元の文書のサイズや余白が狂ってるのに、客先に失礼だと言われて、手直しして、プリントアウされたコロコロコミック何冊分だよ? みたいな紙の束をホチキスで止めていくんだけど、ホチキスの止め方が汚いとやり直し。
じゃあ、なぜPMは頑なに意味のない業務をし続けて、それによって新入社員を使い潰そうとするのかと言えば、弊社の業績が悪くて倒産しそうだったときにそのベンダーが手を貸してくれたからそのときの恩義があるとかなんとか言っていた。だから、靴を舐めるようなことをするし、他人の生産性を奪うようなクソ製品を世の中に出して何も感じないらしい。読みもしない産業廃棄物を作り出して、それを無碍にされて喜んでいるような業務が、今の日本の何割を占めているのだろう? そのPMの口癖は「俺はプログラミングは全くわからないが、こんなプリントアウトの段取りもできないようなやつはプログラミングなんてできないと思うよ」だった。FizzBuzzどころか変数や関数すら知らないような人間にこんなことを言われるのは屈辱だったし、これが高卒未経験で就職することなのだろうと思った。
他にも、私が受け持った仕事に、製品が動くかどうかを確認するテスターという仕事があった。RSpecやSeleniumで自動化しようと言っても、そんな技術を持ってる人がいなかったから、一々自分でその製品を触って仕様通りになっているかを確認しないといけなかった。画面遷移が600ページのpdfになっているから、それを見ながら正しい画面遷移ができているかを確認する業務だったが、正直人間のやる仕事ではないと思う。画面遷移だから前のページから次のページに移行したときに前にどのページだったなんてスクショを撮ったぐらいじゃわからないのに、「このテストをExcelにした内容じゃ、本当にテストしたのかわからないだろう?」と言われた。言われたとおりにExcelファイルにスクショをひたすら貼り付けていたというのに。しかも、その他にも特定のファイルをアップロードするときにどの条件だとアップロードができないかを判別するテストをどうやって行うのか考えろというのがあった。今までにテスターをやっていた人に聞いても指針なんてないと言われ、「賢い人はそういうのを考えつくものだ。俺はパソコンに詳しくないが」とPMに言われ、嫌気が差した。
まぁ、ここまで書けば、如何にブラックと言うか、理不尽で不合理な職場かというのはわかったと思うけど、いい面もあったんだ。前にも書いたように、未経験の高卒が手取り20万貰えたのは嬉しかったし、研修のない会社だったから、最初の二ヶ月ぐらいは一人で勝手に勉強しててと言われたから、実働換算で時給3000~4000円ぐらい貰える計算だったのかな。一番瞬間時給が高かった日はメールの返答に20分ぐらい使ったときだったから、日給1万、実働換算の時給が30000円ぐらいになった。それぐらい放任されていた。
最初は社長が「君にはソースコードのUMLを書いてもらおう」とか言って、クラス図を書く練習をしていたんだけど、現場の人は「今更UMLなんて必要ない」「ソースコードを読めばわかる」と言って、全く必要とされていなかった。だから、業務とは関係ないTCP/IPやRubyやGitの勉強をしていた。家のことで勉強に対してモチベーションが落ちていた私は、金を貰えるという環境では目の前の勉強に集中できるようになって、元の勉強するための生活リズムっていうのか、そういうのを取り戻せた。それは当時の私にとっては有難かったと思う。
ここまでをまとめると
⑤無料で使えるサービスの下位互換といえるような、他人の生産性と金を無駄にするような製品を開発してるプロジェクトに配属された
⑥PMだけが忙しく働いて、周りの人の割り振りができていない。
⑧社会悪のようなソフトウェアを売りつけて金を稼いでいるプロジェクトだった。
⑨仕様書やテスト内容のプリントアウトという必要ない業務をしたり、指示内容と叱責内容が矛盾する理不尽を受けなければならなかった。
⑩しかし、勉強してるだけで月20万貰える環境は有難く、当時の私にとっては願ったり叶ったりだった。
では、次に私がその会社の入社から辞めるまでの経緯について書こう。最初のうちは、自分の勉強時間を取れていたし、振られる仕事も理不尽で意義を感じられないものであるものの、すぐに終わることが多かったから問題ないと感じた。それが徐々に仕事が増えていき、勉強時間が取れなくなっていった。
ここで若者応援おじさんAの登場である。Aさんは私と会ったときは有名企業に勤めていて、そこを辞めて私を紹介してくれた中小企業で働き始め、その数カ月後に私を紹介してくれた。元々、その会社の社長とは懇意にしていたから、一緒に働こうという話が何十年も前からあって、今回ちょうどタイミングが合ったから、その友人の会社の重役として就職したらしい。私が就職したのはその数カ月後だった。
Aさんは「何か問題があったら、部下や上司という立場を気にせずに忌憚なく言ってほしい」「俺は人を見る目はある方だ。君は一本芯の通ったところがあるから、周りに流されずに新しいことをできるだろう」「君には将来性がある」「俺は新しい会社でも権力を持ってるからへんなことを言ったり、したりしてる人がいたら遠慮なく言ってほしい」とかそういうのを入社する前に言っていて、まぁ、色々とおかしいところ、FAKE野郎みたいな発言が多かったけど、そこだけは信じてたんだよね。本当に騙すんだったら、そんなすぐに辞められるようなリスクを上げるような発言はしないだろうってさ。ちなみにFAKE野郎って感じたのは、一方的に自分の話だけをして、私が質問すると煙に巻いたり、私のことを買ってるという割には私の話をすぐに中断させて自分の話をし続けるとか。その人はFラン出身だったから、ちょっとインテリなことを言うと「君は変わってるね」って言ったり、きょとんとした顔で10秒ぐらい固まった後、すぐに自分の自慢話を再開したりと、決して自分の知らないことや分からないことを認めようとしなかった点だ。他にも、「私と働きたいと言ってくれていた会社はあったけど、そこは技術的に成長できそうだけど給料は月7万程度でバイトの身分だから、迷ってるんですよね。バイトだから自由時間は多く取れるんですけど」みたいな発言をしたら、鳩が豆鉄砲を食ったような顔をして、私が感じていた不安を取り合ってはくれなかった。Aさんは「俺は社内で影響力を持っているから、君を正社員にすることもできる」みたいな話を延々としてたのに、いざ蓋を開けてみると、「君の面接での受け答えが駄目だから、契約社員として雇用することになった」「あれから上層部に渋られてしまって、請負契約にすることになった」と話が二転三転していった。だったら、他にも選択肢があったのに、他のところに就職したのにと思ったが、自分の能力や経歴で負い目を感じていたから強く言うことはできなかった。高卒で就活するというのはそういうことだ。他にも選択肢があるのにも関わらず、どうせ労働に関する知識がないと足元を見られて、条件を徐々に下げられ、他に選択肢をなくした後で、悪い条件で働かざるを得ない状況になっていた。結局、勤務時間がタイムカードで管理されてるのにフリーランスとして請負契約を結ぶという偽装請負で契約させられ、もっと技術力を磨ける選択肢は潰されてしまっていた。
私は会社の問題点を丁寧に分析してpdfにまとめてAさんに送ったんだ。それが間違いだった。如何に会社がそのベンダーに良くしてもらったか、大変なのをわかった上で俺たちが会社を立て直してきたかということばかりを話していた。百歩譲ってそこはいいとしても、ベンダーとは関係なく職場環境を良くするための話までいい加減に聞かされてうんざりしていた。
「Aという問題があります。その背景にはBがあります。そのためにはCという解決策があります」
という話をしたときに、「Bぐらいみんな当たり前にしている。君だけ特別扱いすることはできない」みたいな返し方をされて、問題が発生してる事自体はないものとされていった。結局、職場にはびこる不合理で理不尽な業務やルールは改善することはなく、私への人格攻撃で終わってしまった。
毎日どうでもいい作業で疲れ切って勉強時間が取れなくなってしまった私は、最初に出会った頃のAさんの言葉を信じて、「私が本当にしたいことは、仕様書やテスト時のスクショをプリントアウトしたり、よくわからないテスターをやったりすることではない。このままでは、プログラマとしてのキャリアを積むための勉強時間を作ることもできないし、業務内でコードを書くこともないから業務時間を短くしてほしい」と言った。少なくとも、最初Aさんと会ったときは、「君には人工知能や Permalink | 記事への反応(1) | 23:52
増田文学大賞 'All Time Best増田' は2018年8月末に発表します。
(株)はてな 6.59% 445352200円
毛利 裕二 5.98% 404128400円
梅田 望夫 4.30% 290594000円
伊藤 直也 1.79% 120968200円 ○
田中 慎司 1.30% 87854000円 ○
小林 直樹 1.15% 77717000円
お金の額面はともかくの話なんだけど、
○をつけたのは、はてなのコードを書いたことがあると"思われる人"。「名前 プログラミング」で検索して有意な結果が出た人に○つけた。各株主の詳細知りたい人は適当にググって
で、さらに
はてなの年収は524万円が平均年収です。(有価証券報告書調べ)
http://heikinnenshu.jp/joho/hatena.html
スクリプト言語(主に Perl/PHP/Python/Ruby/JavaScript)によるアプリケーション、ライブラリ開発の経験
ScalaやGoにおけるアプリケーション、ライブラリ開発の経験
iPhoneアプリ、もしくはAndroidアプリの開発経験
UNIX系OS、RDBMS (特に Linux、MySQL)についての基礎知識
コンピュータサイエンス(アルゴリズムとデータ構造、分散技術、自然言語処理技術、機械学習、データマイニング、型理論)に関する基礎知識
ネットワーク技術(HTTP、DNS、TCP/IPなど)についての基礎知識
大学卒/275,000円〜
http://hatenacorp.jp/recruit/fresh/application-engineer-entry
この毛利 裕二という人の持ち株の資産を新卒の給料(計算だるかったから計算からボーナス抜いたけど、手取り分で考えたらボーナス分くらいは消えるだろう)で稼ぐとしたら122年かかるし、梅田 望夫という人は88年かかる。本当にこの人たちにはそれほどの価値(上にあげた新卒に求めるやたらと高いスペック)分の価値があるのか?いや、価値があると思ったから株をあてがったんだろうけど...
私(♀)は今、北日本のどこかにある某システム会社でシステムエンジニアをしています。
小さいときからパソコンや電子工作が好きで、高校卒業後は情報系の専門学校に入学しました。
飛びぬけて優秀というわけではありませんが、進学の推薦に困らない程度の成績は維持していました。
「私子ちゃんの成績なら進学なんでしょう?」「私子は進学のほうが向いてるよ」と周りからは言われました。
私も進学したいという気持ちがありました。
親に相談したところ、母は「ダメとは言わない。進学するなら奨学金を借りてほしい」と言いました。
父は「四大を卒業した女はすぐに結婚して辞めると思われる。四大なんて女が行くところじゃない」と言いました。
父が言うならそうなのだろうと思いました。
今のシステム会社に入社し、同期の1人と一緒に運用系の部署に配属されました。
学生時代はCやJavaの基本について学んではいましたが、その部署ではプログラミングをすることはほとんどありませんでした。
代わりにLinux,TCP/IP,ネットワーク構築の技術が求められました。
LinuxやTCP/IP,ネットワーク構築は初めて見る知識で先輩が教えてくれる業務をこなすのに必死でした。
一緒に配属された同期は性格の明るさと器用さでどんどん仕事を覚えていき、私と差がついていくのがわかりました。
同期と差がつけられるのが悔しかった私は、勉強をはじめました。
そのころ、我が家は祖母の介護をめぐりよく父と母がけんかしていました。
母が「殺せ!殺せ!私を殺せ!」とはさみを持ってよく叫んでいました。
私と弟が母親をよく羽交い絞めにして止めました。
祖母は、父に対しかなりの毒親っぷりを発揮&クソトメであったため、介護も大変だったようです。
喧嘩を見なければいいと思った私はよく図書館で勉強していました。
その秋のAPは落ちました。
配属されて1年ほどたったころ、私はある女性(40代、既婚)の下で働くことになりました。
以下おばさんと呼ぶことにします。
「なぜわからないの?」「かんがえたの?」「もう1回調べて」とよく言われたので、言うとおりにしました。
厳しいなぁと思いましたが、私の成長を思ってしてくれているのだと思いました。
自分なりにがんばってみるものの、つき返される日々がつづきました。
そのうちに、夜眠れなくなりました。
毎日倦怠感がありました。
「仕事 がんばる 方法」「仕事 落ち込み 立ち直る」でぐぐることが多くなりました。
いろんなにきび治療方法を試したので、にきび治療に詳しくなりました。
元気出す系のドーピングアイテムにも詳しくなりました。(レッドブルからプラセンタまで)
ある日、おばさんが言いました。
「あなたを見てるとイライラするのよ。あなたの成長なんて知ったこっちゃないのよ。さっさとやってよ。」
土日出勤・給料未払いというブラック企業勤めの弟が居たので、相対的ホワイト企業勤めの私がうつ病、ちゃんちゃらおかしかったのでしょう。
夕食のときに、父が「会社を休むのなら学校にでも行け」といいました。
私はおもわず泣きました。
「飯がまずくなる」と父にしかられたため、自分の部屋で食べました。
休んでいる間の家族の目がつらかったので、1ヶ月で仕事に復帰しました。
「つらかったら半日で帰ってもいいんだよ」と上司(男性、おばさんとは別人)に言われましたが、家に帰ってもろくなことがないので、定時まではたらきました。
そんな中、弟が交通事故で重傷を負いました。
弟は障害者手帳を持つようになりました。
用事があり作りませんでした。
弟は帰るなり私を殴り、「なぜ俺の飯がないんだ」と叫びました。
さすがに理不尽だと思い親に訴えました。
母は「あの子はやかんみたいな子だからね。すぐに沸騰するのよ」といいました。
その後親から弟にお叱りがあったようです。
弟は私に会うたびににらむようになりました。
親に言いつけたことへの報復が怖くて、夜は自分の部屋の扉に、机やいすでバリケードを作って寝ました。
APは5回ぐらい落ちました。
親の怒号や弟の報復におびえることなく勉強できる場所がほしいと思いました。
実家暮らしで、うつ病で趣味もなくなっていたので、お金はありました。
親は、一人暮らしをすることについては何も言いませんでした。
隣の部屋のおじさんの声、車の音がうるさかったですが、親の怒号や弟におびえた日々に比べたら天国でした。
好きな時間にご飯が食べられる。
好きな時間に帰ってこられる。
以上です。
はっはっは。その息子さんに「おまえはオレか!」って言ってあげたいねw
オレみたいにIT業界でそこそこ活躍して、さほど有名にもならず、ひっそり引退するくらいのエンジニアになる素質があるよw
かつて、いまのようなTCP/IPベースのファイル共有が一般化する以前に、NetWareていうファイル共有サーバが職場に導入されたときに、
各ユーザには一定のファイル容量が割り当てられて、それを超えては書き込みできないようになっていた。
あと、一個のフォルダ(当時の用語ではディレクトリ)には、1024だか4096だか忘れたけどファイル/フォルダ数の制限もあった。
オレは、フォルダだけなら容量「0バイト」って表示されるし、無限に作成できるのか?
あるいは、見えないけどそこそこ容量を食うから有限なのか?と、疑問に思って実際試してみることにした。
MS-DOSのBATファイルを書いて、自分のホームフォルダに「A0001」〜「A1000」みたいな名前でフォルダを作り、さらにその下の階層に「B0001」〜「B1000」などとガンガン作り続けるプログラムを走らせた。
小一時間たったあたりだったか、ファイルサーバが容量不足を起こしてダウンした。
「勝った!」って思ったねw 当時のサーバ管理者Sさん(および職場の同僚の皆さま)には、大変ご迷惑をおかけしました。どーもすいませんww
http://anond.hatelabo.jp/20160902031012
はてブで批判してる人たちよりよほど志のある学生さんだと思うので、いろいろ書いてみます。おっさんのたわ言ではありますが、元記事の人にすこしでもヒントになればと思って。
まず、日本の大学で勉強しても実用的なソフトウェアが書けるようにはなりません。どういうことかというと、「情報系の大学に行けば○○が作れるようになる!」という世間一般の期待と、実際に大学で教えている内容には大きなギャップがあるということです。
これは大学が悪いのではなく、大学はそもそもそういうものであって、それが世間に認知されてないというだけです。
具体的に挙げてみましょう。
大学で教えてる内容ってこんな感じなので、ゲームやアプリやサービスを作ることが目的の人から見ると、役に立たない内容にしか見えませんし、実際たいして役に立ちません。その証拠に、大学の情報系学科を出ていないのにゲームやiOSアプリやWebサービスを作っている人はゴマンといるし、逆に日本の大学の先生でゲームやiOSアプリやWebサービスを作れる人はほとんどいません。
これは重要なことなのでもう一度書きますが、日本の大学の先生でゲームやアプリやサービスを作れる人はほとんどいません。大学の先生が得意なのは、プログラムを書くことではなく論文を書くことです。論文のためにプログラムを書くことはありますが、あくまでおまけです。
そのため、大学で勉強してもゲームやアプリやサービスが作れるようにはなりません。だって教えている側の先生が、ゲームやアプリやサービスを作ったこともなければ、作り方も知らないんだから。
そういう経験のない人たちばかりですよ、日本の大学の先生って。そんな人たちの授業を受けて、アプリやサービスが作れるようになると思うほうがおかしいでしょう。
ためしに、先生方のTwitterアカウント名でGithubを検索してみてください。いまどきGithubにアカウントがないとか、あったとしてもTestCaseすらないコードとか、そんなものばかりです。「研究内容をライバルに知られるわけにはいかないからGithubは使わない」という言い訳する人がいそう。けど、本当はGitが使えないだけでしょ?
あるいは、先生方の個人ページや研究室の紹介ページを開いて、HTMLソースを見てみてください。doctype宣言がないとか、viewportの指定がないとか、Pタグの中にULタグを使ってるとか、そんなのばかりです。HTMLすらろくに書けない人が、Webアプリを作れると思いますか?きっとXSSもCSRFも知らないですよ。
ですので、そういうことを勉強したいなら、ベンチャーやIT系企業に入るべきです。大学でそういうことを勉強しようとしても、教えられる人がいないから無理。
(「大学はそんなことを教える場所ではない!」と怒る人いると思うけど、教えられる先生がいないという事実をごまかすために怒ってるだけだから。)
とはいっても、大学の先生がプログラムがいっさい書けないというわけではないです。彼らが得意なのは、コンパイラやインタプリタやOSやソルバを作ることです。これらも実用的なソフトウェアと言えなくはありませんが、ゲームやアプリやサービスとはジャンルが大きく違います。
そのため、大学の情報系学科に進めばコンパイラやOSや機械学習ライブラリを書けるようにはなるかもしれませんが、それはゲームやアプリやサービスではないので、繰り返しになりますがそれらを作りたい人には大学は向きません。
じゃあ大学で授業を受けるのってムダなのかというと、必ずしもそうではないです。
大学で教えている内容って、ゲームやiOSアプリやWebサービスが一通り作れるようになってから、その先を目指すときになって初めて必要になることが多いです。たとえば、
こういうときになって、初めて大学で教わった内容が生きてきます。逆にいうと、そういう状況にならないと、大学で教わった内容は生きてこないと言えます。(情報系の学科で学んでいるなら、ライブラリや言語やOSを「使う人」ではなく「作る人」にぜひともなってほしいですね。)
元増田は、社会に役立つ実用的なソフトウェアを作りたいようです。しかし残念なことに、大学が教えている内容はその目的には合致していないことを説明しました。
こういう事情なので、元増田には大学をドロップアウトしてIT系の会社に入社することをお勧めします。ドロップアウトが難しいなら、インターンやバイトでなんとしても入り込むことです。
入るべき会社は、教育に力を入れている会社です。20人未満の小さな会社では教育に力を入れている余裕はないので、小さな会社はやめたほうがいいです。簡単にぐぐってみたところ、はてなやPixivやクックパッドやDeNAやドワンゴは教育制度が確立しているようです(違ってたらごめん)。そういった会社に入ったほうが、大学の授業を受けるよりも、元増田の目的にかなうのは間違いありません。
そして何年か働いて、iOSアプリやWebサービスが一通り作れるようになったら、大学に入り直すことです。これはとても効果的なので、元増田には強くお勧めします。
上で説明したように、大学というところは、ゲームやアプリやサービスの作り方は教えてくれず、それらが作れるようになって初めて役に立つことを教えてくれます。そのため、元増田はIT系の会社に入ってアプリやサービスの作り方を勉強し、それらが作れるようになってから再度大学の門をたたくのが、いちばん効率的です。
なお繰り返しますが、入るべき会社は「教育に力を入れている会社」です。今のIT系企業では、インターン生を「格安で使えるバイト君」としか見なしていない会社が多すぎます。そういう会社は、コストが掛かることはいやがるので、教育もろくにはしてくれません。逆に教育に力を入れている会社では、インターン制度を「将来の戦力を選別する期間」と見なしています。
残念ながら、そういう会社は東京に集中しているようです。例外は京都のはてなくらいでしょうか。地方の大学生にとってはつらい現実なので、はてなやPixivやドワンゴは地方でのインターン開催をお願いします。あとレベル5は九大と九工大の学生を鍛えてあげてください。
余談ですが、学生さんにひとこと:
インターンやバイトで潜り込む先の会社を選ぶときは、就活と同じような時間をかけて選んでください。バイトだからとかインターンだからという軽い気持ちで会社を選ぶ大学生が多いから、それを食い物にしている悪質経営者があとを立ちません。インターン生が「格安の学生バイト」として使われている現状を是正するために、学生のほうでも注意してください。
ドロップアウトを進めた手前、書こうと思ったけど、長すぎるのでやめた。
リツイートが100超えたら書く。
こんにちは、シャイニング増田(シャイ増)です♥町中で良くリクルートスーツの就活生を見るようになりましたね。先日後輩の紹介で○○大学の学生からグーグルに入りたいという相談を受け渋い気持ちになりました。○○大学では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万円はないかもしれませんが、結構な高給取りになれました。おめでとうございます!さてここから昇給するにはどうすればいいのでしょうか?
http://webbingstudio.com/weblog/cms/entry-773.html
小規模の商用サイトでは、フォームを暗号化する際には、共有SSLを利用するのが当たり前となっています。独自ドメインのSSL証明書を取得すると、フォームを通して得られる収益よりも、維持費の方がはるかに高くなってしまうからです。
とこの記事では書かれていますが、一体どこで「当たり前」なんでしょうか?
SSL証明書の取得費用は、サーバーホスティングによって額がまちまちなのは確かですけれども、
安く独自SSL証明書を取得して利用できるサーバーホスティングは山ほどあります。
WEB制作者として「自分が良く知っているだけ」のサーバーのレンタルをクライアントに押し付けてはいませんか?
また、小規模商用サイトにしても、仮に年額35,000円のSSL証明書をつけ、かつ、月額3,000円のサーバーを借りていたとすると
月額でいえば6,000円くらいの負担ですが、
いくら小規模とはいえ、広報活動の中核をなすWEBサイトであるならば、
月額6,000円をペイできないとすると、
(というか、効果測定をしていないだけ?)
共用SSLのリスクに関して言えば、この記事が引用している、高木浩光氏の書かれている通りではあります。
cookieが取得できてしまう結果として、一番最初に狙われるのは、管理画面へのログイン。
いわゆるセッションハイジャックです。
ログイン状態を乗っ取られた時点で、どんなCMSでも、WEBサイトの改ざんは可能です。
なぜか。
そのコンテンツは多くの場合MySQLに代表されるDBに保存してあります。
したがって、ファイルの改ざんなどを行わずとも、WEBサイトの内容は書き換えることが可能なのです。
「なるほど」と思ってしまうかもしれないので、
早々に訂正していただきたい。
また、この記事にある a-blog cmsというCMSについてはよく知りませんが、
多くのモダンなCMSでは、ほとんどの管理画面ログインにおいて、
セッションハイジャックに対する防衛は行われていますので、
cookieの取得が、即WEBページの改ざんに繋がるような書き方も、
ここも早々に訂正していただきたい。
この筆者さんは、a-blog cmsというCMSを利用されているようだ。
このCMSはどうやら、PHP製ながらPHPのソースを暗号化しているようだ。
こう言ってはなんですが、攻撃者にしてみれば、a-blog cmsを攻略するくらいならMovable TypeやWordPressを攻めた方が楽というものです。
この記述はむちゃくちゃである。攻撃者にしてみれば、誰でも手に入れられるCMSであれば、
a-blog cmsの公式サイトを拝見すると、MySQLを利用しているようで、
ファイルの暗号化はなされていようとも、DBの中身の仕様は丸見えだ。
前提条件として「知っている」「知らない」の差はあれど、攻撃に関して「ラク」というのは
どう考えても楽観的に過ぎる考えだ。
どうも「SSLで確保される安全の領域」について、かなり認識が甘いようだ。
SSLはあくまで、TCP/IPネットワークにおいて通信経路を暗号化するための技術だ。
通信する際に、通信先のサーバーが正しく認証されているかどうか?に必要なのはSSL証明書。
で、ここに書いたとおり、SSLはあくまでサーバーと利用者の通信においての暗号化だ。
この記事に書かれていることは「メールフォームについて」のことのようだが、
サーバーに到達したあとのメールについては安全性をかんがえていますか?
メールは全く暗号化されず平文で送信されるとても脆弱な通信手段だ。
いくらSSLで通信を暗号化しようとも、問い合わせフォームの送信がメールだったとすると…
とこの記事ではかかれていますが、そもそもHTTPやHTTPSの通信を傍受するより遥かに
メールを傍受したほうがラクとも考えられるはず。
CMSの機能に甘んじて、こういったベーシックな問題に考えが及んでいないとすると、
とおもう。
記事に対するつっこみではないですが、
正しくは「TLS」でっせ。
管理職でもなんでもないただの下っ端が思うことなんだけど、その人に新しい仕事を与えてやってもらうってなかなか難しいことだと思うんだ。
教育もなしに技術的な仕事を与えるって結構酷だとおもうんだけど、うちの島はそれを軽くやってのける。
そもそもそれが一般的なのか、この会社だけなのかは正直私はわからない。
だけど、何も技術的な基礎知識が無いレベルでLANケーブルを繋いでおいて!とか、電話の回線手配して、こっちの回線は代表組みして…
みたいな話を何も基礎知識が無いレベルで投げるのはいろいろ酷だと最近思っている。
正直私も詳しくはないが、仮にも情報系出身なのでまだ食いつけるし、噛み付ける。
独学でやるにも、独学でやる取っ掛かりがわかる。
正直上みたいな仕事を文系出身者一年目女子みたいな子にお願いをして後サポート無しとか、正直無茶じゃないかと思っている。
(案の定それでトラブル起こされて、痛い目を見ているのだけど。)
コレのトラブルを前は私が吸収していただけど、さすがに最近耐え切れなくなって上に投げたら、上がこちらを見ながら
まだ、この人にこの仕事をお願いしたから後サポート宜しく…のような流れが見えればまだいい。
それすらなくその人に移行している。そして、周りからのサポートはなし。
技術的にはわかっていても、運用方法やルールさえも察しろというのか。
そのあたりを同じ島の人に愚痴ったら、「それは自分で学ぶことだ」だそうだ。
まあ、若干は学ぶでしょうが、調べるでしょうが、さすがに0を探すところからやらせるのか
なんて私は思ってしまう。誰に聞くのか、何を調べればいいのか…ということぐらいは伝えてその人が
仕事がいやになる前に、やめる前に、ある程度の技術を教えるタイミング、機会などは設けてあげて欲しい。
みんながみんなTCP/IPの基礎知識を知っているわけでもなく、LANケーブルを作れるわけでもない。
そもそも、TCP/IPという単語を知らない状態でそのことを勉強しろというのも無茶だと正直思う。
それは甘えなのか、願望なのか、やさしすぎるだけなのか。
私は割りと、そういう事案があればわかる人にしつこく聞いて、嫌がれるほどきいて覚えてきた人だけど
みんながみんなそういうスタンスだとは思っていない。むしろ、私みたいなタイプは少ないんじゃないかなと
よっす!、よっす!増田!
増田だよ。
/*
※書いてて、くっそ長い事に気付いたんで、3つに分けます。
めんどいと思った方は③だけ見てください。
始めたのは去年大学に入学して一ヶ月経ってからだから、だいたい5月の半ばからだったと思う。
そもそも、まずなんでインターンしたの?って思う人もいるから説明すると、単に5分で甘くて、美味しいナポリタンを作れる技術を身に着ける為に時間を使うならば
将来の自分に役に立つ技術を身に着けるために時間を使ったほうがいいって思ったんだ。
もちろん別に飲食店や他のサービスで様々な経験を獲得している人が悪いとは思ってなくて、ただ
やっぱりパスタ作るよりも、インターンしながら濃い経験しようと思ったんだ。
①
まぁそんな感じで、4月から僕はとあるシステム会社で有給インターンを始めたよ。
って言っても、大学一年でやる気しかねぇどうしようもない僕が最初にやったことは、まず本を読むことだった。
つまりは、システムに携わる者としてはPCとは何か?インターネットとは何か?アリゴリズムとは何か?TCP/IPって何?プロトコルってプルコギと、どう違うの、美味しいの?
そう言った、基礎の基礎をまず学ぶんだ。
これは僕が入った会社だけかもしれないけど、やっぱり始めは"知識"から始める。
でも一回読んだだけでは頭に貯まらないから、休み休みでまた復習する。
で、こういう勉強はずーーと続く。
当たり前かもしれないけど、会社は"品質を常に向上"したいわけです。
一方大学ってのはある程度自由なわけです。
そうなると、会社にいくときには「その知識が頭にあって当たりまえだよね?」な状態でなければ仕事ができないわけです。
じゃないと「君は一体何のためにここのインターンしてきたの?」ってなるわけです。
と言うのも、やはり学生なのだから学業優先で、次に仕事をこなすための勉強なバランスにしたいけど、
現実はインターンの仕事をこなす為の勉強が圧倒的に比重がかたむいていた。ってか正直そうならざるおえない
そう言う時はちゃんと、会社側と相談するべきなんだけど、僕は一人で考え込んでしまったから、相談をするタイミングアがずるずる伸びてししまった。
やはり会社でもどこでもそうだけどコミュニケーションってのは必要だ。技術も大事だけ、意識合わせが出来ないと、その仕事で今どこでつまっているのか?
何がわからないのか?を相談しなくても、前知識がないから、一回では説明が終わらなくなる。
だから円滑にするために考えたのは、その日の終わりに経過報告してから帰るとか、とにかく常にお互いに現状把握していた方がいい。
で有給インターンでいきなり仕事させてもらえたの?って思うけど、実際に本番をはじめたのは三か月後だった。それまではひたすら簡単なコードを書いてた。
ただ会社から言われたことは、どんな言語にでも対応できるエンジニアになれって事で、言語のお作法よりかは、考え方ひたすら見に着けようとしていた。
つまりはフローチャートなんだけど、これが出来て次に初めてコーディングに触る。これは最初の頃は中々なれなくて大変だった。
なぜなら大学ではそんな事まで教えてくれない。で、教えてくれないものを僕らはやらない
だから、インターンして思ったのは、常に自分でどうたいのかを考えないとこれは全くの経験にならない。
②
なにが辛かったって言うと
1に仕事が終わらない
2に仕事が終わらない
3に仕事が終わらな
4に課題ができない
5に彼女ができない
な順に辛かった。そもそも理系なので、課題やらレポートなんてのは毎週出されるわけです。
そうなると、こんどこの案件やるためにこのソフト使うから、この言語マスターしてきてねって言われても、きついなわけです、もう学業優先とか言ってらんねーわ
ってなり、その内仕事が出来ずに何もできなくなるってのが最悪でした。
えっ?こんなんでいいことあるのっ?って思われるかもしれないですけど
僕が唯一いいことって思うのは、たまに社長が美味しいお店に連れて行って貰いダで美味しい物をたべれたぐらいです
完全に餌付けですね。本当にどうもごちそうさまでした。
まぁ人が少なかったので、社長と僕しかいないときにはお昼にどっかでご飯たべて、だべってフラーと散歩して、かえって、まただべるとかよくありました。
その時によく話してくれのは、昔の大学時代の話から始まり、女性をどうひきつけるのかの為の話術だったり、たまーにマジメな話だったり
よくも悪くも、濃密な話を聞けた事が、僕はインターンしてた"私生活では"良かった事だったなって思う。
③
まとめ
以上。
ドットインストールなりrailsのチュートリアルなり、golangなりやって見るんだ。
そうやってブートストラップしていくとどう情報を掴んでいけば良いか分かるようになってくる。
とりあえず学部3年なら簡単なTODOリスト管理アプリを作れるぐらいでバイトも普通に見つかるだろう。
それが難しければ、パソコンのサポートなら出来るだろう。なんでも良いからやらせて貰え。
数学は最低、離散数学でブール代数はきちんと練習すること。あと集合。
ハード系だと
の辺りを意識的に取り組んで欲しい。
その他は、
あたりを読んで、分からないところを先生や詳しい同級生に聞く。
あと、5000万行ぐらいのテキストファイルで、マージソートをUNIXのコマンドでやってみるとかお勧め。
ただし、そうやっていく中で、もし「楽しい」と思えない時間が3ヶ月〜半年なり続くようであれば、
適性を求めて (例えば) 経済学部などに行くが良かろう。