Yes it's really hard, but that's not a negative
Yes, yes... a lot of my posts start off with some story about my mum, shh, she's an inspirational woman ok?!
When I was little, whenever I said I was genuinely interested in something, my mum would get me a book about it, or get me talking to someone who actually did the thing for a job. The majority of the times I would see how much work it was, or realise that whatever it was involved spending huge amounts of time doing something I didn't want to do and so I'd change my mind.
By the time I reached my teenage years, this turn of events used to really irritate me, I'd think "Why does she have to ruin everything I'm interested in by turning it so serious, I'm just a kid". Now that I have children in my life, I find myself doing the same to them. "Interior Design is it?..here's the University standard guidebook for interior design students."
I've seen it so many times that things get oversimplified and made 'fun' to get kids 'engaged', and they just end up watering down or hiding huge parts of the subject. Learning to program is definitely a huge victim of this. Scratch is great for learning the principles of programming, but in reality it's nothing like most programming jobs.
Keep at it kid
I think I've mentioned this before but when I first started to try learning to program, I discovered that my lack of GCSE maths was a real blocker... so I went and studied GCSE maths. Coming back to it after completing that course, it's all going in a lot easier.
Another big problem I had was deciding on which programming language to learn, there are so many to choose from. After much deliberation I decided to pick C (and C++ after that) as many of the things I'd like to do either use C or are derived from it.
There's no magic answer for what the best thing to learn is, or the best way to learn it. Annoyingly, I think you have to just find what works for you, when it works for you. Keep chipping away at it. It's not just going to happen overnight, it takes a lot of hours, but if you want it then that isn't the hardest bit.
There are 3 main ways I'm learning, though I'm planning on adding a few more into the mix in the near future...
CS50
I'm on lesson 3 of 10. I found the beginning lessons really easy to get through but I've slowed right down on this one.
There's a lecture video (usually 2hrs-ish) and then some explainer videos about specific subjects. There's an IDE that runs in a browser and was made specifically for the course. There's a 'Lab' which is like a guided problem that you can work through, and then there are 'Problem Sets'.
'Problem Sets' come in less confident and more confident levels, I've picked the more confident but actually I'm finding that I'm having to learn things outside of the course as it's not really covered in enough detail to complete the exercise (well, it wasn't for me anyway!). I could just carry on with the less confident and move to the next level but I'm really keen to learn as much as I can.
The best thing about this is it's totally free! Though you can pay if you want to get a verified certification.
Sams Teach Yourself C Programming in One Hour a Day
Ha! Haha! One hour a day! I'd love to see someone who is new to programming get through some of these chapters in an hour. I find this book really detailed, things are very well explained but it is very dry. There are examples and quizzes at the end of the chapters but there's not much to play with.
I was doing this book on its own to start with and I think I've enjoyed it a lot more since I've been doing CS50 alongside as I have more to apply my learning to.
This was not free but it's so good that I have the printed and digital version.
Swift Playground
But this is not C you say. I know, but it's quite similar, and it's fun. It's a really great way to apply your learning to something real. You learn bits and put them together. Since doing Swift Playground and then going back to the CS50 IDE, I've noticed I'm much more confident with using loops etc.
What's next?
- Cyber-dojo
- Code wars
- My own projects!
(I'll talk about these when I get to them)
Comments
Post a Comment