You are on page 1of 77

職業訓練を経て

プログラマーになるということ

株式会社システムフレンド
西村誠

自己紹介
西村誠

29歳で洋菓子販売店店長から
システムエンジニアに転職
34歳まで石川県でプログラマーとして生活
コミュニティ北陸エンジニアグループを設立
(登録エンジニア100名)

今年広島に転職
各種エンジニア系コミュニティで登壇

自己紹介
得意な言語
ActionScript、PHP、C#
その他経験のある言語
Java、C、C++、Perl、Ruby
経験のあるデータベース
MySQL、PostgreSQl、SQLite

サーバーOS
FreeBSD、Linux、WindowsServer

自己紹介
得意な言語
ActionScript、PHP、C#
その他経験のある言語
Java、C、C++、Perl、Ruby
経験のあるデータベース
MySQL、PostgreSQl、SQLite

サーバーOS
FreeBSD、Linux、WindowsServer

自己紹介
・興味があるテクノロジー
WindowsPhone7
マイクロソフトの次期スマートフォン。
今年末か来年日本でも発売!!
iPad
いいです!!
ライフスタイルが変わりました。

アジェンダ
0.職業訓練を受けるまで(前置き)
1.職業訓練でプログラミングを学ぶということ(方向転換)
2.プログラマーとして就職活動をすること(前だけ見る)
3.実際にプログラマーとして生活すること(網をはる)

4.良いプログラマーであること

0.職業訓練を受けるまで

おそらく、みなさんも色々な経緯を経て、
今この場にいらっしゃると思いますが、
私の前職はチーズケーキ専門店の店長でした。

0.職業訓練を受けるまで

29歳で転職を目指した経緯は、
30代の未経験転職は難しくなる
今の仕事の将来性に期待が持てない

というものでした。

0.職業訓練を受けるまで
この時点でのスキルは
パソコンは仕事で使っているが
ビジネススキルとしてみると
ワードを少々、フォトショップ少々
という程度でした
プログラマーを志望した動機は
「パソコンを使った仕事で一番難しい
=お金になる」

0.職業訓練を受けるまで

Javaのコースを定員で受講することができず、
Webクリエイターコースを受講
後述しますが、
JavaでなくWebの勉強をしたことが
自分にとって幸運だったと今は感じています

0.職業訓練を受けるまで

ここまでが、職業訓練を受講するにいたる
背景です。

1.職業訓練でプログラミングを学ぶということ

職業訓練校のカリキュラム開始すぐに、
講師の先生に言われたのが・・・

1.職業訓練でプログラミングを学ぶということ

ここで3ヵ月学んでも
プロにはなれない

1.職業訓練でプログラミングを学ぶということ

プロになるために職業訓練を受けた
私にとってはなかなか重い一言です。
皆さんもやはり同様のことを聞かされています
か?

1.職業訓練でプログラミングを学ぶということ

でも、この地点に立ってからが、
本当の始まりじゃないかと思います

1.職業訓練でプログラミングを学ぶということ

ここで3ヵ月学んでも
プロにはなれない

1.職業訓練でプログラミングを学ぶということ

最初にして最大の選択

1.職業訓練でプログラミングを学ぶということ

ゴールは?

1.職業訓練でプログラミングを学ぶということ

別の仕事を持ちながら、
その会社のホームページぐらいは作成できる
「うちの会社のパソコンの得意な人」?
仕事としてサイト制作を請け負う、
「プロのクリエイター」?

1.職業訓練でプログラミングを学ぶということ

私は後者を選択しました

1.職業訓練でプログラミングを学ぶということ

3か月でプロになれない
というのも言われてみればその通りですよね
普通にやって、専門に学ぶ学生が2年から3年か
けて卒業するのに勝てるはずがない

1.職業訓練でプログラミングを学ぶということ

逆転の発想ですが、
普通じゃないことをやればいい!!

1.職業訓練でプログラミングを学ぶということ

1.本気で目標を達成したいなら

