プログラミングスクール

テックキャンプ(旧TECH::EXPERT)卒業→エンジニア転職して一年が経つから振り返ってみようと思う

こんにちは、こんばんは、鹿せんべいです。

TECH::EXPERT(現: テックキャンプ)を卒業してから、エンジニアとして転職して一年が経つのでこの一年と少しの振り返りをしてみようと思う。
※僕の卒業時は「TECH::EXPERT」であったが、現在は「テックキャンプ エンジニア転職」に該当するのではないかと思う。以下、特に注釈のない限り「テックキャンプ」という単語は「テックキャンプ エンジニア転職」を指すものとする。

僕のバックグラウンド

まず最初に僕のバックグラウンドを明らかにしておきたい。長々と記事を読んで、実は私はMITでコンピューターサイエンスを学んだ過去がありました、では得るものがなさすぎて悲しいだろう。

内容そのものも大事だが、その内容の背景や前提を理解することはもっと大事である。

経歴

まず僕がTECH::EXPERTに通っていたのは24~25歳くらい、社会人2~3年目あたりのことである。それまでは銀行で法人の営業を担当していて、ITとは無縁の環境で働いていた。

学生時代も文系の学部で、もちろん高校の時も文系を選択していた。特に数学や理科が苦手という訳ではなく、国語が好きだという理由で文系を選択した記憶がある。ちなみに一番嫌いな教科は英語である。

こんな感じで数ⅡBまでしか学んだことがない純粋な文系人間であった。文系の中では少し数学ができる、そんなレベル感である。

立ち位置

続いて僕の立ち位置を述べたい。


まず断っておきたいのだが、僕はテックエキスパートやテックキャンプの回し者ではない。ただ、厳密にいうと、テックエキスパートのアフィリエイトリンクを張っているので、そう言った意味では回し者かもしれない。

巷では、「オススメプログラミングスクール○選」みたいなアフィ記事で溢れかえっている。ここにたどり着く方はそんな記事をたくさん見てきたのではないかと思う。嗚呼、なんだまたアフィ記事だ、、と失望してブラウザバックしてもらっても構わない。

ただこの記事に関していうと、妄信的にテックエキスパート(テックキャンプ)を褒め称えるものではないし、ましてや通ってもいない他のプログラミングスクールと比較したりするクソ記事でもない。

僕がここで述べたいのは、
① プログラミングスクール全般への僕の意見
② 卒業して一年程度働いてきた過程と現在
③ ①②を踏まえた総括

などを中心に考えている。

最後まで読んでこの記事に背中を押されたと言ってIT業界に飛び込んで来ても良いし、現実を知って引き返すのもいいだろう。
あるいは僕自身に興味が湧いて案件を持ち込んでくれたって構わない。DMで直接話がしたいとメッセージを飛ばすのもウェルカムだ。

プログラミングスクール全般への僕の意見

概念的なところ

まずプログラミングスクールとはどんなものなのだろうか。

僕が一言で言い表すとしたら、「プログラミングスクールとは、プログラミングにおける義務教育を担うものである」といった感じになると思う。

一般的に義務教育とは小学校・中学校を通して学ぶ、基礎的な教育内容のことである。

プログラミングスクールはプログラミングのスキルの中学校卒業レベル+高校レベルの基礎力をつけるものであるのではないか、という意見である。

これが意味することは、

  1. 即戦力となるには、いささか不十分である。
  2. 高度な学習をするための自走力は身に付けることができる。


の2点である。

世間の意見や僕の個人の意見を積み上げて上記2点をちょっと詳しく見ていくことにしたい。

プログラミングスクール不要論(≒ 独学至高論)

twitterなどではたびたび、プログラミングスクール不要論が議論される。いや、”議論”とは呼べないのかもしれない。皆が、思い思いに大声で叫んでいる。シャウトだ。

どうしてこの議論は着地点が見つからず、議論が繰り返されるのだろう?

一つの答えとして、シャウトしている人の立場が違うからではないかと思っている。またその立場の違いを考慮して議論しようと考えている人も少ないため、自分とは異なった思想を見つけては、反論というか自分の考えのみをシャウトするのである。

有意義な議論を行うためには、前提の認識を合わせる必要があるが、そんなことはお構いなしに叫び合っているのが大半だと思う。それでは着地点は永遠に見つからないのである。


プログラミング初心者(上記の義務教育論に則って以下”プログラミング幼稚園生”とする)と、プログラミングの経験者(義務教育論における”大学生”や”社会人”レベル)の考え方は違うだろう。

卒園と同時に自立して物事を考え、学習できるだろうか??否、小学校や中学校と言うフレームワークが必要なのだ。翻って、大学生や社会人は手取り足取り教えてあげる必要があるだろうか??思考の方法などの抽象度の高いことは教わることが必要なのかもしれないが、読めば理解できるようなことを一々読み合わせをして学習なんてしないだろう。

