二ヶ月をプログラミング学習に費やしてインターンを獲得した自分が、スクールに通う前に知っておきたかった事
初めまして、権兵衛(@Gonbee_audio)です。
noteを書くのは初めてですので、誤字脱字が目立つかもしれませんがよろしくお願いします。
今回の記事はプログラミングを始めようかと思っている方にむけて書くつもりなのでそのつもりでお願いします。
軽く自己紹介をさせていただきます。
・18〜25歳までバイトをしながら受験勉強をしていました。
・25歳の冬、日東駒専レベルに落ちて、「あ、受験むいてないわ」と思い、そこから半年本を読み漁る毎日。
・そこから親に頭を下げてプログラミングを学習する機会を与えてもらって学習して二ヶ月でweb系自社開発インターンを獲得しました。
自分でも思います。クソな経歴だと。
しかし、こんなダメな人間でも数ヶ月で要点をつかめばweb系自社開発のインターンを獲得することはできます。
今回は
1. プログラミング学ぼうとしているけど前提の知識として知っておいた方がいい知識
2. 未経験の方からお話を聞いたり、自分の体験談から、この知識があったらもう少し計画的に行動できたなと思う知識
をメインに記載していきたいと思います。
自社開発とは?
自社でサービスを作っている会社です。(googleとかfacebook)
これほど大手の会社では流石にありませんが、少数精鋭の自社開発の企業にインターンを取ることができました。
様々なインフルエンサーの方が仰っていますが、
自社開発に入ることが爆速でスキルアップする1番の方法だ。
このことについては自分もあながち間違っていないと思います。
会社としては「実戦」で使え、人間的に許容できる方をを低賃金で雇いたいという考えを持っています。
自社開発はこの「実戦」力をとてつもなく要求してきます。
なので、スクール出立て、さらに言えば未経験から2ヶ月で自社開発に潜り込もうというなら試用期間を設けてくる会社がほとんどです。
もしそうなると三ヶ月〜六ヶ月は無給ではたらかないといけなくなるかもしれないので、その点だけは注意してください。
又、スクールでたらフリーランスになるからいい。と思っている方は
スクールで得た知識程度じゃ現在のコロナ不況も考えて、コネがないとまず仕事は取れないと思ってください。
(取れたとしても低賃金重労働で買い叩かれたりするとも聞くのでオススメはしません)
他にも受託やses、sier等の会社形態がありますが、そこは下で一部触れます。
が、web系で入るのであれば一番難易度の高いのは自社開発で、成長速度も自社開発が一番早いということだけは知っておいてください。
プログラミングの上流〜下流の仕事の関係について
大雑把にまとめるとエンジニアは以下のような構図を取っています。
システムエンジニア(se) webデイレクター
⬆️
プログラマー
⬆️
ses(客先常駐)
⬆️
テスター
上に行けばいくほど上流の仕事を任せられます。基本は上に行くほど給料は上がります。
seは顧客の要求やニーズを噛み砕いてプログラマーに伝える仕事です。
プログラマーはそれを打ち込む仕事
sesは自社プログラマーがやるほどでもない仕事を任せられます。
テスターはそのサービスを使ってバグがないかチェックする仕事です。
web系ではこのような体制を取っている会社などはありませんが、ものすごいでかいサービスを作っている会社(金融サービス等)とかになるとこのような体制を取っているところはたくさんあります。
プログラマーになる上で最初に知っておくべき専門的な知識
プログラミングの対しての自分の適性を図る方法
これが最も重要です。
「フリーランスで働きたいから」
「リモートワークで働きたから」
「年収1000万超えたいから」
みたいな考え方でこの業界に進むのであれば絶対に後悔します。
それほど甘い世界ではないです。
何故なら、勉強していくことが日に日に増えてくからです。
「〇〇をするにはこれを学習しないといけない。
だからまず先に△△を学習しよう。
この専門用語がわからないな、、、調べないと」
みたいな感じを延々と続けるのがプログラミングの業務です。
これをみて、無理だ。
って思ったら多分向いていません。
この業界は自分に向いているのかもう少し考えた方がいいですよ。
もし、考えずにそのまま進んだら大体の人はwebデザイナーに進んでweb系エンジニア以上にデザインの学習しているのにも関わらず、安月給になります。
webデザイナーを馬鹿にしているわけでありません。
webデザイナーになるにはプログラマーになる以上に時間を捨てる覚悟が必要です。
少なくとも、そんな安直にキャリアを選択したら上記の「」内を満たす人間になるにはかなりの才能が必要だと思います。
では具体的にどうやって適性を見極めるか、
これは多分みなさんわかっていると思いますが、改めて記載するとprogateやドットインストールを使うこと。です。
ここで一番必要な
エラーを対処することが耐えられない苦痛ではないか?
を確認してください
プログラマーになったらコードを書くことよりエラーを解決することに重しを置くことになります。これをどprogateならprogate道場などのサービスでそれがわかると聞いたことがあります。
自分は使ったことがないのですみません。。。
それを確認してください。
ここで、言語がたくさんあって選べないかもしれませんが、取り敢えずhtml cssが比較的簡単なので、それを学習してみてください。
プログラミング言語の選択について
プログラマーになる上では避けて通れない問題。
「プログラミング言語」
正直何の言語を選んでもいいと言われていますが、それはプログラミングをしていても苦にならない人の選択方法
最速で稼ぎたいのであれば、これも選択する中で重要なことに一つだと思っています。
では、どのように選択していくか?
それは、自分が何プログラマーになりたいかです。
どんな働き方がしたいかではなく
何プログラマーになりたいかです。
aiに強い言語や、webサイトを作るのに強い言語、統計を図るのに強い言語,etc
これを間違えると就活にとても困るので、そこは結構気にしないといけません。
例えば
pythonやruby等webのプログラミングもできますし、aiもできます。
しかしweb系(wantedly等)で求人をみると、明らかにrubyの方がシェアは高いです。
なので、「この言語で何ができるか」ではなくて、
「この言語は主に何に使われているか」を考えて選択してください。
それを簡単に探す方法の一つとして、エンジニア用の就活サイトに言語名と自分のなりたいエンジニアの種類を検索することです。
wantedlyやgreenやpaiza というサイトが有名なので、そこで調べてみてください。
フレームワークについて
例えば学習するプログラミング言語のファーストチョイスにjavascriptやphpを選択したとします。
どちらも人気の高い言語で、自社開発の企業でもよく使われています。
しかし、どちらも昔からある言語ですが、これをそのまま使っている会社に自社開発はあんまりありません。
でな何を使っているかというとそれはフレームワークです。
例えばphpだったらメールの送信機能や問い合わせフォームを作ることができますか、それを一々最初から書くのは大変ですよね?
そのような最初からかく煩わしさをなるべく減らすのが、フレームワークです。
フレームワークを使うとこのようなメリットがあります。
・エラーを発見するのが簡単。
・他人が書いても同じ書き方になり易い。
・より簡単にかけるからコスト削減になる。
つまり、フレームワークはそのプログラミング言語を元にして、特定の分野に特化させて、より簡単に高度な機能を実装できるようにできるようにしたものです。
phpだったらcakephpやlarabel、JavaScriptだったらvue.jsやreact.jsなどのフレームワークが存在します。
どれもweb系に特化したフレームワークです。
なので、スクールを選ぶ場合は、プログラミング言語を教えてもらうと言うよりフレームワークを教えてくれるスクールを選択することが一番大事です。
フレームワークを教えてくれないスクールとか普通にあるので、又、javascriptだったらjqueryというひと昔前のフレームワーク(正確にはライブラリですが)を教えて、モダンなフレームワークを教えてくれないスクールとか普通にあるので、そこはちゃんと聞いておいた方がいいです。
具体的に言えば
javascriptなら vue.js react.js anguler.jsを
phpなら larabel,cakephpを(できればlarabelが好ましい)
学習できるところなら問題ないです。
で、ここで気になる方もいると思いますが、
「フレームワークをを学習するならそれの元になったプログラミング言語はどれぐらい学習しないといけないのか」
これは諸説ありますが、自分はJavaScriptの基本的な機能をざっと使った程度でフレームワークの学習に入りました。
なので、ガッツリ使えなくていいですが、どんな機能があるかぐらいは自分で学習して軽く使ってみる。
程度の知識でokです。実務で使うのはフレームワークなので。
上記の3つを踏まえた上でスクールを選択できれば問題ないと思います。
ここからは自分の偏見でオススメの言語を紹介していきます。
未経験でweb系の会社に勤めたいのであれば、javascript(vue.js)かphp(larabel)を学習するのが好ましいです。
rubyは簡単なのでrubyをやろう!という広告とかはよくありますが、
rubyのフレームワークであるruby on railsは少し難しいと言われています。
なので、挫折しにくいという点ではフレームワークの難易度も考えて無難なjavascriptかphpを選択するのが好ましいと自分は思います。
色々書きましたが、自分としてはスクールを通うなら自宅で学習した方がいいと思います。
自宅で学習できるならもっといい方法がありますが、それは後日投稿しようと思います。
拙い文ですが、最後まで読んでいただきありがとうございます。
この記事が気に入ったらサポートをしてみませんか?