普通という枠をすてる

1.職業訓練でプログラミングを学ぶということ
学んだことはもちろん武器ですが、
あくまでベースであると考えましょう。
訓練校で学んだからそれだけで
プロになれるとは考えずに、
そこから+αのアピールをする方法

面接のコツなどをお話します。

1.職業訓練でプログラミングを学ぶということ

私が考えたのは技術ではなく、

「どこまで全力を出せるか」
を売りに勝負することでした。

1.職業訓練でプログラミングを学ぶということ

スキルはまだまだだけど
この3ヵ月間で他の人がやらなかったことを
これだけやりました!!
と胸を張って言える状態に持っていくことに
全力を尽くしてみました

1.職業訓練でプログラミングを学ぶということ

目標を立てました、
・3ヵ月でやるテキストを1ヵ月で終了させる
・訓練校のPCにAdobeのFlash8が入っていたので、
残りの時間を独学のFlash学習についやす

1.職業訓練でプログラミングを学ぶということ
現場の人間として、今見れば、
実務のスキルとして私がやったことは
「あまり違いは無い」です
「やる気がある」「今後の成長が期待できる」
という見方をしてもらうことはできます
即戦力を求めている会社は
実績がメインですから
そもそも諦めます。

1.職業訓練でプログラミングを学ぶということ
あとは勉強中に自分の適性を見極めてください。
Webのデザインが楽しくて、
言われなくてもデザインしてみたり、
本を読んでいるなら、あなたの「好き」な気持ちは
面接官に自然と伝わります
プログラミングが好きで、
家でもプログラミングをするくらいなら
あなたの「好き」な気持ちも伝わります。

それは採用に優位に働きます。

2.プログラマーとして就職活動をすること
技術屋の面接官には、
採用基準を実績以外に

「スキルは無くても、
こいつは向いてるな、伸びるな」
という基準で採用する方がかなりいます。
私の会社も私の入社年の中途採用に
ケーキ屋(私)、ホテルマンの2名を取りました。
歳は同じで29歳でした。

彼も現役でいまだプログラマーです。

2.プログラマーとして就職活動をすること

ですので、
やる気があって意欲のある方は
そういう面接官に当たれば
プロとして仕事を得ることができると思います。

2.プログラマーとして就職活動をすること
そうでない場合は、
自分の力ではなく
面接官との巡りあわせが無かった
と割り切ることにしましょう。
不採用というのはメンタル面のダメージが大きく
諦める方も多かったです

2.プログラマーとして就職活動をすること

2.本気でプロになりたいなら

不採用は運とあきらめて
なるべく精神的負担を減らす

2.プログラマーとして就職活動をすること
面接の小ポイント
・自分に自信を持つ
・作品を持ち込む

・これまでの経験をアピールポイントに

2.プログラマーとして就職活動をすること

・自分に自信を持つ
これが資本です。
技術的に自信がないのは当然です。気にしないで
行きましょう。
自信があったらそのままで!!

私は「3ヵ月本気でやりきった」という自信を持って
臨みました。そういうものを一つ探しましょう

2.プログラマーとして就職活動をすること

・作品を持ち込む
これもポイントです。今なら、
クラウド(Amazon、Google、Azureなど)
スマートフォン対応
などがポイント高いですよ!!

興味があってHTML5を触っている人なら、
それもGood!!

2.プログラマーとして就職活動をすること

・これまでの経験をアピール
実績というのはやはり相手に伝わるもので、
前職で得たものがあるなら、それもアピールし
ましょう!!
私の場合だと「店舗経営の経験により、人のモ
チベーションをコントロールする大切さを身に着
けました」など

2.プログラマーとして就職活動をすること

・これまでの経験をアピール
最初に転職理由として「30代未経験は・・・」
という意識は確かに存在しますが、
その分経験を積んでいると思います。
それをアピールしていければ良いと思います。

2.プログラマーとして就職活動をすること

