Hello, I’m a freshman in college double majoring in Statistics and CMDA (Computational Modeling and Data Analytics). I’ve had a lot of free time over winter break and decided to try to teach myself coding with Python. I am currently using Codeacademy.com in order to learn the language, but I feel as if I’m not really learning the full capabilities of Python. Outside of taking an actual class in school, which I may end up doing anyways, what do you guys think is the best way or platform to learn coding on my own time?
Honestly, it’s not a bad idea to just learn coding purely academically while you are in school. It’s possible to learn it at a basic level (how to make a website and simple programs) on your own, or learn it in full depth over many years of academic+practical self-study, but it’s best to use the classes available to you while they are there. Keep in mind that you never really know what direction your learning should take place in before you are at least academically introduced to the basics. Two classes (usually one Intro course and one OOP course) will give you a good idea of what Algorithms is going to look like, and Algorithms unlocks most of the “scientific” programming you’d need (anything more would be straight CS).
I personally find the best way to learn a new language is simply to buy a book about the language, try out the examples, and hack around a bit. Learning languages in a classroom or online doesn’t seem to work well for me.
I agree in that for languages specifically, this is always how I learned best. Learning theory and program structure is more academic though, and that is best learned academically (included but not limited to a classroom). I personally believe the CS curriculum up to Algorithms is a worthwhile experience for computational/statistical math.
I’m a self-taught programmer. I started in the 1970s when I was in high school. I found that I learned best when I took on a project that interested me that forced me to learn knew stuff. When I first studied C in the 1980s, I wrote a screen saver for my PC that drew moving Bezier curves (i.e., line designs) all over the screen. When I first learned Perl in the 1990s, it was to create a little database on my webserver.
So I suggest, coming up with an idea for a small “toy” that would do something useful; don’t worry if it’s been done before and better. Just have a bigger goal in mind than watching a for-loop count to 100, which gets old really fast.
With that kind of experience, classroom learning goes a lot further. For me, anyway.