文系出身プログラマ投資家、アキゾラ(@akizorainvest)です。
未経験プログラマシリーズ、第2弾です。
- 【新卒】文系出身未経験でプログラマになった元ガングロ女の話①【就職編】
- 【プログラミングできるようになるまで】文系出身未経験でプログラマになった元ガングロ女の話②【新入社員編】 ←今コレ
- 【管理したくない】文系出身未経験でプログラマになった元ガングロ女の話③【休職編】
- 【復職】文系出身未経験でプログラマになった元ガングロ女の話④【転職活動編】
これまでのお話は、【新卒】文系出身未経験でプログラマになった元ガングロ女の話①【就職編】をどうぞ。
今回は、無事内定をもらった会社に入って働きだす新入社員編です。
ではさっそくどうぞ。
入社前に事前学習が配布されるも・・・
内定をもらってから卒業まで、心配事がなくなりガチでサーフィンばっかりやって過ごしたアキゾラでしたが、たしか入社する数か月くらい前から、会社から課題が出ました。
メールで会社の人に添削してもらってーって感じの。
残念ながら内容を詳しく覚えていないのですが、C言語の超基礎的な課題だったと記憶しています。
いよいよプログラマ(この段階では、プログラマだかSEだかあやふやw)として働きだすことが現実味帯びてきた!といった感じだったのですが、ここで早速先行きが怪しくなります。
課題、何言ってるのかよくわからない。
たしか、gcc(C言語のフリーコンパイラ)を使用した、何問かの課題でした。
※今も、C言語入門でgccで勉強したりってするのかなぁ?gccって何?って方は、こちらが詳しかったので、見てみてください。
C言語―フリーソフトのgccコンパイラでコンパイルして学ぶC言語入門テキスト
gccのコンパイラのインストールもてこずる始末。
事前学習期間中にパソコンを買い替えたんだけど、そしたら新しいパソコンでなんかうまくインストールできなかったんですよ。確か。
それで会社の人となんやかんややり取りw
実はこの記事を書くために、当時のメールを掘り返してみましたw
こんな状態でしたよ、私。
メール添削なんですが、遅れていてすみません。
頑張ってはいるのですが、どうにもコンパイラを通ってくれず提出まで持っていけません。
正直どう修正するべきなのかよく分からず手詰まっているのですが、その状態で提出し、添削していただいてもよいのでしょうか…?
お忙しいところ申し訳ありません。
当時のやりとりのメールw
頑張ってはいたらしいw いや、頑張ってました。
まじで、頑張ってみているんだけど、如何せん全く基礎がないので、本気で分からなかった。
今まで、大学受験とかも、なんかこういう感じで「分からない」ものってなかったんですよね。
いや難しい数学の問題とか物理とか化学とか、分からないことできないこといっぱいあるんですけど、なんていうのかな、自分がこれで飯を食っていくという基礎的な部分になるはずなのに、これほどまでに意味が分からない、というのが本当に焦って。
ネットとかでも調べるんだけど、なんかよく分からない。
ちゃんと本を買わないとまずいなこれ、と思ったんだけど、まず、理系に進んだ仲のいい友達に聞いてみました。
そして、数学科に進んだ友達に、大学の授業で使ったというプログラミングのテキストを譲ってもらいました。もう一生見ないっていうんでwww
なんかこの時が初めて、本当に何も知らないことを1から、そして自ら勉強した、そんな感じがします。
で、この事前課題と入社するまで、戦い続けましたが、すべてを解くことはできませんでした。
大丈夫かこれ
ものすごく不安になっていたのを覚えています。
課題が終わらないまま入社。研修もてこずる
入社してからしばらくは研修の日々でした。
分厚い、C言語のテキストももらいました。
これこれ、有名だよね。たぶん、今でも持ってると思うw
研修期間中も、基本的についていくのがやっとでした。いやついていけていたのかよくわかりません。
グループワークなどもあったため、プログラミングに関しては、グループ内にいる情報処理学んできている人たちのお世話になりっぱなしみたいな状況でした。
プログラミングができない、また、そもそも新社会人というプレッシャー?不安?などで、研修期間中、結構緊張感のある日々が続いてたと思います。
帰ってからも自分で勉強する日々を送ってました。
そして、ある日、思いっきり寝坊しましたwwww
もともと、めちゃめちゃ朝が弱い人間でしたので、これが一番怖かったんだけど、盛大にやらかしたw
やらかした後は、毎日、明日朝起きれるかの不安も加わるようにw
研修は中盤以降、レベルごとに分かれるようになりました。アキゾラは当然一番下のクラス。
事前課題を引き続き解くことになったんですが、まぁ解けなかったですねぇ。
研修期間が終わり、配属。少しずつだが仕事ができるようになる。
GW終わりくらいまで研修期間だったと思います。
それが終わって、配属先が決まりました。
アキゾラは、セキュリティ関係のソフトウェアの開発をしているところに配属されました。
そこで使われている言語は、Delphi、C言語(C++)でした。
De、Delphi???C言語もよく分かってないのに、Delphi とか大丈夫なんか・・・。
そんな風に思ってましたが、まず、その現場、激務でしたw
みんな忙しすぎて、OJTどころではなく、配属から1,2週間はほぼほったらかされており、Delphiの本を渡されて、書かれている通りにやって、メモ帳作ったりしてました。
よくわからないけど、書かれているものをそのまま写して、ほー。みたいな。別にメモ帳作りたいわけじゃなかったし、コードの意味も分からないままだったので、正直これはあんまり身にならなかったと思いますw
少ししてから、ぽつぽつテスト項目(単体テスト)を作成する仕事や、テストを消化する仕事を渡されるようになりました。
しばらくは、自分でプログラミングする、という仕事はなかったです。
今考えると、最初にテスト項目の作成をしたのは、よかったかもしれないですね。
先輩がソースファイルを持ってきてくれて、やってる処理の内容をざっくり説明してくれて(詳細仕様書とかあればそれと合わせて)ソースコードを自分でも読みながら、そのパスを全て通る確認項目を作成する、みたいな感じ。
やってる内容は日本語で説明してくれるのでw、それがどのようにプログラミングされてるのか、というのが分かりやすかった。
テストの消化も、デバッガを使いながら1ステップずつ進めて流れを追うことで、そのソースコードの理解が深まりました。
決して作業は早くなかったと思いますが、幸い、全く使い物ならないということもなかったと思います。
そんなこんなを繰り返すうち、本当に少しずつですが、プログラミングもするようになりました。
分からないこと普通に出てきました。
そのたびに、すでにある似たような処理だと教えてもらった既存コードを何度も見返したり、先輩に質問したりしてなんとかやってきました。
はじめは、「やりたいことと似たような処理をしている見本」がなければプログラミングすることができなかった。
分からなくて焦ることや、プログラミングに限らずミスって冷や汗が出るような状況は何度もありました。
でも、ああもう辞めたい、と後ろ向きになったことはなかったですね。
配属されてすぐのあたりでは、for文って何で使うの?みたいな状況でした。
意味が分からないというか、「繰り返し」というのは分かるんですけど、うん、それで何をするの?いつ使うの?みたいな。なんていうんですかね、アルゴリズムの考え方が分かってないので、そういう構文の存在意義がよくわかってなかったんです。
振り返ると、プログラミングが分からない、その大きな要因はこのアルゴリズムの考え方が分かっていないこと、これがアキゾラには一番大きな壁だったように思います。
そして、これに対して、特別な何か対策を行ったわけではなく、結局のところ目の前にあるたくさんの既存のソースコードに触れ、そのコードのやりたいことを理解し、処理を確認していくことで、自然と分かるようになっていったと思います。
とにかく、質より量、みたいな感じですw
結局、やってりゃ慣れるとも言うんでしょうか。。
プログラミングができるようになるのに重要なのは、その言語特有の構文、書き方、ルールが分かることではありません。
重要なのは、プログラムの組み立て方、考え方です。
言語特有の書き方やルールなんかは、基本的にはググればすぐにわかるんですよね。
例えば、Javaだろうと、C++だろうと、for文の書き方は違えど、プログラミング上、「繰り返し」という概念、パーツがあることに変わりありません。それぞれの言語で、for文をどうやって書くのか、それはググれば解決します。
なので、アキゾラはプログラムの組み立て方、考え方を理解すること、理解できることが重要だと思います。
実際、Dephiは初めて見る言語でしたが、この点はあまり心配する必要がなかったです。
ぶっちゃけ、そもそもC言語も使えるという状態じゃなかったんで、別にどの言語でも一緒だったと思いますw
自宅でも開発環境を導入、ある程度自主学習も頑張っていた
本当にね、新入社員の頃っていうのは、これができないと仕事にならないじゃないか!という思いが強かったので、自宅のパソコンに、当時の開発環境であるVisual studioとDelphi、入れました。
分からないながらも、家でコードに触れることを惜しみませんでした。
(まじめやなぁ・・・。)
自分でなにかアプリケーションを作るのが趣味、とかそういう人じゃないと、ここまでやる新入社員はなかなかいないんじゃないかと思いますw
二つ入れるやつはあんまりいなかったろw
Visual studioじゃなければ、gccのフリーコンパイラを使うか。
これだと、基本CUIベースの開発になるんだよね。コマンドプロンプト上で動かすみたいな。
GUI(ダイアログとか)ベースの開発を、仕事場の開発環境と同じような状態で出来るようにするには、Visual studioのような開発環境が必要でした。
使うものが全然違うとさ、またそこで分からない面倒なことでてきちゃうじゃん?w
そんなこんなで、開発環境を自宅にも作って、なんか簡単なプログラム組んでみる、ということをやっていました。
プロジェクトはデスマ寸前。夏休みがなくなる危機?
GW後から配属されてから、なんとか仕事についていこうとがむしゃらに突っ走る感じだったんですが、あっという間に8月。
周りは既に忙しかったんですが、段々できる仕事が増えてきたアキゾラも忙しくなるように。
初回リリース前の時期だったので、テストテストの繰り返し。
新人がやれることはたくさんありますw
品質があまりよくなくw モンキーテストのようなこともやりました。
なかなか再現しない事象の再現テストを延々繰り返したこともありました。
(モンキーテスト:とりあえずがちゃがちゃ動かしておかしいところないか探すみたいな、テスト項目のないテストw 後にも先にもこの時しかやったことないですね。)
徹夜もちょくちょく発生しました。終電がなくなって、帰れなくてホテルに泊まることもしばしば。(タクシーで帰るより泊まった方が安い)
そして、お盆の時期が近付いてきたときに、どうも夏休み既定の日で取得できないんじゃないか、という状況に。
アキゾラ、お盆休みって当時、一年の中で一番大事にしていましたw
なぜなら、この時期にサーフトリップに行ってたんです!毎年。
これに行けないかもしれない?!そんなの絶対に嫌だ!何のために生きているんだ!
本気でこんな感じで、入社してからも全然土日はサーフィン。普通に海行きまくってまして、休日出勤したら、平日に代休が取れるからむしろ海空いてて嬉しいくらいの、そういう状態でした。
ウエットスーツ焼け(ウエットスーツ着ているところは白いままで、顔とか手足だけ焼けちゃうやつ)するのが嫌いなので、仕事帰りとか、定期的に日サロにも通ってたw
忙しいのに、ホント良くやるよねぇ。今だと考えられない。
あ、で、サーフトリップに行けないなんて無理だわ、となって、宿も飛行機も取ったんでこの期間絶対無理です!ごめんなさい休みます!みたいな感じで無理やり休み取りましたw
ちなみに、1年目の8月の残業時間は100時間超え。今でも覚えてますw
新人なのに、そこそこ激務な方だったと思います。
でも、なんか忙しいんだけど、当時アキゾラそんなに嫌じゃなかったです。
プログラミングも、だんだん分かってきて最初のころに感じていた「不安」というものは薄れてきてました。それよりも、単純にコードを読んだり、書いたり、テストをしたりの作業が楽しかったような気がします。
このあたりは、周りの人に恵まれたのも大きかったでしょうね。
さらに、平日に代休が取れるほうが嬉しかったし、忙しい中でもサーフィン行けてたし、平日に日サロ通いする日があるくらいには元気も残っていたし、睡眠時間はかなり少なかったんですけど、充実してました。
新入社員編まとめ
リリースが2,3か月ごとにやってくるため、残業時間も2,3か月ごとに40時間、60時間、100時間近くになるというサイクルで、2年くらいはこんな感じで働いていました。
はい、まだこの頃ガングロ維持してますw
休日出勤がたまっていったりすると、あとで代休をまとめてとったりできて連休が増えて嬉しい気がしたり。
でもこの辺は人それぞれでしょうね。
休日出勤なんか絶対に嫌だという人もいるでしょうから。
うーん、今だったら、ちょっと嫌かもなぁw
今だと、働き方改革とかあるし、こんな感じで働くところ少ないかもしれないですね。
ないとは思わないですけど。こればっかりは会社、プロジェクトによるでしょう。
ただ、こうやってがむしゃらに仕事してたことによって、自然とプログラムに慣れていき、いつの間にか自分もできるようになっていった、というのは真実のような気がします。
自分がやってきたことを振り返ると、初心者がプログラミングができるようになるには、最初はとにかく書かれているコードを読む、たくさん読む、読んで理解する、処理をトレースするということが大事だなと思います。
自分で作れなくてもいいです、焦らない。これはそのうちできるようになりますので、たくさんコードを読んでみてください。ちゃんとトレースしてね。
言語仕様については、言語が変われば変わるので、そこまで重要じゃないと思います。
まぁ例えばJavaはオブジェクト指向言語、Cは違う、とか、言語ごとの特徴というのは確かにあるんですけど、そういった応用の部分は置いておいて、基本的なアルゴリズムの考え方は同じです。
一つ、CでもJavaでもなんでもできるようになれば、他の言語を習得するのに、また1から同じだけの時間がかかるわけではありません。ベースができているので早いはずです。
こうして、私の「新人」としての時期は、ほぼほぼ激務で終わっていきました。
さあ、新人の激務時代に一度も辞めたい、と思わなかったアキゾラが、仕事を辞めたくなったのは、この後です。
その話は、【管理したくない】文系出身未経験でプログラマになった元ガングロ女の話③【休職編】へw 不穏な言葉w
ではでは!
コメント