C++幼女先輩

プログラミング成分多め

年収2000万を超えた方法

多分、凄腕プログラマさんは年収1000万オーバーもざらにいます
2000万超えるのは、プログラムだけじゃ難しいですが

とりあえず1000万の壁を抜けた人たちの話です

会社員で1000万超えられるか?

年収1000万は月にして83万。フリーランスなら普通にそれぐらいいます
ただし、リーダー、マネージャ出来る凄腕だけど
会社員でも年を取ればいけます
でも若いうち(30前半まで)で超えられるか?
ボーナス200万あれば月67万。行けそうですかね?

会社次第だけど、あまり簡単ではなさそうです
基本的に社員時代は技術力向上と、自分のブランドアップに徹した方がよさそうです
やはり大きな会社の方がノウハウがたまっていて、技術力のある先輩社員や外注さんと仲良くなり
技術力を高めていくのがいいのかな?
自分売りはやはり TwitterなりFacebook、Qiita というSNSや、勉強会等で能力を公開することですね
で、そこで満足してもいいし、お金を求めてフリーになってもいい
技術力と自分売りが出来てれば、1000万ぐらい軽くいくでしょう

会社員良く知らないけど

ただ、外資でなくても、月160万~のオファーも来たりするので
もちろんリーダーやマネージャの能力重要ですが、プログラマでも2000万はギリ行く事は確定です

フリーで1000万オーバー

月額83万。でも実際は1,2か月仕事ない期間があると考えると月100万欲しいところ
月100万というのは心理的な壁になっています
なぜなら、会社によっては外注一人に出せる決済のおりる金額というのがあり、担当レベルだと例えば80万までとか
部長クラスで90万。100万超えると役員の承認が必要とか
ルールがある場合が多いようです
そんな場合は、週3日で60万で請けて、別件を週2で入れたり、持ち帰りと合わせて 100万オーバーを狙うか
役員以上の人から話をもらうために、役員以上のコネを作るのがいいでしょう
ただ、最近は腕のたつプログラマには100万ぐらいまでは簡単に決済おりることが多い気がします
120万は一つの壁ですが
役員の首根っこつかんでれば160万までは、わりと話をききます

年収2000行くには、平日で120万以上の案件をもち、あとは 人を入れるか持ち帰りを行って足さなければ難しいかもしれません

アイドルプログラマ

自分売りが本当に成功した人です
AWSならこの人に聞け、この言語ならこの人に・・
勉強会で人気な発表したり、本が売れたり、何かですごく名前が売れた人です
私も経験してないのでわかりませんが、この人が居る事で社員も入ってくる、まさにアイドルなので
月200万オーバーも夢じゃない世界です

自分の場合

私は30前半で1000万はいってましたが、それは平日の仕事が100万で常駐し、持ち帰り案件と合算という感じです
2000万はもっと後の話ですが、平日は120万ほどで請けて、信頼できる人間を入れたり、持ち帰り案件や、手を動かさずにコンサルのみ行う
といったことで超える事ができます
まだ自分の技術だけでは超えられないので、そこが課題ではありますが
安心して仕事場に送り出せる人と、コンサルと、やはり技術力と売り込み どれも重要で微妙なバランスです

お金の使い道

正直、かせいでも半分は税金になりますので、正しい事に使うべきです
例えば、お金をけちって安いPCで作業効率落とすなら、いいPCにして経費にすべき
モニター1個追加したり、SSD容量大きいものを買う、メモリー増やす、CPU良くする、GPU良いのに・・
これだけで作業効率やモチベーション上がるなら、正しい使い道です
あとは、事務所というか秘密基地を作って、そこに投資しようとしています
なるべく 一緒に仕事する人たちが快適に楽しく技術を磨けるように、いい秘密基地 目指しています

決して、自分がブランド品で固めたり高い車乗り回したりはしません
でも、仕事とるために、多少はいい服のコスプレすべきだな・・・とは反省しているところですが・・
そのあたりは別の課題ということで・・

