僕らは、終わりのない道を歩き始めたばかりだ

プログラミング

転職してプログラマになってそろそろ1年になるので、その所感と雑感。

以前の会社が嫌すぎて、でも中々次の転職活動に踏ん切りがつかない状態で悶々と過ごす中、色々とネットで何かしらこの現状を変えられないかと探していたら、1つの記事にたまたま出会った。

Facebook元役員「プログラミングを学ぶのなら、生涯仕事に困らないことを私が保証しよう。」

まあいま思うと全てがこの記事が始まりだった気がする。

ここからプログラミングスクール探して通いだし、転職活動を経て晴れてプログラマになり、あと少しで1年が経つ。

振り返ればあっという間だった日々だったが、それなりに悪戦苦闘してたと思うので、その所感とか雑感とかを伝えられればと思います。

そろそろ1年経つプログラマの現状と現実

現在SESでとある会社に出向してiOSアプリの保守やら追加機能やらSwift2からSwift3への対応とかやってます。既存アプリなので新規開発とかでないので、そこら辺の苦労もしてます。

Swiftはじめてまだ4ヶ月のぺーぺーなので、全然理解に辿りついていない。DBや、サーバーの知識も最低限は押さえてますが本格的なことはまだダメダメです。

RealmとかRxとかのライブラリも使ってみたいですが、使いこなせるレベルには全く辿り着いてないですね。

それでも始めた当初と比べると、身についた知識は山ほどあります。Xcodeへの理解や、Appleの公式を読んだり、Qiitaの記事やら他の方々のブログ記事を読んだりと、なるべく知識のキャッチアップは行ってきたつもりです。はい。

というかそもそも誰も周囲にiOSを教えてくれるーーというか、誰もiOSがわかる人がいないので全部自分でやらないといけないというハードモードの現状です。OJTとかって一体何やねん状態です。

それでも困ったことがあれば、周囲に助けてはもらっておりますね。メンタル的にも(ツイッター関連)、スキル的にも(git関連)。そこは感謝です。

あとは怒られそうですが、プログラミングスクール通ってた前のキラキラした目には全くあってません。アレはもう誇大広告と言うか妄想の類というか、一部の人にだけ与えられる特権みたいなものですね。

例を挙げると、

・転職して月収40万!!
・時間や自由に左右されないで働ける!!
・短期間で即戦力!!
・キラキラベンチャー企業に入れる!!

とかですかね?

今のところ自分はどれもこれも経験したことないですがw

しかしまあ一部そういった方々がいるようなので、完全にウソではないようですね。これまでのキャリアやバックグラウンド、人脈があれば多分可能だが、今の自分には無縁のお話のようです。

いま自分の現実としては、

・リモートワークしたことがない!!
・転職したけど給料は新卒並に下がった!!
・即戦力ってどこからが即戦力なの?
・毎日決まった場所へ行き、定時まで働いて帰る。
・聞いたこともない会社へ入社。

ですかねー。自分がどれだけ広告や企業に踊らされてたのかがよく分かるw

これがプログラミングスクール通って、働きだした31歳の駆け出しプログラマのステータスです。どこかキラキラした、自分と同じ境遇の方がいたら教えて欲しいです。

時系列追ってくこれまでの1年間

去年の3月21日から働き出した(何となく記念日感覚だったので、記録してありましたw)。

プログラミングスクール通ってたり、Progateやりまくってたり、一応何社から内定もらってたりとかで、プログラマとして働いていくのに若干の自信があった自分。

しかし初日から自信は粉々に打ち砕かれました(笑)

パソコンの環境構築、管理者権限、IDEの使い方、仕事の進め方……。

スクールで通って学んだ事に関しては何一つ通じなかった。即戦力を謳ってたが、全然即戦力になっていないと痛感した瞬間だった。

そもそもWeb系を学んでいたが、入社した会社に関してはモバイルアプリの開発会社(と言っても名ばかりだの開発だが……)だったことにも起因していたが、それでもひどいへっぽこ具合だったw

