未経験からプログラマーへ!! 現場で必ず活躍したいあなたへ送る言葉

大石 英人

開発エンジニア/Java20年/Java GOLD/リーダー/ボールド歴2年

私は、IT業界で仕事をするようになって、二十数年経ちます。私自身がプログラマーとして仕事をしてきましたし、プログラマーとしての業務経歴がない、いわゆる未経験のプログラマーとも一緒に仕事をしてきました。

そんな方々を長年見てきた限りでは、未経験でもしっかりとプログラマーになれます。そして、システム開発の現場で活躍できるようになれるのも、間違いありません。そういう人を、私は実際に多く見てきました。

この記事では、未経験ということを中心に据えて、未経験の状態からプログラマーとしてIT企業に採用され、システム開発の現場で活躍できるようになるまでの道筋や、ぜひ知っておくべきことについて、分かりやすくお伝えしていきます。

就活生向け特設ページ

目次

1.未経験でもプログラマーになれるし、活躍できる

冒頭でもお伝えしたとおり、未経験でもプログラマーになれますし、大いに活躍できるのは事実です。ですが、誰でも無条件でそうなれるわけではありません。

それに鋭いあなたは、専門的で高度な知識が必要なはずのプログラマーの求人が未経験でも可なのは、少し不思議だと思っていませんか?

その理由は、結局のところ日本のIT企業では、仕事を通じて人を育てていくという、ある意味では昔のやり方がまだ続いているからです。ですが、あなたが未経験であれば、これを生かさない手はありません。

この章では、プログラマーという仕事の簡単な説明と、未経験であることがなぜそんなに問題とならないかについてお伝えしていきます。

1-1.プログラマーはプログラムを作るだけが仕事ではない

プログラマーは、弁護士や医師のような、いわゆる士業ではありません。つまり、プログラマーの仕事をするには国家資格などは不要です。システム開発などの現場に入ってプログラミングの仕事をするだけで、職業プログラマーを名乗れてしまいます。

ですから、プログラマーとは何であるかの公的な定義はないのですが、一般的には、プログラマーはプログラミング言語の知識や経験を生かしてプログラムを作り、プログラムのテストまで行うのを主な仕事とする人、とされます。

大事なのは、テストがプログラマーの仕事に普通は含まれることです。実際の仕事のバランスは、プログラムを作っている時間よりも、テストをしている時間の方がずっと長いです。その比率を感覚的に言えば、1:35くらいでしょうか。

さらに知っておいて欲しいのは、日本では、プログラミング専任の人は少数派だということです。社内ではエンジニア職や技術職の扱いとなり、設計や運用保守などの、システムに関わる別の業務を兼務することが一般的です。

※プログラマーの仕事内容については、以下の記事もご参照ください。

関連記事

1-2.プログラマーに向いているのはこんな人

プログラマー向けの適正としてよく言われるのは、理詰め・論理的な考えができる、集中力がある、几帳面などです。これらは、理詰めでしか動かないコンピュータの動きを理解し、適切に使いこなすために必要な適正だと言えるでしょう。

私が考えるに、それらに加えて、ある程度の楽観さや、過度に過去へ囚われない前向きな姿勢があるといいですね。言い換えれば、精神的にタフであることです。これは、コンピュータを相手にする際の理不尽さに耐えるためにも必要です。

例えば、プログラムが上手く動かない理由のほとんどは、動かないように自分がそう作ったからです。長い時間をかけて動かない原因を調べ、自分のせいだと分かった時は、正直落胆します。でも、それにめげずに前に進まなければなりません。

あと、プログラミングを始める年齢を気にされる方が多いです。実は、年齢は大して問題にはなりません。プログラマー35歳限界説というものがありますが、学び続ける姿勢や熱意を失った人にしか当てはまりません。実際に82歳でスマホアプリを作って公開した人がいらっしゃいます。

つまり、あなたの限界を決めるのは、あなた自身なのです。

1-3.未経験でもプログラマーとしての求人があるのはなぜ?

そんなプログラマーは、未経験でも可とする求人でいっぱいです。新卒でも中途でも、とにかく人を集めたいというようにも見えますね。前述のとおり、プログラマーになるには資格などは不要ですので、応募することには全く問題ありません。

IT企業がそんな求人を出す理由は、IT業界は2021年時点では大変な売り手市場で、IT企業が人材をなんとか確保しようと争奪戦が繰り広げられているからです。つまり、そもそもIT業界は人材不足が続いているのです。

