はいい勉強になPythonの前にCまたはその他のコンパイラー養成講座を開催します。[定休日]

StackOverflow https://stackoverflow.com/questions/2399471

  •  25-09-2019
  •  | 
  •  

質問

現在の私を通じてMITの導入コンピュータ科学コース経由OpenCourseWare.の一環としてこのコースを勉強しているPython言語です。

を読んで、たくさんのことの利点について学習C.以前はまったん切りにPythonなものなのかどうかが大きな支障をきたす何らしたPythonを学習します。

いると思います開発の悪い習慣であるPythonから?

編集:変更をコミュニティWikiで主観的な自然の質問です。

いすべての答えが最初です。私は実はね飛ばさ、誠実に回答。り、皆さん!

役に立ちましたか?

解決

神で働いて37年からいえばどのように多くの言語を知っている、私はPythonで作業するあなたは、アルゴリズムが正しく取得し、の詳細のを心配ないにほぼ完全に専念することを可能にすることを伝えることができます。私は私の人生の中でCのおそらく300-400,000行を書かれているし、それは我慢した唯一の方法は、私自身のOO環境を作成するために、基本的だった。

)Cは、その用途がありますが、これらの日、彼らはどちらかになる傾向がありますが、近いハードウェアの一部を取得してみましょう、またはb)本当にタイトなループを扱います。それを必要とします見つけた場合、あなたのPythonにあなたのCを統合するためのSWIGやSIPなどのツールを見てみます。

他のヒント

は歴史的な理由のために、Cは母語多くのプログラマは、前世代のこれらの特定において、学習されました。しかし、(この古い世代を含む)、それらの多くは、最初のCを学習する前に(数名への基本的な、LISP、パスカル、)より高い抽象レベルのものは、通常、1つまたはいくつかの他の言語を学びました。

私は後者の種類であった(すなわちCは、私は非常に早い段階で組み立て習得し、けれども、私の「ネイティブ」言語ではありませんでした)、と私はかなり真剣に関連付けられているのの多くのメリットを確信しています」 C言語に「ツアーを、にもかかわらず、実用性の問題として、私たちの多くは、このくらいの言語のいずれかの結果のプログラムは決してありません。これは、(...またはプロローグや)の私はCがあなたのの最初のの言語、または何らかの形でのPythonを習得することを任意の暗示することにする任意の説得力のある理由が表示されない、何とか損なう1のプログラミング能力はと述べました次の十年のために...

私のアドバイスだから、:!
にそれを取る、パイソンを楽しみます あなたがプログラミングのための感触を取得すると、いくつかの時点でCを学ぶためにポイントを作るのですか。これは、他の多くの方法で関連、言ったように、コンパイラ書き込みおよび/またはオペレーティングシステムが含まれるカリキュラムに特に関連する、と。あなたは「表面」/構文落とし穴可能性よりも、それは他の表示されます(Aのために何か他のものにさらされた後、新しい言語を学ぶか、私の古い言語に背を切り替えるとき、これらは、少なくとも私には、すべての時間が起こります)ながら、あなたがCに問題があるはずです、少なくともあなたの学習他の言語に関連した問題なします。

私は専門家のプログラマーではないですが、私の理解と利用からPythonはあなたが必要なものについて行うことができます非常にシンプルかつ強力な言語であるということです。

Cであなたは何が起こっているかについてより多くの制御を取得し、それはまた、あなたがPythonで誰かがあなたのためにそれを行っていると、ほとんどすべての異なるケースの作業ます。

というあなたは選択肢を持っていながら、自分自身をすべてのこれらの詳細を記述しなければならないことを意味

Cの低レベル(マシンが実際にどのように機能するかに近い方)にはPythonが、より高いレベルの言語であること、高速のようになってしまうではないだろうしながら、CPUが欲しいものをより密接にマシンコードにコンパイルされるので。

私は思うのPythonからCへの移行の痛みをもっと「なぜ私はPythonで私は1行で行われるのでしょうか?このすべてをしなければならないか!」されます。