まず基本構文書けない。if文やらfor文とか全然書けない。分岐条件も分からない。

とにかく、分からない、解らない、判らない、でした。これは自分がRuby on Railsというフレームワークばかりやってきた弊害と断定。あとはコードをコピペばかりしてたのも原因で、もう1から全て学び直しだと悟った瞬間でもあった。

基本というか基礎というか、本来であればそこから学ばないといけないのにフレームワークばかりやってきた。スクールの人も特に何も言ってなかったし、こういうものなんだろうなと何の疑問も抱かないでやってきた自分もバカ丸出しだが、そもそも教えられるわけないのだ。

だってスクールの人はエンジニアとかプログラマではなく、インターン生でそもそも現場体験をしたことがないからフレームワークの学習ばかりじゃなく、Rubyをもっと勉強した方がいいなんて言えるはずがないのだ(どっちも大事だけどね)。

全てが後の祭り状態ではあったが、泣き言も言うても始まらない。

そこから1〜3ヶ月間はもう必死だった。

XcodeとeclipseというIDEの使い方。ObjectiveーCとJava言語の学習。仕事の進め方に、ApplestoreとAndroidstoreのアプリ登録。広告の設定やら、トラブルやらエラーなどなどの対処方法にほぼ時間を持ってかれた。

スクールで習ったことを、他の事例に応用できるほどの経験もなかったため、ほぼ0からのスタートだったし、しかも31歳からのスタートなので年齢も年齢なので、若さゆえの過ちが通じるわけもなく、仕事に関しては慎重に進めた。

結果的に、慎重な仕事の進め方はミスが少ない反面、仕事の速度があるわけでもないので、帰る時間が遅くなったりした。もちろん残業代などというものはない。おかしい。

土日は基本的に生活のことで結構時間をもってかれた。残った時間は自己成長の時間にあてるべきだったけれど、かなりの時間は娯楽などで消費していった。これはいまも反省する場面なので、もっと生産性をあげなければならないが、人間って弱い生き物ですよね〜……。

そんなこんなで3ヶ月はあっという間に過ぎていった。

3ヶ月〜6ヶ月は酷い有様

2017年6月〜9月くらいの期間。

ストアのリリースで何回かポカをやったり、手が震えるくらいのプレッシャーにも慣れたころ。愚かにも少し精神的な余裕が出てきて、何か色々経験したいな、と思った時期があった。

「社員の自主性を重んじる」という、無責任主義の教育の会社なので一応にも進む方向性は本人しだいだったので、まだ何をやりたいかを見定めてなかった自分は、興味の赴くままにあれこれつまみ食いをしてはすぐ手放すという愚行を繰り返していた。

いま思うと、一応にもObjectiveーCやったり、Javaやったりだったので、モバイルアプリの学習をもっと深掘りしておけば良かったのだが、当時はそんなことにも気づかず、本当に浅い学習を繰り返していた。

後は一度に環境を変えすぎた反動もあったりなので、メンタル的にもマイッていた時期があった。

ココらへんから筋トレを始め、「メンタルメンタル!!」と騒いでいてたが、正直なところ筋トレやっても、仕事のプレッシャーは変わらないし、コミニュケーション力が劇的にあがるはずもない。

ぶっちゃけたところ、開きなおったメンタルが最強である。あとは筋力よりも、金力です。最終的には。はい。

まああれこれ本当に手を出していたなおかつ、浅い学習は時間の無駄遣いだと気づいたのは、仕事でふってきた案件の重さによってだった。

全然出来ないのだ。全然できない。

*詳しくは下記の記事を参照してほしいです。

2017/08/31 Don't forget day
タイトルのままですが、この日を忘れたくないので記録しておく。 これまでの人生の中で、この日よりも重大なことはいくつもありましたが(出来事だけ覚えていて、いつの日なのかは忘却の彼方だけど)、この日はプログラマーになってから忘れられない日...

手頃なコードを見つけては、コピペして持ってきて貼り付けての作業をやってばかりだったので、コードが1から全然書けない。

