PythonとDjangoは、Java / .NET Web開発者にとってどれほど難しいと思いますか?[閉まっている]


19

私は数か月前に現在と将来のすべての開発努力を率いている小さな会社で新しい仕事を始めました。私は個人的に、主にJavaだけでなく.NETの観点からソフトウェアの設計と開発に長年の経験があります。私はキャリアの後半で。同じ問題を解決するために。

私の上司にはスタートアップ企業があり、あまり多くの情報を明かすことなく、Googleマップに統合してルートを構築する中程度に洗練されたWebアプリケーションが必要でした。

彼は彼らが約束したWebアプリケーションを外注し、主に配信不足に陥り、期限を過ぎました。彼は現在、投資したお金の少なくとも一部を回収しようと戦っています。現在のサイトのソースコードは持っていますが、実際に使用する前に修正して追加したいもののランドリーリストがあります。

彼は私にもう少しお金を払ってこれをやりたいかと尋ねましたが、問題はサイトがDjangoを使用してPythonで書かれていたことであり、私はまったく経験がありません。PythonやDjangoについてはほとんど何も知らず、ゼロから学ぶ必要があるため、私はこれが本当にベストな人間ではないと彼に言いました。私がその時間を使って言語とプラットフォームを学習しているとしたら、彼に時間ごとに彼に時間を請求するのは公平ではないと感じます。

私の経験レベルの要約に基づいて、これを拾うのにどれくらい難しいか、どれくらい時間がかかると思いますか?時間の無駄だと思うなら、経験豊富なPython Web開発者を見つけるための提案を誰かがお勧めできますか?お金は彼にとって今の関心事なので、彼はもはや最大の予算を持っていません。


10
何で質問する?.Netがあなたを愚かにしたので、それは難しいだろうと思いますか?ただのコードです。それはどれくらい難しいのでしょうか?
S.Lott

1
@ S.Lott、それは有能であるかどうかの問題ではありません、私に支払っている人が限られた予算を持っており、私の主要な収入源の私の直接のマネージャーである場合、私は資格がありません。私は確かに彼にそれを貼り付けたくありません。
maple_shaft

1
あなたは本当にそれの一部をやってみて、それが機能するかどうかを確認しなければならないのですか?誰もあなたの時間に価値を置くことはできません。
ジェフ

2
あなたは自分自身を傷つけていると思います。彼の最近の経験を考えると、あなたのマネージャーは、真実は「私はそのフレームワークに精通していないが、やってみたい」と言っても、彼に真実を伝えるために信頼できる誰かを持っていると思います。少なくとも、彼が回復したソースに何か価値があるかどうかを伝えることができるはずです。
ベンジョー

2
@Benjol、「あなたは少なくとも彼が回復したソースが何か価値があるかどうか彼に伝えることができるはずです」そしてそれはまさに私が恐れていることです。Django Hello Worldチュートリアルを数時間で理解できたからといって、正確な見積もりを行うための経験や知識があることや、コードの品質を判断することさえできません。私が知っている限りでは、スパゲッティコードと8,000行の関数は、Pythonで物事が行われることになっている方法です。
maple_shaft

回答:


15

Pythonは言語と同じくらい簡単に習得でき、言語の主なセールスポイントの1つです。オブジェクト指向言語に精通している人として、あなたは始めるのに素晴らしい立場にいます。PythonとJava / C#の唯一の基本的な違いは

  1. ダックタイピング/型安全性の欠如。
  2. ファーストクラスの機能。

私はあなたがあなたがその仕事にとって最高の人間ではないと感じている理由を理解しています。一方、あなたの上司はあなたを信頼しており、彼はあなたよりもPythonをよく知っている信頼できない人々にやけどを負ったばかりです。

あなたが上司の信頼を濫用することを心配しているなら、彼にN何時間も無料で提供することを申し出てください。(あなたが何を決めるかN。)その時間の終わりに、あなたは時給の価値があるかどうかを決めることができます。最悪の場合、その時点でPython / Djangoの感覚がはるかに良くなります。


それは私たちの両方の利益のために彼にいくつかの自由時間を与えるための興味深い考えです。たぶん私はコミットメントを恐れているだけですか?
maple_shaft

これらが根本的な違いである場合、JavaScriptを知っているC#開発者はまったく困難を伴うはずです...私は正しいですか?
コンラッド・モラウスキー

3
C#には、ほとんどの開発者が使用しないファーストクラス関数があります#justsaying
sa93

@Morawskiはい、Java、C#、またはC ++のいずれか、およびPerl、Ruby、またはJavaScriptのいずれかを知っている場合、Pythonを学ぶのは簡単です。
エリックウィルソン

@ sa93が言ったこと。また、(いまいましい、私のオフトピックのコメント。)、私は実際にはマイクロソフトのファンタイプではありません(実際、私はもっと多くのPythonistaです)が、彼らが追加している機能的な機能の数はむしろ印象的ですさまざまなリリースを通じて。C#5.0は非常に使用可能な言語になりました(他の関連言語*咳* java *咳* VB *咳*と比較して)
Nadir Sampaoli

8

