エンジニア未経験の女子大学生が長期インターンで学んだこと【体験談】

woman インタビュー
The following two tabs change content below.

成神 佳彰

ReBibleの編集長。 学生時代に就活支援団体の立ち上げ、ベンチャー企業での長期インターンを経験。大手人材会社でのイベント登壇実績、取材実績あり。現在は、人材業界のメディア責任者。

こんにちは。

今回エンジニアインターンの体験記を書かせていただきます、

早稲田大学文学部4年の塚田智子(つかだともこ)と申します。

私は2018年4月から、エンジニアとしてベンチャー企業でインターンをしています。

もともと情報系を専攻している訳でもなく、理系でもなかった私は、

全くの未経験からエンジニアインターンに飛び込みました。

この記事では、私がエンジニアインターンと出会い、

実際に仕事をこなせるようになるまでの過程を書いていこうと思います。

よろしければ、最後までお付き合いください。

自己紹介

woman

名前:塚田智子(つかだともこ)

大学学部学年:早稲田大学 文学部 日本語日本文学コース 4年

エンジニアとしてのスキルセット:

PHP、JavaScript、jQuery、HTML、CSS、CakePHP2系、MySQL、WordPress、GoogleAppsScript、git、Ruby

環境:LAMP

インターン就業期間:4ヶ月(2018年8月時点)