それに日本のIT業界は、仕事を通じて人を育てていくという考え方が、良くも悪くもまだ主流です。それは専門知識が必要なプログラマーも同じで、未経験の状態から育てていって、いずれは会社に貢献するようになって欲しいということです。

これは未経験でプログラマーを目指す人には、ありがたい状況でしょう。もちろん、プログラマーとしての適性がありそうかは確認されますし、プログラマーになるという強い意志を会社側に示さないと、他の人との選別に負けかねません。

なお、欧米は契約社会ですので、プロジェクトに参加するには、求められる役割を果たせることを、客観的に証明する必要があります。証明は自身の学歴やキャリア、アセットで行いますが、ここで未経験だと付け入る隙はほとんどないのです。

1-4.現場の人たちが思っている「未経験のプログラマー」はこんな人

システム開発の現場では、正直なところ、未経験のプログラマーへは大した期待はしていません。持っていそうなスキルを超える作業は振りませんし、振ってもできないのは分かっています。すぐには戦力にならないのも織り込み済みです。

現場の人たちが未経験のプログラマーにまず期待するのは、指示したことを期限内に確実に終わらせることです。それが最低限。それに、未経験だからこそ、フォローできる体制や日程を組みますし、進捗や状況を細かく確認してもくれます。

そして何より現場が求めるのは、作業をする上で分からないことはすぐ聞くことです。ごく普通に思えますが、これができない人がたまにいます。聞くことは、決して恥ずかしいことではないのですけれどね。

未経験だからこそ、どんどん試して失敗していいのです。試行錯誤や失敗を通じて、プログラミング言語やシステムへの理解を深めてもらい、立派な戦力になる日が一日でも早く来ることを、現場の人たちは期待しています。

1-5.未経験に甘えない姿勢とプロ意識があれば、いつでもなれるし活躍できる

というわけで、未経験でもプログラマーという立場にはひとまずなれます。最初は、未経験者には誰でも寛容です。現場で積極的に学んで実績を積めば、プログラマーとして活躍できる日は、遠からず来ます。

しかし、実績を残せないと、プログラミング以外の作業の割合がどんどん増えてきます。すると、プログラマーとしての作業を行う機会もどんどん減り、プログラマーとしての活躍やステップアップがしづらくなります。そうなっては遅いのです。

未経験の立場が通じるのは、せいぜい半年~1年未満でしょうか。その期間内にどれだけ努力して現場で実績を残すかが、現場での立場の強化やアピール、以後のプログラマーとしてのキャリア形成に大きな差を生みます。

未経験だからこそ、プログラマーとしてのプロ意識を持ち、足りないものを学びましょう。例えば、プログラミング言語関連の資格は過小評価されがちですが、体系立てて勉強した人と、自己流な人の間には、実力として大きな差が付きます。

それに、プログラミングはあくまで何かを実現する手段の一つでしかありません。システムの設計やテスト、運用・保守、要件や品質など、プログラミングの周辺へも意識を向けることは、プログラマーとしての成長にもいい影響を及ぼすはずです。


2.未経験からプログラマーになるための第一歩

前章では、未経験でもプログラマーにはなれますし、現場で出来ることはちゃんとあることをお伝えしました。

しかし、プログラマーになるために最初に乗り越えるべき山は、いきなり険しいです。課題となるプログラミングは、身につけるべき知識が非常に多く、容易に挫折しかねません。

この章では、未経験でプログラマーになるためには、まずどういうことをやらなければならないかをお伝えしていきます。

2-1.今の自分のレベル・立ち位置を知ろう

まず、必須となるプログラミング言語以外でも、コンピュータやネットワーク、データベースなど、関連するITの知識について、自分がどこまで分かっていそうか把握しましょう。

プログラミング言語を、システム開発の現場において実用レベルで使えるようになるには、前提知識がとても多いのが現実です。特に、プログラミング言語の文法のみ分かっているだけでは、現場では足手まといになる可能性が高くなります。

自分の今のレベルを把握するには、例えば、本屋へ出かけて、情報処理技術者試験のITパスポートの参考書の、ハードウェア・ソフトウェア・データベース・ネットワークの章を読んでみてください。また、やさしいと銘打っているプログラミング言語の本の冒頭を読んでみてください。

それぞれの本で知らないことだらけでしょうから、内容は分からなくてもいいです。ですが、それらを学んでいく意志がありそうかを、自問自答してみてください。プログラマーになるということは、いずれそれらを問題なく読み下せるようにならなければならないのです。

