未経験プログラマーの雑記

元個別指導塾運営者、現プログラマーによるブログです。教育や自身の学びについて発信していきます。

「未経験プログラマーへの批判」への批判

・はじめに
「未経験からでもプログラマー(エンジニア)になれる!」という謳い文句に乗っかり、実際に半年の独学期間を経てプログラマーとして転職した僕が、「未経験からプログラマーになる人への批判」について考えてみました。全く何の役にも立たない内容だとは思いますが、少しでもそうした批判で心が揺らいでしまう人を勇気付けられればうれしいです。
 
・そもそもの話
そもそも、誰がどんな仕事に就こうが、どんな職業を目指そうが、他人にとやかく言われる筋合いはないです。
 
また、「アメリカでは~」とか外国でのプログラマーとしての就職の流れや厳しさを語りだす人もいますが、ここは日本です。どちらの仕組みが良いかなんてのは比べようがありませんし、アメリカの方が良いと思う人は自分がアメリカに行っておけば良いわけで、他人に押し付けるのは意味不明です。
 
日本はプログラマーになるために必要な資格などは特にないので、その分誰でも、プログラマーになるチャンスは大いにあります。それを活かしてるだけの話なので、批判される意味がわかりません。
 
色んな価値観の人がいるので、「ああ、そういう考えの人もいるんだな」と思うこともありますが、特に今はツイッターなどのSNSで多くの意見を見ることが出来る一方、多くの意見を見てしまうがために一歩動き出すのを躊躇しがちな世の中ですよね。
 
だから「他人がどう言おうが適度に無視、自分の考えを出来るだけ尊重し、他人には押し付けない」というスタンスがちょうど良いんだと思います。
 
 
・「エンジニア不足とは技術力のあるエンジニアが不足しているということであり、誰でも良いわけじゃないから出来もしないやつが勘違いして入ってこようとするな」という批判
 
そりゃそうですよね。「プロ野球選手が足りない」ってなって、そこら辺のおっさんが「加勢するぜ!」って入ってきても、「いや、お前は呼んでない」ってなりますよね。
 
でも、じゃあ今現在働いているプログラマー全員が、ものすごい技術力を持っていて、早々代わりが見つかるもんじゃないような希少な存在なら、なおのこと後継者を一人でも多く作るためにも、1%でも可能性がある人間には挑戦させるべきですよね。
 
逆に、そこまで技術力が高くない人も存在するのであれば、これから努力して追いつけるかもしれないじゃないですか。最初の1か月は給料泥棒、他人の時間泥棒でも、3か月目、6か月目、2年目にもなれば、多少の戦力にはなれるはずです。(もちろんそのためにも、未経験から働き始める本人が全力で頑張る必要があります)
 
もしその育成期間が迷惑だ、ということであれば、育成を担わなければ良いだけです。自分は自分の仕事で精一杯だから、新人に貴重な時間を割いていられないと、自分の上司なりに伝えれば済む話です。
 
その上で新人育成を押し付けられるのであれば押し付けてくる上司や余裕が無い職場、プロジェクトの問題ですし、そもそも「自分は育成をしたくない」という意思表示すらしていないのであれば、意思表示していない人の問題です。(個人的にはこっちのパターンの方が多いんじゃないかと思っています)
 
「自分がわがままを言えないから、未経験プログラマーを志す人たちに責任転嫁してるだけ」って、言葉にするとすごくレベルの低い人たちですよね。そんな人たちの心無い言葉を気にしないでください。時間の無駄です。
 
 
・「未経験からプログラマーになるやつはすぐに転職してしまうから育成するだけ無駄」という批判
 
これ、はっきり言って未経験プログラマーとして働く人の問題ではなく、IT業界や人事評価制度などの職場・環境側の問題ですよね。なんで転職するかと言えば、「最初に入った会社=実力次第で待遇が良くなる会社ではないから」に決まってるじゃないですか。
 
もし実力次第で待遇もよくなり、満足出来るような環境なら、誰も転職しませんよね。じゃああれですかね、「自分だって満足してない環境で我慢してるのに、未経験のやつほどすぐに行動して転職してより良い環境に行くのが許せない」ってことですかね。
 
そんなもん、誰に強制されたわけでもないのに転職せず我慢しているその人の問題ですよね。自分が勝手に我慢して抱えてるストレスを他人に押しつけるな。
 
 
・おわりに
僕自身未経験からプログラマーになりましたが、就職先にも同じく未経験の人、経験の浅い人はいて、大体皆さん苦労しています。その苦労に耐え切れずにプロジェクトを抜ける人やプログラマーを辞める人もいますが、僕はそれで良いと思っています。
 
プログラマーに限らず、向いているか向いていないか、楽しめるか楽しめないかは結局のところ実際にやってみないと分からないので、試しにやってみて、絶対に自分には無理だと思った人は自分を責める必要とか全くないので、すっぱり辞めてしまって良いと思います。
 
でも、顔も見たことが無い、本名すら知らない、どこの誰なのかも知らないような人のお門違いな批判を真に受けて、挑戦してみたいのに挑戦しないという判断をする人は、僕はもったいないと思います。
 
もちろん、いろんな理由があって、その決断をするのだと思います。ただ、「やりたい理由」と違い、「やらない理由」ってある程度大人になると無限に思いついてしまうので、本気でやってみたいという気持ちがあるのなら、プログラミングに限らず挑戦してみるべきです。
 
僕は挑戦してみて本当に良かったと思っています。
 
今後もおそらく、未経験からプログラマーになる人を馬鹿にするような考えを持った人は完全にはいなくならないと思いますが、そういう人たちが全く気にならないくらい実力を付けて、結果を出して、さらに新しいことにも挑戦して、自己満足度120%の人生を目指して頑張ります。
 
締め方がよく分からなくなりましたが、以上です笑

【パソコン初心者向け】Excelの基礎まとめ

・はじめに
最近はパソコンよりもスマホを使う機会の方が多く、学生さんの中には「Excel使ったことない!」という人が多くなっているんじゃないかと思います。
また、「転職をするためにも、経験はないけどExcelのスキルを身に着けたい」という人もいるんじゃないかと思います。
そうした方々向けに、「Excelって何?」という状態からでも「一般的に仕事で必要とされるレベル」になれるよう、まとめて解説致します。
 
目次
Excelとは
Excelの勉強をする際の注意点
・超基本的な用語まとめ
・関数の仕組みと活用例
・おわりに
 