私はCはあなたののようになります学ぶことのみを提供することができ、よりのPythonと他の動的型付けの言語を感謝しています。私は、多くの場合、PHPで堪能誰にも同じことを言います。両方の作成は、いくつかの深刻なかゆみに傷。そして、いや、それは次のようなものの一種「私はあなたの年齢だったとき、私は学校に雪の中で300マイルを歩いた」ではない。

変数に値を代入し、単に「自体を調整する」変数を持つことができることあなたはそれが複数にCで作業をかなりの時間を費やしてきた人には、の驚くべきの成果である養うものを保存しますアーキテクチャます。

また、Cでのいくつかの種類のマルチスレッドサービスを書くことがあなたを行います。の本当にのPythonが本当にどれだけポータブル感謝します。

コンパイラおよび最適化について

他の良いの理由があり、パワー、「近い金属へ」き、理解メモリ管理や学習。しかし、私は、あなたがより高いレベルの言語が実際にどれだけ楽でヒットする最初の事を疑います。

免責事項:私は主にCを使う

あなたがどこかに始めるために持っている、とPythonが開始プログラマのための良い選択です:あなたは、コンパイラを使用する必要はありません( - >使いやすい)、豊富なライブラリを(持っている - >あなたが達成することができますロット)、及びオブジェクト指向(メインストリーム)は、これらの日です。だから、回避欲求不満は、この点に最小化されます。しかし、常に他の言語の多くがそこにあることに注意してください、そしてあなたも、それらを学ぶべきです。あなたがプログラマになるとお金を稼ぐしたい場合は、(少なくとも)Pythonの後にC ++、JavaやC#をピックアップする必要があります。

いい質問です!忘れずに、このプログラミング能力にすることが可能な言語に依存します。が、Cは言語を学ぶ場でコンピュータサイエンス。い4レベルでプログラミング、通常は各大学の学部コースの提供これらの科目:

  1. 手続きグ
  2. オブジェクト指向プログラミング
  3. プログラミングのデータ構造
  4. デザインパターン**

となっております。なっていますが、全ての4ます。その末日までどうなるのかまたいしょうについて十分な知識機能にどの言語使用のために何が問題です。C言語の多くのオペレーティングシステムは、Unix、Linux、Windows。Cの電力のポインタできないマッチによる言語です。Pythonは言語。一つの重要な助言を日本語訳を見てもわかりませんでこの段階でできるように"構文"を参照してください。最初にするべきマスタープログラミングを学ぶ上では、単益少し実践的な知識のPythonです。だがCでも使いやすくするために、プログラムは、C++、C#、Java、PHP.だからPythonぐしない場合がございますが快適C_syntaxに基づく。同じく初心者の方への情熱プログラミング開始から。にもなる意味においても、業界の傾向と動向プログラミングだかの学部コースを教えます。

私は学部学生のCSとして、作業プログラマーとして同時に思います。希望のアドバイスがお手伝いいたします。

第一の問題Pythonを学習することは他の言語にするようにその後ろからの必然と比較しました。しかし、場合がござ 必要 使用ツールです。例これらの状況か

  • 非常に高速に実行(SWIG,ウェ,psyco,pypy,unladen-飲み込むなど)
  • プラットフォームなpythonランタイムがこれらのレア)
  • 需要の高いマルチコア並行処理(異なるpythonのVmでは、通常の)

するのがいいでしょうアプローチ各ツールからの位置は必要でなく慎重;つまり、Cのみの設定が必要と認めた場合には、うが特定の状況ます。

Pythonは学ぶことが容易になり即時性を持っています。容易にするためのPython、電力用C(および関連語)。

質問が記載されているとおり、

:いいえDoが最初にCを学ぶことではありません。 Pythonのこちらをご覧ください。

結局、あなたは組み込みシステム、bootsequences、Linuxカーネルのコードなどをハックする必要があるときは、ポインタについて、あなたは右の最初にそれらを取得していない場合は、システムがcraschと火傷をすることを学ぶ必要がありますCを習得する必要があります時間。あなた自身が使用するメモリを返却する必要があります。これは、通常は悪夢であり、実際にこれらの事はただ邪魔になるようなプログラミングの喜びに寄与しないと、デバッガで無限の時間を過ごすことができます。