あまりふわふわした話ばかりを広げても身がないので、このくらいにしておくが、僕の結論はこうだ、「あなたが中学校卒業レベルに達していないと考えるのであれば、プログラミングスクールと言うフレームを利用するべきだ」と。

そしてシャウトしている人はどのような経緯・背景を持っているのかキチンとわかってから、内容をみたほうがいい。

プログラミングスクールに騙されたよ、と言う人

外側からのスクール不要論への意見を述べてきたわけだが、今度は内部からの「プログラミングスクールに騙されたよという被害者根性」に対して意見を述べていきたい。

プログラミングスクールに通おうと思い、ネットやtwitterなどで情報収集した方は少なからず、目にしたことがあるのではないだろうか。

プログラミングスクールに通ったけど、
・エンジニアになれなかった。
・紹介先の企業が須くSESだった。
・全然教えてもらえなかった。
・しょぼい技術しか教えてもらえなかった。 …etc
みたいな意見である。

有象無象の意見があるが、大きく

  1. プログラミングスクールに問題があるもの
  2. その人自身に問題があるもの


に分類できると思う。

  1. については他のプログラミングスクールを知らないので、なんとも言えないところなのだが、実際にそう言うところもあるとは思う。卒業生に直接コンタクトして感想を聞いたり、スクールを見学しに行きメンターの態度や受講生の雰囲気などから判断するしかない。
    不必要に他のスクールを煽ったりしているところは気をつけたほうがいい。あと、卒業生の進路を公開していないようなところ。

    なおテックエキスパートではコロナの影響でオンラインの面談も行っているようだが、なるべく現地に行きたいところである。オンラインでは教室の雰囲気を感じることができない。
  2. についてだが「全然教えてもらえなかった」「メンターが回答をくれない」みたいな文句の場合は、スクールではなくその人に問題がある場合が多い。

    少し話が逸れるが42tokyo(https://42tokyo.jp/)をご存知だろうか。
    フランス発の14カ国20キャンパスを展開するITスクールである。
    そのITスクールが掲げるコンセプトが面白い。
    42 Tokyoには、教科書や授業はなく、課題をインターネットで調べたり、他の学生と協力して解く、問題解決型学習を実践しています。

    英語ではこうある。
    “Participatory training without teachers or classes, students are in charge of their own success and the success of their coworkers in a 100% hand-on project environment.”
    →講師や授業は存在せず、学生は自身と仲間の成功に責任を担うのである。

    この考え方は非常にプログラミングの世界においては重要である。

    雛鳥のように口を開けて待っていても親鳥は飛んでこないのだ。
    42のページにも同じような文言を見つけた。
    “you are not waiting for knowledge to trickle down from those who know. You must be ready to seek by yourself”


    何が言いたいかと言うと、これまでの学校や塾のように手取り足とり教えてもらおうという考えではいけないのだ。そんな人は遅かれ早かれエンジニアとしては価値がなくなる。

    「スクールが何も教えてくれない」「メンターが教えてくれない」と言う文句をみた場合は、スクールに問題があるのではなく、その人自身に問題があるかもしれない。

    自分で追究する精神が必要だ。

なお42tokyoはプログラミングを学ぶ志を持った人には最適なソリューションの一つではないかと思う。(何より無料なのである!!)
ぜひ検討してみてはいかがだろうか。

独学した時の話

ちなみに僕は勉強の独学が得意である。理解力が早く、点と点を結びつける力が強いので、テキストからエッセンスを学び取る能力が高い。反面、記憶力は弱い。人の名前を覚えるのが苦手だし、友人と話していても過去の思い出の記憶量が少ない。

大学受験は国立大学に独学で現役合格している程度には勉強が得意だった(≒詰め込み教育に向いていた)。もちろん、高校には通っていたので、”独学”とは呼べないかもしれないが、駿台や東進に通ってゴリゴリに受験勉強している人に対して、自習室を借りてひたすら参考書に向き合ったという点で独学が得意だとしている。

そんな僕でもプログラミングの独学に2回挑戦し、2回とも挫けた。

1回目はプログラミングの入門書みたいな本で、2回目はドットインストールで取り組んだ。
なんとなく、書かれたり、動画で流れる内容は同じように真似できるのだが、全くその先のビジョンが描けなかった。と言うかそもそも何をやっているかもわかっていなかったので、なんの実感も得られていなかった。

そんな現状把握もできず、目的も描けない人間はどうなるのか?

答えは明確で「何もできない」ただそれだけである。
例に漏れず、僕は参考書を放り出し、元の日常に戻った。

TECH::EXPERT(テックキャンプ)の感想

3度目にエンジニアになりたいと考えた時に、これまでに2度挫折している僕は独学の選択肢はすでになかった。そこでオンラインから通学形式まで幅広くプログラミングスクールを検討することになる。

探していた条件は以下のようなものだ。
1. 常に学習する環境が整っている(教材や場所)。
2. 同じような仲間と意見が交換できる。
これらは主に自分をモチベートするために必要だと考えていた項目だ。

条件は多くないが、割と絞り込むことができた。最終的なテックエキスパートの決め手は毎日教室が空いていること、グループ開発のカリキュラムがあることだった。
※テックエキスパートはここ数年で急速に成長しているため、今は似たようなカリキュラムを提供しているところが他にもあるかもしれない。

自分の軸を持って探したおかげで、入る前と入ってからのギャップは少なかったように思う。伸び伸びと学習することができた。そしてありがたいことに同期(同じタイミングで入った)のレベルが高く、刺激を受け続けられたことも大きい。

大学受験以来の学習量だった。ジムのランニングマシンでyoutubeのプログラミング関連の動画を流すくらい隙間なく自分を追い込むことができた。

最終的なカリキュラムであるチーム開発では、様々な課題にぶち当たったがそれも含めて成長できた。プログラミングスキルだけでなく、人として未熟だと気付くことができた。

総論としては、自分には向いていたし、心底からチャレンジしてよかったと言える。

TECH::EXPERT(テックキャンプ)の悪いところ?

諸手をあげて賛美していては気持ち悪いだろうから不満だったところもあげておこう。

  1. 瞑想

    今はあるのか知らないのだが、テックエキスパートには瞑想の時間というものがあった。朝、5分程度の瞑想の時間が設けられているのである。これ自体には特に疑念もなく、取り組んでいた。

    だが、いつも通り取り組んでいたある日のことだ。どうも教えられている呼吸法が間違っているのではないかという思いが湧く。こうなるともうだめだ。瞑想中とは思えないほどの雑念に苛まされた。教えられていた呼吸法は、口で息を長く吸い、口から細く長く吐くというものだった。普段行なっている鼻呼吸とは、明確に異なるのである。

    つまり、僕は瞑想を通して自分と世界の境界を感じ、自己を見つめなければならないのに、呼吸に集中せざるを得ないのである。これはおかしいのではないか、と疑問に思ったのだ。調べてみると、諸説はあるようだが、概ね普段通りの呼吸をするのが通例という結論を得た。

    悲しいかな今までやっていた瞑想は僕にとって瞑想ではなく、ただの息を吸って吐いているだけの時間だったということが判明した。息を吐いていただけの僕だったが、文句を吐くことはしなかった。翌日から自分の正しいと思う瞑想を行った、これだけだ。

    間違ったことを押し付けんじゃねえ、って文句を言う人はいるかもしれない。
  2. カリキュラム

    ある試験でひっかけ問題のようなものにまんまと引っかかり落第した。落第すると翌日までカリキュラムを進めることができないと言う。これには辟易した。本質を付いていないしょうもないひっかけ問題とやりあっている時間はないのだ。クソみたいな問題を作りやがって、とおそらくスクールに通ってた時期の中で一番怒りを覚えた。

    そう、全ては問題文を読まない僕が悪いのだ。だが、この悪問だけは許すことができない。
    念のために断っておくが、ほとんどの問題はちゃんとしている。
  3. チーム開発のメンバ構成

    チーム開発はお題以外は全てチームで決める必要がある。メンバーの役割からDB構成、コーディングルールに到るまでである。

    だが数週間の期間を経て若干のスキル差が当然出てくる。
    そうなるとメンバーの中でフロントエンドしか実装できない人などが出てきてしまう。
    できる人がごりごりとサーバーサイドを実装してもいいのだが、この成果物を持って転職活動に臨むため、できれば全員少しはサーバーサイドの実装経験も積みたいところなのだ。

    つまりアプリケーションの構築の最適な人員の役割配置と他人の転職活動まで考慮した場合の適切な役割配置が異なるのである。

    なので、その狭間に立たされた時に大きなストレスを抱えることになる。
    僕は、絶対に他人を切り捨てるようなマネはできない人間なのだが、かといってそれを包み込める能力もない人間だと思い知らされた。

    これはメンバーの能力差が大きい時に問題になりやすいと思う。開発のためのチーム分けなどはもっとうまくできるのではないかと思った次第だ。

    ※2020年4月現在、これまで行ってきたチーム開発がなくなり、個人開発になると聞いた。自分もチーム開発には思うところもあったが、それよりも圧倒的に得るものの方が大きかった。どういった背景でチーム開発が無くなるのかは知らないが、デグレードとなる可能性は高い。

よかった感想より、悪いところの方を書き連ねてしまっているが、総論としてはよかったのである。
入る前に戻ったとしても、もう一度入ると思う。

卒業して一年程度働いてきた課程と現在

後日追記

総括

後日追記