Webという選択肢はどう?
Ajaxなどの登場で私が入社したころに比べると、
かなり複雑化しては来ましたが、
Javaのコースなどに比べれば
かなり敷居が低いです

2.プログラマーとして就職活動をすること
Webはステートが無い!!
PHPというレベル(サーバー)でいうと、
ページを表示するためにコードの上から下に
流れて終わりです!!
これはずっと動き続けるアプリと比べて
すごく単純なコードで目的を達成できます!!

2.プログラマーとして就職活動をすること
聞こえが悪いですが、
オブジェクト指向をマスターしなくても
動くものがとりあえず作れる!!
短期決戦となるとこのアドバンテージは
大きいです。
もちろん将来的にはオブジェクト指向は
しっかりマスターしてくださいね。

2.プログラマーとして就職活動をすること
Webは情報収集の場でもある

Webに習熟すれば、
サイト上から素早く情報を得ることができます。
情報サイトを活用しましょう
Twitter
各技術のユーザーグループ
ブログなど

2.プログラマーとして就職活動をすること

3.本気でプログラマーになるには

自信を持って面接官の前に立つ

2.プログラマーとして就職活動をすること
ここまでの話は、
自分に自信をつけるための手段と言っても過言
ではありません。
過信ではない自信のための
肉付け作業ですね
もしかしたら、
根拠なく自分に自信を持てる強者なら
今までのような努力無く就職できるかもと思いま

2.プログラマーとして就職活動をすること

もちろん、入社後に破たんしますが・・・

3.実際にプログラマーとして生活すること

ここから先は
プログラマーとしてWebサイト制作に携わった
体験談

3.実際にプログラマーとして生活すること
Q.残業は?
A.うちの会社は無かったです
もちろん深夜のサーバー障害などの緊急対応
は別。
後、納期的にどうしても最後の追い込みが・・・
というのはありました

3.実際にプログラマーとして生活すること

Q.給与は?
A.もちろん未経験者としての価格から
スタートでした
今は、そこそこもらっています

3.実際にプログラマーとして生活すること
実際の業務は基礎という点を除けば
「職業訓練でのスキルはまだまだ足りない」
です。
UNIXの知識、ネットワークの知識、バージョン管理、
集団による開発の知識などを身に着ける必要があ
ります。
というのが現実ですので
現状のスキルの高い低いはあまり気にせず、
現場に行って「1から覚える」
気概で行きましょう。

3.実際にプログラマーとして生活すること
アンテナを張りましょう

情報収集はこまめに
・はてなブックマーク
・Twitter
・Facebook
・Google+
・勉強会などのコミュニティ活動への参加

3.実際にプログラマーとして生活すること

Web開発するうえで
必要になってくるであろう知識

3.実際にプログラマーとして生活すること

サーバー
UNIX系OSの知識があると躓きにくい。
WebはLAMP(Linux+Apache+MySQL+PHP)という
だけあって、WindowsServerを利用することは
あまりありません。

3.実際にプログラマーとして生活すること
バージョン管理システム

複数人で開発する場合は必須
更新の履歴を保存してくれるので、
前の操作に戻ることや、
前のファイルとの変更点を調べたり
することができる
CVS、Subversion、Gitなどが有名。

3.実際にプログラマーとして生活すること

データベース
MySQLとPostgreSQLは押さえておきたい。
ユーザーさんが多いサービスは
DBがボトルネックになることが多いので
パフォーマンスについての知識もあると良い

3.実際にプログラマーとして生活すること
キャッシュ

同じデータにアクセスする際に、
全体から探さずに、保持しているものを返す
ページキャッシュ、データキャッシュ
負荷対策のためにmemcachedなどを利用するこ
とも

3.実際にプログラマーとして生活すること

負荷分散
ロードバランサーなどのハードウェアで負荷を分
散する
DBを複数台構成にするレプリケーション

3.実際にプログラマーとして生活すること
PHPのフレームワークやライブラリ
PEAR
DBにアクセスする際にMySQLでもPostgreSQLで
も同じように書ける
CakePHP
サイト制作の骨子を用意してくれる