できそうだと思ったら、次に行ってみましょう。

2-2.どの領域のプログラマーになりたいか考えて決めよう

プログラマーと言っても、活動している領域が違うと、使っているプログラミング言語が違うだけでなく、話が全然通じないことも普通です。そのくらい、それぞれの領域に特化した知識が求められる傾向にあります。

ですから、あなたがどんな領域で活躍したいかで、最初に学ぶプログラミング言語を選ばなければなりません。何かのプログラミング言語を使えるようになったら、その知識を下敷きに、知っている領域を徐々に広げていくのがいいでしょう。

2-2-1.フロントエンドとサーバサイド

現時点でのプログラマーの活動領域をざっくり二つに分けると、フロントエンドとサーバサイドとなります。ちなみに、この二つの領域やインフラという領域をも使いこなせる万能エンジニアを、フルスタックエンジニアと呼んだりもします。

フロントエンドは、いわゆるスマホアプリやWEBサイトなどで、何かしらの画面を伴います。なお、フロントエンドを、スマホ向けなどのネイティブアプリと、WEBブラウザ上で動作するWEBアプリへ細分化することもあります。これは、それぞれに求められる技術の領域が大きく異なるからです。

サーバサイドはシステムの裏方的な部分で、フロントエンドからネットワークを経由して呼び出されて処理を行ったり、データを読み書きしたり、定期的な処理を行ったりします。こちらは、画面を伴わないことが普通です。

ここでプログラミングの未経験者が入りやすいのは、サーバサイドです。サーバサイドは、プログラムが比較的シンプルで分かりやすいのがお勧めの理由です。求められる技術のトレンドも、フロントエンドほどは激しく移り変わっていません。

フロントエンドは、覚えるべきことがとても多く、考え方も難しく、学ぶには時間がかかります。しかし、フロントエンドを目指すと決めたなら、貫きましょう。それに、フロントエンドでは自分で画面を作って動かせるので、努力や成果が目に見えやすいのが、やる気の継続に繋がります。

2-2-2.各領域での主要なプログラミング言語

それぞれの領域での主要なプログラミング言語は、以下のとおりです。いくつかは、同じプログラミング言語が出てきます。それらは、プログラミング言語としての文法や構文は同じですが、プログラミングに必要な知識が全く異なります。

フロントエンドネイティブアプリ(スマホ)Swift★iPhoneアプリの標準プログラミング言語
Java★Androidアプリの標準プログラミング言語その1
KotlinAndroidアプリの標準プログラミング言語その2
WEBアプリJavaScript★WEBアプリを作る上での必修プログラミング言語
TypeScriptJavaScriptの亜種。構文はほぼ同じだが、より機能が強化されている
HTML・CSS★WEBアプリで画面を記述するのに用いる。事実上、JavaScriptとセット
サーバサイドJava★サーバサイドでの主要プログラミング言語その1、シェア高
C#★サーバサイドでの主要プログラミング言語その2
VB.netサーバサイドでの主要プログラミング言語の一つだが、C#の方がより使われる傾向
JavaScript★フロントエンドとは大きく異なった使われ方がされる
TypeScriptフロントエンドとは大きく異なった使われ方がされる
Python★機械学習やAIに強いプログラミング言語
Rubyに使えるフレームワークがあるプログラミング言語
その他C/C++組み込み系やゲームでは高シェア、使いこなすには高いレベルの知識・経験が必要
COBOL事務計算向けのプログラミング言語、金融・証券業界向けシステムではほぼ必須となる
FORTRAN科学技術計算向けのプログラミング言語

★は最初の学習にお勧めのプログラミング言語

なお、プログラミング言語そのものと、特定のプログラミング言語を前提として使われるフレームワークやライブラリと呼ばれるものや、プログラミングをする際の開発環境は、分けて考えた方が良いでしょう。一度に学ぶには大変すぎます。

しかし、システム開発の現場では、特定のフレームワークやライブラリの知識が求められることがほとんどです。ですから、できるならプログラミング言語の勉強と並行させるかその後に、その言語で鉄板とされるフレームワークやライブラリの使い方を学んでおくと、短期間でチームの戦力になれるでしょう。

2-3.自分が身を置くべき環境をしっかり考えよう

プログラミング言語を学び続けるための環境を自分で工夫するのも、プログラマーがやるべきことです。

