Merry Christmas everyone! Week 3 is almost over – to use a cliche, how time flies.
A few things that I learnt this week:
- Volley is awesome! No, really, it is. So much easier to use than the standard http library. So glad my mentor suggested using it for this week’s task.
- How to use GSON to parse JSON data. Also, did you know that serialization/deserialization means the same thing as marshalling/unmarshalling? I didn’t. Got so confused while wading through tutorials until I figured that out.
- How I learn best.
There seem to be two general camps of people in the learn-to-code world – those who believe that you need a strong theoretical foundation and build up from there (Read All The Tutorials!(TM) before you start), and those who believe that you should just make stuff and figure things out along the way. I’ve tried both in the past with mediocre results, but over the last few weeks I think I might be catching on to a style that works fairly well for me – a mixture of the two.
If I try to make myself read everything first before I start anything, I’ll never get started, won’t absorb much, and get bored really fast. On the other hand, if I eschew structured tutorials entirely and just try to make things work without a decent foundation, I end up banging my head against trivial problems that a solid foundation might have solved relatively easily.
So what I have been doing is trying to make stuff and figure things out as I go until I hit a wall… and then I go back and read tutorials. I get a lot of ‘aha!’ moments along the way, noticing things that I wouldn’t otherwise have noticed if I’d tried to read it all without actually writing anything. Then once I feel I’ve gathered enough information to solve my problem, I try to solve the problem again, and if I succeed I continue coding until I reach another wall. Rinse and repeat.
Of course, this is all dependent on having the time to do so, and I’m glad that so far I do. Outreachy (or at least, Wikimedia’s Outreachy programme) seems to be structured with a bit of leeway for us to take time to learn along the way rather than just pushing for results, which I’m really grateful for. Things might be a bit more rushed over the next week or so, since we’re at a more nebulous part of the schedule now, where there isn’t a 100% clear delineation between each week’s task, and I’ll be traveling for a few days over the New Year. Hopefully I manage to keep up!
My code for this week’s task can be found here.