Excelとは
Excelとは、計算をするためのアプリです。
「計算だけなら電卓で良い」となりますが、単純な計算だけでなく、計算に必要な情報を表にまとめ、その表から必要な数値だけを計算したり、一度に大量の計算を同時に行ったりと、非常に便利なアプリです。
また、Excelで計算をするメリットとして、「計算する値をあとから変更することが可能」ということもあります。電卓では一度計算して結果を紙に書き写した場合、数字が一つ抜けていた場合などはまた最初から計算しなおしですが、Excelはその必要がありません。
 
Windowsならほとんどのパソコンにインストールされているということもあり、いろいろな仕事で活用されているアプリです。
 
今回は深く解説しませんが、最近話題になっている「業務の自動化」を可能にする機能も付いています。
 
最初は「難しそう」と思ってしまいますが、ポイントを押さえてうまく活用すれば、仕事がとてもスムーズにできるようになり、その分ラクが出来ますので、頑張りましょう!(笑)
 
Excelの勉強をする際の注意点
実際にExcelについて解説する前に、一つ注意点があります。それは、「Excelのすべてを知る必要はない」ということです。世間一般の「Excelを使える人」はあくまで「一般的によく使用されるExcelの機能を使える人」なので、Excelにある機能すべてを熟知する必要はありません。
「必要はありません」と言うより、たぶん無理です。Excelには本当に様々な機能が付いているため、そのすべてを一通り覚えよう!と頑張ったところで、使わない機能は忘れていくので時間の無駄です。
実際に僕はExcelの機能をすべて知りませんが、Excelで困っている同じ会社の人に操作を説明したり、仕事上必要となる操作も大体短時間で実現出来ているので、よほどExcelに詳しい人になりたいというわけでもないなら、「よく使う操作」と「キーワード」に絞って覚えていきましょう。
 
・超基本的な用語、操作まとめ


ブック…Excelのファイルのことです

f:id:bottea:20200130132053j:image
 
シート…Excelの一つの画面のことです。一つのブックの中にいくつもシートを作ることが出来ます

f:id:bottea:20200130132110p:image
 
セル…シートにある一つ一つの「マス」のことです。また、一つ一つのセルに名前があり、シートの一番左上のセルが「A1」セル、その右が「B1」セルです。
行に数字、列にアルファベットが振られているので、行と列の組み合わせで特定のセルを表すことが出来ます。
セルを一度左クリックすると、セルを「選択」した状態になり、選択したセルの名前がシートの左上部分に表示されます。
セルをクリックした状態でマウスを動かすと、複数のセルを選択することも可能です。
(マウスを左クリックしたままマウスを動かすことを「ドラッグ」といいます。Excel以外でもよく使います)
セルには数字や文字、計算式を打ち込むことが出来ます。計算式の場合、「=」から始めるのがルールです。(例)=A1+B1
 
フィルハンドル・オートフィル…セルを選択した際、セルの右下に小さく正方形が出ると思います。これが「フィルハンドル」で、フィルハンドルをドラッグすることで複数のセルに同じ文字や、連続した数値などを入力することが出来ます。これを「オートフィル」といいます。
 
リボン…テーマに合わせて色々な操作が出来るボタンがまとめて配置されています。特によく使うのは「ホーム」「挿入」「データ」あたりです。
 
関数…Excelにもともとある、「便利な計算式」のことです。関数の仕組みについては次の章で解説します。
 
マクロ…処理を自動化する機能です。VBAというプログラミング言語を用いて自分で作成出来ます。
例えば
「指定の値を含むセルのみ削除する」
「セルに入力された文字を使ってシートを自動作成する」
という簡単なものから、少し応用すれば
Excelのマクロを使ってOutlook(メールアプリ)でメールを送信」
「ネット上の情報を自動取得」
などなど、もはやExcel内にとどまらず、様々なことを自動化出来る機能です。
マクロの初心者向けの解説は別記事を参照ください。(現在準備中)
 
・関数の仕組みと活用例
さて、苦手意識を持ちやすい関数ですが、仕組み自体を理解すれば、関数一つ一つを一度に覚えられなくても、調べて活用することが出来るので、「関数の仕組み」から説明します。
 
例えばSUM関数(サム関数)ですが、セルに「=SUM()」と書くことで使用出来、()内に「合計したいセルの範囲」を入力することで、合計値を出すことが出来ます。
 
例えばA1セルに「=SUM(B1,B2,B3)」と入力することで、A1セルにB1~B3セルの値を合計した数値が表示されます。(連続した範囲は「=SUM(B1:B3)」のように書くこともできます)
 
