コンピューター ウィンドウズ インターネット

プログラムを書くための高級言語。 プログラミング言語の選択。 プログラミング言語レベル

さまざまなプログラミング言語とその応用分野。 Yandexでの講義

今年の最初の投稿は非常に基本的なトピックに専念することにしました。その講義はSmallSHADで行われました。 テクノロジーに興味のある高校生が取り組んでいるため、プレゼンテーションの特異性があります。プログラムを始めたばかりで、開発の方向性を考えている人にとって、講義は特に興味深いものになります。 彼らのために、Yandexには「プログラミング入門(C ++)」というコースがあり、Stepic.orgプラットフォームで受講できます。

プログラムとアプリケーションの範囲

コンパイルサイクルを作成すると、プログラム開発に多かれ少なかれ深刻な遅延が生じる可能性があります。 それらの構文は多くの場合人間の言語に近いため、経験の浅いプログラマーでもプログラムをすばやく読むことができます。 さらに、それらは多くの場合、低レベルのプログラミング言語のみがライブラリを介してのみ提供できる構文要素を提供します。 最良の例組み込みのハッシュ配列です。 スクリプト言語はほとんど恥知らずですが、これは長所であり、短所になる可能性があります。

講師MikhailGustokashin-Yandexのアカデミックプログラムのキュレーター、HSEのコンピューターサイエンス学部の学生オリンピックセンターのディレクター。 ミハイルは、全ロシアプログラミングオリンピアードの数十人の受賞者と受賞者を訓練してきました。

講義の枠組みの中で、プログラミング言語とは何か、それらがどのように異なるか、それらがどのように表示され、どのプログラミング言語が優れているか、そしてどのプログラミング言語が悪いかについて説明されています。 最初に、言語の歴史について少し話します-言語がどのように出現したか、人々がどのようにプログラムを開始したか、すべてがどのように発展したか、現在何が起こっているか。 第二部では、どの言語が適しているか、「好きな言語を選んで人生を楽しむ」方法について触れます。 講師はまた、彼の意見では、これらすべてを学び、仕事を得る方法について少し話します。

スクリプト言語は、多くの場合、組み込みのメモリ管理を提供し、ポインタ演算を提供しません。 特にデータ集約型のタスクの場合、スクリプト言語の速度の欠点が明らかになります-この欠点を回避しようとするさまざまな方法があります。

コンピュータの短い歴史の中で、何百ものプログラミング言語がすでに発明されています。 ただし、いつでも、人気のあるプログラミング言語はおそらく12個しかありませんでした。 プログラミング言語とプログラミング言語が表示されます。 それらのいくつかは本当に有名ですが、それらのほとんどはそうではありません。 優れたプログラミング言語のリストは変化していますが、それは非常にゆっくりです。 ほとんどのプログラマーは多くを学び、使用します 異なる言語彼のキャリアの中で。 しかし、主なアイデアを理解すれば、比較的簡単に学ぶことができます。 新しい言語ラテン語は、さまざまな新しい言語をより簡単に学ぶのに役立つと言われています。

いつものように、カットの下には講義の詳細なトランスクリプトがあり、その内容をナビゲートできます。

プログラミング言語の歴史

最初から始めましょう。 当初、コンピューターにはキーボードすらありませんでした。 つまり、すべてが非常に悪かった-彼らはキーボードやスクリーンを持っていなかった、彼らはパンチカードを持っていた(これらは穴があるか穴がないようなものです)。 したがって、ピンがそこに突き刺されたか、ピンが光で輝いていました。 穴がある場合(またはその逆)、それはゼロまたは1を意味します。 そして当時のプログラムは機械語を使って書かれていました-コンピューターの各操作(足し算、引き算、もっと複雑な操作)にはある種の機械語がありました。 人々自身がプレートからこのコードを選び、メモリ内のあらゆる種類のアドレスを手でノックアウトし、リーダーに押し込みました-そしてそれはすべてカウントされました。 もちろん、プログラマーの仕事はおそらくそれほど面白くなかったでしょう-穴を開ける-そしてもちろん、科学技術の発展とともに、彼らはあらゆる種類のより「面白い」ものを思いつき始めました。 たとえば、アセンブラ(Assembler)は、すでに少し楽になりました。

さて、彼はどのようにして人生を楽にしましたか? チームにはある種の「魔法の」コードがあったことを思い出す代わりに、「人間」に似たあらゆる種類の単語が使用されました 英語-いくつかの追加または移動-次に、これらの操作を実行する必要のある変数であるレジスタまたはメモリ領域が列挙されました。 しかし、これは一般に、私たちがどのレジスターに何があり、どの変数がどこで一般的に何が起こるかを覚えておくために十分な量の精神的努力を必要としたことは明らかです。 なぜこれが起こったのですか? コンピュータは「愚か」で、これ以上「賢い」ことは何も理解できなかったからです。 実際、アセンブラからマシンコードをコンパイルするのにも時間とメモリがかかります(もちろん、当時は十分ではありませんでした)。

後で最も人気のある言語のいくつかを見ていきます。 しかし、これに慣れていない場合は、自問してみてください:コンピュータに簡単なコマンドを与えるだけなのに、なぜこれほど多くの異なるプログラミング言語があるのですか? すべてを実行できるプログラミング言語が1つないのはなぜですか? まあ、この言語は存在します。 しかし、これはそれらの1つではありません。 ラップトップ、スマートフォン、サーバー、または私の冷蔵庫を含むすべてのコンピューターは、これらのスマートなコンピューターの1つである場合、小さな頭脳、組み込みの中央処理装置を備えています。

日常生活では、コンピューターが理解できるコードを書いている、または厳密に言えば、ほとんどが正しくないコードを書いていると言います。 これらは、コンピューター上で直接実行される唯一の真の命令です。 したがって、疑問が生じます。なぜ機械語を書かないのですか? まあ、それは不可能だからです。 これらは数値演算です。 最小の指示コンピュータ内で可能な限り最小のレベルで実行されます。 コードはマシン専用であり、私たち人間用ではありません。 コンピュータモデルが異なれば、コードも異なります。

次第に、そのような大規模で複雑なプログラムを開発することは非常に難しいことが明らかになりました。 これらのコマンドでのプログラマーの生産性は非常に低く、つまり、彼は1日に数行(意味のある)を書き、各行は特別なことは何もしませんでした-いくつかの単純な算術演算。 そして人々は、プログラムを書くのをより簡単で便利にするために、言語を人間の言語、特に英語にもっと似たものにしたいと思っていました。 そして、私たちは行きます!

コンピュータプログラムを機械語に書くことは、古いスプーン、小さじ1杯のアルミニウムだけでアルプスを通るトンネルを掘るようなものです。 理論的には考えられますが、実際には不可能です。 すべてのプログラミング言語は実際にはトレードオフです。 それらは、コンピューターと人間の間のギャップを埋めるために発明されました。 一部のプログラミング言語は、機械語に非常に近いものです。 次はおそらくアセンブラーです。 一般に、言語が機械語に近いほど、プログラミングが難しくなり、使用しているハードウェアについて知る必要があります。

古くて死んだ言語

Fortranは最初の言語の1つになりました。 ちなみに、彼はパンチカードにもノックアウトされました-Fortranプログラムをノックアウトするための特別なパンチカードがありました。 しかし、今このFortranを使用すると、私の意見では、50〜60の間ですらあります。 登場しました-そしてそれに何かを書いてみてください、それはあなたにとって非常に不快になるでしょう、私はあなたを保証します! 現代のFortranは今日でも生きていますが、以前とはかなり異なります。

他の言語-今、あなたがおそらく聞いたことがあることを1つ書きます。それから、プログラミングの歴史について語るイベントでのみ、これはCOBOLです。 それはビジネスアプリケーションを書くための言語でした。 ビジネスアプリケーションとは何ですか? 銀行での取引、何か他のもの、これはすべてコボルで書かれました。 もちろん、あまり人気がありません。 モスクワのコボルでプログラマーを見つけることはほとんどないと思います。 そして、モスクワ以外のどこかで-さらに困難に。 しかし、驚くべきことに、10年前でさえ、人類によって書かれたすべてのコードの半分以上がCOBOLで書かれていました。 そして今まで、すべての銀行取引のかなりの部分は、そこに書かれたプログラム(COBOL)を使用して実行され、今でも人々はそれに何かを書いています。

プログラミング言語は何のためにありますか?

これが私たちが低水準言語と呼んでいるものです。 この言語は高級言語と呼ばれます。 理解とプログラミングがはるかに簡単です。 しかしもちろん、コンピュータがあなたに代わってそれを翻訳しなければならないので、それらは実行が遅くなります。 ただし、現時点では速度は重要ではありません。そのため、このチュートリアルではこれらの高級言語に焦点を当てています。 ただし、何を記述しても、実行する前に必ずマシンコードに変換する必要があります。 したがって、マシンコードは非常に重要ですが、私たちは気にしません。

「面白い」言語もあり、それはアルゴル(その作成の年を特徴付ける68番目のバージョン)と呼ばれていました。 これはアルゴリズム言語です。 一般的に、彼らはそこで何かをすることができましたが、今では彼らが何ができるかについてはあまり興味がありません。 そして、これは古代と比較的使用されていない言語への私たちの遠足が終わり、まだ生きている(そして活発に生きている)ものに移ることができる場所です。

私たちは問題が何であるかを理解する必要がありますが、プログラミングは私たちにとって意味があります:私たちは書く ソース..。 このいわゆるソースコードを書いています。 私たちはコードを書き、コンピューターがそれを翻訳してくれます。 これを説明するには、コンピューターがどのように機能し、プログラミングが何を意味するのかを知る必要があります。

