Programming Language Dilemma

I know a good chunk of programming languages.

In order from best to least capability, in my opinion, I’d rank them JavaScript, C#, TypeScript, Python, Java. All of these are languages I could complete a reasonably complex project in, without having to learn any syntax or language quirks. They’re all neat, and if I were to rank them in the order of how much I like using the language, C# would be front and center and Java would still be dead last.

HTML and CSS would follow JS, but I don’t really know if I should consider them “programming languages”

I’ve focused, for the past year or so, on web things. The web is fun, cool, shared, all that. I like to be able to make something and then show people that something instantly without having to give them instructions on how to install/use it or have to address any qualms over what it’s gonna do to their computer. That, and a couple of other reasons, is why I do web stuff. Would I rather work native and straight on the metal (but not in something like Assembly)? Yes, I would love to. But it lacks the previously stated benefits.

I scored high enough in AP Computer Science Principles to skip over UH’s intro CS course, and I’m hoping I also scored high enough in AP CS A to skip over UH’s secondary CS course.

During orientation, a junior CS major told me two things that are particularly distressing:

  • I can’t use frameworks for things. That, I got over easily, since I find making things from scratch fun anyway.
  • The only language they allow use of at UH for intermediate courses is C++. Yikes.

I’ve dabbled a microscopic bit in C and C++, I’ve got Hello World and some other basic syntax stuff down. I can make things in those langs, but just found C# to be the funner, more technically-inclined youngest incarnation. To further add to the case of why I should be just fine, I learn languages pretty easy: It’s all just a matter of syntax.

However, syntax still takes time to learn. C++ is also filled with a bunch of concepts that I could ignore/never needed to think about in C# and other langs, like POINTERS, which are an entire thing on their own, which standard libraries to use for whatever, lang quirks, and of all things, garbage collection.

C++, for the most part, is not for web things. It’s entirely possible to use it for that, from what I’m aware of, but there are definitely better options for it. So, I’m on the metal. Which is exciting! But I was really starting to like the web.

My CS classes in high school were breezy because: A. My CS teacher was so nice and kind and I loved her personality and classes dearly, and B. I got to slack a bit and work on other classwork and CS-focused side projects (lots of web stuff) because I knew the material deeply prior to the class. AP CS Principles was JS, I learnt that in middle school. CS PAP was Python, I learnt that in middle school too (I was a syntax learning machine back then) and AP CSA was Java. I had that down in elementary school. Everything we learnt always came naturally, because I already had the motions down.

I won’t get that privilege this time, not if I don’t try. I’ve been delving into resources to learn the language for the past few days, particularly Guide to Scientific Computing in C++ among some other books, and I’m more than certain I’ll have a working knowledge of C++ by the time classes start.