CMSツール
Wiki、ブログなどを簡単につくれる

3.実際にプログラマーとして生活すること
セキュリティ
クロスサイトスクリプティング
SQLインジェクション
POST、GETする値のバリデーションを忘れずに
特に最初はセキュリティまで手が回らない
ことが多いので注意です

3.実際にプログラマーとして生活すること
やはり対人スキル
チームをまとめる、お客様と仕様を固める
などなど、対人関係はやはり大事!!
この辺は、
新卒より転職組が有利なポイントではないでしょ
うか?

4.良いプログラマーであること

技術書を読みましょう
ある一定ラインから洋書を読む必要が出てきま
すが、日本語で読める良い書籍は沢山あります。

4.良いプログラマーであること

技術書だけでプログラムを
上手に書けるようにはなりませんが、
上手に書くための近道を教えてくれます。

4.良いプログラマーであること
「CODE COMPLETE」
個人的にはプロとして仕事を
する前に
必ず読んでおいて欲しい一冊

上下巻あわせて12000円と
高価ですがその価値はあります!!

4.良いプログラマーであること
「達人プログラマー」
これも言語にかかわらず、
全てのプログラマーに
読んでおいて欲しい一冊

4.良いプログラマーであること
ちなみに今の会社では
面接の際に担当の人がかならず、
今読んでいる本、印象に残っている本
を聞くことにしているようです。
(というか昨年末に自分も面接を受けて聞かれました)
そのときに答えた本は・・・

4.良いプログラマーであること

「UNIXネットワークプログラミング」
ソケット通信などの
ネットワークプログラミングを
する人ならぜひ読んでおきたい
一冊

4.良いプログラマーであること

良い本から刺激を受けることで
モチベーションへとつながります

4.良いプログラマーであること

コミュニティに参加しましょう
同じ技術に興味がある方に出会えます。
違う技術を持った人の話を聞けます。
もっといいのが「壇上で話すこと」です

4.良いプログラマーであること

話すために勉強します
話すことで人に説明する能力がつきます
有名になればより情報やビジネスチャンスが
巡ってくるようになります

4.良いプログラマーであること
Webやコミュニティでアンテナを張って、

「これだ」という技術と出会ったら
それを武器にできるように注力しましょう!!
私の場合、
今はWindowsPhoneです。
シェアを取れるかは難しいですが、
面白いデバイスです。

4.良いプログラマーであること

すぐれた人と会うことで
新しい技術、概念に触れることで
その人から刺激されモチベーションが上がります

4.良いプログラマーであること
そもそも、プログラミングが覚えられない場合

プログラミングを学習は入門書を半分ぐらい理解
できたら、
何か作りたいものを決めましょう!!
読んだことを全部理解しようとするタイプは挫折
します
(私・・・)

4.良いプログラマーであること

新しいものを触ってみましょう
スマートフォン、タブレット、
新しいデバイスから刺激を受けることは大事

4.良いプログラマーであること

何度も刺激と書いてきましたが、
良いプログラマーとは
良い環境に自分を置くことで
刺激を受けながら成長していく
繰り返しだと思います。

5.最後に
どのような職に就くにしろ、
人との縁を大事にしてください
今席を並べている誰かと一緒に将来
素晴らしいサービスを立ち上げているかもしれま
せん

5.最後に

もしWebのお仕事でごはんを
食べれるようになったら
広島のコミュニティ活動など私をつかまえて
「プロとして仕事をしています」
と伝えてください

以上、ご清聴ありがとうございました!!

6.続きはWebで
ブログ「眠るシーラカンスと水底のプログラマー」
http://blog.livedoor.jp/coelacanth_blog/
サイト「シーラカンスのまどろみ」
http://coelacanth.heteml.jp/site/
Twitter「coelacanth」
http://twitter.com/coelacanth
Facebook
「西村誠」

Google+
「西村誠」