2009-06-25 5 views
5

プロジェクト中に言語を学ぶことを試みたことがありますか?私は個人的な経験から、勇気、努力、時間、思考、カフェインが多く、睡眠がないと言うことができます。場合によってはこれを選択せず​​に行う必要があります。例えばあなたが個人的なプロジェクトに取り組んでいる場合。プロジェクト中に言語を習得しますか?

私がこのような状況で通常やっていることは、誰もが信じるように、言語、構造、構文、ロジックに関する私の現在の知識の上に「構築」されています。私が対処するのが難しいのは、場合によっては完全性の違いです。いくつかの言語は、将来の学習や「語学学習」のための良い背景を提供しています。彼らは、情報源や参考文献として提出し、来るべきものを「しっかり」把握することができます。他の言語は、新しい考え方を形作り、導入し、慣れるのが難しいです。

あなたは意図的に特定の言語で考えることがあり、新しい考え方、新しい言語に導入されたときに、混乱を招くか、新しい言語の現在の知識の "境界"を失うことがあります。

この場合、良い解決策はありますか?新しい言語の知識を広げ、新しい考え方を持ち、新しい言語の「境界」内に他の言語の現在の知識を維持したり、組み込んだりするためにはどうすればよいでしょうか? 、自分自身を向上させるの前提に挑戦し、お互いを助けたいという願望に縛ら開発者の

答えて

8

私は言語を正しく学ぶためにプロジェクトを行う必要がありますが、それは個人的なプロジェクトかもしれません。私が仕事でPythonを学んだとき、私はしばらくの間、私の生産性の大幅な低下を予期しました(そして見つけました)。標準をコーディングしている標準チュートリアルを読んで、しばらくPythonリストに潜んでいたので、言語のベストプラクティスをもっとよく分かりました。

言語を学習するときにdojosやstuffをコーディングすると、感情を得るのに役立ちます。私は最近、仕事を変えてJavaに戻ってきました。私は、物事の感覚を取り戻すためにちょっとしたおもちゃプログラムに取り組んでいました(私は以前の主な経験としてJava 1.4 )。

+0

Pythonはそれに適していたので、私はそれに切り替えたときに生産性が上がったことがわかりました!しかし、その時、私は自分の勤務時間の5〜10%しか費やしていませんでした(無関係の修士号を修了したばかりなので、ほとんど仕事はありませんでした)ので、YMMVです。 – PTBNL

+0

私はPythonをRuby(これまで私が使っていたもの)とPythonを2ヶ月後に比較していました。 –

3
ここで私はALT.NETを言及したいと思います

自己組織化、アドホックコミュニティはの実践の卓越性を追求しますソフトウェア開発。

ALT.NETの精神で、新しい言語を学ぶためにあなたの快適ゾーンから手を差し伸べるのは難しいことですが、それは便利です。私を本当に助けたものは次のとおりです。

  1. 言語やスクリプトの歴史を理解してください。進化を知ることは大いに役立ちます。
  2. 正しい本を選んでください。 StackOverflowとAmazon.comを調べて、成長する痛みを和らげるのに役立つ正しい本を見つけてください。
  3. OOPは成熟した言語のほとんどではかなり一般的ですので、多くの書籍でOOPに関連する章の多くをスキップできます。構文学習は段階的な処理になります。私は一般的に、そのための簡単な便利なガイドをブックマークします。
  4. できるだけ多くのコミュニティフォーラムを読んで、新しい言語の一般的な落とし穴を理解してください。
  5. 地元の集まりに出席して、コミュニティと交流し、痛みを分かち合いましょう。
  6. 複雑ではない小さなアプリケーションを構築し、それによって勢いを増すことで、一度に1つのピッチを取ります。
  7. 学習する必要がある参照フレームを作成してください。セキュリティ、ロギング、マルチスレッドの処理方法などがあります。
  8. 開かれた方がいいかもしれませんが、あなたは批判的かもしれませんが、何か嫌いな人はその言語を学ばないでください。

最後に、C#やJava、1つの関数言語、RubyやPythonのような1つのスクリプト言語のような強力な言語を学ぶ価値があると思います。

これらは私を大いに助けてくれました。すべてのソフトウェアエンジニアやアーキテクトが、あらゆる開発環境に本当に役立つと思っています。

2

私はZend Frameworkプロジェクトのプロジェクトリーダーとして雇われた後、PHPを学びました。

私は20年の専門的なプログラミングの背景と、C、Java、Perl、JavaScript、SQLなどの知識を身に付けることができました。私はまた、私のキャリアの大部分においてダイナミックなスクリプト言語に重点を置いています。私はawkでアプリケーションを書いた、シェルのフレームワーク、troffでマクロパッケージを書いた、私はさらにsedだけを使ってフォーラムを書いた。

  • コードとドキュメントを読む:

    物事は仕事上の言語を習得するのに役立ちます。

  • コミュニティのメーリングリストやブログを聞きます。
  • 言語の専門家と話すと、幸いなことに複数の人が私の直属のチームメイトでした。
  • 練習コードを書いて、コードレビューとコーチングを依頼しました(Zend_Console_Getoptは私の最初の重要なPHP寄稿者でした)。
  • 言語に沿ったツールを学びます。もちろんPHPUnitXdebugphpDocphingなど

