The saying "practice makes perfect" goes no further than the truth.
Skills are honed by spending hours of practice so that you get better in your craft.
Soccer players do drills.
Musicians play scales.
Coders copy and paste…
Sometimes as a developer you forget that you actually do have to put in the hours.
It's really tempting to simply knuckle down and keep forging ahead on work or your pet project.
- Create a nice dashboard
- Optimize your splash page to load up faster
- Add Lottie animations
All of these activities are not bad.
In fact, they are really good for exposing yourself to new problems all the time.
These tasks train you for encountering the unknown and you gain very good skills from doing these as well.
- Researching quickly
- Googl-ing the right things
- Integrating it with your existing environment
However, there are some things we can get better at by doing things more.
For an app developer, it's really easy to just think “Oh, I've done this once before so I have got it down pat.”
Sometimes it's when we figure out some solution for a problem and end up copying and pasting that bit of code in other sections of our code...
We might try to be smarter by creating a function that embodies this code so that we don't have to write it multiple times...
The end result is that we have only written this code from scratch once.
This is great for a work stand point. Your company doesn't want to pay 3x or 4x engineers to each solve the same problem.
However, as an individual, if you got to do that solution at work, chances are, you only get to do it once.
Your only chance to do the same thing again is if you move companies, or another team/ code-base.
In our line of work, we rarely see the same problem multiple times.
If we try to apply the DRY principle (Don’t Repeat Yourself), where we minimize the number of times we have to write the same code, we do not get a lot of practice time into our skills.
If we were basing our practice solely on work, then we get a lot of breadth in the problems that we solve but not a lot of depth in our learning.
I want to create a blog where you can follow along in my attempt to spend time practicing my craft of Android development.
What I hope to see in a week or a month of active practice is a better handling of the tools that I have (particularly Android Studio) as well as being smoother in writing solutions to common problems.
As a byproduct of this exercise, I am hoping to be better able to estimate tasks.
This will be great for work -
Scrum masters are always wanting estimates on particular tasks.
This will be great for me -
I will have a better measure of my skills
As an example, I would like to see the time for me to create a layout reduce from say 20 minutes to 10.
The more that I practice, the more mastery I have…
The more Mastery I have, the more flow time I will be in…
And my hypothesis is that the more time I spend in flow, the more feeling of achievement I will get.
There's a great sense of satisfaction in computer game speedrunners achieving their personal bests.
Why should something like cutting time in creating a complex layout quickly be any different?
A core tenet of business is that you create value for your customer.
Customers pay you because you bring value to them.
They are MORE happy when you bring MORE value.
Practice your coding skills by solving the same problem from scratch a few times.
I would like to track my progress here and see what I gain out of getting more efficient at Android development.
I will post the little tips and tricks I find here as I come across them.
This is a Dev.to repost from a blog that I'm kickstarting while I learn how to write online: Android Dougy.
I've only just started my blogging journey and I'd love your feedback on what kinds of posts you'd like to see.
- Resources I went through
- Tool showcase
- Development best practices
- [Insert your own idea]
Let me know in the comments below!