プログラマーに転職したはいいけど、毎日何もできなくて辛い。。。
このようなお悩みをお持ちの方に朗報です
最初の半年くらいは辛いですが、それから急激にプログラミングスキルが成長するというケースが非常に多いです。
当記事では、「なぜ、急激にスキルが向上するか」についても理由を解説していますので是非最後までお読みください。
※そもそもプログラミングが嫌いな方には当てはまりませんが、、、
当記事の内容
-
プロとして仕事をするなら半年くらいは時間がかかる
-
半年は基礎勉強の期間
-
基礎が身に付くと、いきなり成長して楽しくなる
-
いち早く成長するのに必要なこと
筆者について
-
文系大学卒業後、専門商社へ入社
-
将来性のあるITエンジニアに興味を持ち、4ヶ月独学して開発エンジニアとして転職
-
現在はWEB系開発のプロジェクトリーダー
記事の対象の方
今回はプログラマーとして仕事をし始めて3、4ヶ月目くらいの「プログラマーが辛い」と悩んでいる方を対象に、プロとして仕事をするなら「ある程度の時間は必要」という話をしつつ、今「仕事が辛い」と考えている方でも、いきなりプログラミングができるようになって仕事が楽しくなるという未来の話をしていきます。
筆者の僕自身が未経験からプログラマーに転職をして「最初の半年くらいはプログラミングができなすぎて辛い」と感じていたので、記事の信頼性は担保できていると思います。
Contents
プロとして仕事をするなら半年くらいは時間がかかる
こちらの記事をお読みの方は、元々何かしらの仕事をしていてプログラマーにキャリアチェンジした方が中心かと思います。
質問です
最初にしていた仕事を半年足らずで「プロレベル」になれるでしょうか?
恐らく答えはNOだと思います。
最初はできなくて当たり前
プログラマーに転職した方の多くが、「転職する前にプログラミングの独学を一生懸命した人」だと思います。
ですが、みなさんが以前やっていた仕事を未経験の人がいくら独学したからといって、いきなりプロとして活躍できますでしょうか?
どの仕事もお客様からお金をいただいて成り立っているので、いくら独学したからといって未経験からすぐできる仕事なんてないと思います。
プログラミングに関しても同様で、未経験から数ヶ月でできるようになる人の方が少ないので安心してください。
「しょうがない」とはいっても辛い
転職して即戦力になれないのはしょうがないと言えばしょうがないのですが、とはいえ「何もできない状態」というのは辛いものです。
ですが、最低でも半年は我慢しましょう。
一生懸命やっている人であれば、半年くらい経つと「何もできない状態」から「何かしらはできる状態」になれます。
半年は基礎勉強の期間
入社してから半年くらいは「勉強期間」と割り切ってしまった方が楽かもです。
独学は実務にはあまり役に立たない
ちょっと厳しい意見ですが、「いくらプログラミングの素人が独学したって実務レベルにはなれない」というのが事実です。
筆者の僕も、未経験から転職した際は「これだけ頑張ったんだから、転職したら即戦力でゴリゴリプログラムを書いてやる!」と意気込んでいましたが、最初の1ヶ月で撃沈しました。
独学で覚えられるのは「やり方」であって「使い方」ではない
よくツイッターでこのような意見を見かけます。
「文字列結合とかループとか意味は分かるけど、いつ使うのかが分からん。。。」
おっしゃる通りですね。
プロゲートとかでも、文字列結合やループの「やり方」は教えてくれますが、「使い方」までは教えてくれません。
文字列結合やループを使う具体例を解説してみる
仮に車のナンバープレートを管理するシステムを作る場合を想定すると、文字列結合やループは実務で以下のような時に使います。
「地域、分類番号、かな、車番」という情報を持ったクラスオブジェクトを持った配列をループして、「地域 + 分類番号 + かな + 車番 」のような1つの文字列にした新しい配列を作りたいとき
※下記画像の「多摩」、「500」、「さ」、「46-49」を結合したい時です
Javaだと以下のようなクラスを想定
Public class VehicleInfo {
private string Area; // 地域
private int Category; // 分類番号
private string Kana; // かな
private string Number; // 車番
Public string getArea() { return this.Area } //getter
Public void settArea( area ) { this.Area = area } //setter
…etc
}
vehicleListというVehicleInfoクラスの配列があって、「地域 + 分類番号 + かな + 車番 」という文字列結合を行なってnumberPlates配列に結合した文字列を追加する例
//結合した文字列を格納する配列を初期化
List<string> numberPlates = new ArrayList<string>();
for (int i = 0; i < vehicleList.length; i++) {
// 要素を取り出す
VehicleInfo vehicleInfo = vehicleList[I];
//文字列を結合する
string numberPlate = vehicleInfo.Area + vehicleInfo.Category.toString() + vehicleInfo.Kana + vehicleInfo.Number;
//追加する
numberPlates.add(numberPlate);
}
Javaを例にしましたが、PHPでもRubyでもJSでも全部やることは同じです。
「いつ・なんのためにループや文字列結合するの?」とお思いの方もこれなら具体的にイメージできると思います。
実務を経験しなくても、自作アプリを作るトレーニングをすることでも学べる
プロゲートとかで学べる「基礎文法」はとても大事なのですが、基礎を学んでも何も作れるようにはなりません。
自分で作って経験するしかない
基礎で覚えた「やり方」を自分で使えるようにするには、しょぼくてもOKなので自分で一からアプリを作ってみることをおすすめします。
「どんなアプリを作ったらいいかわからないという方」は別記事で作ると勉強になるアプリを紹介していますので、そちらをご覧ください。
こちらもCHECK
-
プログラミング初心者の「作りたいものがない」を解決する
悩んでいる人 「プログラミングを独学したので何か作りたい!!」 「何かアプリを作りたいけどアイディアがない。。。」 こういった疑問に回答していきます。 本記事の内容 作ったことがない人はTodoアプリ ...
続きを見る
基礎が身に付くと、いきなり成長して楽しくなる
辛いと思いながら実務経験を積んでいると「ある日急に、バラバラだった点が線に変わる」瞬間がきます。
全然ダメダメだった筆者も、ちょうど5、6ヶ月くらい経ったタイミングだったと思います。
もちろん人によって違うし、どれだけ努力したかで期間は違うと思いますが、私の後輩達も「いつの間にか急にできるようになる」んですよね。
急にできる要因を考えてみる
「いつかできるようになるから耐えてね!」だと信憑性に欠けるので、僕なりに「できるようになる要因」を考えてみました。
できるようになる要因
-
その①:やらざるを得ない環境に身をおける
-
その②:先輩のソースコードを見ることができる
-
その③:教えてくれる人がいる
この3つが大きいかと思います。
順番に解説していきますね。
その①:やらざるを得ない環境に身をおける
正直これが一番大きいと思います。背水の陣ですね。
独学だと以下のように考えてしまう
-
ちょっと疲れたから休憩
-
難しくてできないから休憩
-
できない理由は「きっと難しいプログラミング言語を選んでしまったからだ!。違う言語やろー!」
これだとやっぱり成長するには甘すぎるんですね。
プログラマーとして給料をもらっている以上はできないならできないなりに努力する必要があるし、プログラミング言語を変えることもできません。
ちなみにですがプログラミング言語なんて全部一緒なので、言語をちょこちょこ変えるより一つの言語を極めるのが大切です。
このように「逃げられない環境に身を置ける」というのが、できるようになる一つの要因と考えられます。
独学している方向けに
現在、プログラマーになるために独学をしている方は「やらざるを得ない環境を作る」という意味でプログラミングスクールもありです。
別記事でおすすめのプログラミングスクールを紹介しているので、気になる方はそちらもご覧ください。
こちらもCHECK
-
現役WEBエンジニアがおすすめするプログラミングスクール3選
こんな方におすすめ プログラミングスクールに通いたいけど、どのスクールがいいか分からない それぞれのプログラミングスクールの特徴を知りたい プログラミングという「手に職」をつけたい! 2020年から小 ...
続きを見る
その②:先輩のソースコードを見ることができる
プログラミング学びたての人に多いのは、プログラミングの「やり方」は覚えているけど「使い方」が分からない。結果的に「仕事が辛い」というプロセスです。
仕事の現場は「使い方サンプルの宝庫」です。
これまで先輩達が積み上げてきたソースコード見ることができるので、「実装したい機能と似た処理」を参考にすることができます。
実はどのシステムをやっていることってほぼ同じです。例えば、TwitterやFacebookなどのSNS、SAPやその他の会計ソフトとかですかね。
見た目は違うけど、内部的な処理は似ているので参考にすることができます。
独学だと人のソースコードを見ることができないですが、仕事の場合はサンプルがあるので、一人で悩む時間が少なくなるというメリットがあります。
その③:教えてくれる人がいる
仕事現場だと先輩のソースコードを見ることができますが、「最初のうちは先輩が書いたコードを理解できない」ということもあります。
その場合は聞いてしまいましょう。
プログラミングという専門スキルの特性上、できない人は「どれだけ一人で悩んでも手が動かない」し、反対にできる人は「思考に手が付いてこない」という状態なので脳内では実装が終わっています。
したがって、一人で悩んでいても時間だけが過ぎていくだけでメリットがありません。
そういった時に「身近に聞ける人が」いるというのは、成長速度を早めます。
要因を分析した結果
仕事で半年くらいプログラミングを続けると、以下のような理由からできるようになると考えます。
できるようになる理由
プログラミングスキルを向上するには、とにかく一人で考ても時間だけが過ぎていく。
したがって「どんどん聞いて、サンプル(実装例)を蓄積していく」ことと「やるしかない環境に身をおく」ことが必要であり、
サンプル(実装例)の蓄積がおおよそ半年間で溜まるのでプログラミングを「使える」状態になる。
故に、半年経てば多くの人が仕事としてプログラミングができるようになる。
上記が僕が考える、「仕事でプログラミングをすると半年くらいで急にできるようになる」理由です。
いち早く成長するには
いち早く成長するには「毎日努力すること」です。
これしかないですし、結局は「どれだけ時間を費やしたか?」に集約されます。
その結果が出るのが早いか遅いかの違いでしかありません。
プログラマーとして優秀な人は仕事終わりとか、休日とか関係なくコードを書いています。
また、半年くらいでできるようになるとは言いましたが「半年経てばできるようになる」のではなく、「努力した結果」が半年後に現れるイメージです。
ここまでお読みいただいた方は、「切実」な思いがあると思います。
今できることは、半年後の未来を信じて努力を継続することだけです。
もし、私にお力に慣れることがあればTwitterのアカウントを載せておくので、ご連絡いただければと思います。
Twitter:@Aj2aPjQq9bYpoOe りょうすけ
DMもOKです。