- プログラマとして腕を上げたいなら数学。
- プログラマとしてお金を稼ぎたいなら経営。
- 両方を得たいなら英語。
- 数学
プログラミングは数学の上に成り立っているので各種アルゴリズムは数学で記述される。これを読み解き理解して自分のプログラムに落とし込むには数学力が必要。
- 経営
経営を知らないと貴方の能力を良い様に搾取されてしまう。経営を知っていれば、費用対効果を考えた提案を顧客に提供できるので、逆に高く評価され、値切るどころか、今後の取引を考えて色がついた金額を受け取れる。それ以外にも給料交渉、契約、その他諸々でお金について知っておくことは重要。
- 英語
プログラミングの本場は日本ではなく海外。技術情報も最新のものは全部海外から入ってくる。だから技術力をあげるには英語を理解できる様になるべきだし、海外から入ってくるのを待っている様では既に出遅れているので、自ら海外に出向いて情報を収集できなければ一流にはなれない。
また、日本のプログラマの給料は安すぎるので、単純に海外に行って活躍した方がお金が稼げます。そこそこ能力があれば年収1000万とか平気で出てきます。(ただし、能力がないと判断されると即クビを切られる厳しいところでもありますが)
ゲーム業界では、既存のゲームをすごくやりこんで、コピー製品を作れるぐらいわかっている人、というのがすごく貴重な存在になってます。彼らは特にプロジェクトの初期、仕様を変えながら作るときに絶大な力を発揮してくれます。そうした人の中には、英語や数学や経営、コンピュータ科学などについてかなり弱い人も多いです。その場合は、互いにチームで補完して仕事をすることになります。
ゲーム以外の業界でも、既存の似た製品についてむちゃくちゃ詳しい人、というのはかなり強いのではないでしょうか?
素晴らしい回答がたくさんあるので、私は自分の強みの話を書かせていただきます。
私の強みは、異業種の社会経験の豊富さでした。
18歳で社会に出てから、実にたくさんの業種、職種を経験してきたのですがそれがシステムを作る上で意外と役に立っています。
というのも、お相手がどんな業種や職種の方であっても、その方のビジネスの商流を理解したり、お仕事の流れを理解することが上手にできるようなのです。
その結果、お客さまとのコミュニケーションも上手くいきますし、きちんとポイントを抑えた業務改善ができたりするのです。
私はプログラマーとしての腕はさほど優れてはいませんが、人に役立つシステムを作ったり、この業界でやっていけているのは、異業種の社会経験が豊富からだったからだと思っています。
メンタルを整える能力です。
落ち着いて問題と生産性の高い形で常に向き合えるように自分を訓練する能力だと思っています。
システムを動かすって甘くなくて、かなり優秀な人でも簡単にこうなります。
あれ、ここもおかしいな、どうしてだ
ああぁん、この対応策でうまく動けばいいのに、そうすれば顧客にいい形で説明できる
ああっだめだ。あれデータ壊れてる。
ひょっとしたら、これをこうすれば解決するのでは、待てよこれ前やったワン。
アアァァァァァァ、もうわけわからん。いっそ、失踪したい。全てを捨てて。
いやいや、ここで踏みとどまらなくては。
そんなわけで、昨日発覚した不具合の解消を2日ほど猶予をもらい、リリースまでの手順を作案し、一つ一つ段階を追ってテストしながら、解消しているところです。
売る力です。
具体的には、Webマーケティングのスキルがあるとよいです。
プログラミングとマーケティングの2つができると、ほぼ無敵ですね。
自分で商品開発して自分で売れるわけですから、本気でやれば上場レベルのデカイことも狙えます。
第1言語が日本語である日本人のプログラマという前提だと、英語だと思います。
プログラマに求められるのは、実現したい機能をいかに早く正しく品質良く実装できるか、という事になります。
そして、悲しいかな我々が扱うIT技術は大半が英語で開発されています。
プログミング言語は英語で書きます。
なので、新しく世に出た技術をいち早く取り入れるにも、何か問題が発生して解決策を調べるにも、英語の情報の方が圧倒的に多く存在しています。
そういった一次情報に直接アクセスできるということは、プログラマとしての価値を充分に上げてくれるものだと思います。
かく言う私も何か調べる際は英語でググります。
英語でstackoverflowに質問を投げれば、世界中の優秀なエンジニア達がすぐにレスポンスをくれます。
特に新しめの技術においてその有効性を実感しています。
と言うわけで私は英語をオススメします。
他の方も回答していますので、回答は無用かもしれませんが…
自分にとってプログラムを作るのが得意な適用業務分野を持つことでしょう。
顧客の多くは、自分たちの仕事をIT系のシステムとして実現するための要求や昨日を異なる分野の専門家に伝えることに長けていません。そのため、かれらの依頼を額面通り受け取っても、勘違いしたシステムを作ることに繋がってしまいます。
たとえば、物流、医療情報、人事、生産管理のIT化や、組込み製品などを考えてみてください。これらの仕事を受けるとき、顧客側の業務や製品について詳しければ、顧客は「自分たちの仕事をよくわかっている」と思って安心や期待をかけてくれるでしょう。
英語
やはり公式ドキュメントは英語のみしか存在しないことや、stackoverflow(日本語もありますけど)は英語の方が断然規模が大きいですし。ちょっと読めます、ではなくスラスラ読めて、スラスラ英語で質問できるレベルがあれば強みになります。
英語って書いておきながら、プログラマーって英語読めて当たり前だから、強みにはならないかと思い始めました。
もう一つ考えました。
指導力
技術に長けてる人は、自分の技術力を伸ばすことは得意ですが、チームメンバーも優秀にできるかというのは別問題ですし、上司から育成の責務を課せられていない場合、特に問題ありません。しかし、もし技術力の高い人が、指導力もある場合、ものすごく価値が高いと思いませんか?
優秀なエンジニアを採用するのは、簡単ではありません。(2000万くらいあげられるような企業なら別ですが)
会計知識。
偉そうにしている人たちのお金の話しって、分かってみれば大したことではないのですが、プログラマー (に限らず職人系) はお金の話しをされると、交渉に負けますよね。あれが実にもったいないと思います。
英語ができると最新資料や最新情報へのアクセスが楽になりますね。
仕事できる場所が限定されてないってことは良いチャンスに恵まれる可能性も高いんじゃないでしょうか。
プログラマーとして十分なパフォーマンスを持っているならば、プログラマーとは関わりのない別の領域で強みを持つことです。
いわゆる「プログラマーなのに〇〇」ってやつですね。面白がってもらえます。
家庭じゃないですかね?
あとは健康。
運はイジれないでしょうから。
経営
0 コメント:
コメントを投稿