セルに「=SUM(」と入力すると、そのセルの下に「SUM(数値1,[数値2],…)」と表示されますよね。この「数値1」のように書かれている部分を意識するのが大事で、この()内に入るものを「引数」といいます。
 
「=SUM()」が「合計値を出すための機械」(関数)で、その材料となるのが「(数値1,[数値2],…)」(引数)です。
ちなみに関数によって、引数の「個数」と「内容」が違います。
関数の使い方はすべてこの、「関数と引数の組み合わせ」でしかなく、使用する関数に正しい引数を渡せば、誰でも関数を使うことが出来ます。
 
もう一つ基礎として覚えておくべき関数にIF関数(イフ関数)があります。英語のままの意味で、「もし~なら」という関数です。
IF関数の引数は「論理式」「値が真の場合」「値が偽(ぎ)の場合」となっています。
論理式とは、「A1=10」や「A1>10」のように、特定のセルと数値を比較したり、「A1=B1」「A1>B1」のように、特定のセル同士を比較したような式のことを言います。
この論理式が「正しい」ことを「真」と言い、「正しくない」ことを「偽(ぎ)」と言います。
ということで、もし仮に
=if(A1=10,”10です”,”10じゃないです”)
という式をB1セルに書き、A1セルが10なら「10です」と表示され、そうでない場合は「10じゃないです」と表示されます。
 
このSUM関数とIF関数が理解出来れば、他の大部分の関数について、自分で調べながら理解することが出来るはずです。
特によく使う関数は以下に挙げていますので、自分で試しながら覚えていきましょう。
 
SUM関数…引数の合計値を表示する
SUMIF関数…引数の範囲で検索条件を満たす場合、数値の合計値を表示する
IF関数…論理式が真なら〇〇、偽なら△△、というふうに2通りの処理をする
COUNT関数…引数のセルのうち、数値や日付、時刻が入力されているものを数え、その数を表示する
COUNTIF関数…引数の範囲で検索条件を満たすものの個数を数え、その数を表示する
AVERAGE関数…引数の値の平均値を表示する
 
 
おわりに~名称を覚える大切さ~
Excelにはここまで解説した以外にも、「セルの結合」「条件付き書式」「グラフの作成」「画像の挿入」「絶対参照と相対参照」など、様々な機能や覚えておくべき用語があります。
今回この記事では、あえて「フィルハンドル」「引数」など、あえて「別に知らなくても良い名称」についても触れています。実際、業務をする中で「フィルハンドルを~」とか聞いたことはありません。
ただ、名称を知っていれば、その名称をもとに検索し、素早く情報を得ることが出来ますが、名称を知らなければ、「Excel 数値 連続」とか「Excel 関数 かっこ 中身」のように、検索するのにも一苦労します。
そして名前を正しく覚えていないと、ネットで解説記事を見ていても、「フィルハンドルって何?」「ドラッグ…?お薬のことかな…?」という風に、「説明文に書かれている言葉の意味が分からない」という状態になり、結局「やーめた」となってしまいます。
 
というわけで、Excelに限らず、新しいことを覚える時は、必ず「具体的な名称」を一つ一つ覚えるようにしましょう。最悪意味を理解するのは後回しで大丈夫です。
…と、僕の大学のゼミの教授が教えてくれました(笑)
 
近いうちに「Excelを素早く使うオススメショートカットキーと設定」をまとめた記事も書こうかなと思いますので、よければそちらも見てみてください。
最後まで読んでいただきありがとうございました!
良ければツイッターのフォローもお願い致します!
「ブログ参考になりました!」など言っていただければ記事を書くスピードが倍になりますのでぜひお気軽にリプライください!

クボ@新人プログラマー (@natsumemix2525) on Twitter

テスト自動作成・自動採点マクロを作成しました

 

まだ開発途中ですが、

・個人的利用

・塾など私教育での活用

・学校など公教育での活用

 

すべてOKですので、お気軽にどうぞ。

使用する際は、必ずExcelファイルの「readme」シートの内容をお読みの上、自己責任でお願い致します。

 

マクロへのリンク↓

Dropbox - テストシステム.xlsm - Simplify your life

 

 

このマクロファイルに関して、何かお問い合わせなどありましたらTwitterへどうぞ。

 

Twitter

久保@新人プログラマー (@natsumemix2525) on Twitter

【就活、転職】塾業界はやめておくべき理由

本文約2700字

5分程度で読み終わる内容です

・はじめに
これから就職活動をする、もしくは転職を考えている人に向けて、塾業界はオススメしない理由を実体験から解説していきます。
 
・自己紹介
僕は新卒から5年間、塾会社にて塾講師、教室スタッフ、教室責任者として働いていました。アルバイトとしても働いていたので、それも含めるともっと長い期間働いていたことになります。
もともと学校の先生になりたいと思っていた時期もありながら、ちょうど「モンスターペアレンツ」という言葉が流行った時期でもあり、「学校の先生は立場が弱すぎる」と思ったのでその道は避けました。
しかしアルバイトとして教育に関わることで、「やっぱり教育って良いな」と思い、そのまま就職したという流れです。
そのような経験のもと、「やめておいた方が良い」と思うことを説明致します。
 
・実績最優先
教育に進みたいと思う人は、おそらく子どもが好きで、子どもの将来をより良いものにしたいと思っている、良い人が多いと思います。
最近ではただレベルの高い学校に行きたいという要望ではなく、「こういう勉強がしたいから学力が低くてもこの学校に行きたい」というご家庭も増えてきました。子どもの将来を考えるのであれば、その意志を尊重すべきだと僕は思うのですが、会社はそんなことよりも「トップの学校への合格実績」の方を重視します。
 
学力的にトップレベルの高校であるA高校を目指せる生徒がいたとして、それ以外の高校を受けさせようとすると「どうにかしてA高校を受けさせろ」と言われます。それが塾業界です。
 
結局僕はそれを無視してご家庭の意向通りの受験をさせましたが、上司に電話で大声で怒鳴られました。
 
 
・業務時間、週休
特にこれは現在大学生で実家暮らしの方にお教えしたいです。
基本的に、塾は13時〜22時あたりが定時になっています。週休2日のところは、おそらくほとんどが日曜日と平日のどこかの曜日、というふうになっているはずです。ちなみに僕の会社は祝日も普通に仕事でした。
そんなことは調べればわかることなんですが、もし社会人になって一人暮らしをするのであれば、2連休が無いのは本当にきついです。2連休あればちょっとした旅行に行ってリフレッシュしたり、1日を外出したり家事をまとめてやってしまう日にして、もう1日はのんびりする日、みたいに余裕を持って出来るんですが、1日しか無いと休みの日も次の日の仕事を意識してしまうので、気が休まりません。
また、もし自分が教室責任者になったとします。塾が週6日開校しているとします。自分の休みが平日のどこかにあったとして、しっかり休めると思いますか?
休んでいても「何か問題は起こっていないか」と心配になります。会社によっては「責任者なのに何をのうのうと休んでるんだ!」という会社もあります。実際、僕のいた会社も少し前まではそういう雰囲気でした。
業務時間はそもそもの開始時間が遅いので、残業出来ても知れているという点では良いんですが、仕事が終わった後は大体のスーパーが閉まっているので、買い物に行くタイミングが難しいという点も、一人暮らしにはつらい点です。
 
・何をすればいいかもわからないままに責任者にさせられる
ひどいところでは入社1年目で責任者になることもあるようです。それを「若い人に挑戦する機会を与える社風」といえばそうかもしれませんが、おそらくそれをやられると大半の人が精神的に死にますし、なぜそんな無茶な状況になっているかと言えば、「人手不足だから」ですよね。なぜ人手不足かと言えば、「辞めていく社員が多いから」、ということですよね。さて、なぜでしょうね?
教育を施す側の人間が、会社からはまともに教育されていないの、面白すぎませんか?(真顔)
 
・遊びづらい、結婚しづらい
業務時間や休みの日が他の仕事をしている人とずれている分、仕事が終わった後に飲み会とか、金曜日の夜だから遅くまで、みたいなことが出来ません。僕はそれで高校の集まりに一度も参加出来ていません。
 
そういう出会いの場に参加出来ないことに加え、もし仮に相手が出来て結婚したとしても、同業者でない限りは生活のリズムがバラバラになります。自分は昼12時から23時まで家におらず、相手は朝8時から夜7時まで家にいない、となれば、一緒にいる時間は23時〜8時までの間だけです。寝てるわ!しかも休みが被る日も日曜日だけ。多分、結婚する時にはその辺も理解した上ですると思いますが、相手の不満は溜まるはずです。
ちなみに僕の会社の偉い人は「嫁には仕事を最優先することを昔から教育してある。嫁に文句言わせたり舐められたりしたらダメ」とか自慢げに言っていましたが、当時の僕はドン引きしてました。
・仕事を頑張ると仕事が増える
これは責任者として働いていると特に感じることです。教室責任者が評価されるには、生徒数を増やすことが一番です。生徒数を増やすためにイベントやらを実施し、結果生徒数が増えると、その分やるべきことが増えます。その分社員を増やしてくれるかというとそんな余裕会社にはないため、生徒が増えれば増えるだけ、自分の負担が増えます。
生徒が増えれば増えるだけ、1人1人に割ける労力が少なくなるため、時間でカバーしようとしてサービス残業や休日出勤に繋がります。
会社からはそんな努力を評価されるかと思えば、「休日はしっかり休まないとダメ!」という、至極真当な注意を受けるだけ。
仕事効率化を図ろうにも、対人での仕事が多いので限界があります。自分を犠牲にして質を保つか、自分を優先して質を下げるか、その2択です。
 
おわりに
他にも細々とオススメ出来ない理由はあります。有給を取得する土壌が無い(責任者になると特に代わりがいないため、そもそも休むという選択肢が無いも同然)、競合他社がコンビニレベルで多く、差をつけるためにサービス過剰になりがちで、結果自分の首を締めることになるなどなど。
 
僕自身5年間勤めて、現在は転職してプログラマーになっていますが、心の底から転職して良かったと思っています。土日祝日休み最高。年末年始に入試のこと考えてハラハラすることもなく、のんびりコタツで寝れることの幸せを久しぶりに感じることが出来ました。
 
ただ、塾業界で働きたい人は、実際に働いてみるのが一番だと思います。めちゃくちゃ良い会社に出会う可能性もあるので、あくまでこの文章は参考程度にして、就職活動の糧にしてください。
 
最後まで読んでくださりありがとうございました。何か質問などございましたらお気軽にコメントください。

【プログラミング学習】何となく気になる人にオススメの学習方法

本文約4500字

およそ9分〜10分で読み終わる内容です

 

・はじめに
 「プログラミング学習必修化!」
「小学生のあこがれの職業の上位にシステムエンジニア!」
「AIで人の仕事が奪われる!」
などなど、世間ではプログラミングに関する様々な話題があふれていますよね。
 そんなわけで、プログラミングに全く関わりが無い人でも、
 
「プログラミングってどんなことするんだろう」
 
とちょっと興味を持つタイミングってあると思うんですが、
 
「別にプログラマーになりたいわけじゃないし」
「別に何か自分で作りたいわけじゃないし」
「どうせ自分には理解出来ないだろうし」
 
というような、せっかくの興味を台無しにしてしまう感情も、同時に自分の中でわいてきますよね。
 
今回はそういう方が
 
「プログラミングって意外と簡単かもしれない」
「自分もちょっとやってみよう」
 
と思えるように、簡単なプログラミングの文法の紹介と、勉強するためにお勧めのサイトをご紹介致します。
 
1.     自己紹介
2.     プログラミングを学ぶメリット
3.     プログラミング言語の種類と文法の一例
4.     お勧めの学習サイト
 
 
1.自己紹介(飛ばしても大丈夫です)
・現役プログラマー(1年目)
・前職はプログラミングとは無縁な塾スタッフ
・プログラミングを学び始めて10か月
・私立文系学部卒
・プログラミングスクールなどに通った経験無し
 
だいたいこんな感じです。また、僕自身「こういうことがやりたい」という目的意識をもってプログラミング学習を始めたのではなく、「なんか面白そう」「出来たらかっこいい」「仕事で楽出来そう」「儲かりそう」という、この上なく頭の悪い動機から勉強し始めました!(笑)
 
今では実務経験も積みつつ自分で勉強する中で「こういうもの作ってみたいな」「こんなことの役に立てたらいいな」というイメージがわいてきたので、最初は目的とか難しく考えず、何となくやってみたら良いと思います!
 
 
2.プログラミングを学ぶメリット
「何となくやるって言っても、そこまで暇じゃないし、メリットが無いとやる気にならない」という人が多いですよね。当然ですよね。僕みたいに後先考えずに動く人の方が変です。僕と同じ、「頭がちょっと変な人」は読み飛ばしてください。
 
僕と違って賢くて冷静な人のために、ざっくりメリットをまとめると
・1つの大きな課題をたくさんの小さな課題に分解する力がつく
・分解した小さな課題を順序立てて解決していく力がつく
・課題を解決するための方法を自己学習する力がつく
・作業の自動化に繋がる
 
こんな感じでしょうか。
3つめまではいわゆる「プログラミング的思考力」と言い換えられます。(僕はそういう短くまとまった字面ばかり広まって、中身が浸透しているか怪しい言葉は出来るだけ使いたくないので、あえて分解し、文で表現しました。)
 
特に最後に書いた「作業の自動化」については、おそらく大半の人が、少しプログラミングについての知識を身に着けるだけですぐ実現出来る、大きなメリットだと思います。
 
「日々繰り返し作業が多く、それに時間がかかっている」
「時間がかかるというほどではないけど、単調作業のわりに注意力が必要でミスが起こりやすい」
 
こんな状況の人には本当にお勧めです。
 
3.プログラミング言語の種類と文法の一例
 
さて、プログラミング言語と一口に言っても、たくさんあります。
PythonC言語C#javaSQL、Go、RubyPHP、HTML、CSS
 
「なんでそんなにいっぱいあるの!?」
と言われると、
「それぞれに得意不得意、文法の違いがあり、必要に応じて使い分けているから」
です。
 
ただ、プログラミング言語ごとに違いはあれど共通点も多く、基本となる文法も少し見た目が違うだけで、考え方は同じ、ということが多いです。(HTMLとSQLは用途が限定されているのでかなり特徴的ですが)
 
様々あるプログラミング言語の中で、以下2つを最初に学ぶことをお勧めします。
1.     VBA
2.     Python
 
VBAとはMicrosoft officeのWordやExcelの「マクロ」という機能を作るための言語です。
業務効率化のために、まずマクロは欠かせません。
 
「マクロ」という言葉を聞いたことが無い人に説明すると、Excelに記録されているデータに対し、毎回決まった処理を行う場合、その処理をいつでも繰り返し使えるように保存しておいたものがマクロです。
 
例えるなら、決まった材料突っ込めば決まった料理が自動で出来る機械、みたいなもんですね。めっちゃほしいので誰か作ってください。
 
Excelを使う仕事(作業)はめちゃくちゃ多いので、実用的ということを考えると、VBAがダントツでお勧めです。
 
VBAに関しては文法の例を示すよりも「簡単なマクロの作り方」を見ていただく方がより「思ったより簡単かも」と思っていただけるはずなので、こちらについては別記事で解説させていただきます。
 
次にお勧めなのがPython(パイソン)です。お勧めする理由は「文法・単語がシンプルだから」です。
 
例えば、プログラムには「もしこの値がこれの場合はこうする」という条件分岐を書くことが多いのですが、Pythonの場合、
age = 20
if age < 20:
    print(“成長途中って一番楽しいですよね”)
elif age == 20:
    print(“成人おめでとうございます!”)
else:
    print(“大人として責任感を持って行動しましょう”)
 
例えばこんな感じの書き方になります。
まず最初に「age」という「変数」に「自分の年齢となる数字」を代入しています。これで「age」はこのプログラム内では「20」という意味を持ちます。変数とは数字や文字を入れておくためのもので、「age」じゃなくても「toshi」とか「a」とか、何でも良いです。わかりやすくしておくために英語で表記されることが多いですが。
 
次にifの部分で条件分岐です。「age < 20」は「ageが20より小さかったら」という意味です。今回はこれに該当しないので。この下のprint(“成長途中って一番楽しいですよね”)という部分は無視します。
 
次にelifという文です。elifはifの部分の条件に一致しなかった場合かつ、他の条件を指定するときに使います。今回は「ageが20と同じ」が条件です。その通りなので、その下のprint(“成人おめでとうございます!”)を使用します。
print()は()内のものを表示する役割を持っています。そのため、このプログラムを実行すると、毎回「成人おめでとうございます!」と表示されます。
 
最後のelseからの部分は、上記の分岐以外のすべての場合に使用されます。今回であれば、「ageが20より小さい」「ageが20と同じ」以外のすべてです。ageには必ず数字が代入されるという前提なら、「ageが20より大きい」場合、「大人として責任感を持って行動しましょう」と表示されます。余計なお世話ですよね。
 
プログラミングでよく使用するのはこの分岐であるif文と、繰り返しを表現するfor文ですので、ここまでの説明で理解出来た人であれば、独学でプログラミングを始めても、基本的な文法で躓くことはないはずです。
 
4.お勧めの学習サイト
前提としてですが、プログラミングを独学する際、本での学習はあまりお勧め出来ません。プログラミングを出来るようになりたければ、実際にプログラムを書くことが絶対に必要ですので、「本を読んで理解しよう」は絶対にやめましょう。
 
基本となる文法を理解した上で、「こういうものを作りたい」「この部分についてもっと深く知りたい」という場合は本での学習をお勧めしますが、最初はネットで出来る学習サイト、出来ればブラウザ上でプログラムを実行出来るものを活用しましょう。
 
1.Progate(一部無料、全コンテンツを使いたい場合は月額1080円)

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
 プログラミング学習サイトとしてはおなじみ。僕のブログでもたびたび登場します。インプットすべき知識はスライドで解説され、解説された内容をもとに、実際にプログラムを書いて正しい結果になれば次に進める、というものです。
 
 プログラミング学習を始めるにあたり、地味に壁となるのが「プログラミングをする準備をすること」です。プログラミングを行うには、テキストエディタと呼ばれるプログラムを書くためのソフトや、使用する言語に必要なデータ、パソコンの設定など色々と必要な手順がありますが、Progateで学習する分にはそうした手間が一切かからず、すぐにプログラミングを学び始めることが出来ます。
 
 かわいらしいキャラクターが出てきて会話形式で解説されているので、小さいお子様や女性でもとっつきやすい作りになっています。
 
 VBAについてはこちらでは学ぶことが出来ませんが、Pythonをはじめとして、多くの言語に対応していること、実際に自分のパソコン上に開発環境を整える場合の手順などもわかりやすく解説されており、「プログラミングを始めるならProgate」と自信を持ってお勧めします。
 
 スマホアプリ版もあり、ブラウザ版と違って文字を打ち込むのではなく選択肢から選び、正しく並べていくような回答形式になっているので、こちらは小学生でも取り組みやすいくらいのレベルだと思います。(実際に打ち込まない分、成長は緩やかだと思いますが)
 
 
2.ドットインストール(一部無料、プレミアム会員になると全コンテンツ利用可能。月額1080円)

https://dotinstall.com/
こちらも部分的に有料のコンテンツですが、Progateと違い、短い3分ほどの解説動画でインプットし、それを参考に自分でプログラムを書いてみる、というものです。こちらはVBAにも対応した講座があります。
 
Progateと違いテキストエディタなど開発環境を最低限整える必要はありますが、もしVBAの学習のみに限定するなら、VBAのコンテンツはすべて無料で利用出来ますし、ExcelがあればVBAでのプログラミングは可能なので、心配いりません。
 
3.paiza(一部無料、1か月600円~1078円で全てのコンテンツ利用可)

ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】
こちらも一部無料のサービスです。Progate同様、僕のお勧めであり、ブログにたびたび登場します。
 
Progate同様VBAは学習できませんが、Pythonの講座は無料会員でもすべて利用出来、ブラウザ上でプログラムを書いて実行することが出来るので、Progate同様「とりあえずプログラミングに触れたい」という方にお勧めです。
 
また、paiza.ioという、ブラウザ上でプログラムを書き、実行出来るサービスも無料で使えるため、「自分が考えたプログラムを動かしてみたい」という人で開発環境を整えるのに手間取るようであれば、一旦こちらで試してみることをお勧めします。
 
そして最近リリースされた「コードクロニクル」をはじめとして、「プログラミング学習をしながら遊ぶことが出来るコンテンツ」が多数そろっています。
中学生、高校生が気軽にプログラミングに取り組むためのきっかけとして、十二分に活躍するはずです。
 
おわりに
プログラミングは僕もまだまだ勉強途中でわからないことだらけです。「実用的なスキル」というのももちろんそうなんですが、「新しく何かが出来るようになる楽しさ」をここまで実感出来ることもなかなかないんじゃないか、と思います。
 
ご紹介した通り、無料でも多くのことが学べるサイトはたくさんありますし、有料サービスを受けるにしても月々1000円程度でここまで出来るのか!と驚くものばかりです。
 
ここまで読んだ忍耐力のある真面目な人なら、というかここまで読んでるってことは絶対プログラミングにかなり興味あるはずなので、今すぐProgateかドットインストールかpaizaの会員登録を済ませて、実際にやってみてください!面白いので!!

はてなブログ特別お題キャンペーン #学び応援WEEK

はてなブログ特別お題キャンペーン #学び応援WEEK
by ギノ

【未経験、独学からプログラマーへ】転職エージェントはやめておくべき理由


本文:約4000字
およそ8分で読み終わる内容です
 
 プログラマーとして働いたことは無いけど、プログラマーになりたい!という人向けの記事です。この記事を読むことで、情報もなくがむしゃらに転職活動をするよりは、スムーズにプログラマーになることが出来るはずです。


 また、僕の体験をもとにしているため「プログラマー」に限定した書き方になっていますが、基本的にはどんな職種にも通じることだと思うので、就職活動、転職活動の参考にしていただければ幸いです。
 
はじめに
 最近のプログラミング学習ブームに乗り、「未経験でもプログラマーになれる!」という見出しをまんまと信じてしまい、実際に2019年の夏にプログラマーになれた僕ですが、4月から本格的に転職活動を開始し、約4か月間決まらなかったことからもわかるように、かなり転職活動は難航しました。

(平均3ヶ月ほどで決まるようで、離職期間が3ヶ月を超えていると企業によってはマイナスイメージを受けることもあるようです)
 
 僕が転職活動を長引かせてしまった原因はもちろん僕にあるのですが、僕の責任であることを自覚した上で、「未経験の場合、エージェントはダメだな」と思いましたので、その理由をまとめました。参考になれば幸いです。
 
 
1. エージェント企業が儲かる仕組み
エージェントも当然ですが営利目的なので、利益を出そうとしますよね。どこからお金をもらうかと言うと、転職希望者ではなく、転職先の会社からになります。


全てのエージェント企業が完全にこれに当てはまるかはわかりませんが、一般的なのは以下のような流れです。


Aさんという転職希望者が「はてなエージェント」というエージェントの紹介の元、「はてな株式会社」という会社に入社が決まるとします。その際、Aさんが入社するときの年収の3割を「人材紹介料」として、はてな株式会社がはてなエージェントに支払います。


この割合はもちろん会社や年収の額などによって変わることが考えられますが、おおよそこのような流れが一般的なようです。
 
ちなみに転職サイトは以下のようになります。
はてな株式会社が求人案内を「はてなナビ」という転職サイトに掲載するとします。その際、掲載期間などに応じて掲載料を支払います。


この求人を見たBさんが、はてなナビ経由ではてな株式会社に入社しました。その際、エージェントのようにはてな株式会社がはてなナビに対してお金を払う、ということはありません。
 
仮に、「はてなエージェント」の人材紹介料の割合を人材の年収の3割、「はてなナビ」の求人掲載料を月100万円とします。


はてな株式会社」はそこまで貴重な人材を求めているわけではないので、年収400万で社員を雇うつもりです。また、募集にあまり時間をかけたくないので、3か月に集中して求人を出すことにします。
 
はてなナビの場合、月100万×3=300万円で、求人にかかるコストは300万円ですね。(もちろんその期間で必要な人材が確保出来る保証は無いのですが)
 
次にはてなエージェントの場合、400万×0.3=120万円が一人採用するごとにかかるコストですね。
 
もし、はてな株式会社が採用人数2人で良いなら、はてなエージェントの方が必要な人材を少ないコストで確保出来る可能性が高いですが、もし3人以上なら、はてなナビの方が少ないコストで人材を確保出来るかもしれません。
 
ここまでであれば、「じゃあ企業の採用人数によってはエージェントの方が良いかもしれないじゃないか」と思われるかもしれませんが、もしあなたが会社の人事だったとしたらどう考えますか?
 
あなたは上司に「人材を2人確保しろ」と言われました。エージェントを使って人材を確保する場合、わざわざ未経験の人を選びますか?

(私の場合、「転勤不可」「残業嫌」「給料安いと家族養えなくて無理」「プログラミング完全独学」「プログラミングについて何の資格もない」というおまけつきでした)
 
しかも転職サイトと違って、エージェントは求人を転職希望者に紹介する段階ではコストがかかりません。期間の制限もありません。ということは、転職サイトのように「ほしい人材が確保出来なければ追加でコストがかかる」ということも無いんです。
 
そんな条件のもと、「未経験ですが頑張ります!」と言って採用試験に来る人を、あなたは積極的に採用しますか?
 
別の状況を考えてみましょう。
仮にはてな株式会社が「未経験を積極採用し、それをアピールしていこう!」と考えているとします。あなたははてな株式会社の人事です。偉い人から「未経験を積極採用しろ」と言われました。また、年収は300万に下げるとします。そのため、エージェントのコストは一人90万円になります。
 
しかし未経験となると、「本当にスキルが身に付き、一人前になるのか」、「『やっぱり合わなかった』と言って早々に退職する恐れはないか」などなど、経験者を採用するよりもリスクが大きくなります。


最悪の場合、1人や2人採用しても、全員辞めてしまって研修費用や採用費用を払っただけで、何も残らないという可能性があります。
 
結果どうするかと言えば、「ある程度は辞める前提で、多めに採用」となるはずです。
 
3年間続く人が2人いれば良いとして、その倍を確保するなら4人。結局、エージェントで募集するとなると90万×4=360万円となり、転職サイト(3か月300万)の方が安い、ということになります。

 

しかも雇う人数が増える分支払う給料も増やさないといけないので、余計に採用の際のコストだけでも減らしたくなりますよね。年収400万×2なら年間800万円ですが、年収300万×4なので1200万円が年間の人件費、さらに研修期間は売上に貢献せず、研修のためのコストも必要・・・。
 
上記2つの例で考えても、会社からして「エージェント経由で未経験を1人雇うコストが高すぎる」「エージェントを使って未経験を雇うメリットが少なすぎる」と誰でも判断出来ますよね。会社のコストが高く、メリットも少ないのであれば、その選択肢を会社は選ばないのが普通です。よって転職希望者側も、その選択肢を選ぶのは得策とは言えません。
 
「エージェントと転職サイトが儲ける仕組みの違い」が実務未経験からプログラマーに転職する際にエージェントをお勧めしない一番の理由です。
 
 
2.おすすめの転職サイト
ここまでエージェントをお勧めしない理由をご説明しましたが、逆を言えば未経験から挑戦するなら転職サイトを活用すべき、ということになります。僕の個人的なお勧めのサイトはIT限定ですがpaizaというサイトです。
 

ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】
 
paizaで転職先が決まったわけではないのですが、paizaでスキルチェックをすることで自分の能力を可視化し、paiza以外のサイトで転職活動をする際にも、「paizaでBランクです」と言うと、熱心な人事の方であればpaizaを調べ、どのくらいのレベルか確認してくれるので、他にアピール出来る資格が無くても大丈夫です。


また、paizaのランクに合わせてお勧めの企業が紹介されたり、「面接しませんか?」と企業からプラチナスカウトが来ることもあるので、転職活動で落とされ続け、擦り減った自信を回復する手助けにもなります(笑)


 プログラミングを学習するコンテンツも非常に多く、最近も「コードクロニクル」というソーシャルゲームで遊びながらプログラミング学習が出来る新しいコンテンツを出していたので、プログラミングの学習をしながら転職を考えている方には本当にお勧めのサイトです。
 
3.個人的な経験談
最後に、僕自身がエージェントを活用してみて、残念だったことと、よかったことを書いて終わります。


残念だったこととしては、「この機会にプログラマーに挑戦してみたい」と何度も意思表示をしているにも関わらず、ことあるごとに「本当にプログラマー希望で転職活動を続けますか?」と何度も確認されたことです。
(今思えば、上記のようなエージェントの特性上、未経験をうまく会社に売り込めないことは分かりきっていたんでしょうね。転職活動時はとにかく焦っていたのでそこまで考え付きませんでしたが。)


何度も業種について意思確認され、書類選考で落とされ続け、やっと面接に進めたかと思うとそれも落とされ、「全く歯が立たない状況」を見せつけられ、貯金も底を尽きかけ、自分だけでなく家族にも負担をかけてしまうかもしれない…
そんな状況だったので、「もうプログラマーはあきらめようかな」という考えになり、転職サイトでもプログラマー以外に事務系の仕事など、とにかくエントリーするようになっていました。


結果として、自分で転職サイトから応募した会社のうち1社が拾ってくれたおかげで何とかプログラマーになれましたが、「未経験からでも採用された実績があります!任せてください!」とこちらに言っておきながら、長引くと「本当に続けて良いんですか?」と確認してくるエージェントに、僕は不信感を持ちました。
 
エージェントを活用してよかったことは、面接対策や志望理由書の添削などをしてくれたことです。大学生の時、キャンパスに就職活動のサポートをしてくれる部署?みたいなものがあったので、ほとんどの人は自己分析やら志望理由の添削をしてもらっていたようですが、僕は「自分のことくらい自分で分析出来るし、志望理由を自分で考えられないようなところはそもそも受けない」と、変に意固地になっていたので、面接の時に相手に良い印象を与えるための動作を教えてくれたり、僕の話し方の印象をフィードバックしてくれたりしたことは、素直にありがたいなと思いました。


また、同時期に妻が出産のため実家に帰っており、家に1人の状態で転職活動期間を過ごしたため、転職についての悩みを聞いてもらえる存在としてエージェントの方がいたことは良かったと思います。(友達少ないので…)
 
最後まで読んでいただきありがとうございました。
※この記事はあくまで「未経験の職種に挑戦することを考えている方々」の参考にと思い書いています。エージェントが良い、悪いといった趣旨のものではありません。
また、本記事に明確な誤りがありましたらご指摘下さい。すぐに訂正させていただきます。
 
何か質問などありましたら、お気軽にコメントください。
 

【未経験、独学からプログラマーへ】独学で苦労したことなど【Progate様とpaiza様に感謝】

本文:約5000字

読み終わるのに8分〜10分ほどかかります。
 
 前回の記事では未経験から半年でプログラマーになった僕の経緯を紹介させていただきました。前回概要だけ紹介していた、プログラミング学習の苦労話と、実際にプログラマーとして働いていることを踏まえて、これからプログラミング学習をする方へのアドバイスをしていきたいと思います。
 
 プログラミング学習
 僕の場合、プログラミングは全くの無知な状態で始めたので、そもそもどうやって勉強すれば良いか調べることからはじめました。そうするとProgateというサービスが真っ先にヒットしました。

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

月額1000円ほどでいろんな言語についての勉強が出来て、しかも実際にコードを書き、それが正しいかどうかの判定や、正しくはどう書くのかという模範解答などなど、完全初心者でもめちゃくちゃにわかりやすく、手取り足取り教えてくれるサービスだとわかり、即奥さんに相談し、月額分の投資を許可してもらいました。
 今思えば進研ゼミの宣伝マンガを読んで親に「進研ゼミやりたい!」ってお願いした子供の時となんら変わりないなとおかしくなりますが、進研ゼミとは違ってちゃんとやりました(笑)
 
 そんな感じで始めたプログラミング学習ですが、Progateが本当にわかりやすかったおかげで、プログラミング学習をすることに苦労した記憶はあまりありません。わからないことがあっても繰り返しやっていればわかるだろ、と特に気にせずとりあえず反復していましたし、本当にわからないところがあれば無視していました。
 プログラミング学習よりも、「試しに自分でなにか作ってみよう!」と思った時に、その環境を準備するほうが大変でした。エディターと呼ばれるプログラムのコードを書くソフトをダウンロードし、そのソフトの初期設定をして、さらに開発に使用する言語を使うための準備をして、やり方を調べながら色々設定して・・・。
 この時間が全く無駄であったとは思いませんが、確実に僕の中ではプログラマーになるまでの過程でかなりストレスが溜まったことの一つですし、別にこのタイミングで経験しておかなくても良かったことだなと今では思います。
 「試しに何か作ろう!」と思っても僕のように勢いでプログラミング学習を始めた人は「じゃあ何を作る?」となり、「とりあえず準備だけ」と準備はするものの、その準備にめちゃくちゃ時間がかかってそこで挫折する、という流れに陥りそうなので、これから学習する人は、paizaというサイトで開発環境をブラウザ上で使用出来る無料サービスがあるので、そちらを活用することをおすすめします。
 
 プログラミング学習で困ったこと
 苦労したことはないと書きましたが、困ることはちょくちょくありました。どの言語を勉強するか、勉強したことをどうアウトプットするか、ということです。
 僕の場合、何かの記事でpython人工知能にも活用されていて、初心者にも勉強しやすい言語だ、という文言を目にして、素直にpythonから勉強をはじめました。その後、HTMLやCSSRubyjavaJavaScriptSQLなど、Progateで色々な言語を勉強しましたが、PythonRubyjavaなどについては学ぶべき基本的な考え方などはほぼ同じなので、どの言語でも良いな、と思います。同じ動作でも使用する単語が違ったり、すこし構文の形が違ったりというくらいで、考えるべき部分は同じです。
 スポーツで例えるなら、野球とソフトボールは使うボールの大きさやベースの間隔など違いがりますが、基本となるルールは一緒ですよね。そんな感じです。
 
 そう考えた場合、使う単語がわかりやすかったり短かったり、構文の書き方がシンプルだと感じるpythonは、たしかに初心者向きだなと思います。
 
 ただ、ホームページ作成がしたいのであれば、最初からHTMLやCSSJavaScriptなどの言語を学ぶことをおすすめします。ホームページを作るときに使用する言語なので、他の言語とはかなり違う印象を受けますし、他の言語を勉強しても理解しやすくなる部分はあまり無いと思います。
 野球をやっていた人が相撲をするとなったときに、別に「野球をやっていたおかげでめちゃくちゃ馴染みやすい!」とはならないですよね。多分。下半身がちょっと強いことが役に立つくらいでしょうか。
 
 勉強したことをどうアウトプットするか、というのは、「どんなものが作りたい」というものがはっきりした人であれば、実際に勉強したことを使ってアプリを作ってみたり、ウェブサービスを作ってみたりと出来るのだと思いますが、僕はそこまでの想像力が無く、自分は本当にプログラミングの能力が身についているのか?と疑問に思うことが多々ありました。
 そこで役立ったのが、先程ちらっと書いたpaizaというサービスでした。

ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】

paizaはプログラミング学習、プログラミングの問題演習とランク分け、転職サービスなど、プログラミングに関する様々なサービスを提供しています。その問題演習が様々な言語に対応しており、問題のレベルもしっかり分けられているため、まずは基本的な問題から入り、少しずつ難しい問題にも取り組むことで、「このくらいまでなら出来る」「これは自分には難しい」ということがわかり、利用する前に比べて自分の能力がどの程度なのか客観的にわかるようになり、インプットしてきたことがどの程度身になっているのかもわかりました。
 
 理想としては、プログラマーとして就職する前に簡単なアプリを作成し、転職活動の際にそれをアピールするのが良いと思いますが、どんなものを作れば良いかわからない人は、paizaで問題を解き、ランクアップすることでモチベーションを維持するのがおすすめです。paizaのランクはそのままpaizaの転職活動時の応募条件に使われているのでその意味でも頑張ろうと思えますし、直接paizaに掲載されていない求人でも、paizaのランクを書いてみると面接の際の話の種にもなります。
 僕の場合、paizaでBランクを取得しましたが、それを履歴書に書いていると、「paizaの問題実際見てみましたけど、結構難しいですね」と、面接時に言ってくれる会社もありました。未経験で自作のものが無い以上、アピール出来る何かしらの材料は、相手が知っているかどうかは置いておいても、具体的に記述して伝えるとプラスに働くかもしれません。
 
 ここまで長く書いてきましたが、自分の経験を踏まえて、これからプログラミング学習をする方へのアドバイスをこれからまとめてお伝えします。
 
学習する言語について
 正直何でも良いですが、ホームページを作りたい人はHTMLやCSSから勉強することをおすすめしますが、そうでない方はpythonがおすすめです。単語がシンプルで、コード自体もシンプルなためです。
 
学習方法について
1.     Progateでプログラミングの基礎を身につける(1ヶ月)
2.     paizaで学習した言語を使って問題演習をしつつアウトプット(1ヶ月)
たぶん、この2つだけでプログラマーにはなれます。それぞれ1日平均2時間、pythonだけに絞って取り組めば2ヶ月で未経験プログラマーとして最低限必要な知識は身につくはずです。Progateのpythonの講座を全てクリアし、paizaでBランク取得した僕が実際にプログラマーとして就職出来たので、それを一つの基準にしてもらえれば頑張りやすいと思います。
Progateに関しては、アプリ版ではなくパソコン版で、実際にコードを書く間隔を体験しながら学習することをおすすめします。アプリ版の場合選択問題のようになり、かなり難易度が下がります。まずはパソコン版で学習し、スキマ時間にアプリ版で復習するような形が効率的だと思います。
 逆におすすめしない勉強法は、最初から本を買ってそれを参考にすることです。本を読んでもプログラミングの能力は絶対に身につきません。実際にコードを書いて、エラーを出して、そのエラーの意味を知って、何が間違っていて何が正しいのかを一つ一つ身を持って実感していくのが一番の近道です。その流れを体験しつつ進められるのがProgateの一番の良さだと個人的には思います。
 本を使った学習をおすすめしない理由はもう一つあり、仮に本を読みながら実際にコードを書いてみても、本に載っているコードが間違っていたり、自分が正しいと思っているコードでエラーが出た場合、なぜおかしいのか発見するのは勉強し始めだと非常に難しく、時間もかかります。プログラミングの基礎学習をするならProgateの講座で事足りるので、まずはProgateの講座をクリアすることを最低限の目標として取り組むことをおすすめします。(テキストエディタの準備などの環境設定に時間をかけなくて良いという面でも、Progateでの学習をおすすめします)
 
 実際にプログラマーとして働いていて安心したのは、プロジェクトによるかもしれませんが、設計書があり、その設計書通りの処理をすればOKということです。ある意味プラモデルを組み立てるような間隔でコードを書いていけるので、pythonの関数を色々覚えなきゃいけないとか、そういう心配はいらないです。(僕のプロジェクトではネットで関数について調べたりしながらコードを書くことが許されていますが、プロジェクトによってはネットをつないではいけないなどもあるそうです。)
 結局プロジェクトによる部分が大きいのですが、基本となる知識はProgateで学習したことで事足りるなという実感があります。
 また、paizaの問題を解きながら、「こういうことがしたい時はどうするんだろう」とpythonの関数を調べる能力もついたので、「ある課題をクリアするための手段の調べ方」はpaizaの問題演習を通して身につけられそうです。
 
 逆にプログラマーとして働き始めてわかった苦労するポイントは、そのプロジェクトに関する用語と、使用しているツールの使い方を把握することと、設計書などの資料の意味や読み取り方でした。
 採用された際、定例句的に「入社までに勉強しておくべきことはありますか」と質問し、「特に無い」と言われ逆に驚いたのですが、今であればその意味がわかります。プロジェクトごとに使うツールや覚えておくべき用語、設計書の書き方などが異なるため、そこに関しては独学しようも無いからです。
 プログラマーとして働くにあたって、使用する言語について必要な知識を10とすると、それ以外の知識(使用するツール、設計書の読み方、プロジェクトのルール、業務の流れなど)は100くらいかなあと個人的には感じました。
 なので、自分が考えるコードを正しく書くことが出来るようになれば一人前のプログラマーとして働ける、ということではなく、そのプロジェクト独自のルールや環境に慣れる必要はある、ということです。ただ、僕はまだ一つのプロジェクトでしか働いていないためまだわからない部分ではありますが、一つのプロジェクトを経験することで、ある程度どんな流れで仕事をするのか、どんな資料があって、それをどのように読み取るのかなどはかなり学ぶことが出来るので、プロジェクトに対応するために必要な時間は徐々に短くなっていくのではないかと思います。
 
最後に
 長くなりましたが、まとめると
プログラミング言語の基礎はProgateで必要十分
・身につけた知識のチェックと課題解決への試行錯誤はpaizaで練習
プログラマーになるのに必要な知識よりも、なってから必要になる知識のほうが多い
・プログラミング学習にコードを実際に書くことは必須
 
以上です。これからプログラマーを目指す人にとって少しでも参考になれば幸いです。最後まで読んでいただきありがとうございました!
 次回はプログラマーとして就職する時の失敗談、苦労話などを踏まえ、就職活動の際のアドバイスを紹介します。