This question already has an answer here:
I have always been fascinated with the newest and best technologies available. I graduate from college this year, and over the course of the past few years, I have spent a lot of time learning new programming languages, web frameworks, Linux distros, IDEs, etc, in an effort to find the best of each.
I have installed and played around with Ubuntu, Gentoo, Debian, Arch, Suse, Vector, Puppy, Slackware, and Fedora Linux, I have spend a good amount of time in Vim and Emacs, and have played around with Visual Studio, Eclipse, Netbeans, Gedit, and several more obscure ones. I have played with all sorts of languages - I started with the common ones like C, Java, VB, but always heard that they were "bad" (for relative definitions of bad). I then discovered the scripting languages and have quite a bit of experience in PHP, Perl, Python, and Ruby. Then I heard that functional languages are where it's at, so I played around with Scheme, Lisp, Haskell, Erlang, and OCaml. I've played around with obscure languages like Forth and J. When I do web development, I go back and forth between frameworks and languages. Should I use plain PHP, Rails, Django, CakePHP, Code Igniter, Yii, Kohana, or make my own?
I have a very broad and shallow knowledge of computer science. As soon as I have learned a useful amount of one technology, I see something else shiny and go after it. My progression often goes like this: "Perl is better than PHP, but wait, Python is better than Perl. Oh, but now I see that Ruby has the power of Perl and it is cooler than Python. Well, now that I have seen a little of Ruby, it is too complicated. Python is cleaner. Oh, but it is too hard to deploy Python, so I should use PHP if I want to do real web development." And so on and so forth.
Does anyone have any advice for someone like me who can't decide which technology to use for projects? Should I just pick one language/framework/IDE and sort of forget about the other things that are available for a while? I don't have all that much in the way of completed projects because I never stay with something long enough to finish it.