そして最も重要なのは、自社プロダクトを作る事ですね。
ただ難しいのは、お金をいっぱい出して仕事としてプロダクトを作るのか、みんなでワイワイ遊び感覚で作るのか
どちらが良いかは、メンバーやプロダクト次第ということです
あまりにもビジネスライクにすると、結局お金出す人の声だけでかくなり、いいものが出来ない気はします
その場合、基本的には 環境をよくしたり場所を提供したり機材を提供したりはしますが、あまり給料は発生させず
プロモーションなどの費用を受け持つかんじがいいのかな?と思ってますが、いかんせん経営は素人なもんで・・・

今までの反省とこれから

最近自分の技術力が相対的に落ちてきた気もしつつ・・・は反省材料
自分の売り方が下手で、本を書くなりSNSうまく使うなり、ちゃんと売らなきゃ
結局この先は人を沢山入れて会社の利益増やしてそれを、秘密基地や自社プロダクト=会社の価値 に還元する事になるが
従業員の価値を高める方向へのお金の使い方が出来ないか?模索している
人を入れる、自社プロダクト以外の利益の上げ方、つまりは自分の単価を高めるための努力は行わねばならないな・・

結局技術力しか売りのない私なので、ちゃんと技術ついていかねば明日がない
しばらくUNITY勉強し直します

UNITY DrawCall調査 GPU Instancing ~ UNITY2018.3.6f1 ~

UNITYのパフォーマンスの鍵は昔からDrawCall削減といわれている
今はSetPassとともに語られるようになった

まず、DrawCall、SetPassとは何か?
それらを減らす方法は?
GPUインスタンシングとは何か?
から、GPUインスタンシングで減らすのを調査した

qiita.com

人生最後の言語

おおげさに
プログラマとしては後数年でメインの座から離れるかもしれない
理由は、一生働かなくても暮らしていける貯金を手に入れているからだ
もちろん質素な暮らし限定だが、ご飯食べて住むところがあり、ゲームして遊べれば十分だ
ただし、ゲームを一日中出来るほど集中力があるわけじゃないので、暇つぶしに少しプログラムしたい
もっと言えば、最近仕事をしている人、仮にクィーンと呼ぶ
クィーンからの依頼をこなすため、Web開発に使える言語をなにか一つ本気で身につけようと思った

言語の比較

言語は色々な側面から選ぶのだが、まずは速度という面からジャンル分けしてみる

ネイティブコンパイル言語

ネイティブ実行ファイルが生成される、最も早い言語である
この言語を使うなら非同期前提だろう

C++言語

C言語はlibEvent等を使うが、個人的辛いのでCでは書きたくない
Boost.Asio等を使い非同期を行う
Webフレームワークも無くはないが、あまりWeb開発で使う人が居ないので情報が少ない
ライブラリは非常に多くそろってはいるが、SDKやWeb開発に便利なものが少ないので
かなり自作する必要があるだろう
問題は、他の人と共同開発や、開発速度を上げるのが時間がかかる

Rust

Post C++をうたう言語
今の所、まだライブラリが少ないかな・・という印象をうける
速度は申し分ない
フレームワークとして Actixが良さそう

Go

ネイティブのわりには遅い気もする(JavaやKotlinより遅いような・・)
が、恐らくコンパイラの最適化でもっと速くなるだろう
シンプルな言語で、サーバレスには良さそうだが
あまり作り込みがしにくいので、あまり良い印象もってない

VMコンパイル言語

VM上で動くコンパイル言語だ
基本的にはネイティブより遅いが、そうでない場合もある

Java

特にビジネスアプリでは昔から大人気
フレームワークも非常にたくさんあり、Spring、Play、Servlet・・・
少し前までは Android開発言語でもあった
なんだかんだでド安定言語

Kotlin

Better Javaといったかんじか
今のAndroid言語
JavaVM上で動く言語
フレームワークは、http4kなど

C

Better Java
Microsoftの言語なので、ビジネスでの利用も多くマニュアルも濃い
.net Coreの存在や、UNITY、Xamarinの存在により、最もフルスタック言語といってもいい
ゲーム案件を多く抱え、UNITY開発をよく行っている私にはベストかもしれない
MVCフレームワークはFullstackフレームワークのくせに速い

