これからC#を学んでプログラマーになって,お金を稼いでいこうと思っている人に向けて,プログラマーの働き方や,勉強するべき事,面接でどのようにすればよいかを解説していきます。
私ってどんな人?
私はプログラミング業界に15年以上いますが,いくつかの会社を渡り歩いています。そのおかげで派遣プログラマー,請負,メーカーでの製品開発という経験をしています。この経験をもとに,これからプログラマーとして活躍していきたいと思っている若手の方のために情報を発信できれば良いかなと思っています。
プログラマーの職場の種類
プログラマーと一言でいっても,その働き方にはいろいろな形式があります。どのような仕事があるのかを見ていきましょう。
メーカー(商品開発)
この仕事は当たり前といえば当たり前ですね。メーカーが何か製品を開発する。当然そこにはIT関連のソフトウェアを必要となる。じゃあそれを作る人を必要という流れですね。
プログラマーの仕事というのは,どこかの会社が製品開発を行うとか,社内のシステムを刷新するとか,そういうタイミングで仕事が生まれます。メーカーはその大元なので,メーカーに勤務するということは,その仕事の大元に携わるということになります。
請負
請負というのは,どこかの会社から「このシステムを作って」といわれて,丸ごと作って納品するというイメージです。ですので,小さなソフト会社などでは,どこからかそういう仕事をとってきて,社内の数名でそのシステムを作り上げるという感じになります。
仕事単位で値段が決まっているので,期間内に制作できなければ赤字になる可能性があります。あとメーカーと違い,仕事の生みの親ではないので,どこかで生まれた仕事を察知して,その仕事を当社でやらせてください的なことを営業マン言って勝ち取った場合のみ仕事にありつけるという形態になります。
仕事がない場合は,会社にはいくけどやることがないのでC#の本でも読んで勉強しておくという日があったりもします。
派遣
派遣はメーカーや請負をしている会社で,人手が足りない場合にその時限りで招集されるプログラマーです。基本的には他人の会社で働きます。他人の会社のデスクとパソコンを借りて,指示されたソフト製作を行うという形態です。
どこかで人手が足りない場合に召集されるのですが,その都度「面接」があります。仕事の話があるたびに,他人の会社に行ってメーカーなどのプロジェクトリーダーや部長クラスの人に面接をされて,受け答えをして,数日後に合否の結果を受けます。
この場合,自分はどこかのプログラマーを派遣する会社に勤めてはいるのですが,めったに自分の会社にはいかず,他人の会社で働くことがメインです。自分の会社の営業マンと仕事の話があれば,一緒に面接にいって,仕事をもらったら,3か月くらい派遣で働いて,延長があれば延長されるという形態の繰り返しです。
自分の会社の人間とはほとんど会わないので,飲み会の時しかあったことのない社員がいたりもします。
どの形態いいのか?
このように3つの形態を紹介しましたが,結局どの形態がいいのでしょうか?それは個人の性格次第なのですが,それぞれに良さがあるのだと思います。
私はこの複数の会社でこの3パターンすべて経験しています。派遣プログラマーに始まり,請負をする会社に勤め,現在はメーカーで製品開発のプロジェクトリーダーをしています。
そんな私だから,内情を洗いざらい,悩める若手の皆さんに伝えて,少しでも,人生設計のお役に立てればいいかなと思います。
メーカー
まず,メーカーに関していうと,お金の面でも仕事のやりがいでも,トップクラスになると思います。派遣プログラマーなどでフリーで働いている人などは,月給40万とか50万とか言っている人もいますが,そういう人はボーナスがないし,交通費も支給されないし,国民健康保険,国民年金であることが多いです。それに年功序列のおおむね逆バージョンのような給料体系になっていて,20代,30代のころはいいのですが,40代,50代になると,派遣プログラマーは仕事を見つけるのが困難になります。
メーカーであれば,20代,30代,40代,50代と順番に給料はアップしますし,ボーナスも通常あります。月50万と言っている派遣プログラマーよりも年収は多くで,福利厚生もしっかりしています。仕事的にも,40代,50代でもできる仕事が割り当てられるし,権限なども,それなりに与えられるので,非常に働きやすいです。
ただ,ストレス面では一番厳しいと思います。日々のクレームや,過去の製品の改造や,エンドユーザーとの対話など,ストレスにさらされることが多いです。気楽にプログラミングだけをしていたいという人には向いていません。サラリーマン気質で,上下関係をわきまえている人間でないとやっていけないでしょう。
求人面でもメーカーは基本的に新卒メインだし,中途採用でうまく入社するのは3つのなかで一番難しいでしょう。
請負
請負をメインでしている会社も存在します。その場合は自社のデスクでタンタンと仕事をすることができます。顔なじみの社員と,自分たちのスタイルで開発することが可能です。
会社の規模が小さかったり,営業が弱かったりすると,給料面では低い可能性があります。技術力を売りにしている会社であればいいのでしょうけど,請負だともうからない会社も多いでしょう。小さい会社なら社員といいながら,福利厚生はほぼ無いようなものという会社も多いと思います。
請負をしている会社のメリットは,派遣プログラマーと違って,他人の会社で働かなくてもよい,自分のデスクで仕事ができるということでしょうか。派遣と違って,自社の人間の指示系統で仕事ができるので,社員の人間関係がいいのであれば,楽しく働ける可能性はあります。
結局会社の規模次第。小さすぎる会社は,いつ仕事がなくなるかもわからないのでお勧めしません。
派遣
派遣プログラマーはパソナみたいな人材派遣会社と同じと思ってもらってよいです。いろんな会社が求人をしていて,それを自分の会社の営業マンが見つけてきて,一緒に面接に行って,OKなら3か月お試しで働いて,いい人と思われたら,引き続き3か月契約みたいな感じです。
派遣プログラマーのいいところは,とにかく気楽です。責任はありません。プロジェクトが失敗しようと,クレームが出ようと,バグが見つかろうと,働いた分はお金になりますし,責任を取らされることはありません。
気楽にプログラミングをして仕事をしたいという方には向いています。
派遣されるには,どこかの派遣会社に入社する必要がありますが,社員という道を選ばなくても,フリーという言う道もあります。フリープログラマーとして,派遣会社から仕事をもらうというスタイルです。この場合,仕事の単価に合わせて,給料が決まります。
当然,仕事がないときは,給料もありません。フリーとは個人事業主なので,国民健康保険で国民年金です。ボーナスなんてもちろんありません。
それでもプログラマーの単価は50万や60万は当たり前なので,派遣会社との取り分次第では,月に50万円くらいもらえる可能性があります。
ただ前述したとおり,年功序列のやや逆バージョンのような給料形態なので,ピークは30代ではないかと思います。40歳以降に,派遣として他人の会社の面接を受けて,他人の会社の机を借りて,仕事をするのは,少々厳しくなってきます。
40代といえば,メーカー職員は課長クラスになっているので,プロジェクトリーダーや責任者になっています。そういう人たちが,派遣社員を選ぶのですが,自分より年上の人はあまり選びません。
昔からの付き合いとか,技術的に何かあるなら別ですが,だれでもいい中から選ぶのであれば,20代か30代を選ぶでしょう。30代の後半は単価が高い場合もあるので,選ばれない可能性もあります。
要するに,40歳にもなって,永遠に面接を受けながら,仕事をもらわないといけないし,面接官が,次第に年下になる可能性もあるし,歳をとったからと言って,能力が高いかどうかはわからないわけです。40歳でも最先端技術を一人で学ぶ向上心と好奇心があればよいのですが,それがないのであれば,メーカーなどで勤務したほうが,会社の中で,技術を勉強することができるので,時代についていきやすいです。
とにかくフリーの派遣プログラマーは,30代まではいいですが,その後課長や部長になれるわけでもないし,仕事も決まりにくくなる可能性があるので,派遣プログラマーをずっとやっていくのはきついと思います。
若いときは派遣プログラマーで腕を磨き,その後,昇進できる会社に就職したほうがいいとは思います。派遣先が30代のプロジェクトリーダーという場合もあるので。
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る
A01_はじめに
B01_メッセージを出すレイアウトの作成
B02_pタグを使ったメッセージ表示
B03_ポップアップメッセージを表示する方法
B04_問い合わせメッセージを表示する方法
B05_ユーザーの入力を受けるメッセージ
B06_インラインJavaScript非推奨
B07_Javascriptを分離してアクセスする方法
B08_MessageServiceを作成する
B09_自作Serviceの依存性注入をする方法
C01_EditFormを使った入力検証
C02_ValidationSummary
C03_ValidationMessage
C04_入力コンポーネント_InputText
C05_InputNumber
C06_未入力を許容する方法
C07_InputNumberで対応している型
C08_InputDate
C09_InputSelect
C10_入力コンポーネント_InputCheckbox
C11_InputRadioとInputRadioGroup
C12_InputTextArea
C13_InputFile
C14_ファイルの上限を設定する
C15_フォーカスをあてる方法_標準編_ElementReference
C16_フォーカスをあてる方法_Razorコンポーネント編
D01_StringLength
D02_RegularExpression_正規表現
D03_EmailAddress
D04_Compare
D05_ViewModelに分ける方法
D06_依存性注入を利用したViewModelの生成
D07_CustomValidation1
D08_CustomValidation2
D09_プロパティレベルのCustomValidation
D10_ValidationContext
D11_処理をViewModelに移す書き方
D12_ViewModelに移せないロジック
D14_ShouldRender
D15_ViewModelに書かないほうがいいもの
D16_エラー箇所にフォーカスを当てる方法
E01_Azureにデプロイするための事前作業
E02_Azureにアップするアプリの作成
E03_Azureへの公開準備
E04_Azureへの公開
E05_データベースの作成
E06_データベースのデータを取得する
E07_データベースの値を画面に表示する
E08_Azureのデータベースを作成する
E09_Azureのデータベースにポータルサイトからログインする
E10_AzureのDBにテーブルを作成する
E11_BlazorアプリからAzureDBに接続する
E12_SQLデータベース料金の注意
E13_AzureSQLデータベースの無料オファーを受ける
F01_依存性注入のライフサイクル
F02_クラウドでのAddSingletonの動き
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る