働くエンジニア

エンジニア、IT、プログラマー、転職
<プロが教える>誰でもできる未経験からエンジニアになる方法

プログラミングとは何か?

プログラムを作ることをプログラミングといいます。プログラムとはコンピューターへの指示です。

コンピューターは、何らかの「指示」がないと動きません。ご自宅のPCに電源を入れてみてください。ブラウザを立ち上げる、Excelや年賀状作成ソフトを立ち上げる、といった指示をしないと、コンピュータだけでは何もしないことはいうまでもありません。勝手に動いてもらっても困りますよね。

この指示をプログラムといいます。プログラムを作るのがプログラミングです。

もう1つ、大切な側面があります。

プログラミングとは問題解決であるともいえます。プログラマは手を動かす前に、コンピュータにやらせたいことをどう指示するか、つまりプログラムのモジュール構成(どう分割するか、など)やアルゴリズム(解法や手法、ロジック)を考えます。考えた結果を、手を動かしてプログラムを書きます。そこまで含めてプログラミングです。

人によってやり方が異なりますが、本質は上記のような何かの「仕様」「目的」があり、それを解決するのがプログラミングともいえますよね。


プログラマーの仕事内容と環境

プログラマーの仕事は、プログラムを作ることです。ただ、それだけではありません。システム開発の流れに沿って解説します。会社の業種や規模によって異なりますが、以下が基本となります。

設計

作るべきシステムや機能の仕様を固めるシステムエンジニア(SE)が、仕様書または設計書を作ります。そこから実際にどうプログラムに落とし込んでいくのか、どういったモジュール分割を行うのかということを設計するプログラマがいます。

このフェーズを経て、すぐにプログラミングができる詳細仕様書が出来上がります。

コーディング

詳細仕様書にもとづき、プログラミングです。ここはもう、説明は不要でしょう。

テスト

「ちゃんとできていればこう動くはず!」という一覧、つまりテスト仕様書があります。テスト仕様書にもとづき、正しく動作するかテストします。不具合(バグ)があればデバッグを行い再テストです。

おおまかにいって、こんな感じになります。企業規模が小さいと、すべて一人でこなす場合もあります。


必要な環境

プログラミングには当然パソコンが必要です。その他、プログラミングに必要なものをあげてみましょう。

WindowsとMacどちらがいいの?

プログラミングをするのにWindowsかMacのどちらがよいか、これはとてもよく聞かれる質問です。

答えは、やりたいことができて、使いたいツールが使えるのなら、どちらでもかまいません。

ひと昔前までは、グラフィック系のいわゆるAdobe製品を使うような仕事はMac、社内業務やプログラミングにはWindowsという暗黙の了解がありました。

しかし最近の開発ツールは両方提供されていることが普通です。例えばEclipseは昔からあるツールですが、Windows用とMac用の両方が提供されています。ネット上でサンプルプログラムや技術解説のページにある画面コピーを見ても、Macを使っていることがとても多くなりました。

よってOffice製品をガンガン使うのでWindows、なんとなくMac、といった個人的な好みで選べばよいでしょう。

プログラミングに必要な環境

まずはプログラムを書かなくては話になりませんよね。では何を使って書くか、それはいろいろです。

エディタ

プログラムを書くツールであるエディタが必要です。

ちょっと試してみたいというだけならWindowsはメモ帳、Macはテキストエディットといった、OSに最初から備え付けのエディタを使えば良いでしょう。

しかしコードを書くというのは、なかなか手間のかかる作業です。そうなると、OS備え付けのツールだけでは物足りません。高機能なテキストエディタが欲しいところです。以下のような高機能なテキストエディタを選びましょう。

Sublime Text
ATOM
秀丸
TeraPad
Vim

これらの多くは外部のライブラリを取り込んで機能拡張することが簡単にできます。さまざまなライブラリで機能を順次拡張し、効率的なプログラミングができます。

コンパイラ

