Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm new grad of a SW Engineering school, and I want to create a small program. For example, the program might be a Web program, with or without a client that is not a browser (Mobile or Desktop).

My question is, how do I know what technologies and languages to use? There are so many buzz words.

share|improve this question

closed as not constructive by Yannis Rizos, gnat, Aditya P, Matthieu, Walter Jan 16 '12 at 23:20

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

The process of selecting a language and / or a technology is not an easy one, and one that almost always requires that you already know exactly what you want to build. If not, use only what you already know, and good luck :) –  Yannis Rizos Jan 16 '12 at 7:49
@ZaphodBeeblebrox I'd expand on that just a little with "Unless you have specific tools/languages/frameworks you want to learn, then it can be a matter of deciding what to build that will likely fit those tools." I do note you say "almost always" but I'm a pedantic sort. –  Kevin D Jan 16 '12 at 8:53
@KevinD Hm, I disagree with Unless you have specific tools/languages/frameworks you want to learn, because from personal experience that always fails when you don't have an actual itch to scratch. That said, when I left the comment I thought of writing an answer, but was a bit in a rush. And now that I have the time, there are already two answers and I don't have much more to say. +1 to both. –  Yannis Rizos Jan 16 '12 at 10:11

2 Answers 2

Expanding on Zaphods and my own comment there are two ways to approach your issue as I see it. If you have a problem you want to solve programatically you need to define that problem, then choose the tools to fit your solution. Alternatively if there are tools you want to learn, then it becomes a case of finding a problem/project to fit those tools.

It appears to me you are looking to learn, so I suggest you think about what you want to learn, for example, "I want to build a web application in the Java stack that communicates with a database via web services", do some initial research on what tools etc it will take to do that and then come back here for some more information. I think a question along the lines of "This is my project, is this a good tech stack to use to solve it?" (perhaps more refined) would be on topic either here or maybe StackOverflow.

share|improve this answer

You will need to use some of the skills which really should have been taught to you during your graduate courses by engaging in some research to help you to determine which combination of technologies will best suit your task, and your particular skill set.

Forget about the buzz words, and the sheer number of languages and technologies. You need to focus your efforts somewhat. Read about technologies that you might be interested in, or that you have heard are normally used for the sort of task that you want to do. Learn everything you can about the technologies you have under consideration, and when you feel you're closer to making a choice, then pick the technologies that you feel you will have the ability to make use of, and once you've made your choice, don't look back and never second guess yourself. Also, get involved in the many user communities that are out there, and never stop learning and reading to improve your knowledge.

EVERY good product developed starts with good research, but the good thing is that once you've become familiar with the technologies you are going to use, then the next time you go through this exercise, you'll be better equipped to make appropriate choices and you'll have a better understanding of the suitability of the products you have worked with before.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.