こんにちは、フリーランスエンジニアのCOMです。
僕の詳しいプロフィールはこちら。
結論
自分の人生の目標によって学ぶ技術を選ぼう!
- 大企業に入り、エンジニアとして安定した生活を送る→Java・DB
- ベンチャー企業に入って、お金を稼ぎまくってタワーマンションに住む→Python・C++
- フリーランスになって、田舎や外国でリモートワークでのんびり暮らす→Ruby/PHP/JavaScript
では、詳しく説明していきます。
なんのためにエンジニアになったのか
いきなりですが、まずはじめになんで自分が今この仕事をしているのか、冷静になって考えて見ましょう。
- 学生時代理系の学部に入ったから、なんとなく?
- ITが面白そうだと思ったから?
- ブラック企業から逃げるため?
今自分がやってることは、やりたかったことですか?違うのであれば、今後どうしていけばいいと思いますか?
考えて見ましょう!
プログラミング言語はただの道具
こんなことを書いたら、ベテランエンジニアの人たちに
とか言われそうですが。笑
プログラミングはどんなに簡単だろうが、難しかろうが関係ありません。
目標物(アプリやシステム)を作るための道具でしかありません。
例えば、あるお客さんがこんなウェブサイトを作って欲しいと言ってきたとします。
- 女の子向けのファッションサイト
- かわいい感じ
- 会員登録機能や商品販売機能が欲しい
これらの要望を全て叶えることができたら、お客さん的にはソースコードがRubyでざっくり書かれていようが、
Javaで細かく書かれていようがどうだっていいんです。
ソースコードの管理方法はSVN(※1)だろうががGit Hub(※2)だろうが、お客さんには全く関係ありません。
(※1)Apache Subversion(アパッチ・サブバージョン 略称:SVN)はプログラムのソースコードなどを管理する集中型バージョン管理システム(※3)の一つ
(※3)バージョン管理システム:ファイルの作成日時、変更日時、変更点などの履歴を保管ができる。過去の状態や変更内容を確認したり、変更前の状態を復元することが容易になる。複数の人間がファイルの編集に関わる状況を想定している。それぞれのファイルの最新の状態が分からなくなったり、同一ファイルに対する変更が競合するなどの問題が生じやすいが、バージョン管理システムは、このような問題を解決する仕組みを提供する。Wikipediaより
(※2)Git Hub:SVNと同じで、プログラムのソースコードなどを管理する集中型バージョン管理システムの一つ。個人的にSVNより使いやすい。機能はあまりかわらない。
僕がプログラミング言語が道具だというのはこういった理由です。メンテナンスのしやすさとか、読みやすさなんてエンジニア側(制作側)の都合でしかありません。
人生の目標を達成するための道具としてのプログラミング言語
今度は、プログラミング言語を駆使して作る目標物を、あなたの人生の目標に置き換えてみましょう!
あなたはどんな人生が送りたいですか?
- 大企業に入り、エンジニアとして安定した生活を送る
- ベンチャー企業に入って、お金を稼ぎまくってタワーマンションに住む
- フリーランスになって、田舎や外国でリモートワークでのんびり暮らす
パッと思いつくだけでも色々あると思います。
プログラミングを学んでて1番楽しいのって、学んだ先に自分の目指すライフスタイルがあるからだと僕は思っています。
例えば、僕はこんな人生の目標を立てています↓
- 20代のうちに世界旅行にいく
- 旅行から帰って来ても、フリーエンジニアとして働く(すぐに働ける状態)
- 将来的には海外か日本の田舎でのんびりと過ごす
- 仕事は週3の勤務か完全にリモートワーク(在宅勤務)
そのために、今はRuby・Ruby on Rails・それに付随する技術を学び、空いた時間でブログを書いてます。
遊ぶ時間はほぼゼロですが、努力の先に目指すべき目標があればやる気がでます。
このように、プログラミング言語を自分の人生の目標を達成するためのツールだと思えば、日々勉強するモチベーションにも繋がるはずです!
会社で今やってるタスクと終わらせるため!では僕はモチベーションが上がりません・・・。
道具はしっかり選ぼう
今までの話で、プログラミング言語やそれに付随する技術は「道具」である理由がなんとなくわかって来たかと思います。
では、次は「その道具はしっかり選ばないといけない」という話をします。
当たり前ですが、「道具」は目的に応じて使い分けが必要です。
例えば、学校で授業を受けるときのメモを取ることになったとします。
あなたはどんは「道具」を使ってメモをとりますか?
- アナログ(紙)かデジタル(PCやiPhoneなど)か
- 紙なら、スケッチブックかルーズリーフか
- 記入手段は鉛筆か、ボールペンか
- PCならOS(機種)MacかWindowsか
- 既存のメモ機能か、専用のメモアプリか
- 絵や細かい記入が必要→ノート
- データとして残してあとで共有→PC
- 間違えてすぐ消す必要がある→鉛筆
- 消えると困る→ボールペン
このように、「道具」は用途・目的に合わせた選択をする必要があるでしょう。
ここで気をつけておきたいのは、「道具」自体に優劣はほとんどないということ。
だから、目的にあった「道具」をしっかり見極めなければいけないということです。
目的に合わせた道具紹介
先ほど、紹介した例を元になにを学べば、どんなライフスタイルになるのか・なる可能性が上がるのかを紹介していきたいと思います。
- 大企業に入り、エンジニアとして安定した生活を送る
- ベンチャー企業に入って、お金を稼ぎまくってタワーマンションに住む
- フリーランスになって、田舎や外国でリモートワークでのんびり暮らす
1.大企業に入り、エンジニアとして安定した生活を送る
必要な技術
- Java(ジャバ)
- DB(データベース)の知識
大企業で使われてるシステムの多くはJavaが使われています。
銀行系や保険系のサービス・システムにもJavaが使われていることが多いです。
フリーランスエージェント【midworks】の言語別求人検索からもわかるように、案件数はJavaが1番多いです。
引用:【midworks】
僕が昔参画下案件も大手金融会社のシステム設計でしたが、使用言語はJavaでした。
なので、大手企業に入りたい、余裕のある生活を送りたい人は、Java、データベース、セキュリティ関連の勉強をしていくと良いです。
大手企業への就職を目指すならこちら→ 【自宅で学べるオンラインのプログラミングスクールTechAcademy(Javaコース)】
個人的にJavaは独学で学んで難しすぎて挫折した経験があるので、スクールに通うなどして人に教わった方が良さそう。
2.ベンチャー企業に入って、お金を稼ぎまくってタワーマンションに住む
必要な技術
- Python(パイソン)
- C++(シープラプラ)
これは、別にベンチャーだけって訳ではないですが、大手企業よりベンチャーの方が最新技術を取り入れるのが早い傾向にあります。
友達で、AI関係の開発を行ってる人がいますが、月給は80万だそう。
20代で80万・・・。
六本木に住んでおり、週末は全力で遊んでて人生楽しそうです。笑
僕にはあまり縁のない世界のような気もするんですが、Pythonは面白そうなので、手が空いたら勉強してみようかな。
AIやVRなどの最新技術を学ぶならこちら→【TECH::CAMP(エンジニアスクール)】
今はあまり案件数は多くないですが、これから間違いなく需要の高まる技術です!
今のうちに学んでおけば、波が来た時に乗ることができる。
3.フリーランスになって、田舎や外国でリモートワークでのんびり暮らす
必要な技術
- Ruby(ルビー)
- PHP(ピーエイチピー)
- JavaScript(ジャバスクリプト)
これは僕も目指しているライフスタイルです。
好きなところで作業ができて、フリーランスになれば長期(1・2ヶ月)の休みもとれる。
最高ですね。
そのためにはまず、リモートワーク案件の多い言語を身につけなければいけません。
現在リモートワーク案件で使用頻度の高い言語はRubyとPHPとJavaScriptです。
この3つは比較的簡単に学習できるので初心者の人でも簡単に動くアプリケーションが作れます!
実際に僕が初めて触れた言語もPHPでした。
RubyとPHPとJavaScriptは主にWebサービスの作成に使用されており、とりあえずできればOKみたいなものが他の言語に比べて多いので週3日勤務だったり、
リモートワークが可能なんです。
私服OKやコアタイムなど自由な職場が多いのも、Web系の特徴ですね。
Web系の中でも簡単なRubyを学ぶならこちら→お仕事決まれば全額キャッシュバック!転職特化型Ruby実践研修【ポテパンキャンプ】
自分の人生を選ぼう
いかがでしょうか?自分の人生はどんなライフスタイルがいいか、ちょっとは想像できましたか?
目標達成までの手順は、だいたいこんなイメージです↓
決めるのに早すぎることはありません。早く決めれば、もしやってみて「違うな」と思った時に修正しやすくなります。
今の少しの頑張りで、未来は大きく変わります!目標を持って、これからもプログラミングの勉強頑張っていきましょう!
エンジニアになりたい人・フリーランスに興味がある人に向けてLINEマガジンの配信を開始しました。
登録してもらえると嬉しいです。
エンジニアになるのに大切な情報を網羅したので、きっと参考になるはず。
今回も最後まで読んでくれて、ありがとうございました!
では、また!