2009-05-18 21 views
5

質問宣言的なプログラミング言語をgrokkingするためのヒント?

述べたように、取得 - あなたの頭を、周りの宣言型プログラミング言語/ GROKが/理解を助けるためにあなたに任意のヒントを持っていますか?

また、あなたが言語に没頭しているというだけの事で、それが忍び寄るまで、あなたがその黄金の瞬間を得るまでは、Get itです。これは本当にオプションではありませんので、私はもはや何日もの間部屋に閉じ込めることができないので、対象に関するすべての責任を担っています(責任は自分たちと同じです)。

あなたが宣言的言語に取り組んだときに助けになったトリックや、どんな洞察を伝えていますか?

P.S.私は個人的に "シャットダウンと仕事に入れて"という最初の答えをアップアップします。私が最初に(私の姉妹Oric-1上で、基本的な)絞るコードを起動したとき

背景

私は13歳でした。

それ以来、私は多くの新しい概念と多くの異なる言語を使って仕事をしてきました。オブジェクトオリエンテーション?気にしない。イベント主導のパラダイム?私にキッパーを吹きかけて、朝食に戻ってきます。

Owl、Mfc、ActiveX、Vb3、4、5 & 6、VB.Net、Pascal、Delphi、C、C++ & C#。誰も私の方法で立っていませんでした。

しかし、最近私の完璧なスコアは少しの打撃を取った。

私はXamlに自分自身を投げ込んでいました。皆さん、私は水泳よりも沈んでいます。

私の主な問題は宣言的だと思います。私の他のすべてのプログラミングスキルは手続き的です。私はMSBuildでこれまでにこのブロックを打ちました.MSBuildの動作をどうやって得るのかの例をコピーできますが、何かをゼロから一緒にまとめることはできません。

Xamlに戻って、現在、私はプロパティにトリガーを配線し、私が必要とする効果を得ることを狂ってしまいます。

ここで、私の具体的なXaml質問をすぐに投稿することがあります。今のところ私はこの一般的な "宣言的プログラミング"の質問をしています。

P.S.いいえ、私は実際にはこの雄牛ではありません。はい、私は地獄のように私が初めてOOを打つと、私はイベント駆動型のUI(Windows 3.11でVB3)を書くだろう初めて。

編集

ちょうどそんなにfracking時間を要する、この分野ではここまで私を得た粘り強さが報われ、中に沈み始めています!

。 。 。私はこのようなもののために私は年を取っていると思う。 。 。:)

+1

あなたの妹はOricさんですか?彼女は非常に珍しい女性でなければなりません! –

+0

Grokking、2k ;; – Carra

+0

ベーシック?申し訳ありません - あなたはFUBARです:) :) – xtofl

答えて

3

私はXSL(またはXSLT、あなたが望むように)世紀の初めに一束を教えなければなりません:)、それは本当に別の世界です。しかし、これはパラダイムシフトの基礎です。宣言的な言語が実際には異なることを認識しなければなりません。私が持っている最も重要なアドバイスは、他の人のソリューションを勉強し続け、仕事を入れて、実際にフローで考えることをやめようとすることです。最悪のことは、XSLでは "if"と "else"がありますが、通常は別の方法で処理することができます。

OOを学ぶのと違って、宣言的に行うのでなければ、あなたがやろうとしていることはできません。

あなたが示唆するように、答えは「黙って仕事をしてください」というものですが、もっと重要な点は、多くの作業がパラダイムシフトの周りを頭で捉えていることを認識することです。実際の答えは、"あなたの目をパラダイムシフトのために剥がしてください。"あなたは流れの中で思考を止め、何らかの順序で発射できるルールの観点から考える必要があります。もしうまくいけば、発射時には関係ありません。あなたが最終的に何かが起こるのではなく、ルールを考えているとき、あなたはシフトを突き詰め始めています。

+0

+1良いアドバイスです。 。 。 "仕事をやめてやる"のためにも。ありがとうございます:) –

+0

ショー 'もの、これで幸運... –

+0

正しい答えとして、有用なアドバイスのために選択してください。ありがとう。 –

0

私は、言語を "grok"する最も簡単な方法は、すべてのコーディングのために排他的に使用することです。まったく新しい言語を使って、私にとっては学習曲線は1日約4-5時間のコーディングの約2週間です。その後、突然「クリック」し、マニュアルやドキュメントに頼ることが少なくなります。