コピペは楽だ。動作が保証されている。ちょこっと変えるだけで大体OKなのだが、そのちょこっとも変えられない。その一行のコードが、どんなことをしているのか、役割が何なのかサッパリ分からないのだ。

酷かった。何のためのプログラマなのかもサッパリ分からなかった。こんなんで経験上がってるのか、とかほんと疑問だった。挫折して32歳を目前にして、悔しすぎて泣いた時期でもあった。

この辺りから、世のプログラミングスクールの在り方に疑問を感じた。即戦力を謳ってるスクールは山ほどあるが、本当に現場に必要な知識や経験は何一つ教わっていないと知った瞬間でもあった。

何が「即戦力」なのか。即戦力とはなんぞや? 少なくとも自分は半問経ったいまも全然戦力として自分が役立ってるとは思えなかった。そもそも会社の教育もあれだったが、スクールの教育も即戦力とはほど遠かったのだ(カリキュラムがおそらくインターン向けだったので、そういった意味では即戦力。だけど現場で実践として通じるにはほど遠い)。

(……自分はプログラマとして転職するべきではなかった……)

そう思った時期でもあった。

そもそもがこの業界でキラキラしている連中は、大体志が素晴らしい。作りたい。プログラミングやりたい。起業のために。社会のために……。

みたいなキラキラ発言、動機が多いが自分は違う。

とにかく前の会社が嫌すぎて、転職したかった。それでけっこう自由きままに、しかも中々給料が高いというだけの動機で来ただけの人間なので、ラクならば他の業界でも良かった人間だ。

辞めるべきかもと葛藤した時期でもあったが、そもそも戻る道も金銭的な余裕もなかったので、改めて前へ進むしか無いとーー進まざるを得なかった。

この経験から、「何となく動く。まあいいや」から「何で動くの? このコードって何の役割なの?」みたいに、表面上だけで済まさないで、裏側をよく理解したいという思いに変わった。

今でも初めの方は、「何となく動く。取り敢えず動くで済ませていい。だけどこの後ちゃんと理解する」というスタンスは崩さないようにしている。

なので今までは「1ヶ月でサイト作ったの? おーすごいな!!」という感じだったのも「ふーん…」という意見に変わってしまった。

表面は別にいいの。で、裏側は? コード見たい。という感じです。

あんま良くない傾向だとは感じてるが、未経験の人にモノ作らせて「オースゴイ!!」という教育でも、肝心の部分を理解出来てないと意味ないんじゃないの? とは常々感じてる。

マジで「概念」の理解が重要の世界だといまも信じている。

大体スクールに来る受講生の「需要」と、会社が求めている「需要」が違うんだ。

「何となくプログラミング知ってみたい」やら、「webサービス作ってみたい。キャッキャッ(´∀`*)ウフフ」みたいなスクール受講生の動機(自分もこんなんだった)と、しっかりとしたサービス作って問題なく運用して、問題発生したら解決できる人材を欲している会社の人達からするととんでもない壁を感じる。

で、多分この溝は埋まらない。

プログラミングスクールが、社会というか会社が欲している「需要」を押さえた教育をすれば多分スクール自体が成り立たなくなると思うよ。

何となく、楽しそうで、いまのトレンドだからみたいな人たちに、社会が欲しているカリキュラムを与えれば多分しんどくて去ってしまう。

そもそもプログラミング自体が華々しく楽しそうなもんじゃなくて、地味な作業の連続だ。エラー出たら潰して、そもそもエラー文自体がエラーじゃないパターンもあるから、それが何なのかを突き詰めるなんて、そんなもの初心者からしたらつまらない。

しかも、広告やら宣伝やらのイメージの植え付けで「プログラミングなんて簡単。誰でもなれる」みたいなイメージがあるんだから、そんな先入観で来て受講したら、「思ってたのと全然違った……」ってなるわ。

だったら、気の置けない仲間たちと「キャッキャウフフ(´∀`*)ウフフ」と仲良くやった方が楽しいし、受講生の「ニーズ」は満たせる。そういうビジネスモデルなんだ。

