こんにちは。ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズ編集部です。
弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。
こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。
プログラミング言語であるパイソンをご存知でしょうか?パイソンはPythonと表記されます。最近では人工知能の流れから、その存在感を増しているプログラミング言語といえるでしょう。
本稿ではパイソン初心者の方、パイソンで案件をお探しの方に向けて、パイソンの基礎から案件までをご紹介します!
ドンピシャ案件の探し方
「案件はたくさんあるはずなのに、なかなか自分の望む案件が見つからない…」
エンジニア市場は売り手市場であるものの、いまだに正しいマッチングノウハウが確立されておらず、多くの方が案件探しに苦労されています。
ですが、現在の市場感や企業側に刺さる経験・スキルを理解し正しく案件探しをすれば、誰でも自身のバリューを活かし単価を伸ばすことができる、というのも事実です。
ITプロパートナーズでは、
・9割がエンド直案件のため、高単価
・約6割が週3-4案件のため、柔軟に働ける
・事業会社の自社開発案件が多い
などの魅力的な案件を数多く保有し、マッチング能力の高い即戦力エージェントが完全サポートします。
初めてのフリーランス、情報収集段階でも大丈夫です。あなたの働き方にマッチし、単価も高く、最もバリューを発揮できる案件を探しませんか?
目次
Python(パイソン)言語とは?
パイソンはPythonと表記し、英語では爬虫類のニシキヘビの意味を持ちます。名前の由来はイギリスの有名コメディTV番組「空飛ぶモンティ・パイソン」から来ているといわれています。
開発者はオランダ人のグイド・ヴァンロッサムであり、オープンソースソフトウェア(OSS)として1991年に初版となるバージョン0.9xが公開されています。余談ですが、この1990年前後はいわゆる軽量プログラミング言語(LL:Lightweight Language)がたくさん生まれた時代でもあります。
同じLLとして有名なPerlは1987年、Ruby・PHPは1995年に誕生しています。
LLとは、主にプログラマがソースコードを書くために必要な負担軽減を目的とした言語の総称です。「軽い」という言葉は、LLが使用するマシンリソースが軽いという意味ではないことに注意が必要です。ちなみに、パイソン言語を使用するプログラマのことをPythonistaと表現します。同じLLのPerlはPerler、PHPはPHPer、RubyはRubyistと表現します。
Python(パイソン)でできること
Pythonは読み書きのしやすさ、コードの記述量の少なさ、C言語との相性の良さといった特徴から幅広い開発現場で支持されている言語です。ここからは、プログラミング言語・Pythonにできることを明らかにします。
Web・アプリケーション開発
Pythonといえば機械学習、人工知能開発と連想されるかもしれませんが、実は長い間Web・アプリケーション開発にも使われてきました。大規模なWebサービスの開発に使われることが多く、YouTubeやInstagram、Dropboxなどの誰もが知るサービス開発にも使われています。
Web・アプリケーション開発によく用いられる要因は、Webアプリの開発に特化したフレームワークやライブラリが数多くあるからです。Webフレームワークとして有名なものでは、DjangoやFlask、Bottle、Ruby on Railsなどが挙げられます。様々な機能やソフトウェアの骨組みが備わっており、フレームワークに必要な情報を入力するだけで、簡単にアプリケーションの骨格が完成します。また、フレームワークにはライブラリが付随しており、新たな機能を追加したい場合にはライブラリをインポートするだけというお手軽さです。
ブロックチェーン技術の開発
ブロックチェーンとはなにか知っていますか。一般社団法人全国銀行協会は下記のように定義しています。
ブロックチェーンとは、一般に、「取引履歴を暗号技術によって過去から1本の鎖のようにつなげ、正確な取引履歴を維持しようとする技術」とされています。データの破壊・改ざんが極めて困難なこと、障害によって停止する可能性が低いシステムが容易に実現可能等の特徴を持つことから、銀行業務・システムに大きな変革をもたらす可能性を秘めています。
一般社団法人全国銀行協会
ブロックチェーンの特徴を簡単にまとめると次の4つになります。
- 改ざんが困難
- 自立分散システム
- システムダウンが起きない
- 取引の記録を消せない
このブロックチェーン技術の開発にもPythonは活用されています。ブロックチェーン技術と聞くと、一見ハードルが高そうに思えるかもしれません。しかし、Pythonは簡潔で書きやすい言語として有名であり、Pythonをベースとしたブロックチェーン技術自体も想像よりも習得しやすいので、興味があれば一度チャレンジすると良いでしょう。
機械学習
人工知能といっても、実はさまざまな分野があり安易にひとくくりにすることはできない側面がありますが、大きな分野の1つとして、機械学習があります。
機械学習について検索すると、以下のような説明があります。
機械学習とは、データから反復的に学習し、そこに潜むパターンを見つけ出すことです。そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測できます。これは予測分析におけるモデル構築の自動化につながり、データサイエンティストの人材不足を補うものになると、大きく期待されています。
機械学習とは | SAS
説明が抽象的で初心者には理解が難しいかもしれませんが、簡単にいえば、たくさんの過去データを元に機械的に分類をしたり、予測をしたりする手法といえます。この「機械的に」の部分をつかさどるのが、データ処理(前処理などと表現する場合もあります)やアルゴリズム(機械学習モデル、単にモデルと表現したりすることもあります)です。データ処理やアルゴリズムを実装するためにもっともよく使われている言語の1つがPythonであるといっても差し支えないでしょう。
それではなぜ、機械学習によくPythonが使用されているのでしょうか?
こちらは諸説ありますが、1つの有力な説は、「機械学習に必要なライブラリ(プログラム群)が充実していること」です。機械学習では、データセットから知見を引き出すために前処理やモデルを変更したりと試行錯誤が必要です。この試行錯誤における生産性を高めるためにPythonを使用することで効率化が図れます。
Python(パイソン)で作れるものを実例で紹介
Pythonで作られてるものって実は結構あります。事例をみてみましょう!
- Youtube
- Evernote
- Dropbox
知らなかった人にとっては意外だったのではないでしょうか?誰もが知るようなサービスもPythonで作られています!
Pythonでできることの詳しい内容は下記をチェックしてくださいね。
Python(パイソン)を扱える職種って?
まずはパイソンを扱えるとどんな職種に就くことができるかみて行きましょう!
Webエンジニア
Webエンジニアは、パイソンを使って上記にあるようなアプリを作ったりする職種です。他のプログラミング言語だと数行かかるものが1行でかける場合もあり、とても汎用性が高く人気を博しています。
データサイエンティスト
データサイエンティストは、今もっともホットでセクシーな職種と言われています。
IoTやAIといった機械学習の導入が進められている中、一番大切なのはいかにデータを蓄積できるかです。それを実現できるのが、パイソンを習得している、データサイエンティストという人たちです。
Python(パイソン)言語を扱う人の平均年収は624万円
TECH Street が2020年に発表した調査結果によると、40代のPythonエンジニアの平均年収は624万円となっています。以下の表は、言語別に40代の平均年収を一覧化したものです。
Python | 624万円 |
Scala | 608万円 |
Go | 539万円 |
Swift | 599万円 |
Ruby | 603万円 |
Java | 608万円 |
Perl | 595万円 |
C言語 | 605万円 |
JavaScript | 583万円 |
PHP | 586万円 |
他の言語と比較すると、Pythonエンジニアの平均年収は1つ飛び抜けて高いことがわかります。Pythonの平均年収が高い理由の1つは、機械学習をはじめとしたAI分野の需要の過熱によるものです。需要の増加に対して、人材の供給不足であることもさらに年収を底上げすることにつながっています。
Python(パイソン)を扱うフリーランスエンジニアの場合は?
では、フリーランスエンジニアの場合はどうでしょうか。弊社ITプロパートナーズによると、7割近くが週2〜3日案件でありながら、想定月収が50万円となっています(2022年6月現在)。年収ベースで考えると、50万円×12ヶ月ということで、600万円程度です。
週3日はPythonの案件をやりつつ、残りの週2日はITプロパートナーズ経由で他の案件に着手すれば、すぐに一般的な40代Pythonエンジニアの平均年収を超えられるでしょう。
python案件についてはこちらからご覧ください。
Python(パイソン)の将来性と需要
Pythonは世界市場においても、日本においても高い人気を誇っています。Pythonは現在注目度の高い「機械学習」と「データサイエンス」の2分野において注目度が高く、今後も需要が見込まれるでしょう。
TIOBEが2022年6月に発表した月間プログラミング言語ランキング「 TIOBE Index 」では、Pythonの順位は同時期の2021年よりも1つ順位を上げ、1位に位置しています(図1参照)。同じくTIOBEによると、JavaやC言語と比較して、2021年の末ごろから順位が逆転していることがわかります(図2参照)。
Python(パイソン)の資格を取得してキャリアアップを目指そう
ここで紹介するPythonの資格試験は下記の3つです。比較的難易度が高く、取得することでスキルの証明に役立つものを選びました。
- Python3エンジニア認定データ分析試験
- PCPP-32-1 – Certified Professional in Python Programming 1
- PCPP-32-2 – Certified Professional in Python Programming 2
それぞれ詳細を説明します。
Python3エンジニア認定データ分析試験
こちらの試験は一般社団法人Pythonエンジニア育成推進協会が運営している国内資格になります。Pythonを使ったデータ分析の基礎が試験範囲となっており、機械学習に不可欠な数学の基礎やライブラリの分析に関わる知識を問うものです。
合格率は8割中盤で、実際に試験に合格した方の勉強時間は、プログラミング経験者で1ヶ月程度を要したケースが多いといわれています。日頃からPythonに触れているのであれば、1週間程度の勉強時間でも十分合格は狙えるでしょう。
PCPP-32-1 – Certified Professional in Python Programming 1
こちらは海外の資格で、「OpenEDG Python Institute」というポーランドの非営利団体が運営しています。データ分析にPythonを活用できるかのスキルレベルを問う試験となっており、PCPP-32-1に合格すると、Pythonエンジニアとして高いレベルを保有していることの証明になるでしょう。
出題内容としては、ファイル処理、数学・工学系ライブラリーの使い方、GUIプログラミング、オブジェクト指向プログラミングの応用理論などです。2022年6月現在は、申し込みができない状態なので、注意してください。
PCPP-32-2 – Certified Professional in Python Programming 2
こちらの資格も、上記のPCPP-32-1と同じ団体が運営しており、PCPP-32-1のさらなる上級ステップです。PCPP-32-1を有していることが受験の条件となります。
出題内容としては、パッケージの作成と配布、デザインパターン、通信、ネットワークプログラミング、データベース制御などです。2022年6月現在は、申し込みができない状態なので、注意してください。
初心者からPython(パイソン)を学ぶ方法3つ
Pythonの学習方法は大きく下記の3つになります。
- オンライン教材
- 書籍
- プログラミングスクール
人によってどの学習方法が最適かは変わるので、ぜひ自分にあった学習方法を試してみてください。ここからは、それぞれの学習方法について詳しく説明していきます。
オンライン教材
昨今はオンライン教材が非常に充実しており、基礎学習だけでなく、実際に動かすところまで学べるものもあります。オンライン教材の良いところは、手軽に、かつ安価に学べるところです。Pythonを学びながらも他の言語に少し触れるので、自分の興味関心を確認するには最適と言えるでしょう。まずは、オンライン教材からプログラミング学習を始めることをオススメします。
オンライン教材に関して、詳しくはこちらでも説明しているので、ぜひ読んでみてください。
書籍
きっちり網羅的に学びたい方は書籍がオススメです。隙間時間に学習しやすいというメリットもあります。難点としては、コードを書きながら勉強することが書籍だと難しいので、プログラミング言語の全体像を感覚的につかみにくいところです。まずは、オンライン教材などで全体像を掴んでから、足りないところを書籍で埋めていく方法もあります。
初心者にオススメの本としては、「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」です。
イラストや対話形式の説明でわかりやすい構成となっており、またサンプルもあるので、手を動かして学べます。
プログラミングスクール
独学が難しい場合は、プログラミングスクールに通うことも視野に入れましょう。体系的にプログラミング言語を学べ、講師に質問できるのでスムーズに習得可能です。もちろん、料金はそこそこかかってしまうので、慎重に比較しながら検討することをオススメします。
Python(パイソン)入門
本章以降では、Python入門として以下の基礎的な点を解説します。
- 基本構文
- プログラムの実行方法
- インストール
- 文字列
- print文
なお、Pythonを取り扱う際の注意点として2系と3系でさまざまな違いがあります。とくに文字列の取り扱いが違うので、日本語などのマルチバイト文字をプログラム上で取り扱う場合は注意する必要があります。
初心者の方がなんらかの実装方法をweb検索する場合、そのソースコードがどのバージョン前提で書かれているのかを常に意識するようにしてください。
本章では、基本的に2,3系で共通する点に触れるにとどめます。文字列・print文の章で少しだけ2,3系の違いについて紹介します。
Pythonの基本構文
Pythonでは基本的な構文についてはそれほどメジャーなLL、たとえばPerlやPHPなどと大きくは違いがない側面も少なくありません。基本的には改行がソースコードの区切りとみなされますが、セミコロン(;)も同様に区切りと判断されます。
ただし実践的にはPHPのようにセミコロンが必須という訳ではないので、Pythonではセミコロンを置かずに改行を置くソースコードが一般的です。
Ruby同様、コメントは#を使用します。PythonがPerl、PHP、Rubyと比べて違うのは、ブロックの定義でしょう。Perl、PHPは括弧{〜}、Rubyは括弧{〜}またはdo〜endでブロックを定義しますが、Pythonではブロックの定義をインデントに任せます。
同じ数の空白数でインデントされている箇所をブロックとみなす分、Pythonで記述されたプログラムはブロックの閉じ括弧が少ない分、行数が少なくて済むという利点があります。
またブロックのインデントに使用する空白数はいくつでも揃っていれば同じブロックとして認識されます。一般的にはインデントに使用するのはタブを避け、空白数2つが主流になりつつあります。
# 基本構文
a = 1; b = 2
c = 3
if a > 0:
print(a + b + c) # 出力: 6
Pythonのプログラムの実行方法
Pythonのプログラムの実行方法も、とくにその他のLLと変わりありません。Pythonをインストールした後、which pythonでパスが通っていることを確認できればあとは対象のプログラムのテキストを拡張子.pyで保存し、ターミナル上でpython test.pyなどとすれば実行することができます。
# プログラム実行方法
$ vim test.py
# ソースコードを編集して保存
$ which python
/usr/bin/python
$ python test.py
6 # 基本構文のプログラムを実行
Pythonのインストール
Macを使用している方であればPythonは事前にインストール済でしょう。ただしデフォルトでは2系なので注意が必要です。
より実践的にはプログラミング言語のバージョン違いは、深刻な問題を引き起こす可能性が高いので、同一OS内で複数のバージョンを切り替えることができるようにインストールを行います。詳細は割愛しますが、pyenvを利用することでこれが実現できます。
Windowsを使用している方であれば本家サイトにアクセスし、インストーラーをダウンロードしてインストールしましょう。
ただしより実践的には、Windows上で本格的にPythonを使用するのは現状ではあまりオススメしません。Macを使うようにするか、Windows上でVirtualBoxによってubuntuなどの仮想環境を構築するのが現実的かもしれません。
とくにプログラミング初心者の方であればコマンドライン、いわゆるCUI(Character User Interface)に慣れないかもしれませんが、腰を落ち着けてプログラミングに取り組もうとする場合避けて通れない道なので頑張って学ぶことをオススメします。
Pythonの文字列
前述の通り、Pythonの文字列の取り扱いは注意が必要です。バージョンに応じて同じ文字列定義でも意味が違います。シングルバイト文字列であればダブルクォーテーション(“)またはシングルクォーテーション(‘)で囲まれた箇所を文字列として変数に代入することができます。
少し難しい話になるかもしれませんが、3系では同じダブルクォーテーション・シングルクォーテーションで囲まれた箇所はUnicode文字列として認識されます。2系ではUnicode文字列として認識されない点に注意が必要です。2系でUnicode文字列を定義するには先頭にuを付与する必要があります。
なお3系でも3.3以降であれば先頭にuを付与しても問題ありませんが、それ以前のバージョンではなんと先頭にuがある文字列定義はシンタックスエラーとなります。2系で書かれたソースコードをそのまま持ってきてもUnicode文字列が定義されている箇所でエラーになって動かないことが起き得ます。
これはPythonの文字列回りの取り扱いを複雑にしている点であることを理解しておきましょう。
# バージョン確認
$ python --version
Python 2.7.5
# 文字列
# 2系
a = “a” # バイト列
b = u“あ” # Unicode文字列
# 3.0-3.2
a = “a” # Unicode文字列
b = u”あ” # SyntaxError
# 3.3以上
a = “a” # Unicode文字列
b = u”あ” # Unicode文字列
Pythonのprint文
print文もまた、2系と3系で文法が異なるので注意が必要です。printの直後の引数を括弧()で囲むか否かの点で異なります。2系ではprint直後の括弧()は必須ではなく任意です。3系ではこれが必須となりました。
print文直後の括弧()を必ず記述しておくようにすれば2系でも3系でも動作しますので、print文直後の括弧()は必ず記述するようにしましょう。
# print文
# 2系
print “a” # 出力: a
print(“b”) # 出力: b
# 3系
print “a” # 出力: SyntaxError: Missing parentheses in call to ‘print’
print(“b”) # 出力: b
Python(パイソン)案件の事例
ここまでPythonでできる事や使い方までを見てきましたが、実際どんな仕事や案件があるのでしょうか?
今はやりの民泊事業の開発に携わりたいPythonエンジニア募集!!
勤務日:週2
単価:50万
勤務地:東京
こちらは週2日から可能な案件です。
デジタルマーケティング支援の会社でPythonエンジニア大募集!
勤務日:週5
単価:90万
勤務地:東京
こちらはフルコミットの案件ですが、高単価となっております。こちらでは表示できる情報が限られてしまっていますので、ぜひ無料登録から案件をご覧ください。
Pythonは流行りであるのももちろんですが、需要が高いので習得して損はないです。
Python案件はこちらからご覧ください!
さらに詳しい案件の情報は下記に記事にまとめてあります。
記事を取得できませんでした。記事IDをご確認ください。
まとめ:Python(パイソン)は需要の増える言語
いかがでしたでしょうか?
本稿では軽量プログラミング言語であるPythonの基礎についてご紹介しました。具体的には、Pythonの言語の歴史的側面を確認し、Pythonでできることを紹介。さらにPython入門として基礎的な文法や実行方法、インストール方法、文字列・print文のバージョン違いの取り扱いで注意するべき点を解説しました。
本稿では触れませんでしたが、Pythonを用いた機械学習を実践するためには、scikit-learnなどのライブラリをどう使うか学ぶ必要があります。また、Pythonを用いてwebアプリケーションを開発するためには、Django(ジャンゴ)などのwebフレームワークについて学ぶ必要があります。
まだまだ実践的なパイソンを学習する道のりは長いですが、本稿がPython初心者の一助となれば幸いです。
- 高額案件を定期的に紹介してもらいたい
- 週2日、リモートワークなど自由な働き方をしてみたい
- 面倒な契約周りはまかせて仕事に集中したい
そのような方はぜひ、ITプロパートナーズをご利用ください!
まずは会員登録をして案件をチェック!