結局組み込みシステム上のあなたには、いくつかのアセンブリ言語を学びます、そしてあなたがCの周りだけのラッパーチップアーキテクチャの中で最もアセンブリ/ CPUの可能性であることを理解するであろう。ポインタは深いダウントランジスタによってサポートされているアドレッシングモードです。

すべての近代的な言語はあなたより良く、より速く、プログラマになり、彼らはこれらの事を離れて行っています。あなたは本当にあなたが電気のない場所に行く場合を除き、これらの日のタイプライターを使用する方法を学ぶ、あなたをしませんか? Cは非常に特別なアプリケーションのために、単純です。

私は、あなたが何らかの形で基本的に最初のPythonを学ぶことで不備になるとは思いません。複数のプログラミング言語を学ぶとPython自体がそれを探索する興味深い方法であると多くの利点があります。あなたは、Pythonでいくつかのパフォーマンスの問題がある場合たとえば、Cでコードの一部を書いて(またはパイレックス/ cythonまたはFortranなど)と、それをパッケージ化し、それはあなたのPythonコードで使用可能作る探索することができます。

個人的に、私は物事を学んでいるときに手で多くのコードを書くのが好き。私はそれが良い習慣で、Pythonで(紙の)アルゴリズムを書くことがCまたはC ++(常にではない)でそれらを書くより多くの時間より便利だと思います。これは細部に、あなたは、他の概念的なものであることを過ごすことができるように費やされて少ない労力であり、ピーターが言っていた理由のためにかなりのです。

私はまだ非常に趣味ですが、私はグリップに来ていますことを一つのことは、プログラミング言語はツールですが、それは多くの場合、ユニークなツールであるということです。別の言語から取られることを意味し、これらは素晴らしいですされているプログラミングのスキルがあります。しかし言語「GROK」にできることは、実用的な意味でも非常に重要です。このような理由から、私はあなたが最初に学ぶことにしたというどんな言語を感じる問題ではないので、あまりそれが効果的にとにかく別の言語で自分を表現するために上を移動し、学習のスキルを開発することが重要であるので。

世界では

は、今のpython「fanboysm」のある程度があります。ますます多くのプログラマー(そのうちのいくつかの非常に立派)は、そのPythonはすべての彼らの不満への答えであると考えています。 「クール」はパイソンでどのように見た後、彼らは明らかに真実を否定し、精神病度で、言語を伝道を開始します:pythonはすべて/皆のためのものではありません。

あなたは、おそらく追加の反射を開発するPythonパス続く場合:「それはまだ行っていないかどうかを確認するために図書館へのを見てみましょう」と、しばらくした後、時間が来て、あなたがする必要がありますCは、あなたが必死に言うでしょう学ぶ:「!?!私は私は私のデータを保持するためのいくつかのvoid *型のポインタを使用して独自の辞書を記述する必要が信じることができないとにかく、このC言語とは何ですか」

(ブルースクリーンと黄色のテキスト)Borlands TurboC ++ 1.0を経て1996年に私の最初のプログラミング言語としてC / C ++を教えられてきた私は真剣にC / C ++の意志のヘルプを言ったC.以外の(この場合はPythonの)何かを学ぶことをお勧めすることができますあなたがこれまで以上にハードウェアの相互作用について知りたい場合は(組み込み開発、ドライバの書き込み、など。)

Hanselminutesによると、それはまだそれの用途がありますので、VB.NETコンパイラはCで書かれているポッドキャストます。

ほとんどのプログラミングの概念は、言語に依存しています。あなたは、はるかに良い学び、あなたはファンダメンタルズに焦点を当てることができるように適用するのは簡単だ言語で出始めで提供しています。その言語はC.ではないでしょう。

Cは、の恐ろしいの指導言語になります。そのようなとして使用することを意図されていませんでした。これは、提供された時間の他の言語(初期の70年代)よりも高い柔軟性と制御を望んでいた経験のあるプログラマのために設計されました。あなたは、実際のプログラミングについて何よりも時間Cの癖についての学習を過ごします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top