Answer by A Quora admin:
Assuming you already know how to code, be it from formal (university) or informal study (personally, I don't have a degree), knows data structures, patterns, algorithms, and so on..
1 – Type faster.
You should learn touch typing, use a keyboard you feel comfortable with, use an IDE with good code completion features, and learn your IDE's most useful shortcuts.
While this won't make you a better programmer by itself, the faster and more natural you can express your thoughts into code, the less disruptive the process of typing will be, saving mental power to what really matter.
I've been through this recently when my nice keyboard broke, and I had to program on the notebook's keyboard. I was typing slower, miss typing many letters, had to stop and correct, it was a pain… It negatively influenced my programming speed by a great margin, while also making me feel more mentally tired at the end of the day.
2- Plan more, code less
To this day, the single thing that had the biggest influence in both quality and development speed of my projects was learning how to write software requirements.
Most companies that I've worked wrote bad requirements or, worse, skips it entirely. No one can honestly expect to build the right thing if it's not known what right is.
Learn how to extract information from the users (there are several techniques) and how to put them on paper. Writing was very hard for me at the beginning, but you get better at it with practice.
Good requirements have to be complete, while also succinct. If there is too little, you'll program the wrong thing. If too much, no one will read.
And it also had a nice features: it's easier to validate with the user, as they usually understand English better than C++, and it's faster to correct when they're wrong.
When you sit down to code, you shouldn't have to spend a single minute thinking about what needs to be done. This should be already defined, planned and specified. You should only care about how you'll implement it.