【IT】プログラマーだけではない、全ての人がPythonを学ぶべきたった1つの理由
■ このスレッドは過去ログ倉庫に格納されています
「Pythonはどうしてこんなにはやっているんですか」。プログラミングを最近学び始めた人と話をしていて、そんな質問を受けた。自分としてはPythonを学ぶ意義は自明だと思っていたが、プログラミングにあまり詳しくない人にはそうでないのかもしれない。
私は、2019年10月上旬に開催されたイベント「日経 xTECH EXPO 2019」で、「非プログラマーがPythonを学ぶ意義」と題して講演した。そこで今回のコラムでは、この講演のプレゼンテーションを基に、Pythonを学ぶべき理由を説明したい。
ただ、内容を少しだけ変えようと思う。講演では非プログラマーを対象にしていたが、今回のコラムではプログラマーを含めたすべての人を対象にする。Python以外の言語を使っているプログラマーにとっても有用な内容だと思うからだ。講演では、非プログラマーがプログラミングを学ぶ意義を最初に説明したが、その部分は省略する。
Pythonが得意とする分野
世の中にはたくさんのプログラミング言語がある。よく使われているものだけでも、C、C++、C#、Java、JavaScript、PHP、Python、Ruby、Swiftなど様々だ。マイナーな言語も入れると数え切れないくらいある。
プログラミング言語を「汎用プログラミング言語」と呼ぶこともある。どの言語を選んでも、理論的にはどんなロジックでも記述できるという意味だ。この特徴を「チューリング完全」と呼ぶ。チューリング完全でない言語は、普通はプログラミング言語とは呼ばない。
もっとも、言語ごとに得意分野は存在する。例えば、「ある分野で言語Aを使うと処理を一から書かなければならずシステムの開発が大変なのに対し、言語Bは豊富なライブラリーを持つため簡単にシステムを開発できる」といったことはよくある。また、「ある分野で言語Xを使うと高速に実行できるが、言語Yでは処理に時間がかかる」といったこともある。
具体的な得意分野を挙げよう。Javaはエンタープライズシステムの記述に多用されるし、JavaScriptはWebのクライアントソフトウエアの記述に主に使われる。Rubyで書かれたRuby on Rails(以下、Rails)というフレームワークは、Webアプリのサーバー側システムの開発に使われる。Swiftは、iOS向けのアプリ開発に使われている。
では、最近注目を集めているPythonの得意分野は何だろうか。それはずばり人工知能(AI)である。
以下ソース
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00682/111900020/ グルー言語としての能力はどのスクリプト言語も大差ないand好みの問題だから、
結局マジョリティ志向になってしまうな PythonはAI手段の一つに過ぎないしそのAIもまた目的のための手段の一つに過ぎないだろ
飯を食う事が目的なら剣でも槍でも鍬でも鉋でもいいと思うが。 >>76
65までプログラマって続けられるもんなんだなー >>1
pythonマスターしたけど、組み込み系ではC++が成長株、Linux C++出来る技術者が足りないとか言われる。 テキストエディタでチョロっと書いただけで動けばいいのに
環境構築とかめんどいわ
ライブラリとかなんやねん デフォルト引数の定義のアレも気に入らんし、
メソッド第1引数もなんであんな仕様のまま放置してんのかと >>51
Linux Cの技術者は腐るほどいるが、人余りなんだよな >>83
組み込みにAIは重すぎる。
簡易AIのロジック組んだソフトぐらいが限界。 >>84
俺も50超えたけど何とか生き残ってるわ
早くにファイルやBTreeあたりからRDBへ切り換える仕事がWindowsとセットになって出来たのが大きかったな
俺も>>76さんといっしょでPHPとJavaScriptでもういいかなって思ってるわ この意味の万能性って、何も言っていないに等しい
2本脚があれば、大陸の端から端まで行けるというような話だから 今のご時世、「Javascript」と言われたら、
どこからどの辺まで含むのかもやもやする。 >>57
マイクロソフトは
Windowsを正常に動くようにする事が先だよ。
頻繁に再起動するOSで開発なんてできたもんじゃない。 何がいいかはコミュニティが決める
それについてくだけ >>76
Pythonはいまだけの可能性
もっといいやつ出ればAI絡みは別言語へ乗り換える可能性
いつやるの? 今でしょな言語 いまさらな記事。
だから何だよ。
5年前に書いてれば褒めてやったけど。 ゼロからやるならまずライブラリとか無しでBASICで
ループとかGOTOとか A=A+1とかを理解して
次に C をやって、 次にアセンブラ<-->機械語 で簡単なプログラムを組んで
実際の仕事では Cや構造化やオブジェクト指向のあるC++だな
Pythonは知らんが Cを知らんと何をやっても 基礎がわからんだろう ぱいそん笑
こんなんに振り回される馬鹿がまだいるんかw
C++だけでいいんだよ >>99
歴史に順を追えって訳だな。ピアノの練習っぽいな。 作りたいものから使いたいライブラリ・フレームワーク選んで
必要なら新しい言語を学ぶという流れ。 python2と3で互換性がないのに、ネットには情報が混在してる
perl最強!
perlにできなくて、pythonならできることってあるの? 非プログラマーならvbaとpowershellで自分が必要なことすれば十分だよ。それ以上は趣味だな。 >>1
さらっとRuby書いてるけど誰も使ってねえからw perlにはpandasやnumpyみたいなライブラリはあるんかい?
ワシのバイオの分野では一時期流行ったみたいで、perlで書かれた
スクリプトが結構あるし、perl使いもまだ多いようだが。 つまり、ちょっと前はvbscript最強、perl最強、php最強、java最強とかきたよね。そのときの時代の旬、いまはAIなのかもしれんが、そのAIについてDL方面のパッケージが充実してるから必然的にpyオヌヌメになってるだけで、pyそのもの自体がオススメってわけじゃないよね。 >>108
Rから統計関係やりだしたので、pyはRにあとから真似してくる感じがある
アドホックにやるならRstudioでreport生成しちゃう。
pyはproductionになったときにRをpyに書き換えるといいらしい。 >>108
細かくはみてないがPDLモジュールはnumpy相当なのかなぁ。 >>105
winサバ管ならそうだね。vbscriptもやる。
lnxもやるんで、シェルスクリプトやperlもつかってる。シェルスクリプトが一番出番がおおいかも。pyも書くけど。 個人的には、数学関係ならjupyter notebook + Rから入るのが一番だと
思う。pandasのDataFrameはRを参考にして作られているので、Rが使えれば
Pythonの主要ライブラリのpandasも理解しやすかろう。 >>106
rubyすげーもちあげられてるけど、使ってるひとみたことない。redmineつかいたくて仕方なくいれてるけど。
会社にいる海外勢はpyつかいがおおいかも。 >>85
組み込みって知識かなり必要な割に年収低いイメージ >>113
pyで統計やりたいひとがnotebookいれるのに、anacondaいれるQIITAの記事がたくさんあるが、あれは罠だとおもう。重すぎる。さくっと使えないとね。
統計のみさくっとやりたいなら個人的にはR(R studio)なんだが、将来つぶしがきくのはpyかもしれない。
Rかいてもだれもメンテできないし。 その昔、「administrator」の綴りがわからないのに、WindowsのSEだと名乗るひとがいて、おもいっきり裏でこけにしてたのおもいだした。使えねえーくせに給料だけたくさんもらってんだろうな。くそが。 ワシもQIITAの記事などを参考にして、anacondaや小さいminiconda入れたり、
WSLやhyperVやオラクルの仮想マシンを導入したりしてPythonの学習を始めた
けど、今はほぼGoogle Colaboratoryオンリー。入門には十分すぎで、セットアップ
の必要もほとんどない。これがタダなんて、Googleは神。ちなみに、Rも少しいじれば
使える。 Webアプリ(webサイト)作りたいだけでrubyしか勉強しなかったけど
C++極めたら 十分だと思う
皆欲しいでしょ?C++の出来る人 >>120
perl より読みやすく
大抵のことが一応できる >>85
pythonなんか覚えても
現場で要求されてないからなぁ・・
求められるスキルは何かってことだな
まあ俺も趣味でやってるし venvとかvirtualenvとか初学者にはわけわからん。
そんな仕組みを用意してる時点で、バージョン間の互換性を無視してる。
1年前にかいたプログラムが、来年動かないとか普通におこる どんなことでもできるヤツに命令できる権限があればおk。
自分でやろうなんてむだ。 >>124
それあった方が幸せなのに初学者なら先輩の工夫に従え >>126
USB知らない大臣かパソコン使えない経団連会長は過去の人 >>127
言語は上位互換にするという先輩の常識に従いたまえ >>127
そんな工夫を用意したのは言語の互換性がクソだからだよね。
仮想環境考えた先輩は尊敬するが、pyそのものの言語仕様を考えてる人がクソなのではないかと思うんですけどね。 >>129
権限さえあるなら細かいことはどうでも良いし、やらせればいい 言語とかいい加減統一してくれよ
覚えるのしんどくなってきた >>115
組み込みは…
今日び、IoTなものを作れという話になることが多いので、なかなか大変なんですわ。
先方のサーバーと接続して一発テストというわけにもいかんので、
テスト用の疑似サーバーも用意せねばならん。
表示デバイスとキーがあってきれいなGUI作れって言われたり、
USBメモリにデータ書き出せるようにしてくれとか、さらっと言われたりもする。
で、そんな現場に、大学でで習ったから C言語はばっちりです!みたいな新人が
やって来て、C言語すら怪しいことが発覚するゴミコードを量産して頭を抱える
…そんな今日この頃w ブログラマだけがreferenceおっかけてて、いつも苦労する。
その上薄給だし。
会計士にでもなったほうがよかったかな。 >>131
互換性だけのためじゃない
ライブラリ衝突が避けられる
それはpython単体の話じゃないからな
現実的な解決策
しかも複数プロジェクトや同一アプリ複数バージョン開発に対応するもの
初学者は視野後狭いんだから文句言わず先輩に倣えばいいだけ
文句言うならそれ以上のものを現実に提供しろってことだ >>100
まぁAIやら数値計算とかいうなら基本C++だろうね
適材適所ってやつ >>134
怖いよね
いま、そういう使えない人をうっかり採用しないために、そのひとのgithubのレボジトリとか
コントリビューションがどうなのか、
実績みせてもらうのが確実だよね。 >>136
従ってるよー(><;)
でも初心者に最適って推してるわりに、最初つまずくポイントが意外と多い、そんな感想だよ。ネットで拾ったpy2のコードをpy3で動かそうとして、意味不明なエラーとたたかっちゃうんだyo 「○○すべきたった○つの理由」とかいうタイトルの記事って読む価値ないだろ ライブラリの開発の速さが速いってことなんだろうな。互換性気にしてたら、いいものがすばやくつくれない。なので、仮想環境という仕組みが生まれた。
そういう、文化的背景を知らしめないとなぁ。 言語なんてどれも一緒。
重要なのはデザインパターンとイベント処理。 AIAIうるせぇから、今更ながら少し勉強するかと思ってるけど
そうなるとやっぱりpython一択なのか? さてと、あしたも、Rでしごとしてるふりしてバックテストですよwww
FXの投資ロジック検証たのしいよ。 仮想環境は、素人ならconda( anacondaかminiconda)にしよう。anaconda なら
jupyter notebookも使えるし。numpy, pandasなどよく使うものみんな入っている。
そんで十分のはず。使いやすいよ。pipもcondaで入れるんだ。
Windowsなら、WSL + conda でしょう。おかしくなったら、仮想環境をもう一度
作り直すか、WSLの再セットアップ。 >>140
他の言語でライブラリ地獄をお愉しみください。 >>140
合わないと思うならやらなきゃいいだけのこと >>124
てか初学者なら不要だぞそれ
なんか教科書がボケてんだろ
かあてずっぽにネットでみてこけたあんたが初学者以前だ >>148
って書いてあるからcondaやったらそのあとOpenCVでハマった >>146
AIってこの程度なのかと知ることがまず第一歩 >>120
クラウドとaiのlibraryはパイソン向けが多いだけ condaはあくまでも素人向け。ややこしい依存関係とかあるのを使うなら、
Dockerが必要。condaは複数のチャンネルからインストールすると、はまる
ことがある。試行錯誤も必要。 paizaラーニングは、オンラインでプログラミングしながらスキルアップできる、プログラミング入門学習コンテンツです。
Python×AI・機械学習入門編
Pythonを使用して、機械学習の基本について学びます。
Python3入門編
書きやすく、直感的に理解しやすいと言われるPythonの初歩を学びます。
コードガールこれくしょん
遊びながらプログラミング力を鍛えられる!簡単なプログラミング問題をクリアして電脳世界に平和を取り戻そう!
エンジニアが死滅シタ世界
20XX年、エンジニアだけが20XX年、エンジニアだけが感染するウイルスによって荒廃した世界。美少女アンドロイドとの旅が今始まる…。
一攫千金プログラミング
AIディーラーと勝負するコードを育てよう!ギャンブルbotを作って世界中のユーザーとランキングを競い合え
ロジックサマナー〜閃光の召喚プログラマ
君が書いたプログラミングコードが召喚魔法になる!初心者から上級者まで楽しめる異世界ファンタジーゲームです
「もし女」新感覚開発シミュレーション
楽しく華やかな環境での業務シミュレーション!paizaランクB〜Dの難易度のプログラミング問題で構成。
恋するハッカソン〜君色に染まるアイドル〜
プログラミングでアイドルを育成できる!豊富なボイスとBGMがゲームをさらに盛り上げます!
プログラミングで彼女をつくる
プログラミングであなた好みの彼女が作れるゲーム!!アンドロイド彼女をかわいく着せ替えちゃおう!
https://paiza.jp/works HSP Dishでスマホのゲームを制作、販売してニート脱出を試みる
https://sinsei.space/blog/category/android
3年ぶりのメジャーリリース「HSP 3.5」が登場、「HSP3Dish」はRaspberry Piにも対応
2017年10月23日
https://forest.watch.impress.co.jp/docs/news/1087542.html >>16
要は複雑で精緻な部分はAIが補完してくれて
人はだいたいのやりたい大枠を示せばいいだけみたいな? C言語が一番汎用的じゃねーの?
Cできれば職はいくらでもある >>131
他の言語にもにたようなものはある。
rubyにおけるrbenvとかね。
pythonだけの問題ではないのでは? 勝手にシャローコピー
勝手にグローバル変数
インデントレベルの違うところにコピペが終わってる たった一つの理由とか、そう言う下らないタイトル止めろ! python, pythonいうてるけど、Perlの方が何倍も難しくて
何倍もまともに書けたらすごい、Pythonは他の言語より簡単なんで
他のがかける人はpythonをかけて当たり前、覚えることは少ない 30年以上も前のSFのパクリタイトルとか
お若い方には新しいのだろうか 猫も杓子も人工知能人工知能ってw
相場予測でもなんでもいいけど、
一つでも金を生み出すもんつくったんかおんどれらわw Perlができなくて、PHPやPythonじゃないとできないことってあんの?
その逆はたくさんありそうだけど。 一般人がこのプログラム言語を習得して何になるんだ? 結局アルゴリズムの概念は0、1の世界なんだよな
高級言語なら例えBASICでも問題ない
論理回路を文章化する言語などなんでもいいんだよ ■ このスレッドは過去ログ倉庫に格納されています