Erlang,Elixer

Erlang VMはあまり速い印象がないが、堅牢性では非常に優れている
Erlangは言語に癖が多いが、ElixerはそれをRubyライクにまとめたかんじ
Elixir Phoenixが有名か

Haskell Clojure

メインで使うには・・・
良い言語なのだけどね

スクリプト言語(非同期)

スクリプト言語は遅いが、非同期であれば我慢できそう

node.js

非同期を流行らせた言語
JavaScriptがベースになっているので、Webサービスを作るには相性はいい
非同期フレームワークのなかでも、かなりライブラリが多くコミュニティも発達している

Python

使ったこと無いが Tornado等、非同期フレームワークは存在する

スクリプト言語(同期)

個人的には、速度的には避けたいが、高速で開発できるならあり

PHP

ゲーム業界では人口が多いハズ

Python

世界的に最も人口が多い
人工知能にも使われる

Ruby

日本では開発者が多くコミュニティも活発

決断

C

UNITY案件を多く請けているし、.net Coreのおかげでサーバ開発も可能
さらにツールも作れる
ほぼフルスタックのC#をまず初めに勉強しようと思いました

node

非同期サーバとして有名でノウハウもあふれている
また、GypでC++とも連携しやすい
Electronでアプリも開発出来る
そしてWebのフロントはJavaScriptが必要
これまたフルスタックである

Java

Webサーバとして歴史もあり速い
Hadoopにも必要
業務アプリはほとんどJava

Python

軽量言語としてPython3系を使いたい

年末休みにnodeでAPIサーバを勉強した復習 最終回〜part5 ログイン認証をPassportで

年末休みにnodeの勉強でAPIサーバ作成した
その時のコード説明
5部作ついに完結

今回は Passportを使いJWTトークンをつかい認証を行う
APIサーバのキモの1つを実装した

qiita.com

ADHDが過集中をおこすための手続き

はじめに

ADHDという病がある。人により重さも違うんだけど、私は大人になったらかなり軽くなったかな
知人のADHDは、本当に簡単な計算すらできないし、我慢ができず無駄遣いばかりする
他の知人は、相手が嫌がっても気にせずマシンガントーク
わたしは、あまり強くはないんだけど、社会には絶対に溶け込めず社員には絶対なれないタイプ

そのADHDの問題点として、集中力がなく、単純作業が出来ないというのがある
ただ、時々過集中をおこし、常人では出来ない長時間(20時間とか)集中しすごい勢いでタスクを終了させる
この無気力と過集中の波をコントロール出来ないのがADHD

過集中のあとは凄い疲労で、しばらくやる気が出なくなるらしいが、私の場合はあまり疲労感がないので特殊と思う

過集中へのプロトコル

まず、過集中をするといっても嫌なことがあると即集中が途切れるため、嫌いなタスクは無理だ
勉強嫌いな人が頑張って勉強しようとしても駄目。好きなことしか出来ない。あきらめよう

気分を盛り上げる。最も大切だ

他の事に気を取られると即集中が途切れる。あっリスだ。リスを観るだけで駄目なのだ
完全に自分の空間を作るために、完全個室を作ろう。私の場合はヘッドフォンで音楽やアニメ、映画を観れば良い

あまり動かずに何でも完結する環境を事前準備しておこう
少し動くだけで集中が途切れるのだ

不安要素を全部排除する。これのためカフェでは出来ない

一つずつ掘り下げていこう

好きなタスクのみ

ADHDは好きなことしか出来ないので、嫌いなことは諦める
嫌いなことでもなんとかして好きになる工夫を行うことが出来ればタスクを行なう事ができるだろう
逆に嫌なことをイメージすると絶対できない
最も悪いのは、宿題を終わらせないと怒られるから!という理由だ。嫌なことを想像してしまい気分が上がらない
アメリカに旅行しよう、英語喋って楽しい旅行とかイメージすれば大嫌いな英語でも勉強できるかもね?

気分を盛り上げる