コンピュータは多くの部品で構成されていますが、最も重要なのは中央処理装置とも呼ばれるプロセッサです。 彼はタスクを計算し、コンピューターの作業を部分的に調整します。 何かをプログラミングしている場合は、実行するコンピューターに指示を出します。 プログラムされたプログラムがインタラクティブであるために、入力、結果は私たちが画面上に、またはプリンターからのシートの形で見るものです。 それはインタラクティブではないので、それは入力のないゲーム、ゲームのないゲームになります。 入力にはさまざまな種類がありますが、最も一般的に使用されるのはキーボード入力です。

古いが生きている言語

Algolはヨーロッパで発明され、Fortranは主に米国で使用されました。大きな違いはありません。 どのような傾向が見られますか? 最初は、すべてが困難でした。書くには、ほとんどエンジニア、電気エンジニアであり、どの接点が閉じられているか、そしてプログラミングのために何か他のものを理解する必要がありました。 それからも、葉っぱと一緒に座って記憶を数え、世話をする必要がありました。 そして徐々にすべてがより単純に、より単純に、より単純になり、そしてプログラマーにとってさらに簡単になりました-人にとって可能な限り考えを少なくし、可能な限り自動的に行うこと。 この期間の終わり頃(講師はAlgolとKobolを指しています)、ある意味で今日まで「生き残った」言語が現れ始めます。

ベーシック。 おそらく、まだ何かを書いている人もいるとのことです。 少なくとも一部の教育機関では、QBasicで教えていることがわかりました。「1989」と表示されている青いウィンドウです。 一般的に、彼は「力と主力を持って」生きています! それは非プログラマーのための言語として発明されました。 当時、プログラマーは非常に専門的な職業でした。 そしてここで彼らはあなたにこう言います:「ここに私たちはクールなBasic言語を持っています、そして合理的な人なら誰でもそれでプログラムを取りそして書くでしょう-簡単に」。 繰り返しますが、そのBASICと最新のBASICは大きな違いです。 これらの行はすべて10ごとに番号が付けられ、あらゆる種類のGOTOやその他のホラーです。これらは最新のBASICとは関係がなく、89のBASICともほとんど関係がありません。

プログラミング言語の歴史

プログラミング、入力の処理、および論理演算と数学演算による出力の生成。 プログラミング言語はテキストであり、コンピューターがそれらを読み取って実行します。 しかし、ドイツ語や英語のテキストを書くほど簡単ではありません。単語がわからないため、外国語の中国語のようです。 プログラミング言語では何も説明できません。プログラミング言語は、コンピューターへの指示を示すことだけを目的としており、小さな「辞書」しかありません。 つまり、「空は青い」などの単純なものは、何も知らず、ほとんどしか考えられないため、コンピュータには理解されるべきではありません。

もう1つの面白い話は、主にロシアや旧ソビエト連邦の国々で大学界で広く知られているPascal言語です。 驚くべきことに、教育言語として使用されてきました。 他の世界では、それはあまり一般的ではありませんが、それはまた生きていて元気です。 そのような人のワースがいます-ここで彼は科学者、理論家です。 彼はAlgolの議論に参加し、何が起こったのか気に入らなかったので、自分の言語であるPascalを思いついた。 そして、ボーランドの会社(そしてその前に他の多くの会社-特にアップルが従事していた)はすべてを取り、台無しにした。 彼は美しい理論を持っていて、ほっそりしていて、「すべてがうまくいく」と彼らは人々が仕事に必要なものをそこに持って行き、詰め込んだ。 まあ、それは彼が望んでいたほどうまくいきませんでした。

どのプログラミング言語ですか?

今日のプロセッサは、約90の命令を理解できます。 これらのコマンドは人間が理解するのが難しく、誰もプログラミングできないため、高級プログラミング言語が開発されています。 これらは、アセンブリ言語とも呼ばれる低レベル言語と比較してよく理解されており、90を超える事前定義されたコマンドを提供します。 計算速度が速いことが利点です。

上位プログラミング言語と下位プログラミング言語の違いは何ですか

まず、より深いプログラミング言語は機械語に近く、通常はコンパイルされます。

そして最後に、。 Xiはエンジニアによって発明されました。 パスカルが科学者によって発明された場合、Cはカーニハンとリッチーによって発明され、彼らはベルでエンジニアとして働いていました。 それはどのようにして起こったのですか? 当時、これらの言語で体系的なものを書くことは不可能でした(講師はFortran、COBOL、Algolを指しています)。 「全身」とは何ですか? たとえば、オペレーティングシステム、一部のドライバ、その他のものです。 これらの言語は、数学、ビジネス、その他すべてのもののためのものでした。 そして、他のすべてはアセンブラーで書かれました。 いくつかの言語がありましたが、それらは現在は機能していません。つまり、C言語はアセンブラーからすぐには表示されませんでしたが、いくつかの中間的なものを介して表示されました。

コンパイルは、実行可能な機械語またはバイトコードへの翻訳です。 バイトコードは機械語より上にあるため、インタープリターが必要です。インタープリターはコードを機械語に変換します。 これの利点はプラットフォームに依存しないことであり、オペレーティングシステムごとにインタプリタをプログラムできます。 欠点は、特にゲーム開発において、インタプリタ言語がコンパイル言語よりも遅いことです-コンパイル言語を使用するための重要な議論です。 また、低水準プログラミング言語には 自動コントローラーメモリですが、プログラミングするときは、必要なメモリに対処する必要があります。これにより、速度が向上する可能性がありますが、注意が必要です。

本質は何ですか? カーニハンとリッチーは小惑星のおもちゃをプレイするのが大好きでした。小惑星が飛んでいて、小惑星があり、彼はそれらを撃ち、それらはバラバラになります。 彼らは彼らが遊んだサーバーを持っていましたが、そこにはたくさんの人がいて、おもちゃは遅くなりました。 そして、彼らはオフィスのどこかに、誰も使用しないある種のコンピューターがあることを知りました。 しかし、問題がありました-それは異なるアーキテクチャのものであり、ゲームはアセンブラーで書かれていました。

高度なプログラミング言語は、初心者に特に適しており、初心者にはデータ型が独立しているためです。 データ型に依存しないということは、変数が数値、文字、その他のいずれであるかに関係なく、プログラミング言語が重要であることを意味します。

プログラミングには何が必要ですか?

たとえば、スクリプト言語とは異なり、値のタイプを事前に知っておく必要があります。 プログラムをプログラムしたいとしましょう。 何が必要? まず第一に、あなたがあなたのプログラムを実行したいのであれば不可欠なコンピュータ。 実際、ほとんどプログラミング言語の知識しかありません。 だから、あなたは間違いなくすべてを手に入れました、あなたがエディタで書かなければならないものだけです、今あなたは驚くかもしれません。 コマンドは、「文法」とプログラミング構文でプログラミング言語を特徴付けるものです。

もちろん、彼らはそれを書き直しました、彼らはそれで遊ぶためにいくつかの機能を切り詰めさえしました。 しかし、これにより、毎回新しいアーキテクチャに書き直すのはあまり賢くないと彼らは考えました。 そして彼らは、システムプログラミングに適した高級言語を書くことに決めました。つまり、メモリを管理でき、何かがどこにあり、これらのメモリにアクセスする方法を理解できるようになるでしょう。 。 そのため、C言語が登場し、その後すべてに大きな影響を与えました。 それらのすべて(講師はAlgol、Fortran、および他の言及された言語を指しています)は大きな影響を及ぼしましたが、C-はい...

なぜ文法? 繰り返しますが、文法なしでドイツ語のテキストを書くことは難しくありません。 構文は完全に異なります 異なる言語プログラミングですが、プログラミング言語を使用できるのであれば、新しい言語を学ぶのはそれほど難しくありません。 なぜ構文なのか? コンピュータは命令の開始と終了を認識しないため、命令の開始位置と終了位置をコンピュータに通知する必要があります。 これは、セミコロン、ピリオド、段落、およびさまざまな角かっこで行われます。

プログラミング言語にはどのような要素がありますか?

しかし、これらは「文法規則」のほんの一部ですが、これがすでに家賃の半分になっていることがわかっている場合。 プログラミング言語が説明しなければならない要素はたくさんありますが、それらはすべてあまり役に立たず、混乱するだけです。 代わりに、あなたは今何かをプログラムする方法を知っているべきです、あなたはただ基本的な要素について知る必要があります。 ご存知のように、コンピューターは何も理解していないので、プログラマーはコンピューターに数学的な条件を与えて、コマンドがあることを説明しようとします。プログラミングする場合は、数学と論理を十分に理解する必要があります。

したがって、これはUnixの主要言語であり、当時は現在よりもさらに人気のあるオペレーティングシステムでした。 そして80年代頃までに、状況はこのようなものになりました(講師はBasic、C、および言及された他の言語で表示されます)。 これらすべてがすでにずる賢く死んでいるとしましょう(講師はアセンブラー、Fortran、Algolへの参照を消去します)...そして80年代に、コンピューターはより小さく、よりスマートに、より安くなり、人々はあらゆる種類の奇妙なことを順番に望んでいましたより良く生きるために、さらに楽しく生きるために。

変数は、数値、文字列、またはブール値をプログラムに格納する方法です。 ほとんどすべてのプログラミング言語では、変数はプログラミング言語の最も重要な部分であり、特定の値で置き換えることができる「プレースホルダー」のみがインタラクティブなプログラムを作成できます。

プログラミング言語とは

