どう思いますか?今日、頻繁に使用されるほとんどの言語とパラダイムを網羅し、一般的なプログラミングの基本、アイデア、および実践を把握するのに役立つ理想的なプログラミング言語学習シーケンスは何ですか?言語ではなく、パラダイムの学習シーケンスを提案することもできます。
注意:これは、私がstackoverflowで尋ねた質問のポートであり、主観的で議論的であるため閉じられました。
どう思いますか?今日、頻繁に使用されるほとんどの言語とパラダイムを網羅し、一般的なプログラミングの基本、アイデア、および実践を把握するのに役立つ理想的なプログラミング言語学習シーケンスは何ですか?言語ではなく、パラダイムの学習シーケンスを提案することもできます。
注意:これは、私がstackoverflowで尋ねた質問のポートであり、主観的で議論的であるため閉じられました。
回答:
質問は、プログラミングの初心者にとって理想的な学習シーケンスに関するものであると仮定すると(プログラミングの老人は独自の(偶然の)学習シーケンスを持っているため)、10年後にプログラミングを学習する方法に関するNorvigのエッセイを読むことをお勧めします。
Python:動的で高レベルなオブジェクト指向および関数型言語から始めます。初心者にとって生産性をできるだけ早く感じることは本当に重要だからです、エイリアンの構文、ライブラリの欠如、マルチプラットフォームの欠如、学習リソースの欠如、コミュニティの欠如によってオフにされないでください。Pythonは非常に読みやすく、多くの優れたライブラリ(特に科学ライブラリ-現代の科学者/エンジニアはプログラミングの方法を知っている必要があります)を持ち、ほとんどのOSから簡単に実行でき、多くのチュートリアルと無料の書籍全体を持ち、一般的にユーザーフレンドリーです—いずれも、大きな問題に取り組む高度なプログラマーになるにつれて、あなたとともに成長するのに十分なほど強力です。また、初心者にとって重要で便利な規約を強化することも重要です。コードの読みやすさはLOTをカウントするため、自分や他の人がすぐに理解できるようにコードを書く必要があります。
Lisp:特に、少なくとも、コンピュータプログラムの構造と解釈をざっと読んだり、SICPビデオを見て、プログラミングの基礎と表現力を見て、目を大きく開いてください。Lispが機能的なパラダイムだけでなく、オブジェクト指向、論理/宣言など、新しいドメイン固有言語の作成のように表現する方法を学びます。NorvigのPAIPを読んで、この言語でマスターができることを目撃してください。次に、Next Big Thingsの1つである可能性がある現代のLisp方言であるClojureを調べてください。
C:それはコンピューティングの共通語だからです。:)特定の非ソフトウェアドメインのプログラマが主にプログラマである場合、最近はおそらくオプションです。ugいですが、基盤となるハードウェアに感謝する価値はあります。一緒に行くK&Rもちろん、。
Haskell:純粋な機能力。現在のCom.Sci。理論と実用的な表現力が出会う。Real World Haskellを参照してください。
上記のツアーの後、問題への取り組みとコードでのソリューションの表現に非常に熟達し、ここでのパラダイムに完全に満足します。
これは私がそれをする方法です:
Python(またはRubyまたはLua):インタプリタ言語であり、型はありません。数行で作業を完了できます。巨大なライブラリ(これにはPythonが最適だと思います)。気を散らすものがないので、アルゴリズムを深く掘り下げることができます。コンパイルは不要で、実行するだけです。それに加えて、Pythonではインデントが必須なので、Pythonでは暗黙的に良いスタイルを教えます。オブジェクト指向を教えることもできます(Luaにはもっと問題があります)。ここでの目的は、多くの楽しみを持ち、学生に何ができるかを示すことです。
C ++(または多分Java):型付きの高速言語。オブジェクトの向きが必要な場合は、すでにいくつかの概念を知っています。主なアイデアは、Pythonで行ったことを「翻訳」し、新しい制約(主に型)でそれを行うことです。概念が正しければ、型の追加はそれほど問題ではありません。次のステップは、より低レベルを考え(ここではJavaは役に立たない)、ポインターをうまく教えることです。これにより、アドレス空間、CPU、OSについて少し説明することで、プログラムの下を確認できるようになります。コンパイルされた言語は、解釈とコンパイルの区別を導入し、機械語とは何かを説明するのに非常に役立ちます。
組み立て:最後に、魔法はありません。マシンと話すだけです。IntelとGASの構文については議論がありますが、重要ではありません。MIPSをお持ちの場合は、教育に適していると思いますが、x86はより広く普及しているため(x86_64の方がより多くのレジスタと機能を備えているため)より便利だと思います。複雑さのいくつかを取り除き、学生が望むならさらに調査する必要があります。
(これらの最初の3つは「深さ」です。これまで、彼らが言うように「金属に近い」底部に触れるまで下がっていました。これは非常に重要だと思います。何が起きているのかが明確にわかると解決します。これを知っていれば、自信を持ってさらに知識を得ることができます。)
Scheme(またはCommon LispまたはClojure):@dukeofgamingが言ったように、Lisp言語では再帰をうまく教えることができます(明示的なループがないため、このSchemeが最適です)。しかし、私は他に2つのことを教えに行きます:クロージャーとマクロ。マクロは、Lisp言語を他の言語から分離するものです。個人的にはSchemeマクロは好きではありませんが、これはそれほど重要ではありません。たとえば、Clojureマクロは優れていると思います(ただし、JVMには末尾再帰がないため、Clojureの再帰はそれほどきれいではありません)。クロージャは非常に重要な概念であり、一度クロークすると、すぐにJavascriptを「見る」ことができます。C ++、Python、Lispを学んだ後、Javascriptは「簡単」になります。
Haskell:関数型言語については、Haskellに勝てるとは思いません。LispとSchemeは機能的であると考えられていますが、機能的プログラミングを強調するためには、生徒に国家なしで考えさせる必要があります。Haskellには、カレー化や「分解」のためのパターンマッチングなど、他の非常に優れた機能もあります。Haskellについてはあまり知りませんが、記述できるコードの簡潔さは美しいです。Haskellをよく理解すると、Erlangを理解するための道がはるかに簡単になります。
Forth:スタック言語。(LispとHaskellで十分ではなかった場合)再び論理を完全に破壊します。彼らがアセンブリを知っているので、私はジョーンズのフォースを教えるまで行きます、そして、あなたは何が起こっているかを完全に理解することができます。(たとえば、Forthを知るとPostScriptが開きます。)
(つまり、これらの最後の3つはあなたが言っていた幅です。私にとって、これらの言語はあなたの考え方を変えるほど奇妙です。少なくとも私にとってはそうしました。非常に迅速に。)
オプションで、これらを調べることができます:
SmallTalk:純粋にオブジェクト指向の言語。オブジェクト指向を真剣に考えたときに何が起こるかを見るために、言語は「if」、「for」を必要としません。すべてがメッセージです。大きな実現です。(これにより、Objective-Cが簡単になります。)
Go:並行性を重視した(美しい)言語。Goは非常に素晴らしく快適にプログラムできます。
プロローグ:プログラミングのもう1つのパラダイム。私はプロローグを書いたことはありませんが、それはもう一つの心を曲げる言語であることを理解しています。
真剣に、私はBASIC、COBOL、Fortran、Forth、Pascal、およびPrologを自分の時間で学んだかもしれませんが、特にそれらを使用する必要はなく、それらが他の使用に影響を与えた方法を実際に見ることができません言語。ただし、パラダイムを誤って適用している可能性があります。構造化されたPascalを実際に書くのに十分なBASICを学習するのに何年もかかり、CでPascalコードを書くのを止めるのに数年、Objective-CとJavaを使い始めてOOPを実際に理解するのにさらに数年かかりました。一方、OO言語で(ほぼ)専ら作業してきたので、SchemeやPostScriptのように見せようとせずに、OO言語の使用の改善に集中することができました。
任意のシーケンスが理想的であると主張することは困難ですが、正当化できる計画を示します。
C
Cを学習するには忍耐と勤勉が必要であり、コンピューターがデータを処理する基本的な方法を紹介し、プログラマーがそのようなマシンを処理するために受け入れることができる最も幅広い一連の責任を示します。
Perl
Cが要求する厳密さに対する解毒剤として、信じられないほど寛容なPerlを試してください。Cで書くのに1週間かかったものは、Perlで1時間で書くことができます。プログラミングに見られる異なる種類の喜びを紹介し、特定の懸念や詳細を除外することでプログラマーがさまざまなことに集中できることを示しています。
C ++またはJava
次に、Cがプログラミングの低レベルで原始的な側面に焦点を当て、抽象化レベルを上げるための基盤としてどのように機能するかを見てください。プログラムにとって重要な効率性を維持できる抽象化を形成する方法を調べてください。
Common Lisp
これは、前のスローガンに対する報酬です。これまでのすべての言語で学んだことのエコーを見つけることができ、Lispでプログラミングするときに、前述の譲歩のどれほど多くが愚かに見えるかを確認できます。CのプリプロセッサとC ++のテンプレートは、Lispのマクロシステムを評価する準備をします。Perlからの表現の容易さ、Cからの低レベルの最適化の機会、C ++またはJavaの抽象化構築機能を取り戻し、それらすべてをうまく乗り越えます。前の3つは、おそらくPerlのデバッガーを除いて、有能なREPL( "read、eval、print loop")を使用した対話型プログラミングエクスペリエンスを用意していません。作業画像ベースの環境(ソースコードと「実行可能プログラム」の概念との関係を変更する)は、プログラムをビルドすることの意味に関する全体的な概念を変更します。
これらの4つを超えて、Haskellの関数型プログラミングやPrologのロジックプログラミングなど、他のスタイルのプログラミングを検討することで、プログラミングの範囲(幅広い知識があれば)をより包括的に理解することができます。あなたが知っているあらゆる言語で、あなたの技術、つまり深い知識を改善することによって
十分に異なる言語を味わったので、あなたの意見は、それらのどれかを超越するアイデアに焦点を当てるようになります。それは一種あなたの父の車を運転することを学ぶと、運転の仕方を知っているとの違いなどからだ任意の車を:あなたは、数日間レンタルミニバンを駆動するために有するフルも好きなスポーツカーを運転の喜びを知って楽しんでいないことがあり、しかし、あなたはそれをどのように操作するかを理解し、アマチュアよりも貧しい獣からより多くのことを確かに理解するでしょう。
少なくとも部分的には、子どもたちがコンピューターを使って学習する方法として設計されました。構文は、段落で説明できるほど単純です。ロゴと同様に、「侵入に対する障壁が低く、天井が高い」という原則を例示しています。
Smalltalk は、「すべてがオブジェクトである」という意味での純粋なオブジェクト指向言語です。
また、特にコレクションAPIで、メッセージの連鎖、高次関数、マップ、リデュースなど、多くの機能的なテクニックを教えます。
Squeakのコミュニティは活気に満ちた歓迎です。また、高度な技術に関する多くの議論があります。Lispコミュニティと同様に、メーリングリストには経験豊富なSmalltalker が知識を共有してくれます。(Squeakコミュニティにプロの教育者の大部分がいることは害になりません。)初心者向けの別のリストもあります。
他の言語とはまったく異なる計算の見方を提供する論理プログラミング言語。また、プロローグは非常に宣言的です(ただし、完全にそうではありません:!
orカット演算子は、述語に重要なセマンティック効果を持つことができます)。
必要に応じて、ここでスキームを置き換えます。Common Lispは複数のパラダイム、特にオブジェクト指向と機能をサポートしています。また、長い歴史があります(Lispは2番目に古い言語ですが、FORTRANの古い言語のみです)。
(警告:習い始めたばかりです。)おそらく地球上で最も純粋な関数型言語です。非常に高度な静的型システムを備えています。便利な紹介 書があります。
コンピューターの動作を知る必要があります。メモリとCPUが実際にどのように機能するかを知る必要があります。これらはどちらも伝統的に「金属に近い」ものであり、言語がアセンブリにどのようにコンパイルされるかについて考えることを奨励するコミュニティを持っています。
Smalltalkは非常に習得しやすいため、コンパイラーと戦うのではなく、問題の解決にすぐに集中することができます(「参入障壁が低い」)。プログラミングを開始すると、できることについて人為的な制限はありません-「高い天井」。
OOがどのように機能するかについての公正な考えが得られたら(および-「OO」が何を意味するかについてのさまざまな理解があるという条件付きで-OOが市場を支配していると言うのは公平です)、Prologに移動すると、開始しないことが保証されますオブジェクト指向が唯一の方法であると考えています。プロローグはほとんどの言語とは非常に異なり、精神的な筋肉を伸ばすので、すべてを知っていると考え始めることはありません。
同様に、Common Lispは大人の言語です。それは成熟した標準を持ち、何十年もの間(Smalltalkと一緒に)言語設計をリードしてきました-あなたのお気に入りの言語が獲得したばかりのこれらの素晴らしい新機能はどれですか?チャンスは、LispまたはSmalltalkのいずれかでインキュベートされたアイデアです。Common Lispも少しいびきをかいていて、どこに行ってもいぼみを感じるでしょう。
Haskellの4番目のリスト(私は聞いたばかりです:習い始めたばかりです)その純粋さは、いくつかの非常に一般的なこと(I / Oなど)が純粋に機能しない言語よりも難しいことを意味します。Haskellの人々は、かなりエキゾチックな用語(「カタモフィズム」などの単語)も使用しているため、取り組む前にプログラミングの経験を積む方が良いでしょう。(しかし、もう一度繰り返す必要があります、私はそれを学び始めたばかりです!この意見をちょっと塩で受け止めてください!)
そして、なぜC / Delphiは長持ちするのでしょうか?組み込みシステムで作業しない限り、手動のメモリ管理がすべてだと考えてプログラミングを学ぶ必要はないはずだからです。ガベージコレクションは、1980年代レベルのマシンで十分に機能しました。あなたの携帯電話はとても強力です!
最後に、私は本当にそうすべきであるにもかかわらず、上記のリストにErlangを入れていません。
Python。プログラミングの優れた紹介。これは、プログラミングへの以前の暴露とも結び付けられます。
スキーム。また、プログラミングの優れた入門書です。プログラミング初心者を扱う場合は、最初にこれを教え、次にPythonを教えてください。1つの代替案は、最初にPythonを使用し、次にSchemeの代わりにCommon Lispを使用することです。より多くの作業を行いますが、より多くの報酬があります。
C.シリコンの近くにとどまる低レベル言語。コンピューターができることを学ぶのに適しています。何らかの形式のアセンブラー言語に置き換えることもできますが、Cは基本に非常に近く、操作がはるかに簡単です。
プロローグ。代わりに、宣言型の汎用言語を置き換えます(必要な言語が見つかった場合)。
ハスケル。型システムと純粋な機能については、他に何もありません。
6つの言語ですべての概念をカバーすることは不可能であるため、ここにはいくつかの候補があります。Common Lispは、マクロシステムとオブジェクトシステム(これまで見た他のほとんどのシステムとは異なる)の場合にのみ、学ぶ価値があります。フォース、Tcl、およびAPLはすべて奇妙な言語であり、ある程度の成功を収めています。そのうちの1つは、学生がすべてを学んだと感じないようにするのに適しています。Erlangは並行性に適しています。
多くの良い答えが提供されていますが、SQLを提供している人はいませんでした。リストされている他のほとんどの動物とはまったく異なる動物であり、データベースを扱う必要のあるプログラマーにとって非常に重要です。
また、Batch、grep、awkなど、OSレベルのスクリプト「言語」を検討することもできます。「Make」もこのカテゴリに分類されます。
検討したいもう1つの言語(まだ完全に機能していない場合)はCOBOLです。他の手続き言語とは十分に異なるため、言及する価値があります。C、Fortran、Basicなどのバリエーションは非常に類似しているため、一度慣れると、別の場所に移動することは大きな問題ではありませんが、COBOLには他の人に当然と思われる多くの構造がありません。(COBOLで何かを行ってから少なくとも20年が経っているので、この言語に関する私の観察はもはや有効ではないかもしれません。)
歴史的な観点からAPLに言及したい場合もあれば、安らかに眠らせたい場合もあります。あなたの選択。
最初>プログラミングを始めたら何をしたいですか?ゲームプログラマになる方法を学ぶことは、ビジネスのデータベースプログラマになる方法を学ぶこととは異なります...ウェブベースのプログラマとは異なります...
2番目>学習を開始したら、高いところから始めて、自分の道を進みたいですか?または、低いところから始めて、上に向かって進みます。C#の学習(高レベル)は、アセンブリの学習(低レベル)とは大きく異なります。
大きな選択は、何をしたいかによって異なります。ドライバーのプログラミングには、おそらくCまたはアセンブリが含まれます。Webサイトのプログラミングは、PHP、C#、aspなどになります。Webプログラミング用のアセンブリには触れません...など...
基本的なこと...やりたいことを決めたら、言語を選択するのは簡単です。たとえば、私は病院のデータアナリストになりました。私の言語の「選択」は、データアクセス用のSQL / TSQL / DB2、Windowsクライアント用のC#WPF、Webクライアント用のSilverlight、IBMバックエンドロジック用のRPG / CLです。
個人的には、良い本にこだわり、言語を練習するための独自のプログラムを作成しています。私はAPressが好きで、C#を学ぶときにC#2008 Illustratedを読むのが大好きでした。彼らには、未学習者と専門家の基本を網羅した他の本があります。
新規参入者は最初に1つの言語のみを必要とし、2番目の言語を学習した後、多くの競合する開発者を超えてすでに進歩しています。次の順序で学習します。
「C ++はどこですか?」Xはどうですか?正直なところ、複数の言語を学習すると、いくつかのことが行われます。経験が豊かになり、より多くの言語を学習する意欲が高まります。私がよく知っている言語(Java、C#、Ruby、C ++、Javascript)のリストはすべてオブジェクト指向ですが、それは主にそれが私が毎日仕事でしなければならないことだからです。私が経験した言語のリスト(Smalltalk、Python、Erlang、JESS、C、Assembly [Motorola 6502/6510]、Go)はすべて、貴重な教訓を教えてくれました。少なくとも、これらの言語で何が起こっているのか理解できます。私がまだ調べていないことはたくさんありますが、将来的にはそうかもしれません。HTML、XSL:FO、XSLT、CSS、XML、SGMLなどのマークアップ言語もいくつかあります。これらの言語は、何らかの方法でWebを操作する場合に公開する必要があります。
少なくとも2つの異なる言語を学習した後、学習意欲のある人が次に学習することを決定するものを制限すべきではないと本当に思います。学習は有機的な経験でなければならず、プロセスの構造が多すぎると、まったく同じように考える人々のグループが作成されます。いわばモノカルチャー。
これらの答えのほとんどはほぼ同じように見えるので、別の意見を述べます。私は長い間、最高の第一言語はTclだと信じてきました。
どうして?1つは、非常に簡単に習得できることです。言語にはあまり構文がないため、学生はプログラミングの概念に集中でき、特定の言語の構文の特質に集中できません。これを書いている時点で、Tclには言語全体を管理する正確に12のルールがあります(過去数十年の11から)。
もう1つは、Tclに素晴らしいGUI言語が組み込まれているため、比較的すぐに満足を得ることができ、イベント駆動型プログラミングの基礎を学ぶことができます。
第三に、拡張可能です。繰り返しループについて教えたいですか?リピートループを実行するコマンドを記述して、repeat ... untilの使い方を学ぶだけでなく、実際に自分で書いたためにwhileループとはどのように異なるかを学ぶことができます。
また、拡張性があるため、Cに簡単に接続できます。Cの基本を学習し、a)別の言語で記述された新しいコマンドでTclを拡張する方法、またはb)で記述されたプログラムにスクリプト言語を追加する方法を学習することができますC.
TclとCを習得すると、他のほとんどの言語はこれらの両極端の中間に位置し、比較的簡単に習得できるはずです。TclとCの後に教える4つの完全なリストは次のとおりです。
私は知っている、退屈でオールドスクール。そして、質問全体では、プログラミングの非常に難しい部分、つまり問題解決、ドメインモデリング、およびアルゴリズム構築を無視しています。しかし、その理由は次のとおりです。
アセンブリ言語を偽造することはできません。あなたはそれを手に入れるか手に入れません。コンパイラはあなたを救うことはありません、フレームワークやライブラリのオーバーヘッドはありませんし、マシンのアーキテクチャから隠すことはできません。それは純粋なプログラミングです(初心者のadd-two-numbersレベル)
数百行以上のアセンブリ言語プログラムをいくつか書いた後、ポインターとメモリ管理はもはや神秘的ではなく、コードのパターン(if、switch、array、loopなど)に気付くはずです。 )。Cは、これらのパターンを太陽光に導き、輝かせます。標準ライブラリは、広大でなくても便利ですが、マクロ/テンプレート/などには煩わされません。この段階では。
SQLを使用してデータベースにジャンプします。ストアドプロシージャにこだわるのではなく、テーブルとクエリの基本を理解するだけです。
数百行を超える数個のCプログラムを作成した後、ポインター、構造体、およびメモリ管理は第2の性質であり、手続き構造は古くからの友人です。高次のパターンに気付くでしょう。これらの関数は常にこのデータ構造に対応しています。コードのこの部分は、メソッドX、Y、Zなどを除いて、コードのその部分とまったく同じです。これにリレーショナルデータの把握を追加すると、オブジェクト指向言語の準備が整いました。大規模なフレームワークと一般的に鈍いドキュメント。現実の世界へようこそ!GUIの探索、デスクトップアプリの作成、Webサイトの作成、Webサービスの作成、好きなものの作成。あなたがそんなに傾いているなら仕事に行きましょう。
あなたは今、プログラミングのジェダイですか?コード忍者?いいえ、今あなたは単に有能です。しかし、あなたは輝かしい新しい楽しいものを探索するために立つための強固な基盤を持っています。
基礎が必要です:
その後は、おそらく重要ではありません。
OK、これは賞金の最終日です。そして、答えを追加しています。私の提案したシーケンス
C、C ++、JAVA / C#、Python / Ruby、その他の言語(Assembly / Lisp / Prologなど)
私はバイアスをかけられ、私の大学が現在中核となるコンピューターサイエンスカリキュラムに使用しているモデルを使用します。私は最初の1年間は反対でしたが、後年には感謝しています。モデルは、プログラミングの経験を必要とせず、学習する能力を必要とすることに基づいています。
Scheme
私たちはあなたが最初にプログラミングを学んでいるので、魔法が少ないほど良いです。Schemeの教育言語は、言語の明確で合理的な定義を提示します。これは、構築して拡張できる非常に小さな公理(「魔法」)のセットです。数学の関数を理解できる人なら誰でも、Schemeプログラムをトレースして推論できます。Schemeから開始すると、言語固有の詳細を気にせずに計算について考えるためのクリーンで強力な方法が提供されます。
C
SchemeからCへの移行は抜本的なものですが、高レベル言語から低レベル言語への非常に重要なマッピングについて学ぶことができます。メモリモデル(ポインター、ヒープ、スタックなど)とプログラムのコンパイルおよび実行方法、ポインター、スタック、ヒープの動作方法を学ぶことは不可欠なスキルです。この低レベルの理解を通じて、より高いレベル(Big O)でプログラムの分析を開始できます。さまざまな実装(たとえば、単純なハッシュテーブルとセットのバイナリツリー)を使用して、独自の抽象データ型のロールを開始できます。
C ++
CとSchemeを学習することで、プログラミング言語のさまざまなパラダイムと、それらがさまざまな問題にどのように適用されるかを理解し始めます。これで、プログラミングの最も恐ろしい側面、つまり選択とトレードオフにアプローチできます。プログラミング言語の選択は、パフォーマンス、可読性、保守性、堅牢性などに影響を与える可能性があります。頭の中で保持できるものよりも大きな問題を解決するには、この選択は素晴らしいですが危険です。C ++は、プログラマーの選択をできる限り少なくしようとします。C ++を学習することで、問題を解決するためにこれらのトレードオフと選択を自分で行う方法を学習します。
業界でこれらの言語を使用したり、再度触れたりすることはないかもしれませんが、それらを学習するプロセスは、使用する他の言語を理解するのに役立ちます。別の側面は、特定の言語に関するツールを学ぶことです。コマンドラインからgccを実行し、Vimを学習し、GDBを使用してプログラムをステップ実行し、Makeファイルを作成し、SVNを使用してコードをチェックインし、テストを自動化するシェルスクリプトを作成します。
コアカリキュラムには、他のコース(コンピューターアーキテクチャ、データ構造とアルゴリズム、コンパイラー、オペレーティングシステムなど)もあります。したがって、単にこれらの言語を習得するだけでは、プログラミングに習熟するには不十分です。
Python。作業を完了するには、通常のプログラミングを行います。手続き型、オブジェクト指向、(ある程度)機能的。
正規表現。それらはPythonライブラリにありますが、別個のDSLです。
シェル(BASHなど)。「&」、「|」、「;」プロセスを結合するための演算子は、Pythonで重要かつ不快です。
SQL。これは、今のところ、データアクセスの共通語です。
XHTML。これは-今のところ- データ表示の共通語です。
CSS。
必要になった場合はCになるかもしれません。
金属の近くから始めます。
現在、このような幅広いアプローチの問題は、長年の研究なしに、これらの言語で誰もリモートになれないことです。
あなたの意図が「Hello world」を教えることである場合を除き、6つすべてについて約1か月かかります。
まっすぐに進んでVBまたはC#を学んでください。私の意見では、どちらも初心者から上級者までの完全な言語です。