> College CS courses aren't necessarily designed to be practical; many are more theoretical and not really practical for day-to-day SWE jobs.
This is the mentality that I really dislike about these courses. How exactly do you get to decide if something is just "theoretical" and "not really practical"? Everything in CS was purely theoretical at one point.
It's easy to say "practical means stuff that is used in the industry", but I mean, I've been paid, by corporations, to do Haskell, F#, and even F* briefly, all of which have been described as "academic" languages, and if you want to be able to work on cool and interesting stuff, there's a high likelihood that you're going have to rely on the "theoretical" world.
I guess my question is if there's even such a thing as a "non self taught front end developer"?
No 4 year university will teach you React as part of a CS degree. Most probably won't even teach JavaScript. Point is, becoming a good developer is largely a self-taught discipline as is.
> No 4 year university will teach you React as part of a CS degree.
DISCLAIMER: I'm not a frontend developer.
They will teach you why React is used though, at least indirectly. A good professor will explain the virtues and drawbacks of immutability, and explain how it affects performance; with this understanding, it will help you choose whether or not React or another framework is more appropriate.
> Point is, becoming a good developer is largely a self-taught discipline as is.
It can be, but to write code that ends up performing well, you typically have to have some underlying understanding of the "guts" of the libraries you're using.
Dumb example, to find the smallest element of a list, I used to sort the list, and grab the first element out of it. This will work, but if I had taken any data structures or algorithms class, I would have learned that this is an O(n log n) process, whereas finding the min only requires O(n). This won't matter for smaller lists, but for something big it absolutely will.
Now, maybe I'm just dumb, I'm willing to accept that, but it's not like when I realized this later and changed to the faster version, that the code for finding the min was appreciably shorter or prettier or easier to maintain, it was only faster.
I knew just fine how to search for something and copypaste from Stackoverflow; I just didn't even realize that the solution that I immediately thought of was sub-optimal.
Sure, that example maybe shouldn't necessitate a $50k degree, but my point was more that the theory inherently informs the practice. Taking a theoretic discrete math class does make your software better, even if it doesn't immediately seem relevant because all the job postings are asking for 10+ years of React experience or something.
No, I'm in agreement with that view. I'm responding to OP's line "If you're learning to code just for fun, these things are totally fine and can be incredibly fun, but if you're learning to code for a job, please don't treat these things as an "alternative" to college."
A CS degree, especially at the undergraduate level, is mostly conceptual. It takes much experience to develop the intuition necessary to solve complex problems faced on the job.
>No 4 year university will teach you React as part of a CS degree. Most probably won't even teach JavaScript. Point is, becoming a good developer is largely a self-taught discipline as is.
I'll have React, GraphQL, .NET Core, EF Core, Dapper, MongoDB and RavenDB
cuz we're having some courses with an actual industry person with 15+ years of exp (no, it isnt private school).
Those courses are: Building applications based on HTTP / Non-relational Databases and Programming (lang + data access)
This is the mentality that I really dislike about these courses. How exactly do you get to decide if something is just "theoretical" and "not really practical"? Everything in CS was purely theoretical at one point.
It's easy to say "practical means stuff that is used in the industry", but I mean, I've been paid, by corporations, to do Haskell, F#, and even F* briefly, all of which have been described as "academic" languages, and if you want to be able to work on cool and interesting stuff, there's a high likelihood that you're going have to rely on the "theoretical" world.