組み込みのCプログラマーとして、最終的にはスカンクワークスプロジェクトとしてPython / Django Webアプリに取り組んだので、基本を簡単に理解できることを証明できます。

Pythonは、一般的に非常に簡単に理解できます。私は個人的に、Pythonのドキュメント自体が非常に有用であることを発見しませんでした-それは常にpythonを既に知っている人のための補佐官の回顧録のようです-しかし、ウェブは有用な例でいっぱいです。ある日の夕方、The Python Challengeを試してみてどのように着くのかを確認してください。

Djangoを徹底的にお勧めします。データベースアクセスを抽象化する非常に優れた機能を提供し、データベースコンポーネントのないWebプロジェクトにも使用したことのある十分なユーティリティを提供します。一般に、達成したいことを考えている場合は、明らかな名前がすでに提供されているメソッドがあります。文書はまた、非常に良いです。

Djangoのインストールは非常に簡単ですので、試してみて、どのように動作するかを確認することを強くお勧めします。PythonとDjangoを使った2、3晩の夕べは、必要な作業に満足できるかどうかを判断する自信を与えてくれるはずです。


4

Python / Djangoパラダイムは、.NETまたはJavaスタックとは確かに異なります。いくつかのプログラミングパラダイムに満足している場合(そして、これにより機能対オブジェクト指向、静的対動的を意味します)、おそらくこれを実行できるでしょう。@EricWilsonによると、Pythonを学ぶのはそれほど難しくありません(インデント== scope thing; pについて弾道を行う準備をしてください)。

「賢くて物事を成し遂げる」が「言語に精通していること」に勝つというのは昔の格言です。

基礎となるWebスタック(HTTP、要求/応答サイクルなど)およびサードパーティAPI(Google)を十分に理解している場合は、それも少し簡単になります。

また、これらのWTFの瞬間についても支援が必要です。ローカルユーザーグループ、オンラインフォーラム、StackExchangeと呼ばれる小さなサイトなど、Python / Django開発者のコ​​ミュニティに参加していることを確認してください。

ああ、ただ他のことを考えた。リトマス試験を受けてください。夕方または週末の午後に、PythonとDjangoをダウンロードしてインストールし、チュートリアルをどれだけ簡単に理解できるかを確認してください。私が自分で行った基本的なテストは、ダミードメインオブジェクトのCRUD画面を構築することです。私がそれを行えない場合(そして、それに恥はありません)、私は正しい人ではありません、またはスタックは吸う;)

最後に、ここでの$側に注意してください。常にこの技術スタックをピックアップしたいなら、おそらくあなたはお互いに好意を持っているかもしれません。


「そうでなければ、あなたのマネージャーはあなたの貴重な時間を犠牲にして安価なものを手に入れるためにあなたの善意に頼っているような匂いがします」とにかく彼を助ける義務はない。私がその選択をし、それを後悔するなら、私は自分のせいにするだけです。
maple_shaft

1

Djangoの価値についてコメントすることはできませんが、Pythonを学ぶことはあなたの時間の良い投資になると思います。このプロジェクトだけでなく...

Java開発者として、私はJythonが非常に貴重であり、C#で開発していたときにIronPythonについて知っていたらよかったと思います(JavaからC#ではなくC#> Javaに移行しました)。

Jythonスクリプトで使用できるjavaライブラリ全体があるという事実は優れており、Mockオブジェクトを使用してPOJOクラスをテストするためにJythonユニットテストを頻繁に使用しています。

アプリケーションにJythonコンソールも提供しているため、ユーザーは自分のルーチンをスクリプト化し、Javaライブラリと独自のルーチンの両方に完全にアクセスできます。ユーザーに自動化を行わなくても、簡単なスクリプトを作成し、あらゆる種類のことを自動化する方法をユーザーに示すことができるのはとてもうれしいことです。

確かに、Jythonは完璧ではありません-CPython(3.2)やIronPython(2.7)に多少遅れています(2.5)が、Guidoの本と同程度になっています。* 8 ')


0

C#の作業のみを行った後、PythonとDjangoの基本を習得するために1〜2週間を費やしました(最終的には他の理由でRailsを使用することにしました)。最初は少し難しいことでしたが、Djangoは比較的簡単です。私が見つけた最も難しい部分は、Pythonで必要なコードを記述する方法を正確に把握することでした。Django自体は非常に単純です。1年以上触れたことはありませんが、おそらくささいなことをすることができるでしょう。ただし、汎用オブジェクトと、より複雑なテンプレートとビューを使用すると、少し複雑になります。

私が頭を抱えるのがおかしいのは、すべてのDjangoモデルがmodels.pyファイルに含まれているという考えです。私は確かにあなたは別のファイルとインポートすべてのそれらの(私はしかし、これを試していない)が、そのC#に使用されているだけではフェルト「間違った」作成することができますよ非常に悪い 1でない限り、同じファイル内に複数のクラスを持つことを他のクラスでのみ使用されるプライベートクラスの一種。MVC(またはDjangoの用語ではMTV)にそれほど精通していない場合、それ自体は小さな学習曲線ですが、残りの部分はそれほど難しくありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.