条件はリクエストであり、それが適用されると、条件内にあるものが実行されます。 条件を作成する演算子があります。 演算子は次のようになります:等しい、等しくない、より大きい、小さい、真および偽。 ループには、ループに属する条件が真である限り実行されるコードが含まれています。 たとえば、10回は、開発者がコードを10回記述する必要がないという利点があります。

80年代のネイティブ言語

最初の奇妙な点の1つは、C ++言語でした。 C言語には、非常に多くの欠点があります(まあ、一般的には非常に大きなものです)。脚を撃つ、フィクションを使って脚を撃つ、もう一方の脚を撃つなど、何でもできます。一般的に、片方の足をもう一方の足に入れます。これはあなたがやりたいことです。 しかし同時に、いくつかのアーキテクチャ上の作業はかなり難しい場所で行われます。アセンブラの場合と同様に、現在の場所、割り当てたメモリ、および割り当てたメモリを追跡する必要があります。 このメモリがどこかに「流れる」ことは常にあります。つまり、選択した、削除するのを忘れた、間違ったものを削除した、メモリが不足した、一般的には、たくさんの問題が発生しました。

C ++は元々、開発を容易にするC言語への追加のセットとして作成されました。 当時、オブジェクト指向プログラミングが流行し、人々はすべてを階層形式で記述できると判断しました。つまり、ボール(抽象)があり、そこからサッカーボール、バレーボール、別の抽象ボールを継承します。 。 「今、私たちはすべてをある種の階層の形で書き、すべてがうまくいき、人生が改善され、すべてがうまくなり、すべてがうまくいく」というのが流行でした。 ある意味で、C ++はこのオブジェクトアプローチを実装しました。これは最初のオブジェクト指向プログラミング言語ではありませんでしたが、非常に人気があり、あらゆる種類の機能が登場し始めました。 同時に、C ++は(当時)C言語とほぼ完全な互換性を保持しており、Cで記述されたプログラムは99%のケースでC ++として正常にコンパイルされ、同じように機能しました。 これは、CからC ++への移行を容易にすることを目的としています。

関数は、いつでも呼び出すことができるコードのコレクションです。 たとえば、コードが関数に書き込まれる場合、コードはそれほど頻繁に記述されるべきではなく、対応する関数名を介して呼び出すことができます。 パラメータを使用して関数を呼び出すこともできます。 この数値は、関数で変数として使用できます。 たとえば、同じ関数を使用して、同じ数式を持つ複数の請求書を計算できます。

私のまだ完成していないゲームのソースコードを見たい場合。 現在のゲームのバージョンがあるサイトへ。 このウェブサイトでは、母にとって最適で満足のいく方法で、魅力的なデザインとウェブサイトの多くの機能をプログラムして表示する必要がありました。

オブジェクトアプローチ(C ++)に加えて、標準テンプレートライブラリ(STL)がすぐに登場しました。 学校で、まだPascalを教えていた人は、最初に、そこに組み込みの並べ替えがないことを発見したと思います(古代の青いBorland Pascalでは、現在はすでに現代版になっています)-例(ソース)の並べ替えがあります、コピーして貼り付けることができます。 しかし、ここで整数を並べ替えたい場合、ここでは実数が必要であり、ここでは互いに比較できる文字列があります。まったく同じことを行う3つの異なる並べ替えを作成する必要がありました。 他の種類データ。 これはあまり良くありません。C++ですぐに表示されなかったテンプレートにより、この問題ははるかに簡単になりました。 つまり、互いに比較できるものを正常にソートする抽象プログラムがありました。

90年代からのスクリプト言語

しかし、時間が止まらず、80年代には多くの興味深いことが起こりました。 しかし、80年代と90年代の変わり目のどこかで、コンピューターは非常に良くなり、非常に奇妙で非常に効果のないことを行うことがすでに可能になりました。 特に、これらはマシンコードにコンパイルされていないが解釈されたスクリプト言語でした。 BASICもいつか解釈されましたが、これらのスクリプト言語は主にテキスト処理を目的としていました-たとえば、Perl、Python(当時はあまり有名ではありませんでした)、PHP、Ruby-これらはそれらは1つまたは異なる程度でまだ生きています(それらはすべて2000年より前に、さらにははるかに早く出現することができました)。

これらは特定のものであり、現在多くの場所で使用されているため、少し詳しく見ていきましょう。 アイデアは何ですか? コンパイルしない場合は、さらに多くのことが許可されます。 たとえば、プログラムはそのコードを見て、どういうわけかそれを使用することができます。 彼女は自分の中で何が起こっているのかを知っており、これにより彼女は多くの興味深いことをすることができます。

Perlはワードプロセッシング用に設計されました。当時、コンピュータにはすでに大量のメモリがあり、テキストを詰め込んでこのテキストを使って何か便利なことをすることができました(たとえば、単語を数えたり、ある種を検索したりします)。 しかし、私の意見では、「書かれた文字のセットはすべてパールの正しいプログラムです」というジョークがあるため、少し頭がおかしい人々によって設計されました。 私の意見では、あなたはそれを書くことしかできず、読むことはできません。 Perlのコードを見て何かを理解しようとすると、何もわかりません。 彼のことをもっとよく知っていれば何か理解できるかもしれませんが、それでも方法を知っている人たちから聞いたところ、書き直しの方が簡単だと言われています。 つまり、プログラムは短く、そこにあるものを見つけて修正するよりも書き直すのが本当に簡単です。

この頃、90年代半ばにインターネットが登場しました。 最初はメール、静的HTMLのサイトでしたが、人々はそこに何らかのダイナミクスを追加して、すべてが動的に行われるようにしたり、いくつかのフォームに入力したり、ゲストブックを作成したりすることを望んでいました。 したがって、これにはある種の相互作用が必要であり、プロトコル、それがどのように相互作用するか、そして最も重要なことに、ユーザーの要求に応じてユーザーに「吐き出される」これらの静的(条件付き)ページの生成を考え出しました。

一般的に、当時はパールしか適していませんでした。 純粋なCまたはC ++ハンドラーで書くのは悪い考えでした。 そして、当時(そして十分に長い間)より良い言語がなかったため、PearlはWeb開発で人気のある言語でした。 もちろん、その規模は現在起こっていることに匹敵するものではありません。

PHPは...偶然に生まれました。 ある人はすぐにこれをやめました-彼はある種の彼自身のページを作りました、彼はある種のゲストブック、何か他のもの、いくつかのものを持っていました。 そして、彼はパールのためにある種のマクロのセットを書きました。それは、彼がとても快適だったという理由だけで、Cの使い方を知っていたので、Cのように見えました。 そして私はそれを個人のホームページと呼んだ。 共有して言った:「人々、私が書いた作品を見てください。ここではすべてがパールよりもはるかに明確であり、あなたはそれを編集することができます。」 そして人々はそれが好きだった。

それから彼は事件を取り下げた。 一般に、その結​​果、このPHPは機能し始め、時間の経過とともにPerlよりもはるかに人気が高まりました。 しかし、彼のこの「誕生のトラウマ」(アイデアはパールのマクロのセットのようなものです)は、彼とかなり残酷な冗談を言いました。 その言葉は奇妙であることがわかった。 つまり、それはそれ自体で開発され、誰もそれを設計せず、誰も開発プロセスを管理しませんでした(会社も人も)が、多くのグループがあり、それぞれが好きなものを見ました。 その結果、そこでの関数の呼び出し方法が異なり、スタイルすらなく、すべてがアンダースコアで示されます。一般に、設定はあちこちにあり、すべてがどのように機能するかはあまり明確ではありません。 しかし、彼が意図した方法であるため、座って2時間でPHPで書くことができます。

PythonとRuby:Rubyは現在あまり人気がなく、Pythonはどういうわけか「カット」されています。後で説明しましょう。 当時、これらは(講師がPerl、Python、Ruby、PHPを指して)高度に専門化された目的のための高度に専門化された言語であったことは明らかです。 一般に、当時はシステムプログラミングもビジネスロジックも書かれていませんでしたが、今ではほとんど機能していません。

90年代からコンパイルされた言語