プログラミング言語へは構文や機能が追加・変更されます。より効果的・効率的なプログラムの作り方なども、日々編み出されています。それらが変わる勢いは、日進月歩では生ぬるく、秒進分歩とでも言うべきものです。

ですので、プログラミングは学び続けないと、覚えた知識や手法は古くなる一方です。それに、プログラマーとして仕事を続けたいなら、情報をキャッチアップし続けないと、周囲に置いて行かれるばかりか、業務に支障が出ることもありえます。

その様なことにならないためにも、プログラミング言語を書籍などで学んだ後は、そのプログラミング言語のコミュニティからの情報に、定期的に触れるのがいいでしょう。それぞれのプログラミング言語には、ユーザグループと呼ばれる相互扶助的な団体が大体はあり、日本語での情報提供や、初心者向け勉強会なども開かれています。

また、SNSやプログラミング向けのWEBサイトなどでは、プログラミング言語のキーパーソンが情報発信をしていますし、有識者に何かを気軽に聞いてみることもできます。また、自分の学んだ結果を書き込んで、意見を求めることもできます。

2-4.目標を立てて、一つずつこなしていこう

ここまでで、プログラミング言語を使うには長い道のりが待ち受けていて、とてもやり切れないと感じた方がほとんどだと思います。

プログラミング言語とその周辺にあるものを、一度に全て学ぼうとするのは、実際不可能です。他のプログラマーも、多くの時間をかけて、順に積み上げてきています。その長年の努力を、未経験者がごく短期間で習得するのは無理というものです。

ですので、プログラミング言語を学ぶ基本は、量を重視した暗記ではありません。土台となるしっかりとした知識の上に、少しずつ確実に積み上げることです。

以下のように、それぞれの理解の目標を立てて、クリアしましょう。理解に苦しんだら、一つ前の理解が大丈夫か、再確認します。未経験として応募する際は、①は必須、②の達成はベター、さらに③があれば強いアピールになります。

2-4-1.①プログラミング言語の文法・構文

最初の土台は、もちろん学ぼうとしているプログラミング言語の文法・構文です。プログラミング言語は体系立てて学ぶことが大事なので、初心者向けとして基本的な事項が一式まとまっている書籍か、または資格試験の参考書がお勧めです。

一緒に、簡単なアルゴリズムやデータ構造の勉強もしておくと、さらに効果的でしょう。プログラミング言語からは少し独立した知識になりますが、実務では絶対に役に立ちます。これには、情報処理試験の勉強が役に立つかもしれません。

2-4-2.②情報システムの作られ方や仕組みの知識

次に積み上げるのは、イマドキの情報システムの作られ方や仕組みの知識です。プログラミング言語だけではシステムは動きません。システム上の様々な要素が連携することで、初めてシステムは動くのです。

ここでは、いわゆる3層システムや、HTMLベースのWEBアプリだったりスマホアプリが、どういう仕組みで動くのかを勉強しておくといいでしょう。

2-4-3.③プログラミング言語固有のフレームワーク、ライブラリ、開発環境などの知識

その上に、プログラミング言語固有のフレームワーク、ライブラリ、開発環境などの知識を積み上げます。

例えばWEBアプリの基本的な仕組みや作り方を学んだ後なら、HTMLアプリ向けフレームワークの使い方の意味や意図が分かるはずです。

何を実現する機能かを知った上でフレームワークを学ぶのが、一見は遠回りに見えても、一番の近道だと思います。

2-5.プログラマーの仲間を作って、一緒に学ぼう

勉強を一人だけでやり続けるのは難しいです。しかも、その対象がとてもややこしいプログラミング言語ときたなら、もっと難しいことでしょう。

ベタですが、やはりプログラマーの仲間を作って一緒に学び、刺激し合うのが一番です。自分一人に熱意があれば大丈夫と思うかもしれませんが、熱意というものは、外部から再加熱するきっかけを与えられなければ、いつか必ず冷めるものです。

また、プログラミング言語の勉強に限らず、勉強をする上で最も効果的な方法は、他人に説明したり、教えることです。教え尋ねられることで、自分の理解が十分・不十分なところが見えてきます。

もしそういう人が周囲にいないなら、SNSやプログラミング向けのWEBサイト(Qiitaなど)に自分の学びを書き連ねていくのも有効です。自分の頭にあることを文字としてアウトプットすることで、より深い理解が得られます。

2-6.【参考】独習、プログラミングスクール、OJT…結局どれがいいの?

