●Javaを勉強してとりあえずエンジニアになったんだけど、サーバとかセキュリティとか他の言語も気になってきた
●AI?VR?IoT?何だか面白そう!
●PythonやC++やってみたいデザインも興味ある
新しいことを知るって楽しい
今までITに全く関わってこなかった人がエンジニアを目指して勉強すると、今まで知らなかったPCの仕組みや、面白い技術をたくさん知ることになります。
「ホームページってこんな風にできてたんだ!」とか「アプリって実際に作れるんだ!」とか・・・
もうちょっと調べていくと、最近話題のAIやVRがどんな技術で、何の言語で作られているか何となく想像ができるようになります。
フロントエンド(※1)も知ると、ちょっとの工夫で大きな変化が怒るので、デザイン方面にも興味が湧きます!
あれ楽しいですよね!わかります!
(※1)フロントエンド
ユーザーと直接やりとりするソフトウェアシステムの部分を指す。
要するに、目で見てわかる画面の部分。
僕も1年ほど前にエンジニアとしてIT関係の勉強を初めて3ヶ月くらいの頃、今まで知らなかったことを知って本当に楽しかったです。
「今までやってたあのゲームはこの言語でできていたのか!」って知って一時期はゲーム系の開発もいいなって思ってました。
上達スピードが遅くなる
プログラミングは楽しい!いろんな言語を勉強したい!初めのうちはほとんどの人がそんな気持ちになると思います。
でも1つ注意してほしいことがあります。
それは、「いろんなものに手を出しすぎると、上達に時間がかかってしまう!」
と言うこと。
僕は、1年前まずはプログラミングスクールでPHPを学びました。
そして、就職した会社でJavaをやって、現場で使われてるVB.netを学びました。
期間は全部で半年ほどでしたが、どれだけ勉強しても全くコードが書けなかったんです。(半分は僕の頭が悪いから笑)
その状態になって初めて「このままじゃダメだ」と思い、Rubyに絞って勉強をしました。
業務上仕方ない部分があったとはいえ、いろんな言語に手を出した僕の上達のスピードはかなり遅かったです。
言語をRuby1つに絞って他は一切やらずに毎日勉強をしたら、1年くらいでフリーランスエンジニアとして独立できました!
まずは1つの言語を開発レベルまで持っていこう
1つ質問です。
あるんだったら、きっとプログラミングの基礎はできてます。
他の言語や新しい技術を勉強しても、スムーズに身につくでしょう!
そうじゃない人は、まだ他の勉強に時間を割いている場合じゃないです!
僕は今フリーランスで開発をやってますが、まだまだだなと感じる部分があります。
実装はできても、現場のベテランエンジニアにリファクタリング(※1)してもらうことも多いです。
(※1)リファクタリング
一度ソースコードを書いて動いたプログラミングをもう一回より良い形で書き直すこと。
数学で言うところのここはこの計算方法でも答えは出るけど、こっちの式をつかったらもうちょっと簡単に答えが出るよ!ってやつ。
使うといいツールやコーディング方法はまだ知らないことの方が多いです。
まずは1つの言語で、ほとんど人に聞かずに割り振られた機能の実装できるようになるまでは、1つの言語だけに絞って勉強しましょう!
その過程で、プログラミングの基礎やその周辺知識が身につくので、結果として最新技術・自分が興味ある言語を勉強した時の理解のスピードが上がります。
他の知識は自然とついていく
例えば、僕の場合はRubyで開発を行なっていますが、実際の開発で必要になるのはRubyだけではありません。
画面周りをいじるときはHTMLやCSSの基礎。
それに動きのある処理を加える場合は、JavaScriptやJavaScriptのフレームワーク(※1)であるReactやVue.js。
(※1)フレームワーク
システムの開発を簡単に行えるように用意されてる枠組みのこと。
ワードプレスでブログ作るときの「テーマ」みたいなもの。
環境を1から作る場合もあるのでそのときは多少のインフラ周りの知識が必要になって来ます。
必要な時になってそこで初めて学べば、現場で使われている技術を効率よく学べます。
このように、1つの言語を勉強していけば、それに合わせて自ずと最低限の周辺知識はついていくので、そこまで心配する必要はありません。
そして、応用へ
1つの言語で色々な昨日を1人で実装できるようになれば、とりあえずあと10年は仕事に困ることはないでしょう!
さらに、フリーランスとして独立すれば、給料も確実に上がります。
その状態になって、初めて自分が興味のある分野を勉強すればいいんです。
VRだろうが、PythonだろうがDBだろうがデザインだろうがなんでもいいんです。
言語によっては、書き方が似ていたりするので全く知識がないときに比べ、理解力が格段に違います。
いろんな勉強をしていくのは楽しいし、何より市場価値に大きな差が出ます。
Rubyしかできないエンジニアより、Ruby以外のインフラ周りの知識もあるエンジニアの方が、市場価値は高いのは何と無く想像できると思います。
目安は割り振られた仕事を、調べながらでもなんとか実装できレベル。
まとめ
エンジニアとして、技術に興味を持ち、いろんな言語を勉強するのは悪いことではないです。むしろいいこと!
でも始めたてのうちにいろいろ手を出してしまうと、プログラミングって本当に奥が深いので、下手すると1年後ただいろんなことを知っているだけの人になってしまいます。
それだと流石に厳しいですよね?
あと、もし学習する言語の迷ってる人がいたらRubyがおすすめです!
理由は以下の通り↓
- 簡単で理解しやすい
- 汎用性が高い
- 案件の単価(月給)が高い
https://comblog.net/2018/05/28/%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e5%bf%85%e8%a6%8b%e4%bd%95%e3%82%92%e5%ad%a6%e3%81%b9%e3%81%b0%e3%81%84%e3%81%84%e3%81%8b%e8%bf%b7%e3%81%a3%e3%81%9f%e3%82%89%e4%ba%ba%e7%94%9f%e3%81%ae/
絶対に1つに絞れ!とか言ってるわけではありません。
頭がいい人は、いくつもの言語を一気に身に付けることができるでしょう。僕はバカなんで無理でした。
今回は初心者が好奇心から陥りやすい落とし穴はこんなのがあるよということで書きました。
最後まで読んでくれてありがとうございました!
ではまた!