+0

私は同意しますが、他のところで学んだ教訓を探していますa.k.a "ショートカット"は、すべての正直に存在するとは思わない。それでも、それは尋ねることを傷つけることはありません:) –

+1

実際にはショートカットがありません( "チートシート"以外であり、あなたが本当に言語のニュアンスを理解していないことによってあなたを欺くことになったとしても) – ennuikiller

2

実際にその言語を知っている人からの「なぜ」の説明といくつかの例を見つけてください。違いを生むパターンやイディオムを学んでいます。

私はあなたが宣言的な土地で命令的なことをしようとしていると思っています。必要な入力+これらの入力のステートレス機能の観点からデータフローを書き出し、それが役立つかどうかを確認してください。

MLまたはSchemeのような機能的または機能的な言語を試してください。

1

Xamlの具体的な問題点はわかりませんが(私は自分で使っていませんが)、XSLTのようなXMLベースの技術を使用すると、少しのLISPやSchemeの経験が長い道のり。あなたはhttp://www.plt-scheme.orgから無料で利用可能な優れたスキームシステムで遊ぶことを見たいかもしれません。

0

私は大学で授業を受講しました(プログラミング言語)。それは、私が繰り返し壁を叩きつけているような感じでしたが、クラスの3/4ほどで、壁がもうなくなったことに気付きました。私は何週間も何もせずに頭を打っていた。それはかなり超現実的な感じでした。

他の方法でも同じ魅力はないと思います。 Godel、Escher、Bachを読んでください。 Emerson、Lake、Palmer、Kaikhosru Sorabjiの多くを聴いてください。いくつかのガンジャーを喫煙し、時間を入れてください。

+0

クラスは何ですか? –

1

あなたの好きなものを考えてみましょう“programmer ignorance” pet peeve最初のコードスニペットは明らかに手続き型です。 2番目のスニペットでは、の宣言文を作成し、パーセンテージが0から100までの間で有効であることを確認します。

だから、宣言型プログラミング言語をgrokkingしても問題はありません十分にそれに取り組んでください... there is no royal road to geometry

+1

+1私の最も成功した投稿を私に向けて回すために。いいですね:) –

1

私はこれがあなたの心を吹いているかもしれないところを見ることができます。あなたがリストしているすべての言語は、実際には非常に似ています(手続き的です)。

これを取得すると、は、となり、も覚えておくことをお勧めします。また、それは困難な行こうとするかもしれませんが、それを学ぶことはあなたの一般的なコーディングスキルに大きく役立ちます。あなたはトリック(プロシージャ言語でさえ)のまったく新しい袋を持っているでしょう、あなたは再帰を再び恐れることは決してありません。

1

Binary Worrierと同様、私はC、C++、MFCなどの長い歴史を持ち、XAML、WPF、およびC#の速度を上げています。私はHTML、Javascript、XSLTを使っていましたが、XAMLの準備に大いに役立ったと思います。

XAMLの基本的な考え方は非常に簡単です - それはすべてあなたがを行う何、を示していない何についてです。 XAMLの難しい部分は、学習するための実装の詳細がほんの一握りであり、何かを大量に実行できるようにするために、それらをすべて同時に学習することです。

質問がより具体的であれば、おそらくもっと役に立つかもしれません。

1

「プログラミングはコンピュータに一連の指示を与えることです。」

ほとんどのプログラマーはこの声明に平穏に反応します。それはほぼ同じように... "そう?"

しかし、この声明の信念は、人々が他のプログラミングパラダイムを理解するのに問題を引き起こす原因となっています。それはではなく、であり、非常に長い間続いていません。プログラミングの理解を深めるために、多くの人がこのステートメントがなぜ偽であるかを考えることで利益を得るかもしれません。

純粋なアセンブリでプログラミングしたとしても、現代のプロセッサは命令を再配置し、分岐予測を実行し、複数の潜在的に共存する命令を同時に実行しようとします。このようにして、彼らは論理的な依存性の観点から考えるのではなく、シーケンスと考える。シーケンスのメタファは、命令が論理的にそれに先立つすべてのものに依存するという誤った概念です。これが真実であれば、プログラムを推論する最良の方法は制御フローを調べることです。しかし、それは真実ではありません。

このメタファーに適合しないのは単なる宣言的プログラミングではなく、並列プログラミングと非同期プログラミングです。

関連する問題