10

After reading the FAQ and the answers in Why is "what language should I learn" considered off-topic?, I feel that there is still a hole in the discussion, namely how can we help all those people that are genuinely asking for advice on how to progress their careers in terms of language knowledge?

It seems that there are a lot of college-level people asking this question and getting immediately closed as off-topic. I don't see that response as being particularly helpful, so I'd like to see some discussion around how we could update the FAQ or provide some useful feedback to the person asking the question.

More senior stackoverflow/programmers users know that in the real world knowing any particular language is not as important as knowing a range of languages, environments and toolkits. Juniors, however, do not know this. This is not limited to the software world, either. People will also agonize over whether to learn French or Spanish, or to study inorganic chemistry vs biochemistry etc. In each case it doesn't really matter except in specific circumstances (e.g. if you really want to work at the French embassy, or you only ever want to work with Android) as long as you learn something.

It is perfectly reasonable for a college kid to ask "what should I learn" or "where should I focus my effort" and so on, and for them many of the reasons why these are considered off-topic questions are irrelevant. To quote one of the answers from the Why is "what language should I learn" considered off-topic? question:

What does it depend on? Well this is an incomplete list:

What languages you already know
What problem you want to solve
What environment you have to solve the problem in
What language the company you're about to join uses
and so on.

For college kids only the first point is relevent (and even then only vaguely - college kids are unlikely to be an expert in any language yet). They're not looking to solve a particular problem or join a particular company, and without some industry experience they will have no idea what "and so on" encompasses.

I think they're attempting to ask a deeper question "How does one become a strong, employable developer" but they don't know how to ask it. They mistakenly think that choice of language is the most important thing.

How can we help the junior users to understand this without discouraging them with an immediate "this is off-topic, go away"? It could be as simple as a canned response that points them to a website hosting a good discussion of what makes a good developer (I know, I know, that's subjective and argumentative in itself).

  • 3
    Write a blog post about it ;-) – Ivo Flipse May 15 '11 at 20:02
10

I'm noodling on the idea of making a "definitive" post along the lines of "how should I choose my next language?"

With the idea that the answers would be along the lines of "look at your project requirements, explore market trends, etc". That way we could provide a helpful response (via closing the "what should I learn next" question as a duplicate) while making sure that the questions aren't allowed to stick around for too long.