話、道筋それてしまったが、自分が言いたかったことは「プログラマやらエンジニアは短期間で戦力になれるものじゃない」ということだ。

プログラマやら、エンジニアやらの肩書を得ることは簡単(会社入ればいい)だけれど、そこから一人前の「プログラマ」としての自分の自信は想像以上の時間を要するよ。絶対に。

ともかく「短期間で即戦力のエンジニア」なんてものは、幻想。イマジン。スクールが意図的に与えてる戦略だと考えていい。

もし3ヶ月で通じるエンジニアやらプログラマになれたり、仕事して十分に通じるとしたら、「天才」か「その会社の技術力が低い」のどちらかだよ。

本当に、プログラマやらエンジニアなんてものはキラキラしてるものでも、短期間でなれるもんじゃない。めっちゃ地味だし泥臭いし、一人前と認められる存在になるんだった、数年の時間は必要な職業だ。

そして現在……

半年経ってからはSESの面接が始まり、当初予定していた「Androidアプリ開発の案件」ではなく「iOSアプリの案件」が決まりSwiftという言語を学ぶ事になった。

また1からだ。自分が希望していたAndroid案件(Javaだったから多少は出来るかなという動機)だったが、真逆の道へ進むことになり、つくづく物事は思うとおりに進まないと思った。会社の事情に左右される。それはエンジニアとかでも関係なく、雇われとしての身としては誰でも降りかかるものなのだろう。

エンジニアとして技量が高ければ、「あ〜、めんどくせえ。じゃあ別の会社行くからいいです」といえるが、残念がら現在の自分にそんな実力はない。言えるかも分からないが…。

兎にも角にも、Swiftを1から勉強しなおし、しかも誰もiOSアプリが分からないハードモードでSESとして放り込まれ、2017年の10月から今日の日付にいたる。

ただSESの現場先には人間的にそこまで酷い人やうるさく言ってくる人もいなく、また自分の経験を考慮してるので「頑張ってiOSの学習してね♡」と言いつかっている。

取り敢えずProgateやドットインストールから始まり、書店にいってSwiftの本やらiOSアプリの本やらを合計10冊買ってきて、そのうち7冊は一通り終えた。

Xcodeの操作も何となくなれ、Swiftの文法も完璧ではないがおおよそはググれば使える。だが完璧ではない。

難関であるSwift実践入門詳解Swiftがまだ中途半だ。

コイツラを完璧に覚えたいし、Appleの公式リファレンスもまだ全然読み込んでいない。自分が知らない世界はメチャクチャ残っている。

Swift4では拡張現実の世界が待ってるし、機械学習で新たなアプリ開発もある(多分)。

いまはiOSアプリだが、Androidアプリも今後はやっていきたい。Kotlinでの開発とか面白そうじゃないか。

バックエンド覚えれば、自分でサーバー立てたりしてアプリとの連携もとれる。自分でサービスを運用できる。経験積めば、フリーランスとしての道もきっとある。

ただそこまで行くにはまだまだ時間や経験が必要だ。

プログラミングの世界はスゴイ速さで躍進している。新しい技術が次々と出現しては消えている。

短期間じゃ果たせないが、長い時間ーー道を進んでいけばきっとたどり着ける。そういう世界だ。

歩くことをやめなければ、絶対にたどり着ける。技術の力を身につけるっていうのは、そういう世界だと自分は信じている。

もちろん、歩いてく先で石で躓いたり転んだり、違う未知への道の分岐点も待っている。

自分はトップクラスのエンジニアにはなれないかもしれないし、なれるかもしれない。

あるいはスキルの掛け算をして、何本の道を歩いていって交錯させる道なのかもしれない。

それは誰にも分からない。自分にも分からない。他人にも分からない。歩き続けないと、分からない……。

だってボクはーーボクらはまだ、知らない道を歩き始めたばかりなのだからーー

SOFT SKILLS ソフトウェア開発者の人生マニュアル

タイトルとURLをコピーしました