このような処理をしたい場合、for文と変数を使用して計算する事もできますが、高階関数のreduceを使用すると、とても簡潔に記述することができます。第1引数には2つの引数を取るfunctionを指定する必要があります。第2引数にはiterableを指定する必要があります。第3引数にはオプションですが、指定された場合、iterableの先頭に置かれ、iterableが空の場合のデフォルト値になります。第1引数にはfunctionの代わりにラムダ式を使用する事もできます。実際にreduceを使用して、Pythonのプログラムを書いてみましょう。mulの場合にはどのような値になるか見ていきましょう。functionの代わりにlambda式でも書くことができます。#PythonPythonの複素数型について現役エンジニアが解説【初心者向け】Pythonの複素数型について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。この記事では、Pythonで複素数を扱う方法について解説します。複素数ってなに?という方のためにも、複素数についてかんたんな解説をするので安心してください。「複素数」について解説します。複素数について理解するには、その前に「虚数」について知っておく必要があります。虚数というのは、「二乗したら-1になる数」のことです。数学では英語の小文字のiで書かれることが多いのですが、Pythonでは小文字のjが使われます。いう表記が使われます。ようにして表記されます。この表記で、aをこの複素数の「実部」、bを「虚部」と言います。Pythonでは、複素数について扱うためのcomplex型が用意されています。複素数を扱うには、int型やfloat型を使うのと同じようにすればいいのですが、虚部の部分にjをつけて宣言します。少数の場合は、以下のように記述します。複素数型は、通常の数と同じように四則演算ができます。「共役な複素数」と呼ばれるような値を取得する関数もmathモジュールに用意されています。ここでは詳しく触れませんが、興味のある方は調べてみると良いでしょう。実際にコードを書いて確認してみましょう。この記事で扱うコードは単純なので、Pythonの対話型で行なってますが、お使いの環境に応じて実行方法を変えてもらっても問題ありません。複素数型を宣言して、表示してみます。続いて、もう一つ複素数型を宣言して、四則演算をしてみます。それぞれちゃんと計算ができていることが確認できたと思います。aとbの値を変えてみて、確認してみてください。実際に複素数を扱うことは少ないかもしれませんが、頭の片隅にでも入れておくと、必要なときに役に立ちます。AIプログラミングを使って開発を行う大学3年生。プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。Python今後欠かせないスキルになる!5分で分かるプログラミングとはいまやプログラミングは、技術者でなくても「聞いたことがある」という人が多いのではないでしょうか。それもそのはず、企業のトップや政治家までもが、「プログラミングができる人材」を次世代に求める発言をしています。その影響か、まだ受験勉強さえしたことのない小学生が、習い事としてプログラミングを習うのようになりました。近い将来、学校の正規の授業で「プログラミング」が導入されます。本格的に学びだせば大人ですら理解が難しいのがプログラミング。ここではそんなプログラミングについて、全体像をつかんでおきましょう。本記事は、TechAcademyのはじめてのプログラミングコースのカリキュラムを元に執筆しています。プログラミングとは、端的に言えば「コンピューターにどんな処理をさせるか、人間が命令すること」です。対人のように口頭で指示はできませんから、「プログラミング言語」という特殊な構文を使います。プログラミングを習得する場合、この「プログラミング言語」を学ぶことになります。現代でプログラミングはとても重視されていますがそれはITの発展に伴い、Webサービスを作る需要が増大しているからです。そのサービスを作るのがプログラミング言語の役割です。いえ、マイナーなものを含めると優に100~200種類はあるので、到底すべてを学ぶのは不可能と言っても過言ではありません。プログラミング言語を学び、習得することにはどんなメリットがあるのでしょうか。3つのメリットをまとめてみました。サラリーマンであれば、休みの日や隙間時間を使ってプログラミングの学習をすることおすすめします。見出しにもある通り、プログラマーは高収入を狙うことができるからです。して高収入を狙うことができるのか。それは現在のプログラマー市場が需要過多の傾向にあるからです。どのプログラミング言語の需要があるのかについては次章で述べますが、今日本では、プログラマーの数が足りていないのです。「こんなサービス・アプリがあればいいのになぁ」と日常生活で思うことを自分の手で作り上げることができます。あなたが不満や不便と思っているものをあなたが作ったアプリやWebサービスによって解決できるのであれば、それはとてつもないビジネスチャンスとなるのです。自分が勤めている会社が倒産して明日から職がないという状態に陥ったとしても、プログラミングスキルがあれば常に需要のある市場で再就職、もしくはフリーランスとして働くことができます。手に職をつけるという意味ならプログラミングほど食いっぱぐれないスキルもなかなかありません。プログラミング言語は100種類以上もあるのか。それは、プログラミングで解決するべき課題があまりにも多種多様すぎて、ひとつの統一言語では対処できないからなのです。それぞれの問題にもっとも適した言語を作っていたら、いつの間にか膨大な数になりました。これらのプログラミング言語の発達は、アメリカのIT企業と切っても切れない関係にあります。今でも使われているプログラミング言語は、ほぼすべてアメリカの企業が発祥と言ってもよいくらいです。最初のプログラミング言語はFortran(フォートラン)と言って、IBMの技術者が開発しました。プログラミングに欠かせないCとC++は世界的な電話会社、ベルシステム社の研究所で開発されました。Javaはサン・マイクロシステムズ社、JavaScriptはネットスケープコミュニケーション社。コンピューターの発達がアメリカで盛んだったことも大きいのでしょう。マイクロソフトのC#や、GoogleのPython、アップルコンピューターのSwiftなど、有名どころはすべてアメリカ発です。近年でもFacebookがHackという言語を2014年にリリースしています。これからもアメリカがコンピューター産業の中心地であるかぎり、アメリカ企業によるプログラミング言語開発が続くはずです。日本人が開発したRubyなどの例もありますが。本場アメリカで今後も発展するものと思われます。プログラミング言語が使われるためには、満たさないといけない条件がいくつかあります。使われる言語は、それらの条件をひとつかふたつ以上満たしています。C++,C#,Java,JavaScript,PHP,Ruby,Pythonあたりでしょうか。条件とは、「メモリを食わない」「正しく動作する」「エラーを修正できる」「読み取りやすい」などですが、知らない人にとっては、なんのことだかさっぱり分からないかと思います。プログラマーの中でもすべての言語に精通している人はなかなかいませんので、完全な説明はできませんが、その時々の時流や、会社によって必要な言語も違っていたりするので、将来どんな言語を勉強するか決めないといけません。以下に代表的なプログラミング言語を紹介してゆきます。読み方は「シープラスプラス」あるいは「シープラプラ」と呼ばれます。商用プログラミング言語のなかで、一番メジャーな言語です。どんなものに使われているかと言うと、例えばWindowsのOSですね。OSはC/C++で記述されます。家電の制御や、自動運転のプログラミングにまで使われるというので、本当に万能な言語です。CというのはC言語のことでC++のもとになった言語です。C言語は、他のプログラミング言語の元にもなっているので、C/C++/C#のようなC言語をマスターすれば、およそコンピューター上で動くものはなんでも作れるといっても過言ではありません。マスターする難易度もかなり高いですね。読み方は「ジャバ」です。似たような名前の言語にJavaScriptがありますが、それとは全く別の言語。これも需要の高い言語です。身近なところだとTwitterや、大ヒットゲーム「マインクラフト」はJavaを使って作られていますね。特徴としては、動作が高速であることと、動作環境を選ばない便利さがあります。ユーザーとしても、画面が固まったり、環境が変わると動かなくなる・・・なんてことが無いのはありがたいですよね。サービスを利用するお客さんをイライラさせない高速性能が求められるサービスではよく使われます。AndroidのスマホアプリにもJavaを使って作られていることがほとんどです。Webサービスと、Androidアプリの開発に向いてる言語といえるでしょう。読み方は「ルビー」です。Rubyは1993年、日本で生み出されました。日本産のプログラミング言語としては、初めて国際規格になった、珍しい言語です。最大の特徴は、開発スピードが速いこと。日本人が開発したこともあってとても読みやすく、少ない工数で仕上げることができるのが魅力。WebサイトやWebアプリ開発で使われます。有名なWebサービスだと、クックパッドや食べログ、楽天市場などがあります。Railsというフレームワークで使われることが多いです。学習する内容も他の言語と比較するとハードルが低く、初心者でも身につけやすいでしょう。ホームページ構築において、動的なページを作るときによく使われます。「動的なページ」とは、例えばコメント欄があったり、ログインフォームがあったり、検索機能が使えたりするページのことです。ユーザーが何らかの行動を起こす余地のあるページですね。WikipediaやWordPressはPHPで作られています。これらはユーザーが記事を編集したり、検索したり、そういうアクションをすることが多いサービスです。同じホームページを作る言語としてHTMLがありますが、これは静的なページを作るのに使います。PHPはHTMLと併用できるので、ほかの言語と一緒に使われることがとても多いです。習得する難易度も低めなので、これからプログラミングを始めようと思っている方はPHPから勉強してみると良いかもしれません。読み方は「パイソン」です。Pythonはオランダ人が開発した言語ですが、とにかく読みやすさを重視した設計になっていて、大変取っつきやすい。標準ライブラリが多いことも特徴です。標準ライブラリとは、最初からその言語に組み込まれているプログラミングのデーターのことですが、これがあると、全てをゼロから打たなくてすむので、作業の効率化になるんです。プログラマーの労力に配慮した言語と言えるでしょう。有名なサービスを挙げると、DropboxやYouTubeがあります。少ない人数で迅速にサービスを構築できるので、新興ベンチャーのサービスに多いですね。今Pythonは機械学習の面で注目を浴びています。機械学習とは、つまり人口知能やロボットの開発の分野です。ビッグデータなど統計を行う際にも使い勝手の良い言語なので、そういうサービスを開発したい方は、身につけておきたいプログラミング言語でしょう。Webの世界というのは移り変わりが激しいので、今後使われなくなる言語や、ここにない新しい言語が誕生する可能性は十分にあると言えます。プログラマーやIT業界の就職・転職を目指すなら、そういった情報には敏感でいたいものですね。プログラミングの知識を持っていればプログラマーとのコミュニケーションもしやすいですし、普段触っているWebサービスの裏側が理解できるはずです。新しい技術が生まれていく中でどんな言語で作られているのか、どんな技術が使われているのか理解することはIT業界にいる上ではとても重要でしょう。これからプログラミングを勉強してみようかな、と思っているあなたに向けてプログラミングの学習法をご紹介します。プログラミングを初心者が1から勉強することはかなりハードルが高く、独学だと躓いてしまい途方にくれることが多々有ります。多少のお金を出すことも辞さない方には、プログラミングスクールに通う事をおすすめします。最近プログラミングスクールの数は増えてきています。あなたが学びたい言語や時間的制約を加味してスクールを選びましょう。プログラミングスクールに通うほどのお金がなかったり、自分のペースで勉強したいと思ったりするあなたには独学がやはりオススメです。独学には2つのタイプがあります。1つは参考書等の書籍ですね。自分の学びたい言語やレベルに応じた参考書を購入しましょう。ここではRubyとPHPの参考書をピックアップしています。次にWebサービスです。無料のものから有料のものまで存在します。無料のサービスを利用してみて、レベルを上げたい時に課金してみる手法などいいかもしれません。こちらもオススメのサイトを載せておきます。スライドとすぐに手を動かして確認。プログラミング初心者セミナーは沢山あります。そんなセミナーや勉強会を利用する学習法です。1回単位ものから複数回をセットにしたものまで幅広くあります。スクールに比べて受講者数が少ない傾向が多いため、先生に質問をしやすく、また受講者同士でのコミュニティに参加することができるでしょう。以上、プログラミングとは何なのか、どうやって学べば良いのかといった全体像を説明しました。これからプログラミングが必要となる仕事は多いですし、ロボットやAI(人工知能)など人間の仕事を奪う機械もプログラミングによって作られています。好き嫌いもあるので、全員が習得すべきだとは思いませんが、これからの時代プログラミングを知っておいて損はないでしょう。TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。夏の陣!」を開催しました。コンピュータクラブハウス加賀は、ふるさと納税の仕組みを活用したクラウドファンディングを活用して資金を調達し、2019年5月にオープンした米国発の子ども向けのテクノロジー施設です。プログラミング教育に力を入れる加賀市がNPO法人みんなのコードに委託する形で、運営されています。プログラミング教育は2020年に小学校でも義務教育として取り入れられることが決定しているが、この義務教育化に先んじて独自の取り組みを行っている自治体は日本全国では増加しています。2019年2月4日~3月25日の間に行われた、2018年度(平成30年度)教育委員会等における小学校プログラミング教育に関する取組状況等について」と題したアンケート調査によると、回答をした教育委員会のうちすでに「授業を実施している」割合が52.0%に達しているようです。数値の上では多くの自治体でプログラミング教育が実施されているが、一方で課題も多く最も大きな課題は、実際のプログラミング教育をどのように行ったらよいのかというノウハウと、人材を有している自治体がほとんどないことです。した状況の中、加賀市の取り組みは他の自治体には見られない特徴的な仕組みが注目を集めています。加賀市が、プログラミング教育に力を入れだしたのは2016年からです。この背景には、金沢から南にある石川県の自治体の中で、加賀市だけが消滅可能性都市としてみなされており、その状況を打破するためには「人材教育」に力を入れるべきだと、加賀市長を務める宮元陸氏によって唱えられた方針があります。この方針を受け、宮元市長からの協力を要請されたのがNPO法人みんなのコードで代表を務める利根川裕太氏です。2016年の5月、加賀におけるプログラミング教育の必要性を感じた宮元市長は即座に利根川氏に連絡をとり、その月のうちには会談を開催しました。Code)」の教材を解説する体験会を実施、というベンチャー顔負けのスピード感で加賀市におけるプログラミング教育のプロジェクトが立ち上がりました。その後もプログラミング教育は加賀市において順調にすすみ、2017年度からは、加賀市立のすべての小中学校で、総合的な学習や技術の時間に、年間5時間のプログラミングの授業を実施するようになりました。2019年5月には公設置民営の仕組みで、日本初の「コンピュータクラブハウス」が設置されるに至りました。コンピュータクラブハウスとは、1993年に米国・ボストンで初めて設立され、子どもたちに「いつでも」「安全に」テクノロジーを知ることができるようにすることを目的としたコミュニティです。世界各国にすでに100か所以上の拠点が開設されているが、日本ではこれまで実績がなく、2019年のコンピュータクラブハウス加賀が最初の拠点として開設されています。気になるのは、今回の授業の内容です。通常、小学生向けのプログラミング教育では、「ビジュアル型プログラム言語」と呼ばれるプログラムコードの記述がなくても、視覚的な操作でプログラミングが可能なプログラミング用のソフトを用いた内容のものが多くなっています。今回の授業では、一般的なビジュアル型プログラム言語ではなく、Webサービスなどでよく利用されるJavaScriptを用いた、プログラムコードを実際に記述して、シューティングゲームを開発するものとなっています。プログラムの教え方も実に実践的です。いったように、実際のゲームで必要な処理を、プログラムに置き換えながら解説して、各自がコードを書いていく形式となっています。一つ一つのゲーム上の動きがどのようにプログラムによって置き換えられていくかを意識しながら学習していくことで、ゲームとコードとの対応が理解できるようになっています。次のようなゲームの処理をコードにしていきます。〇自機をマウスと連動して移動させる。〇自機が弾を打てるようにする。〇敵機が弾を打てるようにする。いったように、普段意識しないで遊んでいるゲームを、一つ一つの処理や判定として分解していき、対応するコードを記載します。工夫点として、アルファベットを打ち続けるのは集中力が持たない子もいるので、『まずはプロダクトを作り切る』ところに重きを置きそれが体験できる仕組みになっています。コードはある程度ライブラリーとしてまとめられており、それらをコピー&ペーストしたり、一部の内容を変更することで、正常に動くように準備されています。途中つまずく生徒はいたものの、最終的には全員の画面上に正常に動くゲームが映し出されていました。今回講座に参加した児童は小学5年生~中学3年生までの総勢14名。プログラミング経験のある生徒は一部であったが、みな「ゲームを作れる」というところに興味をもち、参加をきめたとのことでした。「自分でゲームを作ってみたいと前から思っていた。ビジュアル型のプログラムはやったことがあったが、自由度はコードを直接書いた方がやはり高い。ゲームバランスを自分の思うように調整したりしてみたい。「Javaをやったことはあったが、JavaScriptは今回初めて。今後TechAcademyとしては、今回のような自治体と連携したプログラム教育のオフラインの場を増やしていきたいと考えています。今回授業を行った加賀市とは以前にも共同でプログラミング教育の取り組みをしているが、今後は、単発のイベントで終わるのではなく、継続的に子どもたちが学べる環境や仕組みを作っていくことをしていきたいです。今回は実際にコードを描く形式の授業であったが、TechAcademyとしては学習の手段はこの形式にとどまらず、ビジュアル型プログラミングや、ロボット、IoTなど様々な選択肢の授業にも取り組んでいきたいと考えています。TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。イベントレポート「プログラミン」をやってみた!【文科省の子供向けプログラミング学習サイト】プログラミング学習サービスが最近注目を集めていますが、文部科学省が開発したサービスがあります。最近では、宇宙兄弟とコラボレーションしたコンテストも開催しており、活用が進んでいます。「プログラミン」という子ども向けのサービスで、内容としては子ども向けプログラミング言語のScratchによく似ていて、ビジュアルプログラミング言語とも呼ばれています。そこで今回は、プログラミンを実際に使ってみた体験レポートをお届けします。そんな声をよく聞きます。いう特徴を持ったIT教育環境です。プログラミングが義務教育にと言われている昨今、未来のソフトウェア産業の担い手の子どもたちが、こういった親しみやすい環境に手軽に触れられるのは大変有意義だと感じます。特別な機械も、ソフトウェアのインストールも不要です。今使っているブラウザさえあれば始めることができます。「プログラミン」は思い立ったらすぐ始められます。この差はとても大きいです。覚えるために分厚いマニュアルを読む必要もありません。プログラミンには動画のマニュアルがありますから、見るだけで作り方が覚えられちゃいます。お手本がたくさん用意されているので、これを動かしたり、ちょっと自分流に変えるだけでも充分理解する事ができます。これならすぐ始められますね。プログラミンに触れてみて、他のプログラミング環境と大きく異なる点がありました。それは、普通のプログラミング言語は「文字を書く」ことでプログラムを組み上げる事に対して、プログラミンは「絵を組み合わせる」ことでプログラムを組み上げることです。画面に文字ばかりだと、飾り気がなくて楽しくなさそうですよね。プログラミンは絵も動くし音も鳴るので、プログラムを作ること自体がインタラクティブで、ゲームで遊んでいるような感じなんです。実際に使ってみて強く感じた事ですが、絵による効果は楽しそうに見えるだけではなく「より直感的」で「覚えやすい」ことも特筆すべき点です。子どもは楽しい事はスポンジのように吸収しますから、楽しくて覚えやすい事は大変重要です。絵を書きながら学べるプログラミング言語のVISCUIT(ビスケット)も子ども向けにおすすめです。Railsオンラインブートキャンプを開催しています。CORPORATION.。