担当サービス:Callingood(https://callingood.com/)

実はこのメディアの技術担当でもある

はじめはプログラミング教室から

面接で詰められプログラミング教室に通うことを決意

私がプログラミングを学ぼうと決意したきっかけは、内定承諾した企業の面接でした。

ITコンサルの会社だったのですが、二次の役員面接で、

「塚田さんは日本文学専攻でバリバリの文系だけど、ITとか出来る?研修でプログラミングやるけど乗り切れる?本当に覚悟持って出来るんですか?」

と詰められてしまったんです(笑)

今の御時世でITと全く縁がない企業なんてほぼないでしょうし、

何より新卒はポテンシャル採用ですから、出来ないと思っても「出来ます」と言わねばならないことも一定あるかと思います。

私ももちろん条件反射で、

「出来ます!!!!!」と絶叫したわけなのですが、

心のどこかでかなり不安がありました。

その会社に2月に内定を頂いて就職活動を終了した後も、その不安は消えませんでした。

残された学生生活をどのように過ごそうか考えた時、

面接の時言われた、いわゆるITの素養を身につけようと決意しました。

「ITの素養が身についた」ひとつの指標として、

「プログラミング教室に通い、エンジニアとしてインターン出来るレベル」を掲げて、1年を過ごそうと目標を定めたわけです。

結局1ヶ月では何も身につかなかった

プログラミング教室に通い始めたものの、払える学費や前の長期インターンの契約が切れる関係で、私がプログラミング教室で学べる期間は限られていました。

教室ではサーバーサイド言語としてRubyを学んでいましたが、私が出来るようになったのは

教材のソースをエラーなく完璧に写すことと、少しのHTML・CSSコーディングだけでした。

勉強と並行してエンジニアのインターン先も探していましたが、なかなか見つからず、

たまたまインターンのイベントで知り合った成神さん(このメディアの運営者)に紹介してもらい、エンジニアインターンのスタートを切ることができました

けれど、最後まで教室の教材をクリアすることは出来ませんでした。

なんとかエンジニアインターンに参加

なんとかエンジニアのインターンを開始し、完全学習の環境から

OJTで学ぶ環境に飛び込んだわけですが、実務に馴染むのはかなり大変でした。

やっぱり何もわからない

実務自体は入社3日目からやらせてもらっていたのですが、

言語が違うとはいえ、自分がいかにプログラミング教室で何も分かっていなかったかを実感しました。

変数やメソッドといったプラグラミングの基本が分からず、

ラッキーパンチで何となくタスクをこなせていた時期もありましたが、

それも限界が訪れ、

8日間くらい画面が真っ白の状態でひたすら配列を学んだ時期はすごく切なかったです(笑)

自分の理解不足が業務を止めてしまうのは悔しかったですし、

基礎が大事なことを思い知らされて勉強に対して謙虚になりました。

GW明けから劇的変化

週4で出社しながら、家での勉強は欠かさずやっていました。

プログラミング教室時代からソースコードを書くことがものすごく楽しかったので、

1ミリも苦ではありませんでした。

しかし学ぶ意欲とは裏腹に、夜学んだことを翌日の業務に完璧に活かすことは難しく、

自分の遅い理解度と上手くお付き合いしながら少しずつ簡単な業務をこなしていました。

やがてGWの時期になり、会社が少し長い連休に入ったのですが、

その時期は燃えるように勉強をしていました。

朝10時から始めて夜の1時まで、机に向かってもくもくやるのはもちろん、

インストールの合間にご飯を食べ、

お酒のおつまみにプログラミングをする生活を約1週間続けました。

ドットインストールという3分動画でプログラミングを教えてくれるサービスがあるのですが、その3分動画を時には3時間位かけて理解しながら、

とにかく一心不乱にソースコードを書きまくり、エラー解消に励んでいました。

そうしている間にGWも明け、出社して久しぶりにサービスのソースを見た時に、

「ソ、ソースが、PHPが読める…!値の流れが見える…!!」

という感動体験を味わうことが出来ました。

劇的な進歩の要因としては、

「基礎をしっかり理解したこと」(基礎とは、変数や配列、メソッドやクラス、MVCなど)

「ひたすら手を動かしたこと」(手を動かすうちに曖昧な理解もしっかりしてくる)、

この2点を勉強の重点に置いたことが挙げられます。

私は根からの文系人間なので、数学的な応用をすることに苦手意識があったのですが、

核を掴んでしまえば、応用は自然についてくることを実感しました。

今でも、新しい言語やライブラリを勉強する際は、その言語の特性・考え方など

座学的な部分をしっかり押さえてから実践に移すようにしています。

激動のスタートと詰め込みの毎日

GW以降、「プログラミング学習のコツ」を自分なりに体得してからは調子も出てきて、勉強しながら業務を回していくサイクルに慣れてきました。

学びの意識が一気に上昇志向に

GW期間を超えて、基礎を埋めるための修行的な勉強のスタイルから、能動的に興味の赴くまま学ぶ姿勢に変化していきました。

学習効率など様々な部分で進歩はあったのですが、

明確に変化を意識した部分が3点あります。

1.学習意欲

理解が深まって出来ることが増えると、自然と他の言語やネットインフラ周りなどに興味が出てきました。

それまでの「わからない何か」をいじくる感覚とは違って、

基礎が分かっているからこその「動く仕組みへの好奇心」と「その技術の良い所」が見えてきて、より前向きに学習できるようになりました。

2.クオリティへの意識

無駄のないソースコードを書くことや処理が重くならないための工夫、

好ましくない値が打たれたときの処理など、実装した機能をより強固かつ運用しやすいようにソースを書く意識が芽生えました。

インターン先の上司がコードレビューをしてくれる時もありますが、

自分でも実装しながら常にソースのクオリティを意識するようにしています。

「自分で自分の甘さに気づく」ようになれると、作るものの質も変わってくるのではないかと思います。

これは仕事が忙しくなるとつい忘れてしまうことなので、

自分で書いていて耳が痛い部分でもあります(笑)

3.プロダクト視点

インターン先では、よくマーケターの人とお仕事をするのですが、

エンジニアに依頼をする時に具体的な施策の形で提案してくれることがあります。(ボタンの色から新機能開発まで規模はさまざまです)

もちろん依頼は受けますが、本当にその依頼が目的に対して妥当なものなのか、

考察をしなければなりません。

施策には必ず、達成したい目標や目的があります。

マーケターなどいわゆる企画サイドが技術側を意識することは難しいですが、

エンジニアなど技術サイドが企画側を意識することは可能です。

実際仕事をしていると企画と技術は全く別の仕事のように思えてしまいますが、

チームとして、プロダクトを伸ばすという1つの方向を向いていなければなりません。

そのために、私はSEOなどWebマーケの勉強をはじめました。

少しずつですが、用語を理解するだけでマーケターとの会話がかなりスムーズになったように感じます。

この他職種への意識は、後に書く「便利さとは何か」を考えることにつながっていきます。

慣れて見えてきた業務上の壁

前章の躍進と同時に、業務での壁も見えてきました。

使われなきゃ意味がない

前に自分が作った社内用の便利ツールが、

運用コストの面からボツになったことがあったことがありました。

そこで初めてサービスを広めることの難しさを実感しました。

サービスを使ってもらうためには、

根本から不便を解決してあげるくらいの画期的な便利さが必要です。

なおかつユーザーに負担がなく、都合の良いものでないと使ってもらえません。

エンジニアはそう思わなくても、世の中のサービスを享受する側の人間の大半は、

「プログラミングは魔法だ」と思っています。

なので自分の期待値を少しでも下回れば、ユーザーは負担に感じてしまいます。

これはエンジニアとしてサービスを作る際に心がけるべきことですが、

エンジニアとそうでない人の感覚の差がはっきり分かる部分でもあります。

私は時折、このギャップあるコミュニケーションに苦しめられます。

成長した実感がない

基礎を理解しはじめた5月頃は、毎日何を学び出来るようになったかを思い出せるくらい、自分の成長を実感できていました。

しかし、それ以降から(現在も)自分の成長を実感することはなくなりました。

自習をサボった自覚はなく、こなせる仕事量も増えてきてはいますが、

前のような、メソッドの構成を理解した瞬間の脳がスパークする感覚から

徐々に遠ざかるようで焦燥感を覚えます。

インターン先の上司は、「エンジニアはそういう部分がある」といいますが、

この現象がエンジニア特有のものなのか、単に私の怠慢なのかは

今後の私の頑張りで証明出来ると思います。

便利さとはなにか

エンジニアインターンをしていると、「便利さ」とは何かを考えさせられます。

便利だから良かろうと、機能開発して目の前の不便を取り除いたつもりでも、

長い目でみたら実は同じ不便さが後に待ちかまえていたりして、

根本的な解決になっていないことがあります。

エンジニアはそれが分かっていて、そのような機能は作らないように努めます。

しかしユーザーは面倒くさいことを目の前に発見した瞬間、

サービスの利用を止めてしまいます。

そのような事態を避けるため、ユーザーの最低限の不便を和らげ、

利用することによるリターン(利益)を明確にしつつも、

本当に必要な機能のみを実装することを目指します。

しかも、それを一部の人間が得をするのではなく、

想像できる範囲の全体幸福を実現できるように設計します。

私はエンジニアをやる前、便利さは他者の気持ちを想像できれば

実現できると思っていました。

便利さは実は、様々な要素のトレードオフで成り立っていると知りました。

今後の目標と展望

ここ数週間、新規機能の設計に関わっているのですが、

プログラミングで使う思考とは別の部分を試されています。

私自身出来ることがまだまだ少ないので、

設計段階で可能なことと不可能なことの判断が難しい部分があります。

直近の目標として、先々のサービスの保守運用や機能同士がどう干渉しあっているのか、という風にもっと俯瞰的にサービスを見られるようになりたいです。

技術的な話としては、アプリを作ってみたいですし最新版のCakePHPも触ってみたい、APIももっと使ってみたいしWordPressも頑張りたい、

など目標が山ほどあります。

今はやりたいことが多すぎて明確な指標がないように思うこともありますが、

設計も出来て実装もゴリゴリやるエンジニアになることが、20代前半のゴールです。

少しだけ譲れない条件としては、この先どのような仕事をするか分かりませんが、

どんなスキル段階にいてもソースコードは沢山書いていたいです。

書くのが楽しかったから今まで学習を続けられた部分もあるので。

未経験でエンジニアインターンをしたいと思っているみなさんへ

この記事を読んで、「未経験だけどエンジニアインターンを始めたい」と思った人に向けて、プログラミングの勉強ハードルについて話をします。

まず、プログラミングは理系のものでも、文系にハードルが高いものでもありません。

教材・教室代が高い、という心配もあるかと思いますが、

最近ではドットインストールProgateなど低価格(月額980円〜)で始められるサービスも少なくありません。初学者のコミュニティも多く、孤独感もあまりない印象です。

問題なのは、勉強を続ける力があるか、上手くいかない時も楽しめるか、にあります。

プログラミングの楽しみは、大規模な処理をエラーを起こさずに動かすだけではありません。答えを見つけるまでに悩む時間や、課題が分からなすぎて寄り道で他の分野を学んで気を紛らわせたり、上手くいかない時をどう消化するかもミソだったりします。

要するに、世間でよく言われている環境的な勉強ハードルは先入観でしかなく、

本当のハードルは自分との戦いにあるんじゃないでしょうか。

極めるのは不可能なほど深く、流行り廃りが激しい分野ですが、

努力は決して裏切らない、これがプログラミングの醍醐味だと思います。

 

長くなりましたが、最後まで読んでいただき本当にありがとうございました。

この記事で、みなさんが少しでもエンジニアインターンに興味を持ってくれたらとても嬉しいです!