ほぼ同じ時間ですが、反対方向に進みます。 当時、私たちはC ++を、Web用ではなく、テキスト処理用ではなく、単純なアプリケーション用、オペレーティングシステム用、おもちゃ用、一般的には何にでも書く必要のあるほとんどすべてに使用していました。 しかし、C ++は実際には不気味な言語です。 どうして? なぜなら、最初に、彼は 下位互換性すべてのCの問題。 まだ百万人が殺される可能性があります 違う方法、Cにあったものと同じもの(もちろん、新しい方法がC ++に追加されました)。 同時に、C ++の作者が考えたように、すべてを上手く正しく書くと、もちろん、古い方法で自殺することは不可能であり、それらの数は少なかったようです。 しかし、それは非常に奇妙なオブジェクトモデルを持っていました。 プログラムをモジュールに分割し、ある種の断片に分割するのはCから来ました(CまたはC ++でincludeを記述できる場合、実際には、ライブラリのテキストをプログラムに挿入するだけであると考えられていました。たくさんのインクルージョンを書くと、すべてがあります-それが最初のように「プリミティブ」である場合-すべてが1つのファイルに挿入され、その後、コンパイルに非常に長い時間がかかります。 。バージョンはさらに優れています。

一般に、C ++には多くの欠点があります。 C ++で書くためにはプログラマーの資格が高くなければならず、そのようなプログラマーは高価でした(トレーニングと何か他のものの両方、つまり、市場でプログラマーを見つけるのは難しく、彼らは多額のお金を払う必要があります、まあ、一般的に、これはそうではありません...)。 そして、私たちのコンピューターはますます速く数えられ、安くなり、人々は自分で新しいコンピューターを購入し、より多くのアプリケーション、より多くの電話用おもちゃ、一般的にはより多くの喜びを求めています。

これがJava(Java)の登場です。 そこにも、この言語で名前がどのように表示されたかという、かなり面白い話がつながっています。 プログラマーもいて、いつもコーヒーを飲んでいて、当時はジャワ島で育ったコーヒーを飲むのが流行っていました。 この言語は、組み込みの電化製品、特にコーヒーメーカーの言語として考案されました。 これがその名前の由来です...
彼女から何が始まったのか、彼女の何が良かったのか、そしてなぜ彼女はそれほど人気を得たのですか? 最初に、彼らはシシュニーの遺産を完全に取り除きました。 ポインターがなく、体のあらゆる部分を撃ち落とし、すべてを壊す方法がはるかに少なくなります。 次に、オブジェクトモデルに関して、はるかに最近のアイデアを紹介しました。つまり、C ++はJavaよりもはるかに早く登場し、より古風な「ワイルド」オブジェクトモデルを使用していました。 さて、ここ(講師はJavaを指しています)では、それはすでにもっと考え抜かれていました。理論的には人々は考え、実際にはすべてをもっとクールに適用して実行しました。

そして最後に、3番目。 私たちのJavaプログラムは、マシンコードではなく、仮想マシンのコードにアセンブルされました。 つまり、JVM仮想マシン(VM)-Javovskyがありました。 あなたのプログラムはある種の中間プレゼンテーションで集められ、そしてこのマシンの助けを借りて、それらはすでに実行されました。 それは何をしましたか? 第一に、速度が低下し、第二に、ひどい力でメモリを食べました。第三に、コーヒーメーカー、コーヒーグラインダー、コンピューター、携帯電話など、どこにでも(理論的に)持ち運びできました。 一方では、これは良いことです。つまり、仮想マシンの実装を作成しただけで、Javaプログラムをどこでも実行できます。 しかし、その一方で、同じ電話のメモリがその時点でほとんどなく、パフォーマンスが低く、これらすべてがさらに鈍くなり、速度が低下し始めたのは悪いことです。

しかし、これでさえ、言語が一般的に発明された主な理由ではありません。 Java言語は、プログラマーの資格要件を減らすために考案されました。 つまり、貧しいプログラマーは書くかもしれません 良いプログラム Javaでは、悪いプログラムを書くことができないため、悪いプログラムを書く手段はありません。 あなたはそこでしかうまくプログラムを書くことができません。 さて、言語の作成者の理解において。

つまり、C、C ++、Pythonなど、何でも、プロジェクトからのある種の不気味なゴミを溶かすことができます。プロジェクトでは、すべてが混ざり合い、何時間も収集され、他の何かがあります。 Javaでは、ゴミ箱を溶かすこともできますが、そのためにはすでにある程度の努力が必要です。 つまり、デフォルトでは「ゴミの山」ではなく、何かが継承されている、または継承されているという他の問題が発生します。一般に、意味のある1行に対して、あまり意味のない行が10行あります。 一方、そのような中程度のスキルを持つプログラマーは、かなり高品質のコードを書くことができるかもしれません。
もうすぐ終わりです。 私たちと一緒に次に登場するのは.Net(到達する)です。特にC#に関心があります(ほぼ同じ[講師はJavaを指しています]。つまり、詳細に違いがあります。あなたはそれらの間で選択します-どこでより多くのお金を払うかを見てください)。

そしてもう1つはJavaScriptです。 同じ年に登場したJava言語とは何の関係もありません-その言葉はファッショナブルでした、彼らはライセンスを取得しました 商標使用する。

注意すべき主なことは何ですか? (講師はC ++からJava、.Net、C#、JavaScript、PHPに矢印を描きます)。 これらの言語の1つ、および他の多くの言語で簡単なプログラムを作成するには(C ++を知っている場合は、通常、他に何も知る必要はありません)、C ++で作成して作成し、最初にドルを追加します。 、何か他のものが小さなことをして、それはあなたのために何でも働き始めます(講師はC ++からの矢印が割り当てられた言語を指します)。 つまり、いくつかの単純な点で非常に似ています。 学校の問題、教育課題、その他の問題を解決する場合(大規模なプロジェクトを設計しているのではなく、数値を読み取り、コンソールに数値を表示し、他のことを行う1つのファイルがあります)、これらの言語にほとんど違いはありません。 JavaScriptとPHPが特殊化されていることは明らかであり、すべてが少し異なります。 そしてここで(講師はJavaとC#を指しています)、一般的にほとんど違いはありません。

それ以来、他にもいろいろな面白いことが出てきましたが、生きるか死ぬかは定かではありません。 彼らは現在、どのようなタスクに何を使用していますか?

タスクに応じた言語選択

ビデオカードのドライバを作成するタスクに直面しているとしましょう。 今日はどの言語を使いますか? (聴衆からの叫び:Java!)なぜ... Javaは素晴らしいのですが、RubyやPHPではないのはなぜですか? (講師は皮肉を込めて話します。)

低水準プログラミング

低レベルの何かを書いているなら、Cが最良の選択ですが、実際には、C ++がこれに使用されているという何かを聞いた(しかし見なかった)。 しかし、私はこれをほとんど信じていません。なぜなら、Cでは明確に制御できるからです-非常に多くのバイトのメモリを与えたので、そうなるでしょう。 そして、C ++(STL)では、文字列はどのように実装されますか? まあ、どういうわけか実装されています。 そして結局、そこで何がどのように起こっているのかわかりません。ビデオカードのメモリが不足するか、何か他のことが起こるかもしれません。 したがって、Cはまだ生きていて死ぬことはなく、そのようなシステムプログラミングタスクはまだ存在します-オペレーティングシステムを作成し、ドライバーを作成し、何か他のものを作成します-Cはこれに最適です。 さらに、今ではあらゆる種類のデバイスがあり(モノのインターネットはこれから来ると約束しています)、バッテリーで動作します(そして、当然、何百万ものデバイスがあり、すべてがこのモノのインターネットでハングします)、それらは非常に安価で、電力消費が非常に少ないはずです。 したがって、2 KBのメモリ、5 kHzのプロセッサ、もちろん、いくつかをねじ込むものがあります 仮想マシンまたは、スクリプト言語は近い将来機能しなくなります。つまり、Cで何かを書く必要があります。 そして今でも、たとえば、ビデオカード(OpenCLまたはその他のテクノロジー)での計算-彼らは彼らのためにプログラムを書くための新しい言語を思い付かない-彼らはそこでいくつかの大きな制限を伴ってCを行う。 人々がすでに方法を知っているという理由だけで、なぜ新しいことを学ぶのですか? 正式には、これはおそらく、ある意味でCでもあります。

Webプログラミング

新しいFacebookを書きたいとしましょう( ソーシャルネットワーク)。 これを何に書きますか? (聴衆からはHTMLとCSSについて話している。)HTML、CSSはデザインであり、写真や友達を追加したり、そこにコメントを残したりできるようにしたいと考えています。

スクリプトの部分、つまりクライアント側で何が起こるかについては、JavaScriptです。 また、JavaScriptが別の言語で生成されて送信されることもあります(スクリプトが生成されることがあります...この方法でロジックの変更を処理する方が簡単な場合もあります)。

驚いたことに、それはPHPで書かれています-そしてFacebookや他の多くの大きなプロジェクト。 もちろん、私はそれがまだうまくいくように、そして「tyap-blooper」が行われたようにではなく、私自身のもののいくつかを書かなければなりませんでした、しかし彼らはそれをしました。 基本的に、何を書くかは問題ではありませんが、Perlはお勧めしません。 もちろん、今ここで、誰もWeb用にゼロから何かを書くことはありません。 誰もが何らかのフレームワークか何かを書いています。 オンラインショッピング? オンラインストアのフレームワークをダウンロードしました。それだけで、オンラインストアを作成しました。

ビジネスプログラミング

次に、退屈な銀行のアプリケーションを作成します。 または、たとえば、SIMカードを販売している人がいますか? おそらくあなたは電話か何か他のものを買ったことがあり、彼らはあなたに言った:「システムがぶら下がっていて、私たちは何もできない」。 そのようなアプリケーションを何に書きますか? (Pythonについての聴衆からの叫び)Pythonでそのようなことを書くことはできません、あなたは何ですか?! Pythonでビジネスのために何かを書く価値はありません。 どうして? Pythonで何かを書くとき、書く過程でかなりの数のバグを見つけることができないからです。 Pythonはあらゆる方法で動的に型付けされます。一般に、バグを非表示にして、これらの曲がったユーザーがそこで何をしたのかさえ理解できず、すべてが壊れてしまうような状況でバグがポップアップするようにすることができます。 つまり、Pythonで自分用の小さなスクリプトを作成することをお勧めします。そこで何が起こっているのか、何が行われているのかを理解できます。 さて、または捨てるのが残念ではない何か:あなたはあなたの競争相手の前に何かを展開したいので、それが1回おきに壊れるとしたらどうでしょう。 あなたはPythonで書いた、それだけです-あなたは市場を引き継ぎました。 そして、たとえば、ある種の銀行アプリケーション(ローンを承認するためなど)など、長い間何かを作成する場合は、Javaで作成します。 深刻な問題、紙片、お金、文書などがありますが、すべてが壊れてしまうほど混乱することはできません。そうしないと、人々は気分を害します-彼らのお金はなくなってどこにも到達していません、文字列が数字に変わった瞬間、またはその逆の瞬間。 つまり、Javaを系統的に取り込んで、書き込み、書き込み...まあ、またはon.Netを使用するということです。原則として、このような状況も発生します。 もちろん、そこでも問題が発生する可能性がありますが、それでもこの可能性はやや低くなります。

陸軍、航空宇宙向けのプログラミング

今、彼らがあなたをロケットで月に送ることに決めたと想像してください。 ロケットモーターを制御するコードを書くために、どちらを使用しますか? どれどれ。 これはおそらく(講師がPerl、Python、PHP、Rubyで示しています)、それだけの価値はありません-速度が低下し、何か他のことが起こっています、まあ、一般的に、私はそのようなロケットで飛ぶことに同意しません。 C ++では? 正直なところ、C ++で自分を殺す方法は多すぎるので、私も信用しません。 あなたが宇宙のどこかにいるとき、それはあまり良くありません。

多分Javaで? そこにはすべてがかなり信頼できるようで、アーキテクチャは良好で、野生型や余分なメモリはありません。 最も重要な瞬間が来て、Javaが私たちのためにゴミを集めることに決めたとしましょう。 私たちは着陸して減速する必要があります、そして彼女は「いいえ、ゴミが出ています」のようです。 一般的に、あまり良くありません。

正直なところ、私はむしろこのプログラムをパスカルで書いてもらいたいと思います。 もちろん、私はパスカルがあまり好きではありませんが、どういうわけか、それはとてもクールでしょう。

ソフトウェア開発のために一度に複数の言語を使用する

さて、現代語について一般的に言われるべきこと。 今日、多くのプロジェクトは1つの言語で生活していません。つまり、ある言語で生活しているプロジェクト、別の言語で生活しているプロジェクト、3分の1の言語で生活しているプロジェクトがあります。 たとえば、大量の情報を処理するある種のWebアプリケーションがある場合、ディスクへのアクセス(データベースでさえも、データベースでさえすでに書き込まれているものをサポートしないほど巨大です)は、おそらくいくつかの低いレベルで書き込まれます。 -レベルCで、ディスクなどに非常に高速に書き込みます。 当然、プロジェクト全体をCで書くことは価値がありません。 たぶん、クイック呼び出しのためにCis関数を呼び出すJavaで書かれたある種の中間論理があります。 もちろん、フロントエンド(ユーザーが見ているもの)は、ブラウザー(JavaScript)によって直接実行されるもので、いくつかのスクリプトですでに記述されています。 そして、これらすべてが共存し、うまく相互作用します。

いくつかのアプリケーションの開発では、大きなものでさえ、時々人々は何をしますか? 彼らはPythonでプロトタイプを作成して(すべてがどのように機能するか)、スケッチし、ある種のアーキテクチャについて考えます。 書き込みは非常に高速です。プロトタイプを投入し、実験して、次のように述べています。 かっこいい!」 そして完全に書き直されました。 彼らは2回仕事をしたように見えます、それは2倍の時間がかかりました(まあ、1.5)。 しかし、違います! この方法は悪くないことがよくあります。たとえば、Javaなどですぐに何かを記述してから、「いいえ、リファクタリングしてアーキテクチャを完全に変更しましょう」と決定すると、費用がかかるためです。 10倍以上の時間..。 そのようなものも存在し、生きています。

プログラミング言語が成功するための条件

それでは、見栄えの良い言語が生き残れなかった理由、または非常に限られたスペースに住んでいた理由について話しましょう。 ワースは、アップル、ボーランド、そして彼のパスカルで何をしたかという悪い会社を見たとき、さらに良い言語、オベロンを思いついた。 それは非常にミニマルでした。つまり、コマンドはほとんどありませんでした(文字列?なぜ文字列が必要なのですか?文字の配列を作成します!)。 まあ、それができる範囲で、何かが彼のためにうまくいきませんでした。

もう一つ。 米軍もそれらを開発するように頼まれました かっこいい言葉、すべてが機能し、すべてを書き込むことができます。 その結果、エイダと呼ばれるかなり巨大な言語が生まれました。しかし、彼らはまだ何かを書いていますが、やはり軍隊だけのためです。

何が問題ですか? 当初はサポートしていなかったPythonなどの一部の言語が市場を乗っ取ったのはなぜですか? 設計も不十分なPHPも、それ自体で市場(ほとんど)を引き継いで獲得しました。 そして、あらゆる種類の数十億ドルが投資され(講師はエイダを指しています)、どこにも行きませんでした、何も起こりませんでした。 これの理由は何ですか? これは、これらの言語の周りにインフラストラクチャがないという事実によるものです。 つまり、言語は優れているかもしれませんが、ドキュメントがない限り、(Stack Overflowで)質問に答えることができるコミュニティがない限り、そして最後に、最も重要なのは、多数がない限りです。ライブラリの場合、言語は起動しません。 つまり、たとえば、OberonでWebサイトを作成したいとしました。 なぜだめですか? そして混乱が始まります...軽くテストするためにOberonでWebサーバーを起動することはできません。ライブラリはOberonにないため、接続できません。 そして、これはすべて、ある種の松葉杖を介して行われ、力はなくなります。一般に、サイトを吐き出し、Oberonではなく純粋なCで記述します。 そして、他の言語のライブラリを使用できる言語はうまく機能します。 速度が低下する場所でも同じPython。 さて、一般的に、ソートやその他のようなあらゆる種類の標準的なものはCで書かれており、彼(Python)はそれらと対話する方法を知っています。

JavaにはJavaNativeInterfaceもあります。 これは本質的にCです。つまり、これらの言語は既存のライブラリ(主にSishnyライブラリ)と対話できます(私の意見では、常に禁止したいのですが、まだ禁止されていないようです)。 そしてこれのために彼らは取り、働きます。 私があなたに伝えようとしている考えは明らかですよね? Cライブラリの接続方法がわからない言語で書かないでください。 さて、あなたが何かクールなものを楽しみたいのなら。 ええと、そして徐々に彼ら(言語)は彼ら自身の種類のインフラストラクチャーで大きくなりすぎています。 そして、彼らはどういうわけかよく生きています。

プログラミング言語とキャリアガイダンス

それでは、あなたが人生で何を望んでいるのかを理解する方法について話しましょう。 クールなものは何ですか? ある種のシステムプログラミングを行うことができますよね? そこでこれらのバイクを数えるのはクールです。クワッドコプターやいくつかのカメラなどを起動したいと考えています。 次に、Cがおそらくあなたの選択です。

人生で最も興味深いアプリケーションではないかもしれませんが、書きたい場合は、それらを設計し、すべてを考えて、ほとんどの時間座って退屈するためにたくさんのお金を稼ぐのはクールです(あなたは高品質のミスです)、ここにあります-Java、.Net。 あなたは銀行で働き、書き、白いシャツを着て9時に働き、良い給料をもらい、最高のJavaソース、.Net-sheepなどの推奨に従って書きます...

アプリケーション、ブラウザ、おもちゃなどを作成したい場合は、C ++が最適です。 あなたがウェブサイトを書きたいのなら、ここにあります、あなたが選んだ言語(講師はPerl、Python、PHP、Rubyで示しています)、大きな違いはありません。 唯一のことは、PHPはPythonの前に死ぬということです。したがって、新しいことを学ぶのが面倒な場合は、Pythonを学んでください。 大きな違いに気付くことはありませんが、長持ちします。

Rubyで何が起こっているのかも不明です。 さて、PHPは非常に単純なので、そこで再学習するのにそれほど時間はかからないので、すでに学習している場合はPHPを使用することもできます。

そして最後に、プログラミング言語のアプリケーションの別の領域があります-これは非プログラマーがそれらを使用するときです。 あなたが数学者、物理学者、化学者、アナリスト、誰でもあり、何かをすばやく計算し、いくつかのデータを分析する必要があるとします(生物学者の場合、たとえば、コマンドルスキー諸島に住むホッキョクギツネの数)。 これらすべてをExcelのテーブルにドライブするか、何かで分析することができます。 Pythonもこれに適しています。テキストの操作方法を知っており、ライブラリには統計などあらゆる種類のものがたくさんあります。 ある種の機械学習を実行し、データを処理し、予測する場合、これもPythonで最速で実行されます。 ただし、タスクは大きく異なることに注意してください。 たとえば、相場が常に変化している状況で取引所で即座に取引したい場合、Pythonで機械学習をどれほどクールに書いても、それをより速く書いた人は、すべてを早く購入する時間があります。彼らのアルゴリズムがもっと悪いとしても、あなたは数えられます。 したがって、これらの機械学習タスク(一部)でさえ、高性能(および非常に高い)を必要とし、したがって他の言語も必要とします。

あなたが欲しいものを知る唯一の方法は、すべてを試すことです。 今、私はあなたがすべてを試すことができる方法のビジョンの1つとしてそれを言います。 プログラマー、そして幸せなプログラマーになるには? そう。 ゼロから始めます。 ここでは、学校で数学、ロシア語、その他の必須および任意の科目を勉強しています。プログラミングの分野での知識は、ボードに反映されています(講師は空のボードを指しています)。 この瞬間..。 そして、あなたは幸せな人になり、好きなことをし、たくさんのお金を稼ぎ、自分自身を否定せずに幸せになりたいと思っています。

これを行う1つの方法。 もちろん、大学に進学しなかった人や、大学を卒業して億万長者や会社の経営者になった人など、さまざまな刺激的な話があります。 しかし、億万長者にならなかったかもしれないが、よく生きているほとんどの人々は、まだある時点で大学を卒業していることに注意する必要があります。

大学への入学(現在、学校で勉強しています)の状況はどうですか? あなたが学校にいる間、あなたは次のステップがそれを登録して世話をすることであることを理解する必要があります。 試験に合格するか、オリンピックに勝ちます。 試験では、Pascal、C ++(純粋なCを含む)、Python(これ以上は触れません)を使用できます。 オリンピアードでは、同じPascal、同じC ++、同じPython(彼の問題についてはこれから説明します)、そしてほとんどの場合、Javaがあります。 オリンピアードによってはまだ何が起こる可能性がありますが、本質ではありません。

言語の分布のグラフは、情報学の全ロシアオリンピックでどのように見えますか? クールなオリンピックであるオールロシアに参加する人々は、何を書いていますか? これは次のようになります(ここではPascalを意味し、ここでは約2000、ここでは約ゼロ、ここではC ++、ここでは2015です)。

2000年には、C ++で書いた人はほとんどいませんでした。 15年後、パスカルは現代的であるにもかかわらず、ほとんど誰もパスカルに書き込みません。 これはほとんどすべて同じことができる言語です。 誰もがこれを学ぶのが面倒になり、すべての新しいトレンドがあり、誰もがBorland Pascalで書き続けていますが、もちろん何もできません。 C ++では、人々はいくつかのソートアルゴリズム(STL)を作成します-素晴らしい、彼らはソート()を作成しました。それだけです。 パスカルでは、通常では、古いものでは、これは問題です。 彼らはいくつかのセットを書きました(必要です)-素晴らしい、彼らはそれをC ++で書きました、パスカルでも苦痛は続いています。 もちろん、新しいパスカルではこれを行うことができますが、実際にはお金がかかります。 気づかなかったかもしれませんが、気づいています。

Javaもありますが、Javaにはたくさんの文字があります。 大規模なプロジェクト用ですが、小さな使い捨てプログラムの場合は、たくさんあるのでかなり悪いことがわかります 余分な文字..。 しかし、書く人もいます。あなたはそれに書くことを学ぶことができます。 しかし、統一国家試験ではそうではなく、統一国家試験はほとんどの部分で合格する必要があります。

試験に最適なものは何ですか? 試験では、Pythonを学ぶのが最善です(あなたが何も知らず、学校で何も教えてくれない場合)。 試験のいくつかのタスクは完全に解決されています。 オリンピアードでは、Pythonが非常に遅いため、すべてがそこで解決されるわけではないため、一般に、C ++が(使用されている)ことがわかります。

したがって、あなたは言語のいくつかの小さなサブセットといくつかのアルゴリズム(おそらく)を研究し、オリンピックの卒業証書を取得し、高等教育を受けるために大学に行くために多くの問題を解決しました。

ここで、HSEがどのようにコースを構築しているか、言語の順序、応用科学部で応用数学とコンピューターサイエンスでどのように教えられているか、Yandexと私が行っていることについて説明します。 最初の学期-Python(完全ではない、学校でどのように学ぶべきかについて)とC ++(より広く、学校で通常教えられているよりもはるかに広い)。 急に入りたくなったら、怖がらないようにすぐに言っておきましょう。「なぜ、私はすでにこれをすべて知っているのに、なぜどこかで勉強するのですか? どこかに行きたい」と語った。 すでにうまくプログラミングする方法を知っている人のために、アルゴリズムの研究に直接行く機会があり、かなり理論的なトレーニングを受けています。 私たちは今それらを見ていません、これは(ボードを指します)中程度をプログラムするか、まったくプログラムしない人のためのものです。

最初の学期では、人々がプログラミングを学び、誰も特に気分を害しないように、Pythonの基礎を学びます。 Pythonが学校で教えられることはめったになく、ほとんどの人はPascalまたはC ++の知識を持っています。 それが大衆学校であるならば、基本的にパスカルさえ。 まあ、誰も気分を害しないように、誰もが新しい言語を学びます(彼らが平等な条件であるかのように)。 そして、C ++は、C ++からどこにでも移動できるからです。

次に、コース「アルゴリズム」と別のコースがあります コースプロジェクト..。 実装された古典的なアルゴリズム。 理論的には、何かを取り、複雑さを計算したわけではありません。 講義では、それを取り、複雑さを計算し、セミナーでは、それを取り、アルゴリズムを実装しました。 プロジェクトとは、生徒が何かを終えたことを行うことです。 たとえば、プロジェクトの1つは次のとおりです。数える...モスクワにアパートがたくさんあり、次のように理解しているとします。「ああ、不要なものがたくさんあるので、いくつか貸し出します。 そして彼らは価格を設定しました、そして誰もあなたからアパートを借りたくありません-おそらく高すぎます。 または、彼らはある種の価格を上げて、すぐにそれを外しました、そしてあなたは「ああ、私はおそらくそれを安く配った」と思います、そしてあなたも動揺します。 つまり、アパートを借りるのにどれくらいの費用がかかるかを計算する必要がありましたか? あなたはデータをドライブします-それはあなたのために見積もりを作成します。 そのようなサイトはいくつかのもので構成されていました:提案を取り、解析し、ある種の機械学習アルゴリズムを(おそらく)気取らずに適用し、何かを選択し、何かを運転し、数メートル、任意の数の部屋でできる美しいウェブフェイスを作成します、サウナの数、アパートのジャグジーの数、おおよその費用を見積もります。 つまり、ある種の完成品であり、あまりではありません 難しいこと..。 ここでは、(講師がアルゴリズムのコースを指し示している)コンソールI / Oを備えた非常に活発なC ++を意味します。 さて、ここ(講師は碑文「プロジェクト」を指しています)は、おそらくデータベース、おそらくテキストの解析、および他の何かを使用して、メンターの指導の下にあるものです。
次に、3学期が来ます-「コンピュータシステム」と呼ばれるコース。 理解するためのアセンブラはかなりあり(ごくわずかです)、純粋なCやオペレーティングシステムとの相互作用、本質的にはシステムプログラミングに似ています。 また、セミナーのプロジェクトも、すべてのネットワークインタラクションのトピックに関するものであり、非常に低レベルです。たとえば、rsync(同期、おそらくご存知でしょう。純粋なCでは、多かれ少なかれ、rsyncのアナログを記述してください。これは、すべてのファイルアクセスを含むネットワーク同期フォルダなどにあります)。

そして最後に、4番目。 何と呼べばいいのかわからないけど、これはウェブ開発など、実際の開発に必要な技術のビネグレットソースです。 つまり、これはデータベースの実用的なアプリケーションであり、これもプロジェクトで行われたものと似ていますが(講師は2年目のプロジェクトを指しています)、より詳細です。 つまり、そのような多かれ少なかれ具体的なことは、すでに実用的なプログラミングです。 これと並行して、理論はありますが、ここでは彼らも科学に携わっています。

そして、2つのコースの後、人々は興味のあることをするために分散します。なぜなら、このことはそのようなプログラミングの基本を非常に広くカバーしており、この時点で人々はすでにコンピュータシステムを扱いたくないことを理解しているからです(たとえば、システムプログラミングは好きではありませんでした)が、彼らはいくつかの理論的アルゴリズム、計算の難しさ、いくつかの新しいものを考え出すこと、分散することなどを扱いたいと思っています。 または、逆に、彼らはここにはあまりいないと思います( 講師はPythonとC ++の最初のコースラインを指しています)行き、次に( 講師は、システムプログラミングを備えた3番目のコースラインを指しています)-気に入らないので、バイトを数え、読み取り/書き込み、ストリーム、スレッドなどにあらゆる種類の制限を設定します。 そして、これに従って、人々はいくつかの方向を選択し、学びます。 つまり、原則として、「アヒルの子症候群」を発症しないようにするためです。最初にパスカルを見て、今は「パスカルは力です」と言います。 またはより高度な-あなたはC ++を見て、C ++は強力であり、他のすべてはあまり良くないことをみんなについて言い始めました。

ここでは、これをもっと広く見る必要があります(講師は黒板のコースのリストを指しています)-これは、特にHSEで選択された方法の1つです(最近登場したので、非常に現代的です)。 お互いを知る方法は他にもあります。 他の良い大学では、わずかに異なる順序で、他のアクセントが配置されています。 しかし、彼らはまた、彼らが持っているすべてのものを人々に知らせようとします。

プログラマーが仕事を探す方法

あなたはこれです( 講師はコースのリストを指します)すべてを行い、大学で勉強し、さらに2年間、より生産的に何かを勉強しました。あなたは仕事に行く必要があります。 使用するものをどのように選択しますか? 最初に、あなたはすべてを知るようになり、どこかに深く入り、あなたが何を愛しているのかをすでに知っています。 あなたは自然に好きなものを選ばなければなりません。 あなたが愛するなら、あなたはエネルギーを投資するでしょう、あなたはモチベーションを持ち、そして一般的にすべてがうまくいくでしょう。 それはお金だけではなく、あなたにとって面白くて楽しいものにすることでもあります。 さて、あなたはクールな会社に入りたいと思っています、仕事を得てください。 個人的にはどんな人に会いたいですか? たとえば、100人の学生が私のところにやって来ます。私は2、1人で仕事をしなければなりません。 なぜ彼らが来るのか、私は彼らが誰であるか、彼らは何であるか、彼らはどうですか? 最良の場合、彼らは大学で受け取った卒業証書を見せてくれます。 これはクールな卒業証書ですが、それほどクールではありません!」 ちなみに、私は間違っている可能性があります。 たぶん、その人はたくさんの自由な時間を過ごして、はるかによく学びました。

何が素晴らしいでしょうか? まず、最初から最後まで書いたいくつかのオープンソースプロジェクト。 データをすばやく読み取ることができるように、ある種のインフラストラクチャを実行している場合、または他の何かを実行している場合は、もちろん、何かオープンソースを書き込んでもらいたいと思います。 作られたウェブサイトではなく、トピックに関する何か。 なぜ私はこれに興味があるのですか? 私はあなたのコードを見ることができます、あなたがコミットした頻度を見ることができます、私はあなたがユーザーからのバグ、それを使用する開発者からのバグにどのように反応したかを見ることができます-すべてが書き留められています、私はすべてを見て考えます:「わあ、このバグここに2年間いませんでした。閉鎖されました。ここでは、ユーザーに無礼に答えました。それなら、他に何もしません」。 つまり、これはあなたの個人的なプロジェクトです。

次に、他に何がクールでしょうか? チームワークをどのように行ったか見てみたいと思います。 つまり、あなたは面接のために私に来て、次のように言います。 私はそこでデータベースを作りました、彼らはある種のことをしました モバイルアプリ、そしてそこで私たちのために働いていた男、女の子デザイナー、テクニカルサポートの男の子。 私たち5人がいて、素晴らしいプロジェクトを行いました。」 さて、私はあなたのプロジェクトが本当に何であるかわかります、私は言います:「あなたのものは何ですか?」 私はコードをもう一度見て、あなたが人々とチームで働く方法を知っていることを理解しています。

プログラマーは、ガレージに一人で座って(そのようなインディー)、どこかでライトが消えていて、誰とも話をせず、あごひげを生やして書いている人ではありません。 それでも、人とのある種の相互作用があります。 たとえば、上司と一緒に、時々あなたに罵倒するかもしれません(上司、彼らはそうです、いつも親切ではありません)。 そして、あなたは人々と一緒に働く方法を知っていると思います、そしてあなたが何らかの良いチームを持っているならそれは私を幸せにします。 良くなくても、持っていないよりはましです。

個人的に他に何が欲しいですか? あなたが大きなプロジェクトで自分自身を示した場合。 たとえば、Linuxカーネルに何かをコミットしましたが、システムプログラミングを行っている場合は、いくつかのバグを修正しました。 つまり、彼らはあなたが他の誰かのコードを読むことができ、それにいくつかの変更を加えることができることを示しました。 「ああ、確かに、あなたは何か複雑なことを理解し、いくつかのバグを修正しました!」 そして、私はそれについて非常に満足し始めています。 私が持っているので…まあ、わかりません…競合他社が彼に高い給料を提供したので私のプログラマーは辞めました、そして私は緊急に誰かを黙らせる必要があります-あなた。 あなたは最初から書いたように見えますが、他の人のコードを読んだり編集したりする方法がわからないので、私は腹を立てます。

そして最後に、特定の位置に応じて、他にもさまざまなことがあります。 あなたがジョブアナリストであるなら、Kaggleでデータ分析タスクを解決してほしい。 あなたがいくつかのアルゴリズム的な事柄に就職した場合、私はあなたにスポーツプログラミングでいくつかのアルゴリズムをやってもらいたいです。 そして最後に、職業について考え、面接がどのように行われるかを読んだら、そこにいる何人かの人々が大きな不満を表明していることに気づきました。 私はフクロウのように座っていて、趣味がないので答えません」-そして彼らはHRがこれをしていると思っています。 実際、彼らはあなたがどれほど友好的で適切かを理解しようとしています。 あなたが友好的で不十分な場合、あなたがどんなに天才で働き者であっても、優れた知識を持ったタフなスペシャリストであるとしても、チームがあなたと一緒に仕事をすることは難しく、あなただけでプロジェクトを引き出すことはありません。 また、ストレッチしても会社の負担が想像できます。 そして、あなたは明日来て、「私の給料を10倍に増やしてください。さもなければ、私はあなたを去ります」と言うでしょう。 当然のことながら、企業はこのような状況に陥りたくないのです。 したがって、自分自身での適切性と善意の育成は、ある種の専門的スキルの開発と同じくらい重要です(少なくとも)。

要約すると、あなたは何を言うことができますか? どの言語が良いですか、どれが悪いですか? さて、たとえばRuby、Python、PHPの間の言語のグループ内で、どれを選択しますか? もちろん、正解はPythonですが、実際、それらの違いは、許可されるバグの数、つまり5%、おそらく10%です。 つまり、PHPで作成された既製のプロジェクトがすでにある場合、「Pythonですべてを書き直そう」と言う人は誰もいないでしょう。 彼らはこう言うでしょう:「もっと多くのPHP開発者を雇い、PHPで書き続けましょう。」 素晴らしい、それは悪い選択ではありません。 突然プロジェクトを書き始めた場合は、今すぐPythonを選択するのが賢明かもしれないことは明らかです。 ただし、状況によっても異なります。 安価なPHP開発者がたくさん市場に出回っているかもしれませんが、Pythonの開発者は高価であり、「はい、テクノロジーはもっとクールですが、既製の開発者にお金を節約します」と思います。 そして、それはすべて、素晴らしいです、あなたはすでにそこに来て働いています。
JavaとC ++のどちらを選択するにはどうすればよいですか? はい、同じことが起こります。 どの言語で新しい大きなプロジェクトを始めるかを決める頃には、あなたは自分の専門分野の知識を身につけ、それができるようになると思います。 正しい選択..。 今のところ、まだその選択をする必要はないので、好きなことをすることをお勧めします。

基本は、すでに述べたように、プログラミングの非常に非常に基本的なもの(関数とは何か、ifとは何か、forとは何か、配列など)は、多かれ少なかれどの言語でも学ぶことができます。 たとえば、C ++では、多くのもののように見え、その中の詳細(このレベルで)が最も少なく、文字が不必要に書くことが最も少ないためです。 それでは、複雑なアーキテクチャのことを学ぶときは、これについて学びすぎて心配しすぎてください。 つまり、重要なことは-試してみて、好きなものを探して、それがすでに朝の4時であることに気付いたとき、そしてあなたがそれを好きだから楽しんで座って書く-それはおそらくこの瞬間ですあなたがあなたを見つけたこと...

初心者のためのプログラミング

そもそも、誰でもコンピュータを操作してプログラムを作成できると言いたいです。 作成用 コンピュータプログラムあなたは信じられないほどの知性や数学の学位を持っている必要はありません。 クラスをやめないように、何かを理解したいという願望と忍耐が必要なだけです。

プログラムを書く能力は、泳いだり、踊ったり、ジャグリングしたりする能力と同じスキルです。 一部の人々は他の人々よりもこれをはるかにうまく行うことができますが、適切な実践で誰でも特定の結果を達成することができます。 子供たちが幼い頃からプログラミングに堪能になるのはこのためです。 子供たちは必ずしも素晴らしいとは限りません。 彼らは単に新しいことを学ぶ傾向があり、間違いをすることを恐れません。

コンピュータは非常に複雑な電子モンスターのように見えますが、リラックスしてください。 インターネット上で必要な情報をすばやく見つけることができる検索エンジンの仕組みを正確に知っている人はほとんどいません。また、車の運転方法を理解していない人もいます。 同様に、コンピュータがどのように機能するかについての詳細に立ち入ることなく、ほぼ誰でもプログラムの作成方法を学ぶことができます。

一般的に言って、プログラムはコンピュータに特定の問題を解決する方法を教えます。 世界は問題に満ちているので、人間が書くことができるプログラムの数は無限大です。

ただし、1つの大きな問題を解決する方法をコンピューターに指示するには、通常、大きな問題を構成する一連の小さな問題全体を解決する方法をコンピューターに指示する必要があります。

実際、プログラミングはまったく難しくなく、神秘的でも超自然的なものでもありません。 あなたが書くことができるなら ステップバイステップの説明それは人があなたの家を見つけることを可能にするでしょう、あなたはコンピュータプログラムを書くこともできます。

プログラミングの最も難しい部分は、解決する必要のある問題を構成する小さな問題を特定することです。 コンピュータは絶対に愚かなので、あなたは彼らにどんな行動をとる方法を教えなければなりません。

プログラムを使用するよりもプログラムを作成する方が楽しいと思うなら、コンピュータプログラムを作成するために必要なものはすべて揃っています。 コンピュータプログラムの書き方を学びたいのなら、次の3つの資質が必要です。

追求。 あなたが非常にひどく何かをしたいなら、あなたは間違いなくそれを手に入れるでしょう(しかしあなたが違法なことをするなら、あなたは刑務所で多くの時間を費やす危険があります)。 あなたがプログラミングの方法を学びたいのなら、あなたがあなたの邪魔をするどんなに多くの障害があっても、あなたの欲求は間違いなくあなたを助けます。

好奇心。 好奇心の健康的な量は、この本を読んだ後でも、プログラミングスキルを実験して向上させたいというあなたの欲求を刺激する可能性があります。 好奇心により、プログラミングの学習は退屈でなく、より面白くなります。 そして、あなたが興味を持っているなら、あなたは間違いなくこれに全く興味がない人(例えばあなたの上司)よりも多くの情報を研究して覚えているでしょう。

想像。 コンピュータプログラミングはスキルですが、想像力はこのスキルをより洗練され、的を絞ったものにするのに役立ちます。 かなりの想像力を持った初心者プログラマーは、常にはるかに興味深いものを作成し、 便利なプログラム想像力のない素晴らしいプログラマーよりも。 プログラミングスキルをどうするかわからない場合、あなたの才能は想像力なしに死んでしまいます。

願望、好奇心、想像力は、すべてのプログラマーが持つべき3つの最も重要な資質です。 あなたがそれらを持っているなら、あなたはささいなことだけを心配する必要があります:どのプログラミング言語を学ぶべきか(例えば、C ++)、数学の何が悪いのかなど。

多くのプログラミング言語の中から、特定のタスクを解決するのに適した言語を常に正確に見つけることができます。 新しいタイプの問題が発生すると、人々は新しい言語を作成します。

もちろん、実際には、コンピューターは機械語と呼ばれる1と0の1つの言語しか理解しません。 通常、機械語で書かれたプログラムは次のようになります。

0010 1010 0001 1101

UN 1100 1010 1111

0101 ONO 1101 0101

1101 1111 0010 1001

さらに、言語がどのような目的で選択されるか、つまりプログラミングを教えるため、または特定の適用された問題を解決するために非常に重要です。 最初のケースでは、言語は理解しやすく、厳密で、可能であれば落とし穴がないものでなければなりません。 第二に、それは彼が何を望んでいるかを知っている専門家にとって複雑ですが効果的で表現力豊かなツールです。

ここで、プログラミング言語(Basic、Pascal)と、通常はプログラミング環境(Quick Basic、Virtual Pascal)の一部として提示される実装(ソーステキストを編集するための一連のツール)とを区別する必要があるものを明確にします。実行可能コードの生成、デバッグ、プロジェクトの管理など。 プログラミング言語の構文とセマンティクスは、言語標準で固定されています。 各プログラミング環境は、この言語から独自のインタプリタまたはコンパイラを提供します。これにより、多くの場合、標準で固定されていない構造を使用できます。

主な人気のあるプログラミング言語を検討する

アセンブラこれは低水準言語の最も明るい代表であり、その概念のセットはハードウェアの実装に基づいています。 これは、プロセッサコードに直接プログラミングするための自動化ツールです。 マシン命令はニーモニック操作の形式で記述されるため、十分に高いコード変更可能性を実現できます。 異なるプロセッサ上の一連の命令は異なるため、互換性について話す必要はありません。 アセンブラを使用することをお勧めします。これは、機器と直接対話する必要がある場合、またはコードの生成をより高度に制御できるため、プログラムの一部の効率を高める必要がある場合です。

COBOL-1950年代後半に開発された高級プログラミング言語。 商業的および経済的問題を解決するための協会CADASIL。 ファイルを操作するための高度なツールが異なります。 この言語で記述されたプログラムのコマンドは、通常の英語の語彙と構文を積極的に使用しているため、Cobolは最も優れたものの1つと見なされています。 単純な言語プログラミング。 現在、経済、情報、その他の問題を解決するために使用されています。

Fortran-計算上の問題を解決するためのアルゴリズムを記述するために1956年にIBMによって開発された高級プログラミング言語。 手続き型言語のカテゴリに属します。 この言語の最も一般的なバージョンは、Fortran IV、Fortran 77、およびFortran90です。すべてのコンピュータークラスで使用されます。 最新バージョンは、並列アーキテクチャーを備えたコンピューターでも使用されます。

地獄-リアルタイムシステムでのアプリケーションに焦点を当て、オンボード(船、航空など)のコンピューターなどでプロセスやデバイスを制御するタスクを自動化するように設計された高級プログラミング言語。 1980年代に米国国防総省の主導で開発されました。 1815年から1851年に住んでいた英国の数学者エイダオーガスタバイロン(ラブレス)にちなんで名付けられました。

ベーシック(初心者の万能シンボリック命令コード)60年代にアメリカで生まれました。BASICは迅速な学習のためのシンプルな言語として考案されました。BASICは、学習と実装の両方が単純であるという理由だけで、マイクロコンピュータの事実上の標準になりました。この品質、プログラミング学習者のスタイルに悪影響を与える多くの決定(タイピングの欠如、行番号付け、非構造的GOTOなど)が行われ、さらに、表現手段の欠如が膨大な数の出現につながりました言語の方言の相互に互換性がありません。BASICの特殊バージョン(Visual Basicなど)は、取得した「構造」にもかかわらず、すべて同じ欠点があります。まず第一に、タイプと説明に関する怠慢です。関連システム)または、アプリケーションをすばやく作成するためのツールとして。

パスカル有名な理論家N.WirthがAlgol-68のアイデアに基づいて開発したパスカルは、主にプログラミングを教えることを目的としていました。 「必要十分」の原則に基づいて構築されており、強力な型制御、任意のデータ構造を記述するための構造、および小さいながらも十分な構造化プログラミング演算子のセットを備えています。 残念ながら、単純さと厳密さの欠点は、言語構造の記述が面倒なことです。 最も有名な実装(Turbo / Borland Pascal)は、Pascal標準との違いにもかかわらず、環境とライブラリのセットで構成されています。 言語を教える MS-DOS環境でプログラムを開発するための産業用システム。

CおよびC ++ C言語は、システムプログラマーの要件に基づいています。つまり、すべてのコンピューターリソースへの完全かつ効率的なアクセス、高水準プログラミングツール、さまざまなプラットフォームやオペレーティングシステム間でのプログラムの移植性です。 C ++は、Cとの互換性を維持しながら、クラス(オブジェクト)の概念をユーザー定義型として表現することにより、オブジェクト指向プログラミング機能を導入します。 これらの品質のおかげで、C / C ++はあらゆるタスクで普遍的な言語の位置を占めています。 しかし、そのアプリケーションは、すぐに使用できる結果を最短時間で取得する必要がある場合、または手続き型アプローチ自体が不採算になる場合、効果がなくなる可能性があります。

デルファイ-これは、Borland Pascal / Borland Cビジネスの継続ではなく、そのニッチです-つまり、 迅速な作成アプリケーション(Rapid Application Development、RAD)。 このようなツールを使用すると、すばやく作成できます 作業プログラム小さなことに多くの労力を費やすことなく、既製のコンポーネントから。 このようなシステムの特別な場所は、データベースを操作する機能によって占められています。

舌足らずの発音-1960年にJ.McCarthyによって開発され、データ要素のリストを操作するように設計されたアルゴリズム言語。 これは主に、人工知能に関連する問題を解決するために米国の大学の研究所で使用されています。 ヨーロッパでは、彼らは人工知能の研究にPrologを使用することを好みます。

プロローグ-人工知能システムおよびプログラムの開発用に設計された高レベルの宣言型プログラミング言語。 第5世代の言語のカテゴリに属しています。 それは1971年にマルセイユ大学(フランス)で開発され、広く使用され、絶えず開発されている言語の1つです。 その最新バージョンはProlog6.0です


ロゴ-数学の概念を教えることを目的として、1970年頃にマサチューセッツ工科大学で開発された高級プログラミング言語。 また、学校やPCユーザーが、モニター画面に描画を作成したり、ペンプロッターを制御したりするためのプログラムを作成するときにも使用されます。

Java専門化の代表的な例として、 Java言語完全に移植可能な言語、WWWのクライアント側で効率的に実行されるプログラムの必要性に応えて登場しました。 環境の詳細により、Javaは 良い選択インターネット/イントラネット技術に基づくシステムの場合。

アルゴル-計算上の問題を解決するためのアルゴリズムの記述に焦点を当てた高級プログラミング言語。 1958年に西ヨーロッパ諸国の専門家によって科学研究のために作成されました。 この言語のAlgol-60バージョンは、パリでの国際会議(1960)で採用され、第2世代のコンピューターで広く使用されていました。 1968年に情報処理国際連合(IFIP)の専門家グループによって開発されたAlgol-68バージョンは、計算だけでなく情報の問題の解決にも焦点を当てた国際的なユニバーサルプログラミング言語の地位を獲得しました。 現在、アルゴルは実際には使用されていませんが、基礎として機能したか、より多くの開発に大きな影響を与えました 現代語、たとえば、エイダ、パスカルなど。
特定の言語について質問したい場合は、プログラマー向けのフォーラムを使用してください
彼自身 より良い言語存在しません。 プログラム作成の専門家になる場合は、高水準プログラミング言語の1つ(最も人気のあるプログラミング言語はC ++)とデータベースプログラミング言語の1つを学ぶ必要があります(たとえば、SQL)。 C ++プログラミング言語を学んだ後は、間違いはありません。 この言語を知っていると、どのプログラミング会社でもいつでも仕事を見つけることができます。

C ++プログラミング言語は非常に人気がありますが、他の言語がよく使用されます。 多くのレガシーコンピュータは、引き続きCOBOLプログラミング言語で記述されたプログラムを実行します。 したがって、これらのプログラムを改善し、新しいプログラムを作成できるプログラマーが必要です。 多くの場合、大企業はそのようなプログラマーに高額の給与を支払います。

自分で作業する場合は、作成方法を学ぶことが望ましいです。 独自のプログラムデータベース用。 これを行うには、MicrosoftAccessで使用されるSQLやVBAなどのプログラミング言語を学ぶ必要があります。 Webページを作成するには、HTMLに加えて、Java、JavaScript、VBScript、およびインターネット用の他のプログラミング言語について少し知識が必要です。 最も必要なのは、割り当てられたタスクを簡単かつ迅速に解決できるプログラミング言語です。 これは、C ++、BASIC、Java、SQL、またはアセンブリ言語にすることができます。
結論として、専門家の観点からは、プログラマーがどの言語でどの環境で作業するか、どれだけ作業を行うかはそれほど重要ではないことに注意してください。 設備が変わり、 OS..。 新しいタスクは、さまざまな主題分野から発生します。 彼らは過去に後退し、新しい言語が登場します。 しかし、人々は残ります-書く人と新しいプログラムが書かれる人、そしてこれらの変更に関係なく品質要件は同じままです。
ここでは、プログラミングの基本と主要なプログラミング言語を確認しました。

プログラミングを学んで頑張ってください!