Have a look at this Meta post for the current status of your swag!

It's easy to look at numbers; numbers tell us that many developers have been helped by what we built. That alone is very warming and makes us feel exceptionally great about what we're doing, wouldn't it be nice to take a little time on a Friday to share some stories that the numbers can't convey?

As I mentioned here, we're going to be running some special events here on Meta to celebrate hitting 10 million questions and reflect a bit on everything we've done together; this is the first of those events.

Your mission, if you choose to accept it, is to regale us with a tale of a Stack Overflow user going way above and beyond the call of duty in order to actually teach something to someone that wanted to learn, and anyone else that desired the knowledge going forward.

This could be written from several perspectives:

  • You just happened to be around when the answer was posted, and saw them continuously expand their answer to teach the subject more effectively.

  • You wrote one of these kinds of answers - don't be shy to share your own awesomeness. Talk about the experience a little, how did you feel when the person eventually 'got it'?

  • You asked a question and someone provided an answer that gave you more than some stuff you could try in your editor, they gave you the knowledge you needed to figure it out properly for yourself.

Examples of this don't need to be nearly as epic as explaining branch prediction like a boss - it could be as simple as an answer where someone finally grasped how memory is addressed, or why a regular expression did what it was doing, or the like. Let's pick some of our 10 million moments that we're the fondest of, and allow others to share in them.

Can you get to the part about the swag, now?

Why yes. The good news is, this isn't a contest, everyone that shares something here will receive:

  • 1 Stack Overflow T shirt (Men's or Women's)
  • 1 Stack Overflow mug
  • 1 Stack Overflow padfolio and aluminum pen with the logo, and some extra pens
  • 1 Stack Overflow 'Koozie' (it keeps canned beverages frosty)
  • 5 Stack Overflow stickers

