As a developer, practice is vital to your continued professional success.
Yet many developers, regardless of experience, frantically ask: "Which project should I do?"
...only to receive these cryptic answers.
In hopes of preventing that, I'd like to share some advice that's been very beneficial to me.
Copy–until you can create
Consider the following quote...
Good artists copy; great artists steal. - Pablo Picasso
This doesn't mean rob your parents.
It means, while you're practicing, don't bother with original ideas. Just copy something and focus on perfecting your technique!
You can rewrite the source code line-by-line, do it totally independently, or somewhere in-between.
Everyone's Doing It
Aspiring artists and authors copy all the time. Whether it's redrawing or rewriting, mimicking a famous piece is a mind-opening exercise. You get to immerse yourself in the craft and not worry about formulating a good idea. All the focus goes toward improving your skills.
This applies to programming too! Myself and many other developers copy open source repos just to learn how they work. You discover techniques you might've never encountered before.
In his inspirational Medium Clap article, Emmanuel Ohans took this principle to the extreme. He figured out how to design his own project after copying countless Codrops repos.
It's not about plagiarizing original works–it's about improving your technique and drawing inspiration from others.
How You Can Do It
Find a project you'd like to copy, then pick one option...
- Copy its source code line-by-line
- Look at source code only when you're stuck
- Recreate it 100% by yourself
- Just do something!
All the choices are valid and beneficial. As you complete the project, research any syntax/patterns you find confusing.
Original = Coding last
If you only practice through original ideas, this will be your workflow.
- Thinking of something
- Development (The very last step)
Looks pretty wasteful to me, unless you're running a startup company.
Copying = Coding first
For the ones who just want to code, consider this process instead.
- Code an existing app that interests you
That's it! The process is now aligned with our goals. Instead of developing at the very end, we're now developing all the way through.
The idea, research, planning, and design are all taken care of. We can focus on the good stuff, unlike poor Harold here.
He'll never improve because he's stuck in the idea phase. Don't make his mistake! Spend your resources on practicing instead of idea-making.
If that's your goal, at least. 🙂
Thanks for reading
Until next time!