コンピュータは、基本的には0と1で書かれた情報しか理解できません。しかし私たちがプログラミングするときは、人間がある程度読めるものを書きます。つまり、人間が書いたものはコンピュータに理解できないので、コンピュータが分かるように変換しなくてはなりません。

それを、コンパイラといいます。

しかし最近のプログラミング言語にはこの変換が不要なスクリプト型言語もあり、コンパイラが必須かというとそうではありません。スクリプト型言語の代表選手は、Rubyです。

のちに触れる統合開発環境に含まれていて、特に意識しなくても良いこともあります。

動作環境

Webシステムでは、ユーザーからの要求と作ったプログラムに基づきHTMLに生成してくれるWebサーバーが必要です。ApacheやIIS、nginX、pumaなどが有名です。

いわゆる制御系や組み込みと呼ばれるプログラムでは、その言語と製品に応じた独自の実行環境が必要です。

統合開発環境

上記のすべてを含み、コーディングから実行までできるようにしたのが統合開発環境(IDE)です。Eclipse、Visual Studio、IntelliJ、RubyMine、PHPStormといった、それ1本で多くのプログラミング言語に対応できるもの、言語特有のもの、有償のものがあります。

用途や目的によって採用しましょう。

おすすめプログラミング言語


まずはプログラミング言語の人気ランキングを発表しているPYPL PopularitY of Progamming Languageのランキングを元に確認していきたいと思います。

PYPLのランキングは、Googleにおいて各言語のチュートリアルがどれくらい頻繁に検索されたかを元に算出されたランキングとなっています。


プログラミング言語1位はPythonが獲得

PYPLの発表しているプログラミング言語ランキングで2019年8月最新版として1位を獲得したのは「Python」でした。

世界中で人気のスクリプト言語であるPythonですが、日本では海外と比べてイマイチ普及していないかなといった印象を受けます。

Pythonの得意分野として、機械学習や深層学習があげられ、AIなどを筆頭に今後の技術発展が期待されている分野で多く利用されているのが特徴です。

Javaは根強い人気を誇るプログラミング言語


PYPLのランキング2位は「Java」が獲得しています。

Javaは古くから根強い人気を誇るプログラミング言語で、多くのJavaプログラマーが活躍しています。

JavaはOSに依存せず利用出来ることから、多くのシステムで採用されています。

日本国内でも業務システムをはじめ、近年ではAndroidアプリを専門としたプログラマーも活躍しており、まだまだ人気は続きそうです。

フロントエンドはJavascript一強か?!


PYPLのランキング3位には「Javascript」がランクインしました。

Webサービスでは、現在フロントエンド開発のシェア率をほぼ独占しているのがJavascriptです。

Web系プログラマーとして活躍するためには、必ず身につけるべき言語となっていますので、ユーザー数も必然的に増えているものと推察されます。

また、近年Javascriptフレームワークが充実してきたことにより、フロントエンド開発のみならず様々な分野で利用されるようになりました。

代表的なものとしては、React Nativeと呼ばれるJavascriptフレームワークを利用することで、iOSやAndroidに対応したアプリケーションが作成出来るようになっています。


続いて、レバテックキャリアが発表しているプログラミング言語別求人ランキング【2019年6月発表版】を確認していきましょう。

PYPLでは、世界中でのGoogle検索を元に算出されたランキングでしたが、レバテックキャリア発表のランキングでは国内求人にターゲットを絞っているため、就職・転職の際にはぜひ参考にしたいデータとなっています。


プログラミング言語としてはJavaの圧倒的マーケットシェア率は変わらず

プログラミング言語としては、他の言語を引き離してJavaが圧倒的なシェア率を誇る結果となっているようです。

2017年・2018年も同様にJavaが1位となっており、国内での人気の高さが伺えます。

Javaは国内多くの業務システムで利用されていることに加え、Androidアプリ開発でも利用されていることから需要は今後も高まる傾向にあると推察出来ます。


Web系プログラミング言語としてはPHPとRubyが国内では人気

プログラミング言語全体としては、2位にPHP、3位にRubyがランクインしています。

