まるでちょんまげハリウッド

ちょんはり師匠の生きざまを切り売りしています。

イチオシは転職体験記!それ以外は、いい歳したオッサンの反省です。反省はしますが、後悔はしていません。たぶん。

未経験からWEBプログラマーに転職した話。「初出社!そのとき僕は。」 その23

前回までのあらすじ。

2010年12月。プログラマーとしての採用を勝ち取ったが、肝心のプログラミングスキルがゼロだった。

初出社まであと一か月弱。

これはマズイ、とさすがにあせったちょんハリ師匠。

プログラミングの教科書を読み漁るも、まったくわけわかめ

無情にも時は過ぎ、初出社まであと一週間を切っていた。

どうする?どうなる?やれる?やめる?え?え・・!?

f:id:ch_mage:20131126204634j:plain

2011年1月。

あっという間に明けたよ、年が。

そして、ついに。

その日はやってきた。

ちょんハリ師匠が、WEBプログラマーとしての第一歩を、踏み出すその日が!

面接以来、久方ぶりにスーツを着る。

ワイシャツのボタンに手をかけながら、
「これから、しばらくワイシャツを着る日が続くんだな。」
とつぶやく。
(会社では私服OKだったが、「未経験」であるということ、新参者であるということから、しばらくはスーツで通そうと、決めていた。)

一か月ぶりのスーツ。ネクタイを結ぶ手がもたついていた。

-ふふ、やけに手際が悪いじゃねぇか。

ガラにもなく、緊張していた。初出社に。

だが、もたついていた理由はそれだけではなかった。

f:id:ch_mage:20140113132629j:plain

HelloWorld.から少ししかすすんでなかった。

結局、年末からのプログラミングの勉強に失敗していた私。

やっべぇどうしよう、リアルにマズイ、こりゃアカン。

プラスの要素皆無。私の気持ち、真っ黒。

そして初出社の日を迎えるんだもの。

そりゃ、ネクタイ結ぶ手も震えますわな。

しかし、バックれるわけにはいかない。

私には車のローンがあと100万ほど残っていた。

うふふ、逃げ場なし、待ったなし。

なんとか、自分の気持ちを落ち着けるため、手のひらに「人」の字を書いて飲み込む。

photo by Lomo-Cam

「よし、行こう!

いざ参らん!

会社へ!」

・・・・という、気持ちを奮い起こすため、「参」の字を書いて、飲み込んだ。

「人」と「参」を飲み込んだ私。

「行ってきます!」覚悟を決めて、勢いよくドアを開け放ち、脱兎の如く駆け出した!


どこまで勉強すればOK?

漠然と、プログラムを勉強する!と、本を読み漁っていたのは間違いだった。

なにせ未経験。現場でどんな技術が使われているか知らない。

だから、どこまで勉強すればよいのか、当時の自分にはわからなかった。仕方ないといえばそうなんだけれども。

そもそも、プログラミングを学ぶ、といっても、「言語」を学べばおしまい、というわけではない。

自分はPHPというプログラミング言語を仕事で使っているので、PHPを例にして話そう。

PHPでプログラミング」するにあたって、必要になるのは「PHP単体」の知識だけではない。

ほぼ100%、サーバー(PHPを動かすため)の知識、データベースの知識、ブラウザに表示させるときのHTMLの知識、CSSの知識、javascriptの知識が必要になってくる。

やることはいっぱいなのだ。

実務経験のない我々は、ただ「勉強」しようと思っても、実務で使われている技術がどれほどのものか分からないので、「アレもコレもやらなきゃ!!」という錯覚に陥ってしまう。

やみくもに知識を吸収しようと思っても、ただ摂取しただけでは、消化不良をおこすだけ。

さらに、会社ごとに利用している「フレームワーク」・・・つまり、WEBシステムを作るための「骨組み」のようなものが違うと、もうお手上げだ!

うひー!!どこまでお勉強、やればいいのか!?

やっぱりまずは・・・HTML

最初にやるのは、HTMLと、CSSの知識かな。

タグをちゃんと書けて、style=""の書き方でもいいから、どういう修飾ができるかを学ぶ。

次に、PHPを使って、HTMLを書き出す・・・または、逆でHTMLファイル内に埋め込んでもいいけど。

とりあえず、この部分から入るのがいいんじゃないかなぁ。

ん?そうすると、自分が職業訓練校でHTMLやらCSSを学んだことは、100%無駄ではなかったか。 ちょっとでも、訓練校に行った意味があったのだな。
・・・まぁ、前職でキーボードぽちぽちやっていたから、それなりの下地があったことも、うん、まぁ、あるといえば、あるね。

IPAのセキュリティコーナーを見ておこう。

