Without trying to sound offensive, I would like to raise the question on quality and focus of articles published on C# Corner.
Author guidelines are available to every author and they should be obeyed. If not because that is the set of rules of the house, then because those guidelines are really correctly made if one tries to read them carefully. I have done a little survey and found out that at least 50% (and up to two thirds) of articles published on C# Corner do not meet these guidelines:
3. Submit only original content that is written by you for the article. Do not copy from MSDN or any other sites.
4. Do not submit reworked MSDN content either. Make sure your article reads like an article, not just documentation.
These rules are crucial in any kind of (technical) article. Without them, it would not be the article but something else - blog, tutorial... Every author should be aware of what writing an article means. One definition which serves my point well (taken from http://dictionary.reference.com/browse/article) is this:
Article is a written composition in prose, usually nonfiction, on a specific topic, forming an independent part of a book or other publication, as a newspaper or magazine.
To explain in looser terms, article must have a topic which it covers, and must have a kind of conclusion, or outcome. If author simply writes reflections on some phenomenon, then it is not an article. Text titled "Compare Method in String Class" is not an article. It could be technical documentation, but not an article. It's just because such text doesn't lead anywhere. So what that there is Compare method in String class? What with it? Something like "String.Compare Method in Internationalized Applications" might become an article, depending on articulation of the idea. If it only shows how to use this method to compare localized strings then it could rather be classified as a tutorial. Deeper analysis might as well require more detailed title, something like: Improving String Comparison Performance Using Localized String.Compare Method. Well, that would be an article. Especially if it measures performance and compares it with alternative approaches.
Unfortunately, C# Corner Articles section is often flooded with trivial or obviously copied materials. Some of them could be moved to blogs and tutorials. Some others rejected by moderators on grounds of copy/paste life style.
As a conclusion, I would like to ask moderators to strengthen criteria applied when approving articles. I don't believe that passing everything to the Articles page can help improve hit rate of the site (if that was the idea behind). Even more, I strongly believe that allowing unfiltered materials to the Articles section would in finite time have negative effects on SEO, because such Web site is obviously not visited by a focused population of Web users, i.e. users who come to the site and stay there browsing its contents for more information. It might only attract people on first sight, but they would soon close it and go further searching for solution.
Worst thing which can happen to anyone on the Internet is to search for a solution to a very specific problem and then to open Web sites one by one, seeing same unfitting examples and same incomplete explanations, only to find correct, detailed solution presented somewhere at fifth or tenth page on Google. Placing unfiltered texts to the Articles section might bring C# Corner to second or third page on Google on many queries, but only as a form of e-pig, good to jump over it for anyone taking the matters seriuosly.
Loading
Mahesh ChandPosted Sep 19, 2011, 9:56 PM
Cheers!
Mahesh ChandPosted Sep 15, 2011, 1:23 PM
I have not removed any rules about articles. Let me discuss with the guys. Unfortunately, I am not the editor of the site. I also do not have time to review all articles each day. I am way much busy building the next framework that is just amazing.
I am going to have a serious meeting about the quality with the aditors. We have already hired a quality control engineer in US and he has started looking at this. We wil also push "not serious" articles as blogs. That's why we have blogs. People can publish code snippet and their ideas. We will also force users to read the guidelines and use Templates. If authors do not use templates and guidelines, we will reject them.
I plan to have a meeting this friday!
Thanks for bringing this to my attention.
- Mahesh
Zoran HorvatPosted Sep 15, 2011, 5:00 AM
When I have registered on this site with idea to publish articles on it, I had an impression that site level is higher. Now I see that more than 90% of texts published are beginner's views on programming, rather than programmer's views on programming for beginners and others. It is hard to write texts for beginners because it is hard to explain matters to one who doesn't understand much of the matters. But it is easy to dump all your thoughts to the Internet when you're a beginner and don't understand much - you just type and publish it. It is editor's job to stop that and to reject clear cases of junk coding.
I have noticed that you have removed article writing rules from the site - there it was said that articles mostly consisting of code will not be taken into account, and some other similar guidelines. Now, if awarding points is so automted, why don't you first disqualify articles that break your rules, and then run the automated process?
If you want to have useful code snippets on the site, then do it. But what I have seen in those "most contributing articles", and many others, that is a bunch of seriously flawed code snippets that are in more than 90% of cases completely useless and pointless, lost in space, without prerequisites, without expected behaviour, without how to use explanations... Anyone who might want to use anything of that, would have to deduce everything from plain code, which is harder than to write the same code from scratch. And that is mistake of your editors - you should have rejected each and every one of those 47 articles with simple advice to the author - to write it properly and to come back again with better version. Now I suppose that it would lead to reducing this number of 47 to, say, 2 or 3, or, maybe more likely, to zero...
And when I said that I will withdraw my code libraries from your site, I am serious about that. I don't want to share space with so bad authors. That will reduce hit rate on my content over time - I have already seen such negative process on other Web sites that I have already left in the past. Site owners are tempted to increase site volume, sacrifising quality, hoping to squeeze more hits from low-profile content than from high-profile. But on the long run, that is a bad idea, because search engines punish such Web sites with lowering their rating. I hoped that your site has higher editorial level but it seems that it does not...
Zoran
Mahesh ChandPosted Sep 14, 2011, 1:50 PM
Unfortunately, I personally do not promote any author. Right now, system takes itself and based on contributions. We are going to discuss this in next meeting. The current system does not allow editors/admins to add extra points for good articles. However, every article approved has same points no matter how good or bad it is.
I know this is a flaw in the system. Going forward, we are planning to add many features that will separate qualtiy contents with simple contributions.
Also, I would not call any article Junk. It's all about usefulness. If I am desperately looking for a MessageBox code snippet and found a line of code, that is more helpful for me than reading a chapter on Windows Forms.
This is work in progress. We will get there. Slowly but certainly.
Best,
Mahesh
Zoran HorvatPosted Sep 13, 2011, 6:33 PM
I have noticed that for August month you have promoted a guy Satyapriya Nayak as the most contributing author. I have spent couple of minutes reviewing his opus and found out that he is a clear case of code diarrhea. He has published 47 "articles" in August, all except one rated as beginner - the one remaining is intermediate level. Almost none of the "articles" has more than two sentences in it, which is off course ridiculous. I suppose that at least 45 out of 47 texts should have clearly been rejected by the editors, rather than actually published as articles. The fact that you have passed all those texts, plus declared the author as most contributing one, makes me feel that you are promoting junk, rather than quality content.
In the past couple of months I have tried to make an example to others, including editors, how quality content should be made and organized. I'll tell this straight - every single one of my articles has more text in it than all Satyapriya's articles together. I have published 16 articles in August, 11 of them being intermediate level, 5 advanced level; two of them have been promoted in the featured articles section (and I'm the only author with two featured articles in August). Couple of the articles have quite large code libraries behind - only last series of articles regarding string formatting has a library of 4000+ lines of C# code attached for free use by anyone interested. Now would you explain me how your editing board has regarded that achievement as less worthy than copy/paste of bunch of code snippets, all without any explanation, all without a single comment, and most of them without any practical use?
After what I have seen this far, I will probably soon ask you to remove some of my articles from your Website because I will tend to move them to more serious places. In the meanwhile, you could think of this: If you type "how to audit events in .net" in Google, you will find my article on your site as hit #13; similarly, "combobox best practices" is hit #14; "fishhook relation t-sql" is hit #1 on Google (MSDN's article on same topic is #4, after mine!); "web service chunked upload" lists my article as #8; "minimumsize property", quite a general query, lists me as #15; "improve responsiveness .net" is #17... almost all of these highly ranked articles have been published in August. Now you should understand that such articles are going to bring you hits for many years after they have been published. I have written articles that still, couple of years after being published, have a steady hit rate of 10-20 readings a day, all slowly adding to total hit rate of the Website.
If all that I have listed is "second best" score last month, then someone, not much interested in details, might really get impressed... It's not that I need a hundred-dollar gadget, I can buy dozen of such things every month without serious effort, but it's a certain amount of respect that I always expect to receive for what I do, rather than to look at promoting someone else who has learned to copy/paste whatever just happened to get under the cursor...
Thanks,
Zoran
Mahesh ChandPosted Aug 12, 2011, 11:44 AM
Zoran HorvatPosted Aug 12, 2011, 4:52 AM
Zoran HorvatPosted Aug 11, 2011, 4:07 PM
If only a small portion of readers rate texts, then did you consider the possibility of placing a more visible question below the text, similar to what MS knowledge base and similar sites (e.g. http://support.microsoft.com/kb/873235). Generally, feedback is very important to authors to get idea what other people think of that topic and, of course, what they think of particular text.
Zoran
Mahesh ChandPosted Aug 11, 2011, 8:04 AM
First of all, I don't think rating 3 or 4 is bad. Rating 5 seems to be a rare. On average, not too many people rate an article. Expect only a few people rate.
In next version, we will have a rating history, who has rated and if rating is below average, there has to be a reason (feedback) so authors would know how they can improve.
Cheers!
Zoran HorvatPosted Aug 11, 2011, 7:52 AM
May I ask you one question regarding rating of articles in current site design? Is there a way for author to see how many people have rated the article? It adds value to rating feedback, because I can't judge readers opinions based just on the rating they clicked, unless I know that it was larger number of them who clicked rating.
Here is the general idea about rating. If people rate the article badly, e.g. average mark 3-4, then it is an information that they didn't like the content. However, it doesn't necessarily mean that content is wrong or bad. There are two options - either content is wrong, and author should reconsider own principles; or content is correct but not understood (or accepted) by readers - in which case author might decide to employ additional effort to explain the matters and help readers accept it in the future.
In either case, author should know how many people rated the article (even more: distribution of marks). I'm saying this from personal experience, as average ratings given to my articles do not meet my expectations. Some seriously coded (and explained) things were rated lower than several more trivial texts - I expected the opposite. Now if only a couple of people rated the articles, then I would not make any conclusions until the number of marks builds up so that average rating becomes statistically relevant.
Zoran
Sam HobbsPosted Aug 6, 2011, 3:06 PM
I have thought about many of this already and as others have said it has been discussed before. For example I have already said in another thread that as an editor I have seen the same text repeated many times in many articles and therefore the majority of some articles duplicate what an author has already said. That seems to not be happening as much so perhaps my previous comments helped. I apologize to anyone that might have felt criticized by that. I should have been more careful about what I said.
There are two points that I want Mahesh to understand.
One is that there are probably many authors that are likely to go elsewhere for various reasons. I think the most critical reason is that the monthly rewards that this web site provides is very attractive yet they reward quantity, not quality. I think Mahesh understands that but I think he does not talk about it enough. I do understand that it is difficult to know what to say, since he is passionate about providing as much opportunity as possible to as many as possible.
The other point I want to emphasize is that not talking about it can alienate some people. I would feel much better if Mahesh were to express the intent to be fair. I think he avoids talking about some issues because he wants to avoid alienating people but the problem is that not talking about it can alienate others. So it is difficult and helps if we understand that but since it is difficult I think it helps to talk about it.
One issue is the size of articles. Many articles are small; many of them are mostly all sample code without much of an explanation of the code and such. That issue has definitely been discussed extensively. Mahesh seems to be saying that we must have the new software (that is being developed) for this site in order to deal with small articles but I don't understand that. I think that some articles should just not be approved. So the important point here Zoran is that there are many of us that understand and agree with at least most of what you are saying and probably all of it.
On the subject of copying from other sources, this web site will not alow articles that have been copied entiorely from other sources. I have identified at least two articles that were removed when I discovered that they were copied as-is from elsewhere. I often suspect, due to the grammar, that an article is copied, at least partially. So there are at least three levels of copying; one level would be when an entire article is copied from one source. Another level is when portions of an article are copied. Another level is when an article from somewhere else is re-written for this site. I have already said that articles are not allowed if they are entirely copied from elsewhere.
On the subject of partial copying, you are correct that this web site's policy is to not allow it, but it is allowed. I don't have much opinion on that except that I think the original source should get credit. There are many good reasons for that.
On the subject of re-writing other material, I doubt you can do much about that. Mahesh has made it very clear that he wants to provide opportunity for people and writing an article for this web site that is on a subject elsewhere is an important way of doing that. You probably must accept that it will be done. It can be beneficial to attempt to make a point for why it is not desirable, but just understand that you are not likely to accomplish much. I think the only issue is if it is approprite to give credit to the original material. I would, at least most of the time.
I think that the best articles are ones that clearly and concisely explain something that is not explained anywhere else. I think that being clear and concise is not easy. If a subject is something that is not available anywhere else, then that would be most beneficial for everyone. I have posted some questions in the C# Corner forums for which there are no answers available anywhere that I can find, and I have posted the questions in the MSDN forums also. The best answers I have so far for them is that what I have done should work. I am eager to solve the problems myself and write an article, but it sure discourages me that someone else that has spent one or two hours to write each article can get more recognition just by cranking out boiler-plate articles (articles from a template).
Mahesh ChandPosted Aug 6, 2011, 11:54 AM
The new website we are designing has a better separation and instead of calling everything an article, we have separate How do Is, white papers, tips etc. Sometimes, you have no idea, how a small tip can be useful. For example, Top #3 article read in my articles is this, Generating Random Number and String in C# which is not really an article. It's basically a tip. Here one more: http://www.c-sharpcorner.com/UploadFile/mahesh/WebMsgBox09082006110929AM/WebMsgBox.aspx
But so many people are looking for it. Lot of people submit their small code snippet as an article. And right now, we do not have a quick way to convert or move them to Blogs, Tips, Code Snippet etc. So, when this new Web site is ready, an author submits an Article, and we feel like it should be a Blog, Editor can simply push a button, say "Submit as a Blog" and it will be posted as a Blog.
On the other hand, sometimes topics on new technologies can be simpler and very basic but being a new technology, the may be useful to many. For example, HTML 5, F# and kind of topics they are new so we want to encourage people to write about them and publish them even if they are basic. Remember, Today's Students are Tomorrow's Teachers.
I am definitely not discounting the point you are making here but being a community, we need to let people learn. I have seen over years, some authors were not that good in the beginning and eventually improved a lot.
I think by separating Tutorials, White papers, Articles, Blogs, Tips, Code Snippet etc in a better way will help this process.
My thinking is, we approve the content that we think will help developers.
Does it make sense, guys? OR I am totally wrong here.
Jiteendra SampathiraoPosted Aug 6, 2011, 8:06 AM
Nice Explanation Zoran........ So then here lot of articles should comes under tutorials and demonstrations.....
Zoran HorvatPosted Aug 6, 2011, 7:46 AM
Regarding article vs. tutorial question, I'll try to explain the matters here in a more broad context, by explaining concepts of documentation, tutorial, article and paper in this particular order, which is the ascending order of their complexity and proclaimed goals.
Documentation is, so to say, a dried explanation of a given technology. Its main goal is to be thorough and precise. All (non-innovative) applications of that particular technology should derive from documentation. For example, if you use String.Compare method, then you should strictly rely on that method's documentation when expecting any particular output from your code. Consequently, documentation's purpose is not to be innovative, genuine, artistic...
Tutorial derives its name from "tutor", which refers a teacher who teaches a single pupil, or at most couple of them in a small group. Hence, tutorials are intended to teach the reader how to do something. And to do so, tutorial should be artistic, and certainly didactic. However, tutorial does not introduce novelties. It would not be appropriate for a tutorial to introduce something that has never been seen before.
Gray area between tutorials and articles is occupied by articles that demonstrate use of some technology. However, such article is not too artistic and does not tend to treat the reader as a pupil. If it is hard to tell whether a given text is tutorial or proper article, then it probably belongs to this gray area. Most of the articles with titles starting with "How to..." belong here. These articles could be referred as demonstrations.
More advanced form is a proper article. It discusses one topic in more details, and often in a way which is not mainstream, i.e. it does not naturally belong to documentation. In technical sciences, we can take technology T (e.g. String.Compare method) and then discuss its application A (e.g. in "search all Web site" problem). When I say application, I don't mean an .EXE, but rather an area in which technology is applied. Now, if we discuss String.Compare's localization-related features (technology T) applied to search Web pages problem (application A), that would still not be the article. Simply because T naturally belongs to A, and that is the matter discussed by tutorials or demonstrations. However, if there is another similar technology T1 (e.g. localized string comparison in T-SQL), then we come to an elevated ground. Now we have application A and technologies T and T1 and we need to discuss ups and downs of each of the technologies applied to A. This is something not covered by documentation (because there is no documentation covering T and T1 at the same time), and certainly not by tutorials (it would again be two tutorials T-A and T1-A). So article would then go like this: when is it good to localize string comparison in database and when in the application. Is it good to put this functionality in data layer, or should it be employed (and controlled!) by the application. Where does that functionality naturally belong to? Etc. Now answering these questions might lead us to divide application A into subapplications A1 and A2 - A1 being Web search, A2 being back-office applications that run the Web site. And article might give us an advice saying: in A1 apply technology T, in A2 apply technology T1; and here are the reasons why...
Most advanced form is a paper. Article, as defined above, has not brought anything new. It was mingling technologies and applications, playing with them and making conclusions out of the results. But paper makes something completely new, something that didn't exist before. In the string comparison business, paper would be on implementation of string comparison (not on its application). It might go like: here we have implementations in .NET and in T-SQL, but none is efficient enough; now authors have come to an idea to use specific statistical model of L2 caching behavior in modern CPUs to employ completely new algorithm or encoding scheme, which helps compare localized strings in a more efficient way. Result of the paper is that technologies T and T1 might be internally rewritten in the future, or replaced by another technology T2 which is better (faster, spends less resources, etc.).
Now two examples. In my latest article Using Margins to Position Controls in FlowLayoutPanel (http://www.c-sharpcorner.com/UploadFile/b81385/8640/) I have discussed one uncommon technique applied to FlowLayoutPanel control. It is not a proper article, nor is it tutorial. But I have listed is as article because it is discussing a topic which most of programmers do not think of as a natural application of this control. However, I would accept anyone's argument regarding this article and I would understand if someone says that this is not really an article.
Second example is my prior article titled Proper Usage of Form.AcceptButton and Form.CancelButton Properties in Windows Forms Applications (http://www.c-sharpcorner.com/UploadFile/b81385/8602/) I am discussing problems that occur when someone tries to control AcceptButton and CancelButton properties on the form. I am introducing new classes that help control these properties, so this article contains a bit of a novelty. However, it is not enough to call it a paper, because that is not really a novelty, rather an extension of existing functionality, an application placed on top of it. However, there should be no doubt that this text is a proper article. It is discussing application of one technology, identifying its limitations, and introducing another technology T1 (in this case my own classes) to overcome the limitations within the given application.
I hope this explains the matters.
Zoran
Jiteendra SampathiraoPosted Aug 6, 2011, 6:28 AM
I want to know whats the difference between articles and tutorials........
Mahesh ChandPosted Aug 4, 2011, 5:11 PM
Mahesh ChandPosted Aug 4, 2011, 5:06 PM
So we are building a new system and that will put a clear separation on Articles vs. Tutorials vs. Blogs vs. anything else. We will also improve the editorial process. We just don't have enough people full-time working on this process while we are re-building the whole process.
Good advice. We are also working on getting some real well-published authors on board to bring quality contents.
Cheers!
Suthish NairPosted Aug 4, 2011, 2:47 PM
There were lots of open discussions happened here, regarding the same topic.
Even the Featured Article Section, I don't know who handing and approving it.
There were lots of good and great articles must be in that section, instead of some with only screen shots
and most of them are about new technologies. Don't know why that kind of articles getting approved every day.
Mahesh already revisited the article sections and rebuilded with new ideas and design.
He giving everyone a chance to post articles/blogs here, that other communities won't.
Hope in future we have an improved article section.