Web系プログラミング言語として、国内の需要のみを確認するとPHPが圧倒的なシェア率を誇っています。

しかし、2017年から2018年・2019年とわずかではありますがPHPのシェア率が下がってきています。

要因としては、Ruby on Railsでの開発をメインとしたベンチャー企業が増えたことやPythonによるAI関連・ブロックチェーン関連の開発需要が増えていることが挙げられます。


プログラミング言語別フリーランスの相場


フリーランスとして活動する際のプログラミング言語別単価について比較していきます。

※なお今回ご紹介する相場は、本記事執筆時に調査したデータに基づくもので、政府や企業による公式発表ではありませんのでご了承ください。

Python: 50万円~100万円
PHP: 50万円~80万円
Ruby: 50万円~80万円
Java: 50万円~70万円
C#:60万円~70万円


上限価格が高い案件は、Pythonに多く見られる結果となりました。

機械学習やAI関連・ブロックチェーン関連などの案件は報酬が高く設定される傾向にあるため、Pythonの上限価格も連動して上がっているようです。

また、数学的な知識がWebシステム開発に比べ重要となってくることからも、初心者の参入が難しく供給も少ないため価格が高騰しているものと推察されます。

下限価格はどのプログラミング言語もほとんど同じ結果に

下限価格に関しては、プロジェクトに依存することや、上流工程・下流工程など作業内容によっても大きく変わるため一概には定義できませんが、平均すると50万円前後といった印象を受けました。

特にプログラミング言語によって下限価格が低く設定されているようなこともなく、作業地域や開発内容により価格差が大きくなっているようです。

案件数はPHPが有利か!?

募集されている案件数で比較してみると、国内では依然PHPの案件が多いようです。

新規案件を中心にRubyやPythonの案件も確かに増えてはいますが、Wordpress案件の豊富さなどからまだまだPHPのマーケットシェア率が高い傾向が見られました。

JavaやC#の案件は客先常駐が大半の結果に

JavaやC#など業務システムで頻繁に利用されている言語は、客先常駐の案件が大半といった結果になっていました。

客先常駐という性質上、高額案件に関してはプロジェクトマネージャーやプロジェクトリーダーといった立ち位置での募集となり、プログラマーとしての上限価格は70万円ほどにとどまるようです。

フリーランスとして活動しやすいプログラミング言語を選ぶなら?

2019年現在ではフリーランスとして活動していくのであれば、PHPがおすすめと言えます。

他の言語と比べて案件も多く、単価も決して低くない価格帯で安定しているためおすすめです。

また、リモートワークの案件も多くクラウドソーシングでの案件獲得がしやすい点も評価の対象となりました。



結論としては、日本国内では業務システムであればJava、Web系サービスであればPHPがおすすめです。

Pythonに関しては、近年注目されているプログラミング言語ですが、まだまだ市場シェア率は高くありません。

これからの将来性という意味を含めて、「Java」または「PHP」ともう1つご自身の興味がある分野のプログラミング言語を学んでおくことが、最適なプログラミング言語の選択となりそうです。


フリーランスとは何か?

会社に雇われている会社員にとって、フリーランスとは魅力的な生き方に見えます。収入がアップして、時間に縛られずに空いた時間に好きなことができて、場所にも縛られずにどこでも働ける・・・夢のようです。

その一方でフリーランスにもデメリットがあるようで、仕事が途絶えたり、会社員時代には必要のなかったことも自分でしなければならないといった話を聞きます。本当のところはどうなんでしょうか。気になりますよね。

フリーランスとは時間・場所・契約にとらわれない、多様で柔軟な働き方のことです。

フリーランス実態調査(2017)によると、フリーランス人口は1,122万人に達しました。1年で58万人増加しています!また副業系ワーカーが増えているのも見逃せません。
しかしフリーランスにもいろいろあります。単純に去年1年で58万通の辞表が飛び交ったというわけではないのでご注意を。

フリーランスの仕事の種類


エンジニア