PHPで少しずつ書けるようになったら、DBの知識を学んでいくのがよいだろうな。
なんてったって、PHPの肝は、DBとの連携にあるのだから。

そして、少しずつでもいいから知っていてほしいのは、情報セキュリティについてだな。

以前より、基本情報技術者などの言葉とセットで、たびたびIPAの名前を紹介している。

今回も、IPAの情報セキュリティのサイトを紹介しておこう。

IPA 独立行政法人 情報処理推進機構:各ツールの紹介

プログラミングの初歩でセキュリティ?と思うかもしれないが、どういう脅威があるのかは、最初から知っておいたほうがいい。

あぁ、そうそう、ちょっと前にWEBサイトのデザインリニューアルに関わったときのことを話そう。

デザインリニューアル、ってのは、見た目を変えるだけだから、対した作業ではないなぁ、などとタカをくくっていたら、とんでもない目にあった。

リニューアル予定のサイト、ソースコードを見たら度肝を抜かれた。

アンケートフォームに入力されたデータを、そのままデータベースに格納したり、画面に表示していたのだ。

これがどれくらい大変なことかというと、下手をすると、このサイト、改ざんされるだけでなく、そのサイトを訪れた人のPCに対して、有害なプログラムを実行されて・・・あとあと裁判沙汰に・・・ということも考えられる。

セキュリティ対策ゼロのシステムへ、いちいち対応するのは本当に骨が折れた。(赤字です)

プログラムのイロハの前に、どういう脅威があるか、うっすらとだけでも知って、下地づくりをしておいて欲しい。

明日のマウントゴックス*1にならないためにも、このあたりの知識はもはや常識レベルなのだ。

PHPサイバーテロの技法―攻撃と防御の実際

PHPサイバーテロの技法―攻撃と防御の実際


結局のところ。

自分にプログラミングのスキルが身につきはじたのは・・・入社後、研修を始めてからだった。

研修課題として、何を作るか、というのが提示されて、それを作っていった。

最初から全部作るのではなく、「この段階では表示を。」「この段階ではDB接続を。」という小さなゴールを一つずつ達成していくことで、何回読んでもチンプンカンプンだったPHPが次第にわかるようになっていった。

ただ無目的に知識だけ吸収してもどうにもならない。

「自分の中の知識をアウトプットできて、はじめて知識が血肉となる」ことを痛感した。

プログラムの勉強、どう始めればよかったのか。

もし、今の自分が、過去の自分に何かアドバイスするなら・・・

1. 頭にも、体にも覚えさせないとプログラミングスキルは身につかない。

2. サンプルでもいいから、作りたいものをはっきりさせる。

3. 一気にすべてを作ろうとせず、まずは一つ一つの機能の完成を目標に、小さな達成感を得る。

4. とにかく、一歩目を踏みだそう。

ということを伝えたい。

実際に手を動かしてなんぼ。意外とやってることは体育会系なのかもね。脳みそに汗をかかせないと勉強する効果がなかった。
あと、全部やろうとしないのも大切。
「今日はここまで作ればOK」という線引き、しかも無理のない、途中のチェックポイントのような目標をたてて、着実にクリアを目指すのがよかった。

そして、クリアするたびに自分をほめよう。「やればできるじゃん。」
達成感の積み重ねを、次へと進む原動力にしていくんだ。
「早く次のステップに進みたいなぁ・・」とウズウズするくらいがいいのかも。

最後に、一番大事なのは、とにかく一歩目を踏み出すこと。「はじめる」こと。

この職業、勉強には終わりがない。技術の発展は本当に日進月歩だからだ。

見えない頂上を目指してひたすら山を登る行為にも似ている。

実際、今の自分にも頂上は見えていない。どこまでいくのかを考えると、うんざりするかもしれない。
でも、昔の自分より、少しは高いところまで来られた。

上を見ると、果てしないが、自分の歩んできた道は、間違いなく自信につながっている。

f:id:ch_mage:20130221134706j:plain

番外編:基本情報技術者のお勉強が、実はちょっと役に立つ。

実務ではほとんど役にたたないと言われる、情報処理系の試験。

そう、持っているだけでは、全く役に立たない。

しかし、ちょっとだけ役に立った。って、なにが?

基本情報技術者の試験には、データベースやセキュリティに関する問題も含まれる。

例えば、正規化の考え方、ネットワークについての知識、プログラムの処理の流れ、外部からの攻撃など・・・

この部分を勉強していたお陰で、研修がずいぶん楽になった。

未経験から、プログラマを始めるなら、情報処理系の勉強は、していて損はなかったですよ、ということを付け加えておこう。

*1:クラックされたシステムがPHPで書かれていたかは知らないけれど。