I just completed a master of science degree in Computer Science at the biggest University in the USA and can report that in all the undergrad CS classes, plus all the graduate classes, there is nothing about the front end. There is a mobile app development class, but zero about websites. So like you said, if you want to be a web-only developer a CS degree will be helpful in general, but not on-point.
Yeah man it really do be like that. When I was in school I got an internship at a place that made some specialized software. There was a lot of domain specific knowledge that I was missing, and our system had many components and services that were initially overwhelming. Over time I got it, and now I'm there full time. I found that it helps to take work that you don't have any idea how to do, because then you're forced to learn how to do it. In some cases you can even gain some "lost" knowledge and become more valuable at the company (by "lost" knowledge I mean knowledge about a system or a thing that was built by people who have long since left and taken the knowledge with them, or knowledge about a critical part of the software pipeline that your team doesn't really know much about because it's someone else's job... etc.). Then you become the guy who people go to with questions, the guy who fixes stuff when it breaks, etc.
This video was helpful but I have question: from your perspective, is getting a CS degree really worth it in terms of getting practical knowledge of how tech industries work ?
Really depends. For what I want to do, it’s helpful. But, if you want to do something like web dev, you can do most of that stuff for free online. Also depends on your personality. For me school is helpful because it forces me to spend lots of time on super low level concepts as well as practice the boring stuff. But, If you have the drive, you could technically do all of it in your own. I honestly don’t know if I could have forced myself to do things like assembly and algorithms/math classes on my own though. I kinda need the deadlines and structure. But, I did mobile app development and webdev prior to going to school.
Never use Hot Reload! I've corrupted hundreds of classes because of it. I wouldn't call it an issue with Unreal or C++. The only issue here is that Unreal allows you to hot-reload in the first place. This feature should've been removed ages ago. Here is a bunch if info that I would've loved to know when I started out with C++ for Unreal: Instead of thinking about C++ as a replacement for what you can do with Blueprints, think of it as a way to expand and customize the engine itself to fit your project - which you're going to build with Blueprints inside the editor. When you're writing C++, you're working on core features for your engine. When you're using Blueprints, you're working on your project. You should never pick between C++ and Blueprints because they're completely different tools built for completely different things. You should always use both in your game. (of course, there are many exceptions where you would use blueprints for core features and c++ for very specific game features) This is the ideal C++ workflow: - write c++ code in your preferred IDE while the engine is closed - when you want to run your code, you select which configuration you want to build at the top (more info on that below) and hit the run button - enjoy your project - when you want to write c++ code again, close your project and go back to your IDE - repeat So what are the configurations? You might've noticed that in Visual Studio it says "Development Editor" at the top, that's the default configuration. A configuration basically builds your code in different values, which allows you to test your project in different scenarios. You can choose to build and run the Unreal Editor, which is the program that you're familiar with that allows you to modify your project's files. You can choose to directly run your game if you don't need to edit anything in the editor and just want to see how c++ will affect what you already have in there. Debug is an environment that doesn't optimize many things to make it easier to find problems in your code with debugging tools. Development is what you should use usually when you're working on your project. Production is the version that you're going to ship when your project is ready. If you just wanna modify your project in the editor without working on C++, you can run the editor through the Epic Games launcher or by clicking on the .uproject file In conclusion, when you're compiling your code with an editor configuration selected, you're basically programming your engine, so it doesn't really make sense to have your engine open while you do that in the first place.