今回は現役エンジニアで経験10年以上の僕が「もし駆け出しエンジニアだったらどういうエンジニアになっていくか」という点を話してみたいと思います。
この記事では以下の点について知ることができます。このあと詳しく説明していきます。
- #駆け出しエンジニアとは
- #駆け出しエンジニアだったら、どのようなエンジニアを目指すのか
#駆け出しエンジニアとは
Twitterで話題のハッシュタグ#駆け出しエンジニア
タグで検索するといろんな情報が出てきます。実際にどんな情報があるのか見てみしょう。
Twitterで話題のプログラミング初心者用のタグ
このハッシュタグはプログラミングを始めた初心者が付けているタTwitterタグで、学習の状況のツイートや転職の報告などに使われています。
Githubに実績を作っている人も多いですね。みなさんプログラミングの学習を頑張っている印象です。
プログラミングの仲間
プログラミングを学ぶ上で一緒に学習する仲間がいるとモチベーションアップにつながります。
「#駆け出しエンジニアと繋がりたい」というハッシュタグで仲間を募集している人が多くいます。興味があったら一緒に学習してみるとよいかもしれません。
駆け出しエンジニア挫折率が高い
調べてみると駆け出しエンジニアは挫折率が高いのが特徴です。おそらく理由は独学が多いこと。学習方法がわからないこと。目標が違うなど理由がありそう。
実際にTwitterを見ていても、無駄な学習をしているなと思う駆け出しエンジニアが多いと感じます。
それを見て自分ならこのような目標を立てて、このように学習していくという内容の記事を書きたくなりました。
#駆け出しエンジニアは注意が必要
駆け出しエンジニアの人はハッシュタグをつけると、多くの業者がDMを送ってきます。そもそもDMで連絡してくる人の多くは何か他の人に見られたくない内容のことを伝えてくるわけで。。。
Twitterやってるとだいたい経験ありますよね。ビジネス系の勧誘は気をつけてもらいたいです。プログラミングスクールの費用をネットビジネスで稼ぎましょう的な勧誘もあるみたいです。
現役エンジニアの僕が駆け出しエンジニアだったら
僕が駆け出しエンジニアだったらどのようなエンジニアを目指し、どのように学習していくのか考えてみたいと思います。
自分が初心者の頃は業界のことをあまり知らずにWebエンジニアになりましたが、実際にWebエンジニアになって10年以上経って、今はどうなりたいのか考えてみたいと思いました。
Web以外のエンジニア経験
今までWebエンジニアという仕事以外でもいくつか経験しています。
- Webデザイン
- iPhoneアプリ(Objective-C)
- 業務アプリ開発(C#)
Webデザインに関してはクライアントによって答えが違うという点。Aという人は青がいい、Bという人は緑がいい。好みの問題だったり答えがないので難しいと感じました。
iPhoneアプリはAppleの申請がかなり面倒な点。当時はObjective-Cで開発していて難しさと楽しさを感じましたが、Appleの申請を通すのが難しすぎて嫌になりました。
業務アプリは単純につまらなかった笑
どちらかというとWebデザイナーになりたくて学習を始めた感じでした。実際に会社に入り仕事をしてみると、Webデザインって最初に作ってしまうと、その後は次の案件がないと暇なんですよね。
なので、Webデザイナーをしながら開発も手伝うようになり、開発の方が答えあるし楽しいと思い開発の方にシフトしていったという感じです。
目標の設定をどうするか
目標 (目指すエンジニア) |
Webエンジニア |
期間 (エンジニアになるまで) |
3ヶ月 |
学習内容 (プログラム言語) |
Go言語 |
このような目標にした理由としては、エンジニアとしてはやはりサーバーサイドのプログラム言語から始めるのがよいということ。そしてGo言語の将来性。
どういう計画で学習するか
1週目 | ドットインストールで概要を学ぶ |
2週目 | 技術書で学ぶ |
3週目 | ここからプログラミングスクールに通いたかったがGo言語を教えているプログラミングスクールはなかったのでUdemyあたりで学習を続ける。 |
4週目以降 | Goの学習は続けるが同時にSQLの学習も並行して行う。SQLを学習している#駆け出しエンジニアは少ないが実際の現場ではSQLができないサーバーサイドエンジニアはいないと思う。ポートフォリオ的なものを作るということはしないが、APIを作ることと、SQLを理解することに重点を置いて学習する。 |
転職するまでに行うこと
もし僕が駆け出しエンジニアだったら、上で書いた内容で学習すると思います。上記のような学習計画をたてた理由を説明していきます
HTML・CSSは学ばない
何も知らない駆け出しエンジニアだったら、WebエンジニアはHTML,CSSを知らないとできないと思っている。
実際はそうでもなくて特にサーバーサイドのエンジニアであれば、サーバーサイドの技術が重要です。HTML,CSSは触らない人の方が多いのでは。
3ヶ月という期間と決めて学習するのであれば、フロントエンド(HTML, CSS, JavaScript)あたりを学んでサーバーサイドも学ぶのは無理があるというのがフロントエンドの学習をしない理由です。
プログラミング言語の理解
正直、初心者が3ヶ月でGo言語を理解できるかというと難しいかもしれません。
僕はWebエンジニアにとって重要なのはHTML, CSSの知識ではなくサーバーサイドの言語の知識とDBにあるデータをとってくること。そこができれば業務についていけるかと思います。
3ヶ月という期間で学べることが限られているのであれば、GoでAPIを作る部分に力を入れる。
SQLの理解
あとは基本的なSQLは書けるようになっていないと現場では厳しい。
多くのフレームワークでは検索結果O/Rマッピングという仕組みが使われるので、SQLは直接書くということがなくSQLが重要だということを知らない初心者が多いと感じます。
DBからデータを取得する時に、まずSQL書いて正しいデータを取得できるかを確認してからO/Rマッピング使ってコードを書いていく。SQL知らないとどうやってDBからデータを取得するのかと考えるとSQLは必須のスキルではないかと思います。
まとめ
現役エンジニアの僕が#駆け出しエンジニアだったら、どのような道を歩むのかという内容の記事でした。
- 駆け出しエンジニアでも再度Webエンジニアを目指す)
- 言語はGo
- APIとSQLに絞って学習
- 時間短縮のためプログラミングスクールで転職保証を選択したかったが、対応しているスクールがないため独学にする
再度Webエンジニアを目指す理由は、やはり楽しいからというのが一番大きい。また技術の進みが早いため飽きない。
Goは言語の特徴とこれから伸びそう(伸びてる)ということで選択。学習は重要な部分に絞っての学習。転職目指すなら転職保証付きのプログラミングスクール通いたい。けれども自分の希望の学習プランが無い場合は独学しかない。MENTAというサービスを使うかも。
限られた時間の中であれもこれも学ぶというスタイルは、効率が悪いと感じた。やはり独学で学習するより会社で学ぶことの方が多いので、3ヶ月という期間で大事な部分をピンポイントで学ぶスタイルにしました。
#駆け出しエンジニアの皆さんはどう感じたでしょうか?HTML,CSSから入ってWebがどのようなものか理解していくことも大事かもしれないですが、サーバーサイドエンジニアを目指すなら不要と考えました。
自分の目指す道に何が必要なのかよく考えてみて、参考にしてみてください。