フリーランスのSEやプログラマーは多いです。また一口にプログラマーといっても、Web系プログラマーや制御系、スマホアプリやゲームなど、さまざまです。言語やフレームワークも多岐にわたります。

ポテパンフリーランスを見てみましょう。「言語から探す/経験から探す/職種から探す」といった感じで、さまざまな角度から仕事を検索できます。見てみてください。いかがでしょうか?ご自身でできそうなものが見つかりましたか?

確かにすべての項目で求人がヒットするわけではなく、JavaやRubyといったメジャーな言語の方が仕事の数が多いです。しかし決してそれらに限定されているわけではなく、仕事の幅は多岐にわたります。なにもポテパンに限った話ではなく、フリーランスの仕事は一般的に分野が広いのです。

エンジニア(副業系すきまワーカー)

先の例で掲載されている仕事を見たら、そこそこな金額なのに気づきます。いきなり大きなものを取るのはやはり不安・・・とおっしゃる方は、クラウドソーシングのサイトをごらんください。数千円〜10万円と、手頃な金額の仕事が見つかります。

クラウドソーシングとは、不特定多数の方に仕事を依頼する、もっと簡単にいうとやってほしいことを知らない誰かに依頼するのです。自社または自身ではできないことがある、一時的に仕事量が増える、だけど従業員を雇うほどではない、そんなときにクラウドソーシングが活用されます。

ExcelのVBAくらいなら、しかもITに詳しい人がいない会社の依頼なら、なんとかなりそうな気がしてきませんか?あなたができて普通と思うことを、誰かが求めていることがあるのです!例えばあなたがExcelのシートで表しか作れない、簡単なマクロしか作れないと思っても、それをできずに苦しんでおられる人や会社があるのです。

当たり前のことをして喜んでもらえるし、尊敬してもらえる・・・とても素晴らしいですよね。

ライター

単純にライターと聞くと、テレビに出てくるような著名なライターや作家のようなイメージを受けますが、決してそうではありません。クラウドソーシングで多いのは、WebライティングやSEOライティングと呼ばれている、特定のテーマについて記事を書くものです。

GoogleやYahooなどの検索エンジンがヒットしやすく、読み手への読みやすさも意識するライティングです。従来の文章作成とは異なる手法で書いていきます。

ところで、あなたは何が得意ですか?旅行?料理?

あなたの仕事はなんですか?保険の外交員?銀行員?

最近、ビットコインやイーサリアムといった仮想通貨が流行っていますが、いかがですか?

実はこれらは、ここ最近のクラウドソーシングにて求人のあったライティングネタです。そうです、ライティングは自分の仕事や得意、趣味を仕事にできるのです!しかも初心者向けにガイドが用意されていたり、最初はクライアント側がフォローしてくれたりする仕事も多数あります。ある程度記事数をこなすと文字単価が上がったり、さらにもっと高単価なクライアントを求めることができますよ。

初心者や副業系すきまワーカーにはぜひオススメします。

デザイナー

個人でホームページを作ると、必ず悩むのはバナーやロゴです。テキストの装飾だけでもできなくはありませんが、やはり稚拙に見えます。テンプレートのサイトでダウンロードしてもいいけど、やっぱり自分だけのロゴやバナーがほしい!と思いますよね。ほかに・・・

個人で商店を営んでいるけど、地域の新聞に折り込みチラシを入れて宣伝したい!でもデザイナーさんに頼むのは、やはり資金的に無理!とか、ブログ用に、自分の似顔絵が欲しい!

そう思っている人たちは多いのです。そんなときに出番なのがフリーランスのデザイナーさんです。現役デザイナーさんは、クラウドソーシングのサイトを見てみてください。ご自身でもできそうな仕事、ありませんか?もしあれば、あなたができることを求めている人がいるのです!

その他

上記にあてはまらないものの、確実に需要があるものは他にもあります。例えば語学系。日本語から外国語、またはその逆もあります。ビジネスの世界では、PowerPointによるビジネス文書作成や企画書作成もあります。細かいものになると相当な数になります。ぜひ一度、クラウドソーシングサービスをのぞいてみてください!