In addition to this, we will contact the author of the answer that you mention and offer them the following:

  • 1 Stack Overflow T-shirt (Men's or Women's)
  • 1 Stack Overflow Ruled Notebook (acid free, high-quality paper, I'm not mentioning any brands because we have several and it depends on availability)
  • An autographed copy of "Smart & Gets Things Done" by Joel Spolsky.


  • Answers must be at least two paragraphs and link to the answer on the main site you're talking about. You need to tell the story, with as much detail as you can. Put emphasis on what was learned, why it can be hard to teach, how someone could possibly have so much patience, etc.

  • If you're the author of the answer, you get both prizes.

  • Submission deadline is September 4, 2015

  • Allow 6 - 8 weeks for delivery after the submission deadline

closed as off-topic by Robert Columbia, HaveNoDisplayName, Code Lღver, S.L. Barth, Ganesh Sittampalam Oct 29 '17 at 7:03


  • "The problem described here can no longer be reproduced. Changes to the system or to the circumstances affecting the asker have rendered it obsolete. If you encounter a similar problem, please post a new question." – Robert Columbia, S.L. Barth, Ganesh Sittampalam
  • "This question does not appear to seek input and discussion from the community. If you have encountered a problem on one of our sites, please describe it in detail. See also: What is "meta"? How does it work?" – HaveNoDisplayName, Code Lღver

  • 36
    Actually, I need a coaster to go with my SO mug. Do you guys happen to have any of those? – BoltClock Aug 21 '15 at 14:45
  • 31
    If "teach" becomes a trigger word on Stack Overflow, we're screwed. – Tim Post Aug 21 '15 at 14:57
  • 14
    Has Mystical gotten swag for the branch prediction answer yet? – durron597 Aug 21 '15 at 18:06
  • 40
    billions of developers Wait, really? That means at least 13% of all the people in the world are developers who have been helped by Stack Overflow. That doesn't seem correct – Peter Olson Aug 24 '15 at 1:51
  • 13
    What do downvotes in this thread actually mean? Lousy answer or lousy story about the answer? – PM 77-1 Aug 27 '15 at 17:57
  • 35
    Sept 5: wheres my email to fill out the form and get my SWAG? – D. Ben Knoble Sep 5 '15 at 18:21
  • 27
    Am I the only one who came here several times after 4th of Sept ? – CoderCroc Sep 7 '15 at 12:19
  • 20
    are we supposed to recieve a email? :,( – CptEric Sep 8 '15 at 17:49
  • 23
    I'll be contacting the initial round (folks that wrote something here) tomorrow, and then those that you've nominated through writing about them near the middle of the week. Hang tight! – Tim Post Sep 13 '15 at 14:27
  • 32
    Just askin: who all (did not) get a mail (yet)? 1. me. – Sourav Ghosh Sep 15 '15 at 17:32
  • 11
    A mail with a confirmation will be nice. The suspense is killing me. – Haris Sep 17 '15 at 0:45
  • 23
    Sorry about that, something exploded while I was sitting on it. Mail going out on 9/18 for everyone that answered here, and on 9/22 - 9/25 for mail going to the folks that wrote the awesome answers you linked (it's a more manual process, hence a few days to get it together). – Tim Post Sep 17 '15 at 15:39
  • 11
    Emails sent! If you feel like you should have gotten one but didn't, let me know (after checking your spam folders, and connecting your computers directly to your modems after turning them off and on again). – Tim Post Sep 18 '15 at 15:25
  • 14
    @Tim your "Instructions for the locationally challenged" have made my day better, hilarious. – CubeJockey Sep 18 '15 at 15:28
  • 13
    @TimPost Just a suggestion (not to be interpreted as a complaint), but perhaps it is a good idea to update this thread/question with the current state of things. – Damien Overeem Nov 16 '15 at 12:47

239 Answers 239


He recognized the question that mattered, gave an insightful answer, stole the accept away from my answer, and got my respect (rinse and repeat).

The Question: What's the “right” way to organize GUI code? ()

The title poses a very general and subjective question. The body of the question has many specific questions about various obscure aspects of GUI programming in MATLAB. Hot damn, I thought, I've spent tons of time grappling with these issues! (tl;dr: I took the bait and regurgitated every relevant nugget of information. Amro gave a useful answer). So, I wrote a very detailed answer, going through each bullet with a spattering of undocumented tidbits and trivia that is typical for me. It was a thorough, well-cited... wall of text. Oh, well. I was happy enough and apparently so was the OP as it got the accept. Yay!

Then I went to bed. In the morning, I was surprised to find Amro's answer had popped up, gathered just as many votes as my answer, and stolen the accept. The first thing he did right was to read the title of the question and see through the cruft. The OP wanted to know a lot of things, but mainly how to organize GUI code in MATLAB with some demonstration. (Forgetting that the question would have been closed as too broad or opinion based without a more specific question body.) The second thing he did was to bring some serious talent to the table, and gave a theoretically sound answer with a full working example. Finally, he had the patience and generosity to teach someone a new concept, demonstrated in detail.

enter image description here

In just about every answer, Amro has something to teach and is gracious all the while he makes you look like a beginner. Of course, at user id 97160, he's had plenty of time to practice the art of the perfect answer. As quasi-peers in our micro-tag, , Amro has schooled me time and time and time again. And it has been a pleasure. (How's that for sportsmanship? I think I've just sealed the fate of my "competing" answers!)

I should mention that I could easily write similar accounts for users Luis Mendo, rayryeng, Divakar, Shai, Eitan T and others I know who embody #SOreadytohelp.

  • 2
    Someone should write a story about you! My love for accumarray came from you! I wrote about Amro already so I'm not sure if writing another story about you would be taboo :(. – rayryeng Sep 2 '15 at 18:03
  • @rayryeng Nah, you and Amro are far more patient and generous than I ever was, and I think that's what makes a great contributor. Cheers! – chappjc Sep 2 '15 at 18:07
  • Great story! And thanks for the mention! – Luis Mendo Sep 3 '15 at 9:53

VB6/COM Interop: where do these events come from?

One day I got confused and used the wrong attribute in COM-visible C# code meant to be exposed to a VB6 library, which resulted in every single exposed member being exposed as an event... and I couldn't figure it out, so I asked Stack Overflow.

The question was almost closed as a "too localized"/typo, but Hans Passant's and Dan Busha's invaluable answers went out of their ways to explain things I hadn't the slightest idea about, leaving what I deem an incredibly useful post that made the Internet a better place.

Googling "COM interop events C#" brings up that question in 2nd position, which is awesome.

I ended up marking Dan's answer as accepted, because this comment triggered that wonderful "oh!" moment that I'm after when I post a question on Stack Overflow. The funny thing is that, at first, I thought Dan's answer wasn't even about my question.


I spent a lot of time and love in SO, it's hard to pick one specific story.

Some of my joys come from the easy answers that got me unreasonnable comments from enthousiastic developers pretending that I "saved their life" or that I am "a genius" or "a God". And there's also this particular comment...

enter image description here

I'm also proud of those answers that I simply made complete enough so that they're useful for a lot of developers. My answer on how to use MySQL in Go was rather easy to come with, even at that time, but by extending it from the strict answer to the question to a small guide, I made it more helpful for the community.

I could also tell the story of that case where I was immediately upvoted for an answer that I later realized was totally wrong and that I fixed before anybody noticing. But the 10M celebration isn't the right time to speak too much about this malfunction (too often do I go to SO while waiting for the effect of the first morning coffee to kick in, or just drunk from some good wine).

So I'll speak of this case I solved with EaselJS.

EaselJS is one of the most popular libraries for Canvas based games in the browser. I had made a small open souce smart game with it, SpaceBullet, because I wanted to learn that kind of technology (go play it! it's fun and of course totally free of any ad). I thus had some basic knowledge of it.

So my interest was picked up by this question: EaselJS onclick takes over entire canvas.

There was obviously nothing wrong in OP's code, so I dived into the code of the library. I could identify the problem, reproduce it in the official demonstration, devise a workaround, then raise an issue in GitHub with a fix suggestion. The small question that almost nobody saw leaded to a bug fix in a very popular library. That's another way SO helps developers everywhere.

That wasn't terribly hard to solve, I choosed this story because it's also a success story of the open source community and I think SO is a big natural complement (and even part) of that community. I'm sure it's at least the same, great, spirit.

  • Yeah see, I have a slightly more pessimistic view on that. This is an alternative path that is just as likely to happen: person asks about a problem on SO rather than in the discussion forums or bug tracker of the library itself where the devs can instantly see it and identify it as a bug. SO produces a workaround or less likely convinces said OP to use an alternative. The end, and not such a happy one because SO actually got in the way of progress. The points in your story go entirely to you for actually going the extra mile, SO has little to do with the success. Thank you. – Gimby Aug 31 '15 at 16:07
  • so wheres the picture with the tatoo? – SMR Oct 14 '15 at 11:43
  • @SMR Unfortunately, he didn't deliver :( – Denys Séguret Oct 14 '15 at 11:47

How a user on Stack Overflow personally introduced me to the Perl Community

This is not about one question, but rather about a single comment that turned into much more interaction.

In the summer of 2012 I had just discovered Stack Overflow and started answering questions in the Perl tag. I considered myself quite able to do that, but of course was pretty much in awe of all those high-rep users.

I jumped at every question and tried to answer as much as possible. If I didn't know what the question was about, I went and did research. I installed modules and read documentation just to find an answer. That did not go unnoticed by the veteran users in the small Perl tag community.

One of those users was daxim, who like me is from Germany. He often replied to my posts and offered corrections. One of those included a little personal note. It was on the question Syntax error using Perl DBI module, for which I had written an answer, and read:

simbabque, it works better when you include a hyperlink to what you're talking about: open a new question – Also, come meet me at YAPC

That was a first for me, and I was excited. A user with more than 10k reputation asking me to meet at a conference?! At that point I thought that is only for really professional people. And YAPC Europe is the Perl conference in Europe. But it was in Germany, only 3 hours away from me by train! So I decided to go.

Because I had never been to a conference, I was unsure how that works. But daxim is one of those people who contribute a lot to open source, it was easy to get hold of actual contact data. And since he invited me, I contacted him and asked a few questions about how conferences work, if I should come early and stuff like that. I wasn't sure if he would reply.

When there was a reply only three hours later I was even more excited. That anonymous person on the internet hat taken the time to help me a lot more. In fact, he wrote a short story that should be a blog post for first-time IT conference visitors. It was awesome.

A few weeks later I met him at the conference. An anonymous internet person that took the time to correct people to help them help others turned into an actual person with a face, just because he left a couple of extra words in a comment on Stack Overflow.

He introduced me to the Perl community, and that happened through Stack Overflow. I'm very happy and thankful for that. Since then, I am trying to encourage people that use Perl to use Stack Overflow, and I encourage people that know Perl and are active on Stack Overflow to go and visit conferences, because I believe that community works both ways.

  • Thats a great story. I can relate to it. Code Review introduced me to a developer who I now share an OSS project with. Bringing people together. Yeah. I can dig it. – RubberDuck Aug 25 '15 at 0:04

A lesson for the answerer

The lesson

Every tiny bit of information can make the key difference, although it suggests itself to be unimportant.

The answer

My answer to the question init an NSNumber from enum element in mixed-language project

The Story

I decided to share this story, because it taught me the above lesson the hard way. And in this case, what turned out to be wrong was the assumption that Objective-C and Swift enums are handled in the same way. Let's return to the beginning...

How my first attempt failed

I already had some experience with programming in Swift and found the mentioned question. While reading it, it seemed to be quite simple, especially as the error message suggested that the author simply used the wrong initializer for the type he tried to hand to it. As I always try to test my answer before giving answers that don't work, I opened up my Swift Playground and tried a few things which supported my guess about the wrong initializer. And I wrote the first revision of my answer.

While I knew that I tested this with Swift enums instead of Objective-C enums like the author did, I thought that it should not make a difference. And why should it? Swift is a brand new programming language, there are enums in both, Swift and Objective-C, so I assumed that enums are handled the same, no matter in which language they are defined.

That's what I thought. Meep! Wrong! Almost one day later, @quanguyen informed me in the comments that my answer did not work. And he already pointed in the right direction.

The second attempt

I revisited my answer, checked my tests in the playground, read over the question, looked for differences, and eventually made more tests with enums actually defined in Objective-C. And while intuition says they both should behave the same, they actually did not.

So, I updated my answer and besides showing the solution to the question, I also included a description of the (in my opinion confusing) differences I found, to hopefully save many other programmers time.


There are a number of answers by Eric Lippert that I've found incredibly interesting, often due to his rather unique insights into C# and its associated projects. One in particular that stood out to me was actually not about anything along those lines, though - it was this very thorough explanation to the question Monad in plain English? (For the OOP programmer with no FP background).

The story goes like many others: I came across the term "monad" being used in various pieces of documentation and literature, but had not been previously exposed to the concept. Eric's answer provided a truly exceptional starting point for my understanding, and it also happened to include examples based in a language I knew (C#). Despite many other similar answers and posts floating about on the web, I personally found this one most useful because he did such a great job of approaching the answer without having to dive too deeply into functional programming ideas (which I had very limited familiarity with). It's simply a very approachable answer for anyone from an OOP background.

His answer was so detailed, in fact, that he actually ended up spinning it off into an excellent, 13-part blog series. I'm not sure if you can go much more "above and beyond" than that, really.

IMHO, this answer is a great demonstration of the power that is Stack Overflow. When experts come together to share their knowledge, there is a much greater opportunity to really learn and understand something. People willing to take their time to impart fundamental knowledge like this has been much more valuable to my own personal and professional growth than having a million lines of code written for me ever would.

  • Thanks for the kind words. Writing that answer and later the series helped me clarify my own thinking on the subject. – Eric Lippert Sep 10 '15 at 19:04
  • Thanks to you for letting me know about this post. I've been wanting to know for a while what a monad was, but everything I'd read seemed to be steeped in functional programming jargon that I found impenetrable. – Nicol Bolas Dec 28 '15 at 19:06

The Question

Why is "if not (a and b)" faster than "if not a or not b"? posted by Augusta.

The Answer

I feel a little weird about tooting my own horn, but you encouraged it. :) It was my answer here: https://stackoverflow.com/a/29551787/2615940

The Story

The question itself is very simple: why do two logically equivalent operations have different performance profiles? It interested me because I didn't know the answer upon reading it. We all know that a lot of questions posted are straightforward debugging questions. Experience helps a lot of us see the problem right away, and we often have a solution in mind before we even finish reading it. This one was different to me, because it asks why, and I had no idea. Reflecting on it now, it reminds me of the Isaac Asimov quote:

The most exciting phrase to hear in science, the one that heralds the most discoveries, is not "Eureka!" (I found it!) but 'That's funny...

This question made me think, "Hmmm. That is odd...". They're my favorite type of question to try to answer, because the process of answering it forces me to learn something new.

Once I had the answer, I admired the question even more, because discovering it required diving into an aspect of Python that is often neglected in high-level languages: bytecode disassembly. The answer was in how the Python interpreter translates Python code into bytecode differently for the two operations. High-level languages were invented specifically to relieve programmers of the burden of dealing with assembly, yet that's exactly where the answer to this question was hiding. It highlights the importance of understanding the underlying mechanics of our software, even with modern tools like compilers and high-level languages. These tools allow us to create sufficient software more quickly than ever before, but making optimal software requires a deeper understanding of the whole stack, from CPU to end-user.

I feel like this question and answer pair exemplifies that idea.


An answer I think deserves recognition is this:

Is VBA an OOP language, and does it support polymorphism?

As a kid, I'd written many VBA scripts for little things like changing settings files out, and from I what had seen, I thought VBA was OOP, and despite that the answer wasn't to a question I asked, it changed a view I had on VBA for years.

It can be hard to convince people that it may not be OOP language with 3/4 requirements met, but, Mat'sMug, wrote a really complex answer on what makes VBA OOP and what doesn't make it OOP. Adding a lot of content and understanding, he wrote a really complete answer, even formatting with little ticks and crosses to put the icing on the cake.

This kind of work is clearly the work of someone who loves their language, and wants to teach others about their language, and to help them love the language.

If this isn't dedication, then I'd better redo my definition of dedication.


One interesting place to be on Stack Overflow is in low-volume tags. You nearly never get the upvotes or visibility you get on the more popular tags. Many of my questions there (in are unanswered).

But this answer I wrote was a culmination of many painful experiences working with an Internet Explorer object in .

Because of a near-bug with the IE COM interface, the "ready?" question for Internet Explorer is... less than trustworthy. I had written a method to get around this, which turned out to precisely answer another user's question. It's not clear from reading M$ documentation (what? no way) that this "near-bug" exists.

Given how frustrating that it was for me to beat against, it was a delight to post an answer which clearly was well received:

Enderland: You are a beautiful person. It's frickin' awesome! and works like a charm. This cleared up all the issues I was having. Thanks! – user3232254 Jan 24 '14 at 20:18

Explaining to the asker why my answer worked and why it was a better solution than the rabbit trail they were going down (and I had already traveled down) is quite the feel-good experience. Especially considering how painful the trail was for me...


Oh Yes You Can Use Regexes to Parse HTML!

This answer by tchrist surprised and delighted me. It's detailed, it's long, it's mildly self deprecating, and it's got plenty of links to a whole lot more reading. It also got me into reading a whole book on programming again; one by Tom Christiansen. And after doing so I decided I should never have stopped reading good programming books, so I put together a list of what I'd been meaning to read and a schedule to read it. It's been a real joy.

But the story is also about how I got to even read this pretty great answer and thus add to my reading list.

I've loved using SO from the beta days, even before comments etc. But for even longer, I've kind of loved Perl (and scheme, but Perl does more... so), and when I get a little tired of C, C++, C# and Java leading me to so many incremental changes on projects rather than new different projects, I tend to pull out a little bit a Perl (also lately Python and Go, thanks SO) to play with because it's so welcoming to just trying something right this minute. That's why on SO I watch the Perl tag.

Quite recently I got a little tired of that tag's frequent "fix my regular expression" questions that seemed to drown out the Q&A that I better learned from. Thinking on it, I thought that maybe I had a suggestion that could help people self-help a little better in regards to regex being more of a different dsl inside your normal day-to-day language (though my view of Perl is that this dsl is the first part you should learn thoroughly...). I asked on meta if there was an solution to this, thinking I could then propose mine if there wasn't (and I hadn't noticed till then that the meta about stack overflow had broken off from the original meta site). Basically instantly Robert Harvey pointed out how this was already solved, and it was almost identical to what I thought could help. I'd just never seen it because I rarely ask these kinds of questions myself, and I often write "regular expression" or "regexp" instead of instead of "regex".

That interaction is what lead me to this great example of building up a regex in to a whole parser based on regexes; and led to my renewed joy at reading about software and languages. Thanks everyone.

Oh and, I recall feeling a little special when I got a sarcastic chide from Jon Skeet on a meta post:

Please provide more detail next time. These quick, throwaway answers aren't terribly useful.

  • 10
    tchrist is Tom Christiansen :) – Infinite Recursion Aug 25 '15 at 3:28
  • 1
    @InfiniteRecursion Also it's worth noting that he's a top 5 rep user on English.StackExchange.com. – dlamblin Aug 25 '15 at 6:06
  • Yes, just making it clear for those who don't know. – Infinite Recursion Aug 25 '15 at 6:08

No guaranteed reward or money incentive, just goodwill and generosity

A couple months after joining Stack Overflow I saw a question that really interested me. A little gem hidden in the 10 million questions not many people have seen:

Is there an efficient algorithm for segmentation of handwritten text?

I thought about this question over and over "how can this problem be solved"? Again and again I came up with ways that all ended up being Amazon Mechanical Turk'ish idea's.

I knew the author wanted a algorithm but didn't think anyone would provide a rock solid solution. Heavens above, doing that would take hours I thought to myself. So I shared my idea's with the OP...

About two months later I revisited the question and some guy/girl (@Rethunk) had written up a full on working app, with algorithms, histograms and all! This dude must have spent hours and hours on it, for no guaranteed reward or money incentive, just good-old fashion goodwill and generosity. This guy had just taught me the definition of going above and beyond the call of duty. It had a profound effect on me. I came to realize why Stack Overflow is so powerful. The developers who contribute to Stack Overflow really care about quality. Not some half baked idea's some goon thinks are creative!

SO is filled with people that come out of the wood work, are specialists in their fields and share incredibly high caliber insights. Quality answers that are better than SOX's in Microsoft Visual KB and even better than MSDN Articles. That's what makes SO such a great place, really difficult subjects are answered by masters in their respective fields. Thank you Rethunk, whoever you are and a toast to Stack Overflow; you have surprised an industry of our beauty and benevolence.

Edit: 3 yrs later and I'm now in the top dozen or so bounty hunters, globally.

  • 2
    You're welcome, Jeremy! I just heard about 10 Million Questions today (2016-03-14: Pi Day!). Sorry for taking so long to thank you. I've been helped out by SO many times myself, and given the days and weeks of debug and development time many SO posts have saved me, I figured it's only fair if I spend a few hours here and there trying to help. (Admittedly, solving problems is fun, too.) I'm honored that you mentioned me here, and your post has brightened my day considerably. (Also, though somewhat irrelevant: I'm a dude.) – Rethunk Mar 14 '16 at 19:09
  • 1
    Cheers, check my profile pic, I just got my T-Shirt, Mug & etc :) – Jeremy Thompson Mar 14 '16 at 20:41
  • 1
    Sweet threads and mug. – Rethunk Mar 14 '16 at 22:24

Swift: Class does not implement its superclass's required members

Hanging out in The 2nd Monitor on the Code Review chat has it's benefits, one of them was the discovery of this gem by nhgrif. If you read through the question, and all the comments, it tells it's own story:

The OP had written code, and for some reason, it was throwing the error after they updated their Xcode environment. This was because the new Xcode version was enforcing a very specific rule, about init method inheritance. Now, while the other answers definitely clear up the how can I fix it portion of the question, they don't completely clear up why am I receiving this error.

The first thing I noticed with this answer that made it stand out is that it was very descriptive about the problem, even providing a very good example on how to duplicate it. And while the other answers were good and helped the OP resolve his issue, this one actually put it in a format that is extremely useful to future users. Were I working on a Swift application and I had this issue, this particular answer would be of much more value to me, as it clearly shows that the person writing the answer cares a great deal about helping out future readers.

The biggest takeaway from this answer is that Swift is very specific about inheritance of init methods, which is something none of the other answers really point out. They are either "code-only" or workarounds, not really teaching the user (or future readers) anything. Even without the context of the OP's code, this answer explains in great detail a very possible pitfall of Swift development.

Now, I've never written a Swift application before, but because of this answer I actually began investigating Swift. This answer piqued my interest into that language and it's structure. Personally, not even being a Swift user I found more help out of this answer than any of the others posted.

Lastly, what really made this stand out to me, was that it was an answer to a year old question, with 23k views, and an accepted-answer with a score of 91. And yet, nhgrif went out of his way to post one of the most detailed answers I've ever seen to this question. If that's not dedication, I'm not sure what is. :)


What is the meaning of this?!?

For me, the first thing that jumps out is CommonsWare's answer about Context in Android. I know for me, and it has seemed for others, that this is a hard concept to grasp when first learning Android. What is a context? How/when do I use it? There's more than one? Crap! Which do I use when? I give up I'll just use whatever!

Oh, yes, that's what I was looking for!

Fortunately, CommonsWare gave this answer about Context. This answer has very good, detailed information about the differences complete with reputable links which clear up the issue even more if someone is still confused after reading the answer.

It takes time but that's ok

This business about the different types of Context, at least for me, is so confusing that I had to read the answer several times (links included) before feeling like I had a better grasp on it. There are many answers saying you should use "this context" or "that context" but I haven't found any which explain it this well and which have external information for further reading that also help. After many efforts, this answer finally made me feel more confident about which to use and when. For me, it explains more of the why to have certain ones instead of just "use this Context for this situation and use that Context here". Answers like this are soooo much more beneficial than simply pasting code. It is also answers like this one which made me understand that aspect of SO which is so very important. You know, kind of like the teach a man to fish story. I have much pride in the fact that I typically try to explain the why an answer should be used instead of the how and answers/members like this is what had opened my eyes as to how to use the site more effectively and to better help others.

A side effect of the answer?

Furthermore, what makes this answer so good is that it's a good lesson to beginners to not use things you don't understand. "...only use getApplicationContext() when you know why you are using getApplicationContext()..." that is a very important lesson on any topic (especially programming). I've given several comments/answers on not using getApplicationContext() which have solved issues and the linked answer is a good part of the reason how I was able to clearly(?) convey the reasoning in my posts.

Think I'll keep this answer under my pillow

I've referenced this answer many, many times in closing questions, giving answers about the subject which can't be simply closed as a dupe, in chatrooms, comments, etc...


How can I make a chain of function decorators in Python?

Specifically, the second answer who I'm going to give the credit to e-satis because the system is crediting 77% of the answer to them.

e-satis has provided a few highly upvoted answers, which is probably why a co-worker first described them as "this really smart Python guy" and finished off that sentence with "this really informative answer". I was first learning Python when a co-worker mentioned using decorators and I had no idea what they were. That was until after I read over that answer, which goes in depth to explain how decorators work and the different ways that they can be set up, and felt that I knew exactly how they worked and why they can be such a difficult concept to grasp.

It was actually the first answer I had read on Stack Overflow that went into so much depth and made sure that people understood which inspired me to actually stay around and look for more helpful answers. It's not that I hadn't found helpful answers, but up until that point I had associated the website with short answers that get the job done (or half of it) and required more searching to learn why the answers worked.

I've since gone on to recommend that answer to both new interns and co-workers who have never dealt with decorators before.

  • 2
    Hard to believe I had to go all the way to the third page to find a e-satis answer. Along with his metaclass and yield answers, these are the reason I started using the "favorites" feature on SO. – Air Aug 27 '15 at 21:48

I had participated on Stack Overflow for a little bit of time beforehand, and I had written some well-received answers, but this particular answer, and especially the way the asker genuinely felt like they had learned something from it, hammered home the reason I participate on the site.

In the past, I had been a Computer Science tutor for my college. When I transitioned into another job on campus, I started to miss helping others out; that's what led me here in the first place. By the time I had come across this particular question, I was well into my first professional job and was used to giving others a hand here. However, this particular question was one that was nuanced enough that it was perfectly understandable as to why someone could get mixed up on it.

I had written a response on it in a fairly straightforward manner, explaining why == on an Integer wouldn't be reliable for values not in the cache, clarifying a few of the nuances that they were diving into. I had edited the question a few times beforehand to make sure that it was clear, and responded to a few of the questions posed.

Then I went to bed. It was pretty late local time.

When I woke up to check on the question again, I was stunned to find that the OP had received it so well! It was a bit before I had to go to work, but seeing the response from the OP on it and seeing that they actually understood the answer was such a rush of nostalgia and adrenaline. It took me back to the reason I first jumped into tutoring. The desire to share my knowledge with someone on a subject I'm familiar with

From then on, that interaction inspired me to help more people in the same manner, both here on Stack Overflow and in my professional career.


msiemens's long-deleted post on "What is the difference between LL and LR parsing?"

That's just any other post, isn't it?

Way back in 2013, msiemens wrote an answer to an interesting, albeit open question. Problem was, it wasn't a very good answer and it lasted only two hours before deletion.

On any other site, that would be that.

Early next day, msiemens edited his question into something more informative, and a lot better written. Sadly, a week later, nobody had picked up this change, and the answer remained deleted at negative score.

On any other site, that would be that.

A week later, and a week later the answer remained deleted. Until a year and a half later I stumbled across the question. Although the 200-votes primary answer was great, I saw a decent, deleted answer in red. After checking its revision history, I understood the picture. I voted to undelete. But, alas, somehow it was rejected.

On any other site, that would be that.

But not on this site. One post to Meta later, with responses from not just a moderator but a site employee, and the post was undeleted. Not long after, +5 in the green. +10. +16.

There are so many things that needed to be to make this happen.

  1. Deleted posts are encouraged to be fixed, not burned.

  2. Stack Overflow shows votes and views, so the value of questions and answers is shown in the clear. I doubt I'd have cared so should I have thought the post was covered in cobwebs.

  3. I, a non-moderator, could see not only deleted answers but their whole history. It's amazing that deleted answers are visible at all, and the revision history made all the difference.

  4. Every question and answer can be flagged straight for a moderator's attention, and the results of those flags are documented in one's profile page.

  5. The site must have a forum to talk directly about its maintenance. Not only does this forum exist, my question garnered the attention of a moderator, a site manager and a ton of community force.

On any other site, a question would have one chance. It boggles my mind how open a community like this can be, and how successful that can be. Although some would claim it should never have gotten this bad for a good answer to remain in the shadows for so long, with 10,000,000 questions that every answer can get a second, third and fourth chance is a true marvel.

Thank you Stack Overflow, thank you mods and thank you community!

Not only have I learned a little more about LL and LR passing, I've learned how damned awesome you all are. Keep it up, and see you again at 100,000,000!


How does it feel while answering(having a meagre 2k reputation at that time and being just passed junior year in my college) a question asked by a person holding more than 26k (worth of ~1600 answers in the same field Java) !

Talking about the feeling and the way I clarified OP's doubt...

Clarification of the fact

Question :- Different compilation error when final local variable is used with while loop

Answer :- It's somewhat peculiar to blow one's own trumpet, but this answer given by me raised my confidence to an unprecedented level. It might be a very ordinary answer for many, but, for me, it was only because of this answer which changed my thinking, my confidence, my feeling and an overall me. The OP took 2-3 days before accepting my answer.

Story :-

I was very careful while adding answers and always ensured that I answer only beginner level questions early in my days when I had joined SO (May-June 2014). I was pretty much excited to answer questions those days and used to stay online on SO for 10+ hours of a day, either learning(reading) or posting or asking(rare though). I also used to feel that I was late in joining SO and should have done in my freshman year in the college. But, It is never too late to change the way you think.

Then came this day after 4 months(~approximately) that I saw a question asked by user Braj, who was holding more than 26k at that time. I thoroughly went through his profile and my fear started haunting me before touching the keyboard. No one had even left any comment though there were probably 25-30 views at the time I saw the question(after 10 minutes of posting of the question).

Firstly, I did a careful analysis of what OP was facing. Then, it struck me that it was not so difficult problem and I should give it a try with a belief that I could, at any point of time, withdraw answering(discard my draft).

After a while I started writing an answer, there came an answer by an author with nearly similar reputation as mine. My nerves were wrenching at that point of time and my blood pressure was at the peak. As I was in the midway somewhere, I paused for a while, and took a deep breath.

I clicked on the 1 new answer to this question and without even reading that, I immediately checked the profile of the answerer. I might have even turned unconscious, but, anyhow held myself. Finally after checking answerer's profile, I took a deep breath. His answer prodded me into completing my answer.

The moment didn't end here. It took me some time to help OP understand what both of us had written. Other answerer wrote a short, but correct answer without any detailed explanation. I extended in my answer to cover every point in detail and added necessary quote(from Wikipedia) so that OP could understand significantly. I felt that If you could make a higher reputation person understand a good concept with a clear description and enough time, you are obviously having qualities of a great developer. Though OP took some time grasping it, but, after 2-3 days finally accepted my answer.

That very day pumped blood in my body with a new spirit, and this SO experience helped me acquire the much needed valour in this field.

Apart from this, I am very much thankful to Stack Overflow team and the noble developers present here who are contributing with their utmost dedication and helping people like me become an asset to the Earth. Thanks all for their presence here and "Hearty Congratulations" for crossing the milestone of 10m questions.

(Hailing from a non-native English speaking country, I might have not expressed certain words/phrases clearly. Please improve the answer wherever you feel it should. Thanks in Advance.)


Sometimes it's better to turn off the computer and start thinking

One day I stumbled upon this question: Object in NSMutableDictionary suddenly becomes null . Usually, I can just read an Objective-C question and I immediately know what is wrong. However the poster of this question knew what he was doing. He knew how to log to console, he knew how to use a debugger. He obviously spent several long hours on the problem and he couldn't solve it.

The question was interesting - you put an object into a dictionary and if you check the dictionary in debugger, you can see the object is inside. However, if you try to access the object or even log the whole dictionary, the object is not there.

It was looking like a strange memory problem. I was trying to reproduce it with my code for two hours but I couldn't find a way to do it. Then I switched off the computer dissapointed and went for a walk. I started thinking - how does a dictionary work? Then I realized that every dictionary implementation has a warning "make sure your hash and equality implementation work correctly". Well, but how comes the debugger shows the objects stored correctly? And then it clicked - because the debugger knows the memory layout and doesn't have to calculate hash or compare objects! It is just listing the objects in memory.

When I returned home I had the correct answer prepared in my head. I didn't have to verify it. Sometimes using the brain is better than using a debugger.

The answer never received any upvotes, it was probably helpful only to one particular developer but it's still my favourite answer. Probably because I still remember the feeling of satisfaction when the solution clicked in my mind.

  • 2
    Possibly due to the Meta effect, your answer now has upvotes. – C8H10N4O2 Aug 25 '15 at 19:03

There is still so much to learn about computing

The Question: Why is one loop so much slower than two loops?

The Answer: https://stackoverflow.com/a/8547993/937007

This question is interesting to me because it is the most recent case of "wow I had no idea that was a thing." There are so many good questions/answers on StackOverflow that teach you something you never knew on a fundamental level, this just happens to be the one that I remember most recently.

This is a very specific question and probably not likely to be of much use to me in practical development, but the linked answer expanded my understanding of how things work. The answer by Mysticial goes to great lengths to a) determine the real cause of the performance difference (with test code, benchmarks, and graphs) and to b) explain why it happens.

When I first read the question I assumed, like many of the initial answers, that it was simply a matter of cache misses. I remember feeling good that I could recognize a situation where cache misses would be an issue. I also remember thinking how myself from just 3 years earlier would have no idea why there was a difference and would probably try to refute the OP's findings. Then I read the linked answer and it opened up my eyes to new things like data alignment, false aliasing, data size vs cache size, etc. I still may not fully understand it but knowing what you don't know is better than not knowing at all.

Also Mysticial has a history of great answers that go above and beyond. Take this seemingly mundane question and answer: it is a simple answer (1.0 / 255.0) but Mysticial also goes on to explain why this manual optimization is necessary and not carried out by the compiler, details that weren't necessary at all to answer the question directly but contribute greatly to the contextual understanding of the actual problem.


The Time Someone Spent More Time on Helping Me Than I Spent Helping Myself

About a year ago I was developing a PhoneGap app. It lets you create a web app using HTML, CSS and JS and convert it to a "native" Android or iOS app. I really liked the concept back then because I was good in web development and I knew nothing about Android development.
It was cool and all, and at some point my app was almost complete, but for some reason when I loaded it on my phone, it didn't really function. I tried over and over to find the problem and I couldn't, so I came to SO.

Then this really nice fellow called Tony Chen saw my question and started helping me. Right away he followed up with some comments, and from there to an answer. In the answer, he explained that my code is working perfectly for him and I should try again with a couple of modifications. I did and it still didn't work. He actually gave me his email and said we can continue our conversation there.

So we kept messaging through email, trying to find the problem; I sent him my codes, he sent me the compiled versions, he tried it with different variations and some three days later it finally worked for me. All thanks to him and all the time he dedicated for me and my little project. He showed amazing patience and understanding of the situation and never quit just because things weren't working, he kept trying and I kept trying.

Link to the question on SO


I would nominate Padraic Cunningham's answer to my question Import only functions from a python file.

The story:

The last year I was one of the Teaching Assitant's in the Python Programming class at Purdue University for non-cs majors. The class had more than 200 students and we were four TAs in the class.

We decided to give students around four projects in the semester. So, we went ahead and assigned every TA a project, and a deadline. Just by pure luck, I was assigned to the very last project, which supposed to have the deadline just before the final week.

There was nothing bad about it, however, the TA who prepares the projects, should also grade them. That was the deal in the beginning. And everybody including me didn't have any issue with it.

After the semester started, it was hectic for me since I was taking two theory classes. Happily, I was able to prepare and post the project on time, however, I delayed grading them for awhile. Time passed too quickly, while I was struggling with my own courses and one day I realized I was two days ahead from the grading-deadline. So, I decided to write an auto-grader which will makes things easier/faster for me and which will grade homeworks with justice. (hopefully)

So, I went ahead and gave my precious 5-6 hours writing the testers and making them better so that everybody will get the score they really deserved. I had only one day to post the grades, however, I was sleepless for awhile since I was also studying for my own exams. After finishing the tester, I was very happy since I was just going to run it and finish my grading work. So I tried running my tester script.

It turned out almost all submissions were already running the program itself (for debugging purposes) and the programs were opening another window so that my tester was failing to grade them all. I realized that I did not clarify in my project page how exactly the submissions should be. And if I would try to kill the window, the script was finishing before I test some other stuff, so it was a hopeless case.

After giving my 5-6 hours to write the tester, I didn't want to go ahead and manually grade them. I am not even sure I had enough time for that. I am talking about 200+ submissions here. I was already exhausted, so I decided to ask a question on SO and sleep instead of grading all the submissions manually. (I couldn't even wait to see the answers since I was too sleepy.) So I wrote my question nice and clear, and slept.

I woke up the other day, very excited to see if there is any answer... And yes! There was Padraic Cunningham's answer which is not a famous answer but it saved my day!

I was just able to adapt it to my tester and boom! I had all the grades like a charm using my script with the help of the answer with saving at least 5-10 hours. :)


Finally grasping image manipulation

That Eureka moment!

It's always so obvious in hindsight, but for days I was stuck on manipulating image data using HQ2x to try and upscale images.

I was trying to get this to work with the very verbose Objective-C, however the unfamiliarity of the the library itself, C level file manipulation, C level memory management and the requirement to use another 3rd party library all proved to give me an enormous headache. Just getting the thing to compile was a pain.

When I finally got the hang of the low level pointers and memory management, I turned back to HQ2X and tried to make some pretty images... But no luck! Everytime I tried to create an image, some messy, unknown format was produced. What was I doing wrong?

The brilliance of the Eureka moment is that it's instant. Somebody only needs to say, one word, one phrase or one line number for it to click.

For me, it' was @Jans comment in chat:

raw pixel data

enter image description here Of course! I was passing in an encoded PNG. I needed an array of RGB values. How couldn't I see that?? I had already pointed out that there were two intermingled PNG magic numbers in the output.

Thanks @Jan! For both bothering to take it further than a few comments, and for finding the answer.

I'm always finding little moments like this and proudly occasionally providing them, but this one sticks out in my mind due to the sheer obviousness!


When I finally understood that "Memoization" was not "Memorization" with a typo

I has been dabbling in Python for a few weeks when I decided to use it to solve a deceptively simple puzzle. A single word was hidden in a several thousand character long string. The puzzle writers provided the basic algorithm to extract the string as well as some samples with solutions for shorter strings, so I figured it would be a great problem to cut my teeth on. I would just implement their recursive algorithm, test it against the sample problems, then run it against the long string and call it a day, right? Not really, no.

It was easy enough (with some SO searches to resolve minor bugs, of course) to get my code to handle the smaller samples. I threw those into nosetests as a basic regression, then passed in the huge string. Nothing happened. My Python module was chugging along on its merry way, but I was getting no output. I killed the process, added some print() lines to see if anything was actually happening, and tried again. It seemed to be progressing, so I figured I would just give it more time. I removed the extra print() lines and left it running over lunch. I came back after lunch and it was still not done yet.

So I dove into Google and Stack Overflow, trying to find the root of my performance problems. Some blog posts advocated rewriting it in C. That seemed to be more trouble that it was worth, especially to solve this "simple" puzzle. I spent the rest of my afternoon applying small performance tweaks that I found here and there, none of them seemed to make much of a difference. I left it running on my work machine overnight, crossing my fingers that it might just need several more hours to finally finish.

But after getting home, I could not get this problem off my mind. I fired up my home machine and dove into it again. I used Valgrind for the very first time and identified that my program was spending the majority of its time in a single spot in the main recursive function. My online research kept telling me to "memoize it", but I had no idea what the hell they were talking about. I tried reading through several definitions and blog entries... none of it made sense.

Then I found this gem, jason's answer to "What is memoization and how can I use it in Python?".

It finally clicked. I applied it and the performance improved drastically. Another optimization and the puzzle was solved. But while I don't remember the puzzle that well, the knowledge of how memoization works and when memoization makes sense to apply has stuck with me, and I owe that to @jason's fabulous answer.


Oleg's fantastic contributions to the tag

Several years ago, our development team discovered a wonderful little jQuery-based library called "jqGrid". In short, it puts some panache on HTML tables. Anyway, as great as the product is, its documentation and features are sometimes confusing or lacking, and where they fail, Oleg has succeeded, coming to the rescue 3,911 3,916 times (~73% are accepted). It seems every question I've landed on while looking for help or suggestions with the library has been answered by Oleg, enough to burn his username into the back of my head.

To me, and likely to the countless others he's helped, this is a hefty and invaluable contribution to a slightly obscure tag, but what amazes me even more is the quality and content of the answers. There are far too many examples, but his answers usually contain well-explained and runnable code, and he more often than not keeps them up-to-date as the jqGrid product evolves! Here's his top three answers in the tag:

In them you will find screenshots, hyperlinks to documentation, working through issues through comments, updates, references to other questions, etc. And I don't see him slowing down anytime soon. I've even seen his name in comments and contributions to the project itself in the form of bug fixes, bug reports, so his work here is going full circle.

He is, of course, the sole earner of a jqGrid gold badge.

I think this effort should be recognized, and that's why I've decided to write this entry today. He is a model answerer, and if you and I put half as much effort into our answers as he does, we'd still be writing good answers.

Thanks Oleg, and please, keep it up!


Answering the question without adding complexity

This is a small thing compared to many of the other epic answers here, but I'll share it anyway.

First I need to tell you about me: I'm not an awesome programmer. I'm...competent. I've been getting answers to my questions from Stack Overflow for years, and I created an account originally just so I'd be able to upvote the stuff that helped me. I've asked a couple meh questions and gotten answers (yay!), tried my hand at answering a few, but mostly been part of the background noise.

Now on to the question. Over the years I've heard people talk about encryption and that finding large prime numbers is important, but I never understood why. I grok how the public key and private key work together in principle, but what do prime numbers have to do with it? Whenever I'd ask Google or a geek that question I seemed to end up at a page full of math and I'd give up. It made me feel a little stupid and embarrassed that I didn't understand this "obvious" thing.

Recently I found myself in another conversation about this and when the other person admitted that he didn't know either, we both pulled out our phones to look. I found this SO question, and specifically this answer. The answer isn't long, it's not full of math, and it told me what I needed to know. Once I understood that the private key is a pair of prime numbers, I understood why people were talking about factoring large numbers.

And you know what else? (At this writing) 87 other people thought that was a good question too. Whoa, it's not as stupid a question as I'd feared it might be. Nice.

I know Stack Overflow was created for the experts, but thanks for also helping out the rest of us!

  • 1
    Thanks for the nomination, made me look at the answer again and improve it a little :) – Michael Borgwardt Mar 14 '16 at 21:03
  • @MichaelBorgwardt thanks for the answer (and for continuing to maintain your work). Enjoy your swag. :-) – Monica Cellio Mar 14 '16 at 22:57

A long time ago, before I even had an account on Stack Overflow I was looking for help for a Java problem I've had. So the first result on Google was, obviously, Stack Overflow. So I've checked the answer and saw, that it's possible to upvote an answer. Curious about what the highest voted answers in the Java section were, I've clicked on the Votes-tab and found this question:


I've read that question and thought at first:

Nobody would or could answer that question, because nobody ever could have had the same problem and knows the answer to that problem.

But I did not expect Jon Skeet. His answer was short, but understandable and explained why that happened.

I was so excited at that moment that somebody takes the time and tries to help somebody at such an unusual problem for free (well, eventually he will get some upvotes).

So sometime later, I did this find the most upvoted question thing again and checked the question again. Now with even more upvotes. But not just with more upvotes, but also with some edits from Jon Skeet. He updated his answer to be correct again, because some timezones changed. These edits made me smile, because I found it awesome, that someone takes responsibility for his answer, even over one year has passed and updates it, to keep it useful.

This q/a is just one of many, many awesome answers on this site. So many people do such an amazing job on Stack Overflow by helping others for free and updating their answers, etc. to save their coding-bros time. Keep up the awesome work.


How to return the response from an asynchronous call?

Asynchronous behavior is something that can be very confusing to newer programmers--or simply those new to JavaScript. Add to this, JavaScript libraries with utility functions that make it even less obvious that asynchronous calls are even being made and you end up with tons of people who just can't wrap their heads around the topic.

There was a time when it seemed like half of the JavaScript questions I opened turned out to be someone confused by AJAX. Many of the questions got specific answers that addressed the problem in the code, but they did not explain the concept in a way that the asker went away with a new understanding. Felix's thorough answer changed this.

Even more than the 1650+ score of the answer, I think the most telling number that illustrates the usefulness of the answer (and related question) is the nearly 3200 linked questions. Such a thorough answer to a commonly misunderstood concept is invaluable.

  • Oh dang, I wanted to nominate him as well :-) Do you think he'd get twice the swag if I tell a story about him and his invaluable canonical Access / process (nested) objects, arrays or JSON? – Bergi Aug 23 '15 at 12:52
  • @Bergi Couldn't hurt. – James Montagne Aug 23 '15 at 20:42
  • Oh my, I didn't even know about this meta post. FWIW, I never received any swag :P Thank you for deeming this q&a worthy :) – Felix Kling Dec 19 '15 at 3:32
  • @FelixKling Hah, me either! – James Montagne Dec 19 '15 at 17:44

My Selected Answer

The answer I've chosen to write about is in the section of StackOverflow. Written by BalusC, is an accepted answer posted on a question requesting tips for avoiding Java code within JSP files.

The submission was substantial to begin with and offered suggestions for replacing JSP scriptlets
<% %> with server side functions (the bits I was interested in), as well as some code for execution on the client side. Over the course of its still active lifetime, the answer has been updated to include disadvantages of scriptlet tags, as well as sources from Oracle's own documentation.

I mention its active lifetime, because as an answer written in 2010, it has had revisions each year since then (minus 2013, a boring year), the majority of which help to keep source links updated.

Why I've chosen it

The second and third level Computer Science courses at my university were Java based and centered around a foundation of developing and understanding web applications. My professor utilized the valuable feedback loop of students seeing their efforts revealed in a recognizable format, through web pages. His efforts weren't lost on me and I eventually began several server&client-interaction projects in my spare time, eventually finding a job supporting a web application.

I came upon this question in 2014, my graduating year. The year of my research project and courses which encouraged design patterns and the MVC architecture.

At this point I had been spoiled and learned to love the fluidity of JSP pages in my projects, but then was the time to professionalize my education. I found BalusC's answer and linked sources helpful in finding the dividing line between server and client side functionality, which scriptlet tags helped blur so easily. Even this year, I've used some of his linked resources as references.

Bonus answer

My first experience with MetaSO was a question I posted, which asked about updating Java answers with fancier Java8 solutions. Over the course of that discussion, I had eventually commented on one of BalusC's answers (posted in 2010), asking if he could update it. And he did, 10 minutes later. I hadn't noticed right away that he was the author of both posts (who pays attention to usernames when you're a research-greedy student?).


Finally a teacher.

I'm a self-taught programmer and my school doesn't offer any programming classes. Well, I can't really complain because most don't.

When I first really started, I just wanted to create apps, iPhone apps. I had an iPod touch. I loved it. Could I create my very own apps on it? I googled a little bit a found out about StackOverflow. It was love at first sight. Well - no, but it helped me.

One day I was struggling with a bug in my code. I didn't know where to ask for help. My classmates? Hmmm, they have no idea what programming is. My teachers? Neither. They don't teach programming at all! I then remembered about that website. Huh, was it like Stuck... Stack? Stack Overflow?

I found it and I asked questions. Many questions. They got votes. Mostly downvotes. But, hey - all the answers were good. They really helped me understanding how things worked. I felt like I had to repay the entire community. I went to the homepage and browsed through all the questions. Oops, they all look pretty hard to answer. SQL? I didn't even know what that was!

There should be some way to filter questions - I scrolled the page and saw the Favorite tags. That sounded like a great way. I finally typed in C and iOS and pressed Done.

I finally see a question. An iOS question. Oh well, I must know this stuff. The asker looked like having the same issue I had the other day! I can help. I must help. I clicked the answer button and answered fiercely. And then the post button. I then started refreshing the page many times until the asker went online and accepted it.

It was the first time I truly felt like I helped somebody at programming. Me, a programming noob, just helped someone! Me? Really? I was no more a learner, but a real teacher. Just like the ones in my school.

My answer to this question.


One of my learning experiences on Stack Overflow was my first attempt at a canonical answer. Granted it was a fairly simple question, but I learned a fair amount about answering questions and sharing knowledge. Most importantly I learned to think about the readers who will find the post in their google results when trying to solve similar problems.

My answer there started as a "try this: code dump" and slowly evolved into one of my better answers.

I also learned that not all questions/answers need to be profound, difficult, or even terribly interesting to be helpful to the community. Sometimes its the little things that people stumble over when they're starting out with a new language or library, and showing them a good answer to a simple question can inspire them to do the same and help someone else.

Another thing that has helped me quite a lot was Stack Overflow's quality standards for asking questions.

I can't tell you how many times I've gone to ask a question and ended up solving my own problem through isolating the issue in an MCVE, checking for errors, and doing the required research. This process has made me a better developer and saved me countless hours of frustration.

Thanks Stack Overflow.

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