急激な社会のIT化に伴い、学生時代からエンジニアを目指す人も増えています。様々な場面でコンピュータが活用され、それに応じてそのコンピュータを、より効率よく安全に動かすことが出来るプログラミングが求められます。そのため不況といわれる中でも、プログラマーの募集は多く、売り手市場となっています。このような時流に乗って、未経験であってもプログラマーとして採用する企業が増えています。そのため文系出身者であっても、プログラマーになるチャンスです。しかしもちろんプログラマーがプログラミング出来なければ仕事にならないため、プログラミングを学習しなければなりません。文系出身者にとって、このプログラミングを習得する際に、関数などを利用するため、学生時代の数学を思い出して前に進めなくなることがあります。理系出身者やプログラミング経験者と共に採用されて、研修などを通じて自分一人が取り残されて行く劣等感や焦りを覚えるかもしれません。しかしプログラミングは「慣れ」が物を言う部分が大きく、また仕事になれば仕様書通りのプログラムを求められるのであって、最初の経験の違いはそれほど大きなものではありません。我慢をして一定レベルに至れば、プログラミングは誰がやっても同じといえるのです。
しかしプログラマーとして経験を重ねると、システムエンジニアとして上流工程に携わるチャンスが生まれます。これはそれまでの現場作業に没頭するのとは異なり、クライアントや周囲とのコミュニケーション能力が求められます。つまりクライアントから直接要求を聞き取って、その真意に沿った設計を提案したり、要件定義を行ったり、あるいはプロジェクトの始動後には俯瞰的なスケジュール管理や、プロジェクトメンバー相互のコミュニケーションを円滑に図るよう、橋渡し役を期待されたりするのです。つまりコンピュータを相手にプログラミング言語を操るだけではなく、生身の人と上手く付き合って行かなければなりません。その点を考えれば、文系出身者の方がむしろ、上流工程で有利になる場合もあるのです。もちろんそのためには、基礎となるプログラミングのスキルや知識が前提です。しかしそれとクライアントとを擦り合わせる必要があるのです。文系出身者であれば、そもそもクライアントの立場に立ってどんなシステムを望んでいるのか、といった想像力を働かせることが出来るでしょうし、自分自身がプログラミングの理解に苦しんだ経験を活かして、提案する内容をより分かりやすく噛み砕くことが出来るでしょう。それを考えれば、「急がば回れ」でどっぷりとプログラミングの勉強に浸かる覚悟も出来るかもしれません。
フリーランスになっても、インターネットにいつでもどこでも素早くアクセス出来るという大変便利な今の環境は、案件探しに有効です。これまでの営業といえば、人脈から少しずつ仕事の輪を広げるといったものでしたが、ネット上の潜在的なクライアントの数は桁違いです。そこでブログやホームページや専門サイトを上手に活用して、実績をアピールすることは大切です。しかしもっと効率よく仕事を獲得したければ、クラウドソーシングなどを利用したサービスや、求人情報や開発案件の情報を提供してくれる専門のエージェントを利用する手があります。
プログラミングの基礎を学んで、プログラマーとしての現場経験を積むうちに、最初は未経験から始めても、やがて上流工程を担当するようになるでしょう。プログラミングは慣れれば誰でも出来るようになるものですが、その知識を基に上流工程では、更にコミュニケーション能力が求められます。例えばクライアントから直接要求を聞き取って、正確にそれを汲み取った設計や要件定義が出来なければなりませんが、それは理系よりもむしろ文系が得意とするところかもしれません。相手の立場を想像して上手に情報を聞き出す技術や、相手に分かりやすく伝える技術が必要になるのです。
プログラマーを目指してプログラミングの基礎を学ぼうという場合、独学でやり通す覚悟を固めるのは並大抵のものではありません。初心者向けの定評のある書籍も出回っており、ネット上にも情報は溢れていますが、そもそもふさわしい学習環境を整えなければなりません。そして疑問を解消するための検索方法を知らなければ歯が立ちませんし、躓いても自力で起き上がらなければなりません。その点学校に通えば、カリキュラムに沿って無理なく学習出来るように指導してもらえますし、共に頑張る友人も出来て、実践向けではなくても様々な経験も出来ます。