私は他のプログラミング言語から知っていたものを適用しませんでした。多くのコンピュータサイエンスの概念は言語的に普遍的です。与えられた言語の相違は、しばしば単に慣用的であり、別の言葉で別の方法で行うことができることを述べる方法です。これは、PerlやPHPのような言語の場合に特に当てはまります。どちらも、以前の言語から多くの慣用句を借りています。

また、私は大学でCompiler Designのコースを受講するのに役立ちました。言語がどのように構築されるかについての良い基礎を持つことで、新しい言語を手に入れやすくなります。あるレベルでは、それらはすべてランタイムスタックとオブジェクト参照を抽象化する単なる方法です。

4

言語を学ぶための刺激が何であっても、新しい言語で良いパターンを模倣することから始める必要があると思います。優れたコード例、優れたオンラインチュートリアル、より経験豊かな開発者の後に、良い本を見つけることであれば、まず特定の言語で良いコードを書くことが何を意味するのかを吸収しなければなりません。快適さを一度発達させたら、学習したパターンの代替案を試してみることもできます。他の言語から学んだことを適用する方法を探していますが、言語。最終的には、以前に学習したルールを破ることができるということを知っているポイントに達するでしょう。良いチュートリアルから始めても、間違いなく、後で振り返ってみて、あなたがどれほど愚かなのか理解できないようなコードを書いています。可能であれば、私の最初の入門として、捨てられ、後で私に襲われるような言語コードに書き込むことはできません。代わりに、あなたがますます多くのことを学ぶにつれ、リファクタリングに多くの時間を費やすことになります。

1

あなたがチームのジュニアメンバーで、言語を知らない場合は、これはnです必ずしも問題ではありません。コードレビューと監督がある限り、生産性を高めることができます。

言語の構文は1つの問題ですが、アーキテクチャの違いがより重要です。多くの言語は開発プラットフォームでもあり、プラットフォームに関する経験がない場合は、実行可能なソリューションアーキテクチャの作成方法がわかりません。ですから、プロジェクトのリードや作業ソロであれば、デザイン作業を行う前にプラットフォームでの経験を積んでおく方がよいでしょう。

たとえば、VBの経験のない経験豊富なC#コーダーは、おそらくVB.NETプロジェクトで正常に生き残ることができます。実際には、C#/ ASP.NETでの経験があった開発者がVB ASP.NETプロジェクトよりもC#WPFプロジェクトを完了することは難しくなります。経験豊富なPHP開発者は、ColdFusionプロジェクトで少し躊躇しているかもしれませんが、スクリプトベースのWeb開発アーキテクチャに精通しているため、おそらく深刻な問題は生じません。

オブジェクトモデリングやデータベースクエリ戦略などの多くの概念は、言語間で正確に翻訳されます。しかし、常に新しいプラットフォームの学習曲線があり、時にはそれはかなり厄介かもしれません。最悪のケースは、アーカイブがリファクタリングに間違っているためにプロジェクトを投げ捨てなければならないということです。

0

私の意見では、それを避けるべきです。私は知っていますが、ほとんどの場合、新しい言語を古い言語とミックスしないようにしてはいけません。古い習慣や習慣やパターンを混在させることは決してありません。

他の言語のやり方ではなく、言語の仕方で新しい言語を理解するのに役立つリソースを常に見つけてください。それは決して幸せな結末を持つことはありません、そして、それが正しい方法にそれを変更することは非常に困難になります。

乾杯。

1

プロジェクトでは、私が他の方法でスキップする可能性のある言語の側面を学ばせるため、プロジェクトで作業中に新しい言語を学ぶのが好きです。私が好きなことの最初のものの1つは、その言語でコードを読んだり、ジャンプしたりすることです。私が行くように役立つリソース(書籍やさまざまなインターネットサイトなど)があります。

私はしばらくの間、それをやってから、その言語の本や他のリソースを読んだり(または再読したりするのが好きです。この時までに私はいくつかの知識を持っているので、これはいくつかのことを凝固させるのに役立ち、私の理解に間違っている部分を指摘します。例えば、私は言語間の類似点について誤った仮定をしていたことがわかります。

これはツールにも当てはまります。ツールをしばらく使用して基本を学んだら、ドキュメントを読む(またはスキミングする)ことで私に多くのことが教えられます。

0

はい、あります。

他の方法がありますか?私が今までに学んだ唯一の言語は、プロジェクトにはなかった、ABCベーシックで、これはあなたが私の最初のコンピュータで使ったものでした。

0

特定の言語で始める場合は、それに固執することをおすすめします。過去何度も何度も試みてきたので、私はより多くのものを試してみました。そして、始めたのは最高でした。D

0

毎回私は新しい言語を習得したいと思っています。コードするもの。

しかし、私がそれをうまくやったことを確かめるために、私はいつも自分のコードとそれが何であるかをチェックしたいと思っています。

これを行うには、私が知っている言語で同じ種類のものを行い、出力を比較しようとします。そのために、エクササイズシートと私が学んだすべての言語の修正を加えた小さなプロジェクト(Githubでホストされています)を作成しました。それはあなたに本当の小さなプロジェクトを与えるので、私の意見で学ぶ良い方法です。

関連する問題