There are some highly-voted questions on our site that don't match the FAQ, but I feel are extremely valuable to programmers.
I've only been programming a few years, and when I came across these questions I felt like I found a goldmine of information. There's so much out there that I don't know I don't know, and having a bunch of things that can improve me as a programmer in a central location is extremely valuable to me.
I do not want to see these go away in a purge, so can we keep these questions opened, but locked?
The questions are:
Stuff every programmer needs while working
I first saw this question a year or two back, and at the time I was fairly new to programmering, and usually worked by myself. Some of the answers to this questions are extremely useful to new programmers, and are a huge help in productivity.
For example, I had no idea the kind of value an extra monitor would give me. When I saw that was rated one of the highest-voted answers, I asked for a 2nd monitor at work and was amazed at how much more productive it made me.
Another answer that assisted me was I didn't realize it was common for programmers to wear headphones or listen to music at work to help keep distractions out. I always thought that kind of behavior was rude and unprofessional, and would have never considered bring headphones in to work to shut out the distractions.
Other answers that were of value to me was allocating time for research, and the value of having my own personal whiteboard. I now have both :)
What is the single most effective thing you did to improve your programming skills?
There's so much good information in these answers that have helped me, but I'll try and highlight the ones that made the biggest change:
Try to work with people smarter than yourself. This helped me when the company decided it wanted to increase the size of their programming team, and I was responsible for finding a candidate. At first I considered hiring a few interns or juniors to help with the workload, and then I remembered this and decided to go for one person with more experience than myself to try and improve my own programming skills. The company was fine with that and I got my way, and I working with someone that has more experience than me has has taught me so much that I didn't realize I didn't know.
listen to what others have to say, regardless of job title I noticed I was weighing opinions based on who was telling me things. For example, we had a network guy who started dabbling in programming, and at the time I discounted some of his opinions because didn't think he knew what he was talking about. But I soon realized that just because someone is inexperienced does not mean they don't know what they're talking about, and we ended up implementing some of his suggestions after all.
Start a pet project and teaching others. I think these were the two that lead me to starting my own programming blog, although I really couldn't pinpoint the exact answers because at the time there wasn't nearly this many answers and upvotes.
How to become a "faster" programmer?
Again, another one of those questions with so much good advice for new programmers that I don't even know where to start. But here are some of the answers that made the biggest impact on my programming style:
Avoid gold plating - do only what is asked of you (in terms of requirements) I can't tell you how many times I would try and add extra features, or suggest things that weren't actually required. After reading this (and many other similar answers) I really started simplifying things and only building what was asked for.
Don't reinvent the wheel, consider reusing past work and the work of others I was one of those people who always liked to build stuff myself to using pre-made stuff. Answers like this were the reason I started using 3rd party libraries more, and I've actually managed to talk my company into purchasing a commercial library (Telerik) which has reduced development times by quite a bit.
Avoid switching tasks too often. Distractions and task switching can kill a day / Eliminate distractions I started noticing how much distractions and interruptions were affecting my productivity (I got interrupted a lot), and started doing things like putting my phone on DND for hours at a time when I needed to get stuff done. I noticed an immediate increase in productivity, and now most people know to email me if they want something that isn't an emergency instead of calling me.
I realize much of this information can be found online, however seeing the suggestions with such a high amount of support from programmers (upvotes) really made me think about them again, and instead of simply taking note of it and moving on I actively went out and tried to make changes in my work environment.
I've found quite a few open-but-locked questions on StackOverflow which were are clearly not a good fit for the site, but contain so much useful information that they are locked with the following message:
This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. More info: FAQ
I was hoping we could do the same for these questions since I think they contain a lot of good information for new programmers, and would hate to see them go away because they're a bad fit for the current site scope.