プログラミング言語などの学び方は色々あります。独習、プログラミングスクール、入社後のOJTなどですね。それぞれ一長一短があり、どれか一つだけがベストとは言えません。

独習の利点は、スケジュールやカリキュラムなど、すべて自分の好きなようにできることです。逆に、何をどう勉強すればいいのかの目標を見失った状況になりやすく、また分からないところがあると一人で延々と堂々巡りする危険性が高いです。

プログラミングスクールの利点は、必要となる知識を一通り体系立てて学べることです。それに、講師に不明点を遠慮なく聞けます。また、集合形式だと仲間を作りやすいですね。でも、カリキュラムが古かったり、現場で使われていないものを勉強させられたりする恐れがあり、学んだことが生かせない可能性はあります。

OJTは、その現場での実務に必要なことを学べるので、一番実践的でしょう。しかし、実際に受けてみないと、どういうカリキュラムかは分かりません。それにOJTはそもそも時間が限られていますし、講師となる人も自分の本来の仕事の片手間で行うので、十全なサポートを受けられないかもしれません。

私としては、採用後のスキル維持やスキルアップを考えるなら、独習で進められるなら一番いいと思います。その場合でも、やはり先生役をしてくれそうな人や知り合いを現場の外に作っておくのが大事でしょう。現場での学習だけでは、井の中の蛙大海を知らず、的な状況にもなりかねません。


3.未経験でプログラマーとして採用されるための戦略

未経験でプログラマーになるためには、もちろん、IT企業に採用されなければなりません。これが次の山です。

熱意だけでは、IT企業側も判断に迷うでしょうし、こちらも会社をちゃんと選ばないと、結果的にお互い不幸になりかねません。

この章では、採用されるにあたってどういうことを意識しておくべきなのかのポイントについて説明します。

3-1.会社選びのコツはこれだ!!

3-1-1.自社サービス・プロダクトを持っている会社

未経験でプログラマーを志望する人が選ぶべき会社の第一候補は、自社で何かしらのプロダクトやサービス、ソリューションを持っている会社でしょう。

そのプロダクトが急成長していたり、将来性が高かったり、少なくとも業績が安定していれば、未経験のプログラマーでも長い目で育成して貰える可能性が高いです。そういうプロジェクトは有識者が必ずいて、サポートもしてもらいやすいです。

しかし、そのような会社はそもそも人気が高く、即戦力の経験者プログラマーも常に売り込みをしています。当然、即戦力の方が会社としても嬉しいです。

なので、年齢が若かったり、転職前の経歴などをアピールしたりできなければ、なかなか選ばれません。ですが、チャレンジする価値はあると思います。

3-1-2.社員の教育に力を入れている会社

次に選ぶべきなのは、社員の教育に力を入れている会社です。でも、社員の教育といってもピンキリで、古臭いテキストでの自習が教育だと嘯いたり、外部の講師による実践的なカリキュラムが組まれていたり、社員主催の勉強会が充実していたりなど、実態は様々です。

なので、社員の教育をやっていますとアピールする会社は、具体的にどういう内容で行っているのかを確認しましょう。やっていることに自信があれば、しっかりと説明してくれるはずですし、実績を数字ですぐ出せるはずです。それに、対外的に勉強会などの内容を公開しているかもしれませんが、これはよほどの自信がなければできないことです。

また、プログラマーとしてのスキルアップを支援し認めてくれる制度があり、ちゃんと運用実績があるか確認しましょう。例えば、資格取得時の報奨金制度があり運用されているか、スキルマップ・スキルアップのルート・社内認定制度の規定が明確に定まっていたりするか、社外の教育を受講する際に補助が出るか、などがポイントです。

3-2.学生の場合(就職活動前)

就職活動前の学生で、いわゆる文系の場合は、とにかく何かの実績を作ることを目指しましょう。ここでの実績とは、プログラマーになるための努力がアピールできるものなら、何でもいいです。

例えば、IT関連の試験・資格に合格するとか、合格はできないまでも勉強をしたとか、課外で何かを調べてみた、とかです。本業の勉強に支障のない範囲で、まずやってみましょう。この時点で、既に他の学生とは差が付いていますし、IT業界に就職するための準備にもできます。

IT企業への受けが特にいいのは、IPAの情報処理技術者試験です。しかもITパスポートのような入門レベルの試験でも、学生で取得する人は理系や情報系以外だとあまり見られないので、応募時点でかなり目立てるでしょう。

3-3.新卒・第二新卒の場合

3-3-1.新卒

