Wasn't a huge fan of Codecademy when I went through it. I say all this as a third year university CS student and was just going through it for fun. The HTML/CSS stuff is fine, but it's HTML, it's kinda hard to screw up. The Javascript and Python stuff was incredibly inconsistent. The thing they use to mark whether your code was correct or not was rather suspect too. For example, some of the loop stuff was kinda messed up. I would write code in the website, their compiler thing would say it was wrong, so I would do the question and just test the script in an HTML file and it would work fine. This happened a lot with loops. I've done enough programming that I have gained a bit of an intuition for some of the stuff so to see it tell me that it was wrong when I knew it was correct caused me to raise an eyebrow more than once.
The biggest issue I have with it though is that how the site teaches. For a lot of the courses (did the HTML/CSS, Javascript, and python stuff), it basically boiled down to look at what the example was and copy it. They never concretely explained things. 10 minutes after doing an exercise I likely forgot what that exercise was about.
As for the rest of that stuff in the OP, I have no opinion. I'm not big on web development. My focus in more on software development and theoretical computer science. I know more about the logic and math behind databases than the various database thingers. I've done SQL in context to a logic class, but that's it.
The one thing I do notice though is that I find a lot of people who do that kind of stuff tend to overcomplicate it more than they need to and try too much at once. What I think you should actually do, and some people will probably disagree, is that you should kinda ditch worrying about specifics and generalize what you are studying more. Once you get the concepts behind programming down, what language you are using becomes insignificant because languages become trivial to learn. Worrying about which version of SQL to use becomes pointless if you know how SQL works in general because once that base knowledge is there, you could probably pick up a different version of SQL in an hour. Likewise with any imperative/procedural and some functional language (After using some Haskell, which is a purely functional language, I am not going to lump it in with Python and the like. It's, shall we say, a bit obtuse at times. I'm not even going to touch logic languages. Those are a completely different beast from imperative or fuctional languages. Prolog, which is an older logic language, for example, is writing out things called facts and things called rules and then asking an interpreter stuff. Sound confusing? That's because it is. It's really fun though). If you know how languages like C work, you can pick up basic Java in 2 hours. It becomes learning differences in syntax and what each language calls all its stuff in the API (see paragraph below for an explanation of API in simple terms. It should make it a little less weird). For example, I am picking up some C# right now so I can mess around with Unity a bit once classes are done, and given how much I know with Java (they're both object oriented languages with C-style syntax), most of the time I spend learning is simply thinking "what's the C# API equivalent of this thing I already know in Java" so it becomes more just looking function names up since all the concepts are similar for the most part.
Also, don't get caught up in all the jargon. A lot of it can be simplified into a way that makes sense. For APIs, just think of them as sets of tools for doing stuff in a given language that are handily prebuild for you so you don't have to build them yourself. For example the Java API is all the provided, built-in tools you can use to build stuff in the Java language. javax.swing is one of the tools you can use to make graphical user interfaces, another one is java.awt. The java.math is the set of tools for doing mathy stuff like trigonometry and that mumbo jumbo (if you want random number generators, that type of stuff is also usually in math sections of a given API if random doesn't have its own section). Stuff like that. API just means toolset in basic terms.
Log in to comment