Academic vs. Practical

I joined this “coding movement” (as I call it) only about a year ago, and started with HTML and CSS. Since then, I’ve delved deeper into web development and picked up JavaScript and jQuery, and I’ve also tried Python and might want to start Java soon. At the same time, I’ve started learning Swift. I don’t think I’ll be giving up on this new hobby anytime soon (unlike my previous adventures with art), and all seems right with the world, but I can’t help thinking I might have a problem.

I learned to code with Codecademy. I still do, actually. I get a teaser of a new language from CA before I begin to dig deeper into this language through other sources and learn to apply it and all that. The thing is, most of the places I use to learn this stuff are sites that I deem “practical” and not “academic”. They’re places like Udemy, Codecademy, FreeCodeCamp, where you learn to do. I have reservations about whether or not this is the “right” way to learn to code. Wouldn’t it be better to learn from a course like MITx’s Introduction to Computer Science and Programming using Python, which I suppose would give me more of a better insight into the programming language I’m learning and not simply following a set of instructions to make a certain thing?

Of course I understand that most people take up coding in order to build something, and I can only partially relate to that (I have some ideas, but… they’re going to take a bit more time to develop). I suppose the best way for them would be to learn to do. However, for someone like me who might want to pursue Computer Science (like many high school students, I’m still not entirely sure), would it be better to go down the academic track?

I’ve sort of decided that I’m selfish and greedy and want the best of both worlds, so I’ll be continuing my iOS development course on Udemy while at the same time trying to find a way to cram the lectures from 6.00.1x on edX into my already-tight schedule. If anyone who actually read this has an opinion on coding/programming/computer science courses, feel free to let me know!

P.S. I know the two courses I’ve mentioned are for different programming languages, but I already have a working (kinda) knowledge of Python, and I’m still new to Swift. I was merely referring to the structure / environment / teaching methodology / nature of the courses.