新卒の場合は、どんな会社でも簡単に入れるとまでは言いませんが、今の業界では引く手あまたです。文系・理系も実際は気にはされません。そのため、最初にあなたがどんな会社を選ぶかが、プログラマーやその後を睨んだキャリアに影響します。

システムインテグレータ(SIer)は、多くはプログラマーとしてのキャリアを作る会社ではありません。作れるとしても、実際はわずかな人だけです。プログラマーの業務を体験はさせますが、遠からず人を管理する立場になり、プログラミングの仕事からは離れていきます。

ソフトハウスは、プログラマーとしてのキャリアを積むには、いい環境です。自社プロダクトがあれば前述のとおりに好ましく、そうでなくとも他社プロダクトの受託・下請けをやっているなら、実際にプログラマーの立場でプロジェクトに参加し、経験を積めるでしょう。

エンジニアの派遣を中心に行っている会社も、彼らはプロジェクトでの実働部隊ですので、プログラマーとしてのキャリアを積むにはいいでしょう。ただし、どんなプロジェクトに参加できるかは客先の影響が大きく、かつ自分では決められないことも多く、プロジェクトでの仕事とは別にキャリアパスをしっかり意識する必要があります。

3-3-2.第二新卒

第二新卒の場合は、最初に就職した会社で何か情報システムに触れることが普通でしょうから、その経験を生かしてプログラマーとしてのアピールポイントを組み立ててみてもいいでしょう。

例えば、システムの使いづらさに気付き、こういう風にしたらもっと使いやすくなるのでは…というような提案は、プログラマーとしての素質を示すものです。

3-4.転職の場合(IT業界未経験)

他業種からIT業界未経験でプログラマーになるケースは、実はよくあります。それに、未経験かつ30歳以上の少々高年齢な方で、他業界からの転職後にプログラマーの仕事を立派にこなしている方は、私の周囲にもたくさんいます。

IT企業が見るポイントは、転職への本気度と、本気度を表すものが具体的にあるかです。社会人なので自由な時間は限られますが、逆にその限られた時間の中で、プログラマーになるべく何をやり遂げたのかをアピールしましょう。

それに加えて、この転職が後ろ向きなものではなく、前向きなものであると、しっかり説明できなければなりません。IT業界は常に人手不足ですが、会社にマイナスの影響を及ぼす恐れがある人は、職種が何であれ採用はされません。

中途採用の場合は、いわゆる社会人スキルがあるのは大前提となりますので、自分は問題ないか振り返ってみましょう。社会人スキルが不足していると、プログラマーとしてというよりも、チームに属して行う仕事に大きな支障が出てしまいます。

3-5.転職の場合(IT業界にいる・いた場合)

IT業界にいた・いる方で、プログラマーなどのエンジニア職として他社に転職しようというのなら、プログラマーがどういう仕事かや、情報システムとはどういうものであるかは、他のケースよりずっと詳しくご存知でしょう。

経歴をアピールするのも大事ですが、ここでは、なぜ転職するのか、なぜプログラマーやエンジニアとして再出発したいのか、包み隠さず正直に話しましょう。面談の担当者は、あなたの多少のごまかしや下心などは、すっかりお見通しです。


4.未経験のプログラマーとして採用された後の心得

めでたく、未経験ながらも、無事プログラマーとして採用されたとしましょう。ですが、実はここが真のスタートライン。プログラマーとして一生をかけて登っていく山の麓に立っただけです。

ここで間違えると、採用までに勉強してきたことを生かせないまま、あなたのキャリアが塩漬けにされかねません。ですので、しっかりとポイントを抑えて仕事をしていきましょう。

4-1.現場の人と仲良くしよう

これはごく当たり前のことなのですが、一番大事なことでもあります。

プログラマーは、チームの中で特権的な立場ではありません。プログラマーはプログラミングというスキルを持ってはいますが、チームの中では、単にプログラムを作りテストする役割を持っている人、というだけです。

システムはプログラムを作ってテストするだけでは進みません。プログラムを作るためには先立って設計が必要ですし、そのもっと前には要件定義が必要です。テストの後には、システムとしての運用が待っています。

そういう、それぞれの役割を持っている人がそれぞれの役割を果たしてこそ、プロジェクトが前に進みます。そのためには、チームとして仕事をする必要があり、その第一歩がチームの人たちと仲良くすることなのです。

それに未経験なら、プログラマーとしては半人前以前。未経験だから皆が積極的に面倒を見てくれるのが当り前、と思わずに、教えを乞う立場なのだと意識してください。これは、あなたが何歳であっても同じことです。