A "FAQ" thread on meta with links to that question and possibly others like it (I can think of a few questions we get often even though they're either not answerable or otherwise not appropriate for SE) and/or an FAQ tag on the main site could also help.

  • 2
    Yes, a "meta-question" (not literally on meta) about how to choose a new language - without reference to any specific languages or even paradigms - would probably be useful as sort of a universal duplicate link. – Aaronaught May 16 '11 at 15:05
  • Yeah, that's the "canned response" thing I was thinking of. I think "look at this answer" will be much better than "closed". I'm looking forward to your definitive question! – Cameron Skinner May 17 '11 at 3:32
  • I feel that this would't be enough for many people, since you only can know what skills you need and what tools offer after you learn they exist (otherwise, you get everything looks like a hammer syndrome). Perhaps a big "restaurant menu" of PLs would help better in this sense? – hugomg May 17 '11 at 13:36
  • @missingno We can't possibly cover every tool and language out there (and stay accurate and up to date at the same time). Teaching people how to fish, so to speak, would be a better approach here. – Adam Lear May 17 '11 at 13:37
  • That makes sense. Perhaps just having a link to the tags page would suffice as a way to just show a list of reasonably popular things out there? – hugomg May 17 '11 at 14:13
  • @Adam - I think I've mentioned somewhere before that having a blog for Programmers (with guest bloggers from the community) may give all of the people who don't like the Q&A format a way to kind of redirect their desire to change things. Instead of venting about why question X can't be asked here, they could use the blog to propose and write about all the subjective or argumentative topics they want, while still preserving the integrity of Q&A on the main site. :) – jmort253 May 19 '11 at 2:28
  • 1
    @jmort253 That's a good idea, but there's more to it than just setting up a blog and sitting back to relax while everyone submits great posts. A blog would require management, post editing/approvals, convincing people to write posts, etc. It can certainly be done (I hear Gaming.SE's blog is doing fairly well), but unfortunately I don't have the time to devote to spearheading the effort at this point. – Adam Lear May 19 '11 at 3:00
  • @adam - I hear you. That is very time consuming. – jmort253 May 19 '11 at 6:19
5

When a user asks a question, the sidebar links to the FAQ and How to Ask, which describes how to ask a constructive question, including some very basic advice along with links:

On-site

  • Our search so they can get help immediately instead of asking a duplicated question
  • Our FAQ (again) so they can understand what questions work best here.

Off-site

When they start typing in a question title, the system presents them with a ton of related questions that might be really close to what they intended to ask about, thereby preventing another question that covers the same ground from being asked.

Additionally, most questions get a ton of feedback in comments (and in answers) addressing the problems with the question: a question asker can use that feedback to edit and better hone their question.

Finally, when a question is closed, there's a very brief message that explains what was wrong with the question; and, in most cases, moderators will leave a comment explaining what was wrong and what the next steps are for the user (how to rephrase, what to read, or how to get the question reopened).

By all means, we'd love for every possible developer to be able to ask questions that are going to get answers that are helpful to them, but after all of the above, they still ask an off-topic question, or a question that's not constructive, or a question that doesn't clearly say what problem the asker is trying to solve, I'm not sure there's any more we can do.

Programmers.SE is one of the more popular Stack Exchange sites: we get a lot of users, a lot of questions, and a lot of answers. We can't spend a great deal of time mentoring every single user who happens upon the site: at some point, users either need to help themselves and figure out if they're in the right place to ask their question (and, if they are, how to ask it in a way that makes it interesting to other people), or if they can't, find a place that's better suited for them.

  • 1
    to be clear, How to Ask is only forced on new askers on Stack Overflow right now -- because it is quite invasive. It is of course linked a few places on the ask page itself. – Jeff Atwood May 18 '11 at 7:52
3

I'm someone who really wants to learn about programming, and I ask the "What language should I learn?" question a lot around the office and what-not, because, to me, it seems like a plausible starting point. In most professions, you begin by asking "What skills do I need?" and most employers will say "X, Y, and Z" skills. This is where I think this line of thinking comes from.

I think you're right in saying that the question should really be reformulated as "How do I become a strong, employable developer?" But what does that mean? What market am I supposed to shoot for? How do I define my interests if I don't know what languages are out there that will do what I want?

I can understand why so many people here would get frustrated by the "What language should I learn?" discussion, because it IS so open ended, but at the same time I think some clarificatory questions are helpful for the newbies because often times they (myself included) have no idea what their interests are and are just looking for the fastest way to get their hands dirty in the programming field.

Just my two cents as a fledgling developer.

  • 2
    I agree that conceptually it's a good question. However, any such question is either too vague to be a real question or so particular that it's too localized. A standard FAQ question that we can refer askers to is probably the best we're going to do. – David Thornley Jun 3 '11 at 18:36
0

I just wanted to share my thoughts about this in addition to the good answers already posted.

People should learn a language when they need to use that special language. So it depends on the project they want to develop or their field of specialization. Therefore better ask people with that question what they want to develop and encourage them to not flinch from the best choice if it implies a lot of effort and fundamental understanding to learn.

When we know the field, it is best to advice the most popular solution. For example C++ for games and PHP for the web. Let me explain why. Those people are beginners in a field, otherwise they wouldn't have asked the question. To get started in a new field, it is important to know the branch standard. After that, they got a sense for the language and its restrictions and may decide to learn an alternative, say Python for web servers. But it doesn't make sense to start with this alternative, since they cannot judge about the advantages and disadvantages of Python over, in this case, PHP.

The nice side effect is, that people can start working in a branch with their native programming language, because it is very likely the this language is used in business projects.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .