Those answers were so useful to me. If I knew it would be deleted, I would have saved the answers.
I googled my question and found a link to it, but it gives a 404.
Also why did it get deleted in the first place?
Those answers were so useful to me. If I knew it would be deleted, I would have saved the answers.
I googled my question and found a link to it, but it gives a 404.
Also why did it get deleted in the first place?
I wish people wouldn't delete questions with good answers. You're destroying the useful contributions of your peers!
Anyway, I merged it with the duplicate so nothing is lost:
https://stackoverflow.com/questions/43434/how-to-improve-problem-solving-skills
I'm trying to get a handle on why community moderation works in other areas but not for deletion.
The community usually makes the correct call when closing questions. There are enough voters to catch it if it's done wrong. Deletion is different. There are plenty of 10K users but the tools are very cumbersome. The result is there are very few people performing routine cleanup duty. There aren't enough people to catch (and un-delete) the WTF deletions.
When I became a 10K user, I looked a the "tools" functions and said "okay, now what?" I heard through the grapevine that I could do some delete-post thing if I could figure it out. The more friction, the less people who participate.
At the very least, the "tools" link should bring 10K users to a specific "10K Tools
" tab. Let 10K users know what they can do right there, all in one spot. The rest of the tabs and the dozens of links are cool, but they are eye candy which obscure the primary functionality. The functions under that tab should clearly define the responsibilities just acquired:
The list of questions that can be deleted should show the number of delete-votes they have... right there in the list. It's important to know that voting is underway without having to drill down into the question itself. That visibility is important.
The "tools" link at the top should surface some statistical information, exactly like the "mod" link. As a moderator, I look at that mod link every day because that number changes and it grabs my attention. In contrast, the "tools" link never changes. It is static and it's easy to just forget about it permanently. Surface a statistic such as the number of new closed post that can be deleted. It doesn't really matter what the number shows as long as it notifies the user of something... anything.
(This assumes any of the above suggestions start working)
When delete-voting reaches a critical mass, up it to five votes. Deleting questions is certainly more drastic than closing them. Make it five votes to delete and un-delete.
Stack Overflow recently added the "Linked Sidebar" so we know when questions link to each other. Maybe deletion should take that into consideration. If a question is linked, deleting it affects other questions. Questions [closed as exact duplicate] get crossed linked automatically. I don't have a specific suggestion how to give these posts extra consideration. Maybe:
Shameless plug: Consider this as a solution: Let everyone vote at once (delete question? yes
, no
). It's a way to get more people voting (on both sides) rather than only letting one side vote until after a post has been deleted.
The question was an exact duplicate of other questions, hence it was closed and subsequently deleted. Here are two of its duplicates:
By the way, a Google search with your question’s title also finds these other questions.
If you can find it in google, you likely can click "google cache" and read it.
You might also try archive.org
Here are the two most upvoted answers to that question:
user30997's answer:
- Programming/Math practice: http://projecteuler.net/
- Puzzles are all over the place, but I love http:// perplexcity.com/, though you have to buy the cards.
- Search around for "engineering interview questions" and start tackling them.
- FIND A PERSONAL PROJECT. Write a game, website, library, anything. The best way to get better at this stuff is to make it your passion. You won't be able to engineer your brain to want to be an engineer.
Ami's answer:
I think it would be a mistake to restrict the "logical and analytical thinking skills" that make "an awesome programmer" to logical puzzles and math problems. Sure math and logical skills are important, but analytical thinking and great programming entails much more than that. Great programmers are creative people with an insatiable curiosity. Creativity and curiosity are cultivated when programming is contextualized in a historical and philosophical framework.
Here are my suggestions on how to do this:
- Read Hofstadter's Godel Escher Bach. The book gives a great sense of the philosophical questions and meta-questions that are fundamental to the fields of computer science, information technology and programming. Hofstadter also does a great job of bringing concepts to life with examples from literature, music and art.
- Get a sense of the history of information technology. This is important to understand the significance of the generation that we are working in today and to anticipate the future of the field. Read up on Moore's law and its many corollaries. How can this exponential growth be explained? Why is it that the field of information technology has been blessed with exponential growth whereas other technological fields such as husbandry have not? Once you've explained the exponential growth, how long will this growth carry on for? What will the near future look like if these trends continue?
- Understand design patterns. Don't just be able to do object oriented programming but make sure you understand its methodological and historical importance as a breakthrough programming methodology. Make sure you can appreciate the elegance of the different design patterns. Try to invent your own design pattern. Determine on your own what types of projects would be best suited for a given design pattern.
- Why is parallel processing such an important breakthrough in computer science? What will the next breakthrough be?
- Try to tackle the biggest and best algorithmic problems in computing today. Start designing your very own natural language programming language or a machine that can pass the turing test.
- Master the art of outlining and detailing software development projects. Invent new and betters ways to do this.
- Understand why the waterfall method of software development fails so often and why agile methods are a major improvement. Invent your own programming methodology.
- Understand the P versus NP problem of computer science (a millennium problem) to the best of your ability. Whenever you have spare second in an elevator or before you go to sleep at night you should be working on that problem trying solving it. Is it or is it not theoretically possible to solve the seemingly endless amount of important NP-hard problems out there? Can the human mind solve these problems? What is the computational analog for human creativity and intellectual insight?
- Make new questions to think about and add them to this list.