4-2.現場・お客様に合わせた知識を身に着けよう

プログラマーが作るものは、何かの必要があって作るのだということを、忘れてはいけません。仕事でプログラムを作るということは、そのプログラムが動くことで達成すべき、誰かの業務や何かの目標があるのです。

それを理解して初めて、プログラマーはいいプログラムを書けますし、やがてチームの一員としても認められていきます。やるべきことを分かっていて手を動かすことと、分からずに手を動かすことには、大きな差があります。

未経験である間は、指示者からの指示に従って作業をするのが精いっぱいかもしれません。周りの方が何をしゃべっているのか意味が分からずに、仕事での会話に入れなくて、さみしい思いをすることもあるでしょう。

そんな状況を解消する根本的な方法は、結局は自分で学ぶことだけです。業務知識を学ぶための情報やヒントは、周囲にあふれているはずです。でも、それらは当たり前のこととして積極的に教えてはくれないことも多いです。

4-3.現場で学んだことを自分の知識の強化に使おう

最初は手順どおりに作業をするので精いっぱいだと思います。しかし、なぜそういう風にやるのかという視点や疑問を持ち続けて、自分自身のプログラミングの知識の強化や引き出しを充実させるのに使ってください。

プログラミングの上達に一番いいのは、自分で書いて動かすことです。でも、他人の書いたプログラムを読み解いて、なぜそういう風に作られているのか、その作られ方のいいところ・悪いところは何かを考えていくと、よい勉強になります。

また、他の領域のことを知るのも大事です。例えばシステムのサーバサイドが主な領域なら、フロントエンドのプログラムや設計書を眺めてみる…逆もまたしかりです。そうするとプログラマーとしての幅が広くなり、システムの理解にも繋がります。

4-4.目標や将来のキャリア像をしっかりと持とう

日々のプログラマーの仕事に追われていると、とりあえず仕事の納期は守れているからいいや、という気分になりがちです。ずっと同じシステムで、同じチームで、同じような仕事を続けていると、遅かれ早かれそうなります。

ですが、先にお伝えしたとおり、プログラミングの世界は秒進分歩の世界です。少しの間に、自分の当たり前はすっかり時代遅れになり、他のプロジェクトへ顔を出したら全然通じずに打ちのめされる、ということも起きるかもしれません。

自分のプログラマーとしての実力がどの程度なのかは、自分のいる環境の中だけでは分かりづらいものです。世間一般の当たり前がどうなっているかを外へたまに見に行って、自分のスキルをどう維持・更新していくか、どうキャリアを積んでいくかをしっかり考えていきましょう。

4-5.プログラミング以外にも興味を持ち続けよう

プログラマーは、設計のとおりにプログラムを作るだけが仕事ではありません。設計書を受け取った時、何も考えずにそのまま作るか、何かしらの考えのもとに提案ができるかで、プログラマーとしての価値が大きく違ってきます。

その違いを生むのは、プログラミング以外に興味を持っているかです。プログラミングに比較的近いものだと、UI/UXと言われるユーザ向けの観点があったりしますし、上流工程の要件がきちんと実現されているのかという観点もありえます。

そういう強い課題意識や目的意識を持つプログラマーは、ある意味、最強の存在です。なぜなら、プロダクトをより良くするには何が足りないという指摘ができ、その指摘が実現できるか判断でき、さらに自分で実現できてしまうからですね。


5.【参考】未経験のプログラマーを待ち受ける、最近の業界事情と対処方法

ここまで、プログラマーに未経験でなるには、そしてなった後には…というお話をずっと続けてきました。

最近、プログラマーという仕事の環境が大きく変わりつつあり、併せて従来のプログラマーの仕事像も変化しています。

ここでは、そんなプログラマーに対する最近の業界事情と対処方法についてお伝えします。

5-1.テレワーク・リモートワークの積極的な推進

何と言っても、コロナ過によるテレワーク・リモートワークの推進の影響は大きいです。会社ごとに方針は違いますが、それでも完全テレワークの現場は珍しくありません。これは、プログラマーにとってはプラスでもあり、マイナスでもあります。

プラスは、出勤時間がゼロということ。遠距離通勤の人は、利点を大きく実感しています。プログラマーだからということではありませんが、今まで以上に自分の時間が取れるようになったという人は多いはずです。

