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.
I'm probably missing a few things but hey I'm writing this on the toilet so I think I deserve a break.
+1 on read, read, read. Books and articles as well as text.
Pick a topic and explore it in depth.
One of my goals for 2017 is to develop a deep understanding of Python asyncio; deep dive into the philosophy and implementation as well as develop best practices for using.
" don't always need to do the things the big guys are doing"
+1 for that one
I am also doing exactly that, but there is a cost in the near future term, as that will obstruct me for applying for jobs that require skills that the big guys are asking for. Sometimes I am even told that the non open source project are better because the big guys are paying for them. So I think that people who want to learn, should not care about trends, that is what it means to have an analytical mind.
This is a really complicated topic but as with all things, habit is definitely key. I recently discovered https://www.enki.com/ and absolutely love it for this.
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.
8 comments
[ 3.9 ms ] story [ 35.2 ms ] threadI'm probably missing a few things but hey I'm writing this on the toilet so I think I deserve a break.
Pick a topic and explore it in depth. One of my goals for 2017 is to develop a deep understanding of Python asyncio; deep dive into the philosophy and implementation as well as develop best practices for using.
I am also doing exactly that, but there is a cost in the near future term, as that will obstruct me for applying for jobs that require skills that the big guys are asking for. Sometimes I am even told that the non open source project are better because the big guys are paying for them. So I think that people who want to learn, should not care about trends, that is what it means to have an analytical mind.
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.
2. Learning other languages will help you understand Python more fully.
3. http://norvig.com/21-days.html