I would estimate that to be good at programming in general, you need 10+ years of practice. After that, to become good at something new, e.g. building mobile apps, 1 year should be enough.
But it depends on how much time can you spend learning. Can you spend all your days learning? Or does your daily job take most of your energy and time, and then you have to split the remaining time between learning the new thing and having a social life? The 1 year estimate is for the best case.
For example, when I started learning programming as a teenager, I had a lot of free time, and I spent a lot of it programming. Later, when I worked as a programmer, I kept practicing my skills almost every day. However, when I am learning something new now, I must do it in evenings and weekends (but I would also like to spend that time with my girlfriend), so it goes rather slowly.
I would estimate that to be good at programming in general, you need 10+ years of practice. After that, to become good at something new, e.g. building mobile apps, 1 year should be enough.
But it depends on how much time can you spend learning. Can you spend all your days learning? Or does your daily job take most of your energy and time, and then you have to split the remaining time between learning the new thing and having a social life? The 1 year estimate is for the best case.
For example, when I started learning programming as a teenager, I had a lot of free time, and I spent a lot of it programming. Later, when I worked as a programmer, I kept practicing my skills almost every day. However, when I am learning something new now, I must do it in evenings and weekends (but I would also like to spend that time with my girlfriend), so it goes rather slowly.