マイナスは、未経験者のプログラマーにとっては、他者の支援を仰ぎづらいことです。今までは近くにいる人に気軽に話を聞けたり、ペアプログラミングなどで一緒にプログラミングを教えてもらえたりもできました。

もちろん、普通の現場ならチャットツールなどのコミュニケーション手段が用意されていますので、必要な連絡はすぐ取れます。でも、会話のテンポが悪かったり、対面ではすぐ伝わる「ここ!!」が伝えづらかったりします。

それに、遠隔地のパソコンにログインをする形式のテレワークでは、パソコン操作のレスポンスの悪さが問題になることがあります。もっさりとした動きのせいで全然仕事にならない、ということも実際にありました。

5-2.クラウドサービスの積極的な活用

これも昨今の潮流で、プログラミングに限らずIT業界で何かの仕事をする時には、自分のパソコンの中だけで片付くことは、ほぼなくなってきました。

特に、プログラムや開発環境の管理などは、GitHubAWSAzureなどに代表されるクラウドサービスを使うことが当たり前になりつつあります。それらを学んで慣れるには、プログラミングとは違う大変さがあります。

良いか悪いかで言えば、良いことの方がずっと多いですし、慣れてしまえば問題なく作業はできるものの、そのクラウドサービスそれぞれの考え方や使い方のお約束について、未経験の方は理解するのが大変だったりします。

5-3.プログラミング関連技術の進化・乱立・複雑化

フロントエンドの領域では特に、プログラミング関連技術の進化・乱立・複雑化が激しくなっています。流行していたやり方や、次はこれが来ると言われていたものが、少し経ったらもう誰も使っていない、というのもよく見られます。

学んだことは大抵無駄にはならないとはいえども、様々な選択肢の中から、これを学んでおけば問題ないという鉄板な選択肢を選ぶのは難しくなってきている感じです。

それに、プログラミング言語やフレームワークの仕様追加や機能強化が、全体的に早くなっていて、追いつくのも大変です。以前は数年くらいの間隔でバージョンアップしていたのが、半年サイクルになっていたりします。

こういう状況だと、現場で使っているプログラミング言語やフレームワークが、世の中の進歩について行けずに古いままにせざるを得なかったり、誰も使っていないので情報収集ができなかったりなど、様々な問題を抱え込むことにもなります。

5-4.作業納期の短縮傾向と品質とのバランス

IT業界での仕事の納期は、どんどん短くなる傾向にあります。例えば、今までは半年くらいでやっていたことを、数ヶ月でやりなさいと指示が来る、などです。そうしないと、企業間の競争に負けてしまうから、というのがよくある理由です。

そのしわ寄せ先は、大体の場合で品質です。かけられる時間が短いなら品質もそれなり…いわゆるベストエフォートにさせてもらいたいところです。でも実際は、そんな考え方をなかなか受け入れてもらえないのが、まだ普通かもしれません。

プログラムの品質は、すなわちシステムの品質です。プログラマーの立場では、今までより短い期間で、今までと同等以上にプログラムを作りながら、品質を維持することも求められるという、難しい状況になってきています。

プログラマーとしての対抗策は、作業の自動化や省力化、自動生成ツールを使うノウハウなどが鍵になります。プログラミング言語の知識を身に着ける以上に、効率の良いプログラムの作り方についても、学び実践し続けていく必要があるのです。


6.さいごに

プログラマーに限らず、誰でも最初は未経験です。ですから、未経験な自分を恥ずかしがったり、見下げたりする必要は全然ありません。逆に、全く知らない状態から、一歩踏み出して学ぼうとする姿勢は、大変立派なものです。

システム開発の現場では、未経験なプログラマーを決して敵視はせず、迎え入れてくれます。かつては自分も同じだったことを皆覚えていますし、プログラミングが難しいことも知っていますので、皆、トライする人を応援しています。

もしこの記事を読んで、未経験からプログラマーを目指そうと思ってくれた方がいたなら、私から最後に言いたいことは「決してあきらめないでください」です。正直、大変なことは多いですが、とにかくあきらめないことです。

プログラムやそれが集まってできているシステムも、簡単なことの積み重ねで出来ています。基礎をおろそかにせず、一つ一つ積み重ねていけば、必ず分かるようになります。その経験はプログラミングに限らず、他のことにも応用できます。そうすれば、あなたの世界が一気に広がることでしょう。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!株式会社ボールドの 採用エントリー を受付中!
文系IT未経験歓迎!
株式会社ボールドの 採用エントリー を受付中!