これが最も重要だけど、楽しいイメージを持ってどんどん盛り上げる必要がある
私の場合は楽しい系のアニメ観たりするかな
旅行好きなら旅行パンフレット観たりすればいんじゃないかな?

不安要素の排除

なにか不安があれば集中できない
例えばカフェでは営業時間だったり、そろそろコーヒー注文しなきゃとか気になると駄目だ
私はカフェでもコワーキングスペースでも集中が出来ない
なんとかならぬものか・・
また、お風呂も直前に入ってる
過集中が2,3日続く事もあるからお風呂に入らなきゃ!っていう不安をなくしたい

動かない環境

動くだけで集中力がきれる事がある
ので、全てを準備しておく必要がある
ADHDにはこれが苦手だが、これだけ頑張ってほしい
2,3日籠もる覚悟で

飲み物

私は台湾のお茶とかプーアル茶が好きなので、それらを用意する
リーフからいれた美味しいお茶をのみたいので、電気ケトルと茶葉とティーセット、そしてペットボトルに水をいっぱい用意する
こうすることで、いちいち台所に給水にいかなくていい

食べ物

2,3日ぶん作り置きしておく。多めに用意する
例えばスーパーで3個ぐらいお弁当買ったり、ご飯は10合ぐらい炊いて冷蔵、冷凍しておく
マイブームはオリジン弁当のお惣菜をオードブルでたくさん置いておく
もちろんお菓子もいっぱいね!

仮眠環境

布団に入ったら過集中終わるが、過集中の時はすぐに眠気が来る(疲れてるのか)
ので、作業していてそのまま寝れる環境がいい
わざわざ寝室に行ってはいけない
例えば仕事の椅子でそのまま寝れるようにしたり、すぐ横に眠るソファー置いたり
もちろん条件は、寝ている状態でもモニターが見えてマウスが操作できること
寝ててもいつでも気が向いたら仕事出来るようにしておく

トイレ

トイレにいくと集中が途切れる。が、紙おむつでもムレが気になるだろうし、簡易便所使うのもどうかと(匂いも気になる?)
理想はトイレの便座に座ってトイレワークかもしれない(座り心地の良い便器の開発だ)
が、便所飯しながら仕事という領域まではまだ達していない
ので、トイレは通ってる

集中できる城をつくる

このあたりは個人差があるとおもう
作業環境に加え、まわりを遮断する物が必要だ
煩悩は極力なくす
私の場合最低限は音を遮断する必要がある
遮音するヘッドフォンもあるらしくまだ試してない。一度試してみたい
いつもは音楽を流すなり動画を流している
昔は音楽をかけていた。私の場合はヘビーメタルや重いロック、低音がハードなアニソンなどが好みだ
やはり低音はおちつく
最近は動画を観ている
動画を観ると集中途切れるわけだが、最近はそのぐらいの方がいい気がしてる
ストーリーやバトルはあまり良い結果は出ていない。日常系なら全く問題が出ていない

タスクリストを作る

貴重な過集中時間に無駄にしたくないので、事前にタスクを作っておく
本当に過集中は効率がいいので、かなり多めにタスクを積んでいる
小さいタスクでも積んでしまおう
毎日コツコツなんて出来ないし、コツコツタスクこなしても、結局タスクおわったら疲労するのだ
細かく疲労するのはもったいない。タスクはまとめよう

ご褒美

私はご褒美で釣るのは役に立ってない。なぜだろう?
逆に、タスクを開始する前にご褒美を先に行い、気分を良くしたほうが効果が高い
甘い物と豚肉のステーキ をご褒美として、タスク前に食べている
効果あるかわからないけど、子供の寝付きと同じく、繰り返すことでスイッチになることを期待している

さいごに

過集中をコントロールしたい

ログイン、認証、認可などの歴史と今の対策

ログイン、認証は昔から大きく進化した
昔はIDとパスワードを平文で流していた
ところが、マシンパワーの向上とともに、昔のセキュリティでは危険になった
その他、色々な攻撃や、APIサーバが増えた事によるCookie無し環境
そんな歴史を

qiita.com