I've been programming for several years professionally now and the things I noticed make a difference between good and mediocre developers are:
- Always be reading, you should always be reading about areas that are new or outside of your day to day work. Example, GraphQL instead of REST and why.
- Don't prematurely optimize, Going off the last one, you don't always need to do the things the big guys are doing, they are hitting problems that you may hit in the future.
- When you hit something you can't figure out go for a walk or take a break. This is when your subconscious mind will work on connecting the dots.
- Read everything you can get your hands on about your interested language, framework, role, etc.
- Don't be afraid to ask questions. Don't ask for help with every little thing, but if you honestly can't figure it out within an hour of tinkering then ask stackoverflow or a co-worker to see if you are missing something.
- Don't give up. You would be surprised how many people hit an issue and then stop trying. That is after all what makes programming fun and rewarding. You will at times feel very down and question your choice to be a developer, it will pass and the high of figuring it out will make it worth it.
- Go to meet ups, no better way to see others work and ideas than attending meet ups.<p>I'm probably missing a few things but hey I'm writing this on the toilet so I think I deserve a break.
This is a really complicated topic but as with all things, habit is definitely key. I recently discovered <a href="https://www.enki.com/" rel="nofollow">https://www.enki.com/</a> and absolutely love it for this.<p>In addition to that: imposter syndrome can get in the way of writing code. There's lots to be said about getting over imposter syndrome, but it's not that easy. If this is something that affects you, I can highly recommend a psuedonym to help you interact in IRC and other feedback channels.
Work on projects you find interesting, even if you don't know how to do something 100% correctly. Be resilient: most give up when the going gets tough.
I would also add to my previous post to read through open source projects. Simpler projects are better. You probably don't want your first dip to be a web framework or anything that complex. It will show you how professionals organize code and separate concerns.
1. Programming is not language specific.<p>2. Learning other languages will help you understand Python more fully.<p>3. <a href="http://norvig.com/21-days.html" rel="nofollow">http://norvig.com/21-days.html</a>