web-dev-qa-db-ja.com

優柔不断に悩まされている-プロジェクトに使用する技術を選択する方法?

私は常に、利用可能な最新かつ最高のテクノロジーに魅了されてきました。私は今年大学を卒業し、過去数年の間に、それぞれに最適なものを見つけるために、新しいプログラミング言語、Webフレームワーク、Linuxディストリビューション、IDEなどを学ぶことに多くの時間を費やしてきました。

Ubuntu、 GentooDebianArch Linux[〜#〜] suse [〜#〜]VectorLinuxPuppy LinuxSlackware 、および Fedora 、私はVimとEmacsでかなりの時間を過ごし、プレイしましたVisual Studio、 EclipseNetBeansgedit 、その他いくつかあいまいなもの。

私はあらゆる種類の言語で遊んだことがあります。C、Java、Visual Basicなどの一般的な言語から始めましたが、常に「悪い」(悪いの相対的な定義)と聞いていました。その後、スクリプト言語を発見し、 [〜#〜] php [〜#〜]Perl でかなりの経験を積んでいます。 )、 Python 、および Ruby 。それから関数型言語がそこにあると聞いたので、 Scheme[〜#〜] lisp [〜#〜]HaskellErlangOCamlForth[〜#〜] j [〜#〜] のようなあいまいな言語で遊んだことがあります。私はWeb開発をしているとき、フレームワークと言語の間を行ったり来たりしています。プレーンPHPを使用する必要があります、 Ruby on RailsDjangoCakePHPCodeIgniterYiiKohana 、または自分で作成しますか?

私はコンピュータサイエンスについて非常に幅広く浅い知識を持っています。あるテクノロジーの有用な量を学ぶとすぐに、他の何かが輝いているのを見て、それを追いかけます。私の進歩はしばしば次のようになります:「PerlはPHPよりも優れていますが、待ってくださいPythonはPerlより優れています。しかし、今、Ruby Perlのパワーであり、Pythonよりもクールです。Rubyを少し見てきたので、複雑すぎます。Pythonはクリーンです。ああ、でもデプロイするのは難しすぎます。 Pythonなので、実際のWeb開発を行いたい場合はPHP)を使用する必要があります。 "など。

プロジェクトにはどのテクノロジーを使用すればよいですか?言語/フレームワーク/ IDEを1つだけ選択して、しばらくの間使用可能な他のものを忘れる必要がありますか?私はプロジェクトを完了するのに十分な長さのものにとどまることはないので、完成したプロジェクトにはそれほど多くのものはありません。

10
davidscolgan

バイクシェディングを停止してプログラミングを開始します。

これは決まり文句に聞こえるかもしれませんが、それは真実です。良いツールは悪いプログラマーを良くしませんし、悪いツールは良いプログラマーを悪くしません( Dijkstra が言っていることにもかかわらず)。あなたはあなたの時間の90%を費やすことができます bikeshedding テクノロジーX対テクノロジーYを超えて、どこにも行きません。または、X(またはY、それは重要ではありません)を選択して、実際の作業を行い、有用な経験を得ることができます。

いくつかの欠点がある場合でも、ツールのセットを選択して習得するだけです。

ツールを実際に習得したら(つまり、ツールで5ダース以上のプロジェクトを実行すると)、他の人と遊んで試してみることができます。実際、そうすることをお勧めします。あなたは他のすべての意見を間違っていると見る熱狂者になりたくありません。また、現在のツールよりも別のツールの方が実際に価値があると判断する場合もあります。

あなたが自分で何を選ぶかを決めることができない場合、あなたの内面の議論を終わらせる良い方法は、他の人にあなたに選ばせることです。例:Python、Django、jQuery、Vim、Debian。今、それらを学びます。

15
imgx64

私はカーソンに同意する傾向があります。私はあなたが持っているほど多くの技術に自分自身をさらしていません。私はCMSで遊んだり、PHP対Python(同じ反応:始めるのが難しすぎます。)これらすべてのアイデアは、ウェブサイトやドメインの登録など、頭を悩ませています。

そしてついに、この1年間で、私の問題は、プロジェクトの実際のアイデアが私の「心」に完全に浸透していないことであることに気づきました。ついにそれを手に入れました。今、私はこれから何を使うのかを探しています。かなり早いプロセスになると思います。

明るい面では、関連性のない趣味から完全に関連性のない趣味へのケアとは異なり、関連する有用なスキルセットを使用することで、多くの時間をいじくり回すことはあなたに利益をもたらすだけです。 ;)

8
dingo

私はコンピュータサイエンスについて非常に幅広く浅い知識を持っています。

これはあなたの問題です。言語を選ぶそしてそれに固執する。何を開発していますか?幅広いカバレッジが必要ですか? PHPを選択します。あなたのキャリアを足で撃ちたいですか? Rubyを選びます。 (冗談かもしれません)。

選択する「正しい」言語はありません。使いやすい言語を選択してください。

6
Josh K

言語/フレームワーク/ IDEを1つだけ選択して、しばらくの間使用可能な他のことを忘れる必要がありますか?

基本的にはそうです。

テクノロジー間を行き来していると、どのテクノロジーにおいても効果的な開発者になるために必要な深い経験を得ることができません。そして、すべてが言われ、行われるとき、完璧なテクノロジーはありませんが、それらの多くは仕事を成し遂げるのに十分です...仕事によっては。

完成するのに十分な長さのものにとどまることはないので、完成したプロジェクトの邪魔になるものはあまりありません。

特にプロのソフトウェア開発者を目指している場合は、それに対処する方法を学ぶ必要があります。プロジェクトを完了するために自己規律を持たない人を雇いたいと思う上司はいないでしょう。

5
Stephen C

人々は「正しい言語は選択できない」と言っていますが、言語を選択する際にいくつかの基準を考慮する必要があるかもしれません。たとえば、私は過去にRailsで大規模なプロジェクトを開発したときに問題に遭遇しました。当時、Railsをホストしている人を見つけるのはかなり困難で、結局は多くのサーバー構成とセットアップを自分で行うため、構築する予定の内容によっては、必要なパフォーマンスの種類、ホストする必要があるかどうか、ホストする必要があるかどうかを検討することに価値がある場合があります。エンドユーザーのマシンを機能させるためにインストールする必要のある前提条件があります。特定のプラットフォームをターゲットにする場合、どのプラットフォームになりますか?クロスプラットフォームを計画している場合は、選択するライブラリと言語に影響します。

何をしようとしているのか、それがどのように機能するのかを考えることは、どの言語で作業したいかについての非常に役立つガイドになります。

2
glenatron