Learn by Doing

16 Jul 2019

Whether the internet does more bad than good or vice versa is subjective in my opinion, but I think one absolutely good thing about it is it enables us to share knowledge more widely. This is certainly true for me on a daily basis, as I read other scientificc papers shared on the internet. In fact, I have never seen a real physical copy of the Astrophysical Journal, nor the Astronomy & Astrophysics, nor the Monthly Notices of the Royal Astronomical Society – the journals where most refereed papers in my research field are published.

I want to revisit a piece of advice I came across on the internet when I started learning coding on my own back in the days, when I first learned how to do research in astrophysics. I think the advice has enabled me to gone further in my career and become a better thinker.

Learn by doing

Reading is easy to do: fire up your browser, go to the library or sit in a bookshop and ‘browse’. You feel like you are learning and it’s not even that difficult. The problem is that you aren’t practicing the craft and that is where you’ll encounter the real problems and learn the real solutions. Book and blogs can help you find the answers but you have to have the problem to solve in the first place.

Like learning any new skill, it is important to stretch yourself and try new things. An easy and effective way to do this is to find an interesting problem outside of work and solve it. It doesn’t matter if it has been done before or even how well you solve it , the act of trying something new will teach you a lot.

Sometimes it’s better to write your own code unless their code is robust and can be configured to work on my stuff in a very short period of time (e.g. libraries). Also it takes time to understand what other people’s code is about, plus it offers an opportunity to learn more.

In software development, as in so many things, there is no substitute for actually doing it. Actually writing code makes you concentrate fully on the various aspects. And don’t be shy about writing chunks of code to try things out - it doesn’t matter if some things don’t work the first time!

Ask questions

Sometimes, you will encounter a problem that you just have no idea how to solve and you can’t find any help in the manual or on the web. In these cases, it’s great to be able to ask someone who may have already encountered such a problem, or who has the expertise to help you solve it. Being polite and courteous is important here. This person is doing you a favour by answering your question/s and probably has a lot of things they need to get on with. It really helps here to have already made an effort to answer the question yourself. Don’t be lazy just because someone else may know the answer!

Always try to learn more

Learning any new skill takes time and effort. The people who over time become true experts are the ones who are always looking to learn more and improve. If you try to learn a little more here and there, a few years from now you’ll suddenly realise that you’ve actually become pretty good! We would suggest this attitude to any type of learning.

Take a little extra time to understand properly is important.

comments powered by Disqus