Practice is essential but it's crucial to be solving a problem. You could write a small app, and that's worthwhile to do on its own, but writing something where there's a need means there's a bit of pressure to fix the mistakes you're absolutely going to make as you practice. If there's no testing in an environment where people need to use your app, you'll forever assume that your practice was successful. That doesn't sound great for the users but it's realistic and it really helps to build your overall skillset as a productive developer.
I think we are talking about different parts of practice. Think of it in terms of automated testing of an app. I am talking about unit testing. You seem to be talking about integration testing. When you practice one specific thing, trying to make something "real" means a LOT of extra time spent on writing code that is not relevant to the test. That means less time is spent actually figuring out how that new thing you just learned works. What I have found to be the most value for the time is to do a LOT of little practice work (think of them as unit tests) that focus solely on seeing how to use what you just learned. Then, after doing that for a while, you put together a few (5-15) things you have recently learned into a larger test (think integration test) to see how they all interact. Then, you build one or two full applications for practice (think end-to-end tests) to make sure you know how to integrate what you have learned into the full pipeline. Just like in testing, little, focused practices are quick so you can do lots of them. The intermediate practices take longer, so you do fewer of them, and the full apps take the longest, so you do very few of them.
Spot on. There are no shortcuts - sorry people looking for them. Do, learn and always, always, always keep reading the literature - even if you have no current need for "technology X" - as a professional you need to be at the very least aware of it and what it does as it might plug that gap you suddenly have appear in front of you one day. If you are a good developer, you can learn anything new in detail if you need to.
How much time you should spend on a particular problem while doing POCs? For example, 1. working with SSL certificates in mobile application (also for development and testing purpose)2. selecting on-premise Authorization Server like keycloak, auth0 rather than cloud based like azure AD B2C, AWS IAM
I spend as much time as I need to make sure I understand it and can get it to work. There is no point to moving on to the real application if you cannot get a proof of concept up and running.
That can be rough, but it is also an opportunity. You get to shape them into the type of developers you want them to be. It takes a lot of work, though.
I couldnt express how much use i have gotten out of this channel and all of that for free! Thank you.
I’m so glad. Thanks for sharing.
Practice is essential but it's crucial to be solving a problem. You could write a small app, and that's worthwhile to do on its own, but writing something where there's a need means there's a bit of pressure to fix the mistakes you're absolutely going to make as you practice. If there's no testing in an environment where people need to use your app, you'll forever assume that your practice was successful. That doesn't sound great for the users but it's realistic and it really helps to build your overall skillset as a productive developer.
I think we are talking about different parts of practice. Think of it in terms of automated testing of an app. I am talking about unit testing. You seem to be talking about integration testing. When you practice one specific thing, trying to make something "real" means a LOT of extra time spent on writing code that is not relevant to the test. That means less time is spent actually figuring out how that new thing you just learned works. What I have found to be the most value for the time is to do a LOT of little practice work (think of them as unit tests) that focus solely on seeing how to use what you just learned. Then, after doing that for a while, you put together a few (5-15) things you have recently learned into a larger test (think integration test) to see how they all interact. Then, you build one or two full applications for practice (think end-to-end tests) to make sure you know how to integrate what you have learned into the full pipeline. Just like in testing, little, focused practices are quick so you can do lots of them. The intermediate practices take longer, so you do fewer of them, and the full apps take the longest, so you do very few of them.
Thinking like a developer:
"Should I debug this? Nah, just run it again. Maybe it'll work this time." ;P
That just missed the list. :-)
I was immediately thinking more along the lines of putting up a small sign on the door explaining where the lightswitch was. Tada! Workaround!
Mind opener advice as always. Thank you Tim.
You are welcome.
Many thanks Tim, you always inspires me. Please keep going!
You are welcome.
Very cool! Thanks to your videos I am improving my English listening skills as well as my programming skills! Thanks a lot!
Awesome!
Thank you so much Tim. You are a real blessing.
You are welcome.
I work as an intern for a company and just got thrown into a C# MVC project and I barely know C# so I gotta start practicing small somehow lol
Yep, make LOTS of samples to test out what you are learning. The more you practice, the more you will discover and learn.
Thank you for the advices Tim
You are welcome.
Great as always!
Thanks!
Spot on. There are no shortcuts - sorry people looking for them. Do, learn and always, always, always keep reading the literature - even if you have no current need for "technology X" - as a professional you need to be at the very least aware of it and what it does as it might plug that gap you suddenly have appear in front of you one day. If you are a good developer, you can learn anything new in detail if you need to.
Thanks for sharing.
How much time you should spend on a particular problem while doing POCs? For example, 1. working with SSL certificates in mobile application (also for development and testing purpose)2. selecting on-premise Authorization Server like keycloak, auth0 rather than cloud based like azure AD B2C, AWS IAM
I spend as much time as I need to make sure I understand it and can get it to work. There is no point to moving on to the real application if you cannot get a proof of concept up and running.
@@IAmTimCorey Thanks Tim
Tim is the senior I wish I had ... my small company hires only juniors (because they are cheap)
That can be rough, but it is also an opportunity. You get to shape them into the type of developers you want them to be. It takes a lot of work, though.
Great explanation I have ever seen. Thank you!
You're very welcome!
Write it right the first time. No rewrites, no backlogs, no fixing bugs. Software is so crappy today.
Sounds great. and then you wake up.
I'm assuming this is sarcasm/humor.