But here's one thing I've found: People who really want to have fun find a way. There are small pockets all over the bay. SJ downtown is a little lame but it is getting better
I think you severely underestimate the amount of serious work put into all these "tech properties" (I'm guessing you mean Facebook/Dropbox) by very experienced, in-demand engineers.
VR and AR both need just one hit application. What would be a hit application?
1) It should just work, with no annoying aspects. Should be completely intuitive and engaging/fun
2) People want to use it on a regular basis. For example people play games for hours at a time on a regular basis, or use an app every day multiple times a day. Not just a "use it for 10 mins, think it's cool but never use it again" app
This is in the embedded world, unfortunately the gdb for this platform is rather limited and watch breakpoints don't work as expected.
Essentially here is what was happening:
-Create C++ object
-Try to point some reference to this object, but object address is suddenly 0x1 (just by doing one step in gdb) when trying to access one of it's properties.
-Tried to run it with valgrind, and it works fine with valgrind, which leads me to believe it is some memory allocation issue with C++ on the heap
-I modified the C++ class to have a uint64_t variable before the variable declaration. Now program works fine!
I believe the issue is probably with heap corruption at some point, when something overwrites certain addresses.Having that extra unneeded 64-bit int in the heap makes it still be valid.
From what I read somewhere Facebook was making their mobile engineers use their app on older Androids (and maybe iPhones), which turned out to be very frustrating for them. I'm sure they are aware of the problem...
Yes what the author doesn't realize is that C is still an extremely important language no matter what, just to make computers run properly and fast.
If there were good alternatives then maybe we can discard C. But if you want to become a professional developer you SHOULD know C, even if you dont use it regularly. The same way I believe every professional should know basic OS concepts, threads, memory management, architecture, etc.
I think it is very important that computer science students learn C early on. Learning concepts like memory management and word alignment (which he mentions) is very critical imo.
For other majors which have require some programming it is best if they stick to something like Python, etc.
But the author does make a lot of good points regarding how many holes there are in these languages, and how much of a time sink they can. In fact I spent the last few days trying to track down this obscure bug where an object being allocated in C++ was randomly being free'd (according to gdb a valid address would become 0x1 all of a sudden) and I couldn't figure it out. I implemented some nasty WAR which makes the program run now...
A lot of startups only think in terms of "hey let's make a simple app/website and let AWS do all the work!".
They don't realize how deep computing and computer science truly are. Data Structures and Algorithms, Computer Architecture, Operating Systems, Machine Learning, Computer Graphics, Databases, Compilers and Languages, etc. etc. all require a deep knowledge of CS.
Pretty much anything you use or build on was developed because of years and years of CS study or PhDs. When you use something like Google Maps, Chrome, iOS, Linux, AWS, Facebook (yes even Facebook), etc. it is because of the work of CS grads and professors over a long period.
Do you want to have deep knowledge of various systems and truly solve problems or just want to hack out another webapp or mobile app? Maybe that defines the difference between a CS major and "just-another-dev"
"It seemed to me like you try hard to prove yourself to get in just to be on the bottom of the totem pole where being recognized would be very hard. So I didn't bother and worked at other smaller companies."
Is recognition one's main objective when working at such companies?
Some people do it for the pride. But for many the chance to work on some great projects and learn from arguably the best in the industry is an opportunity which is too hard to pass up.
If you expect to work on projects like Google Maps/Earth, Android, search, images (machine learning), cardboard VR, gmail, etc. etc. and don't have an understand of algorithms or data structures, then Google isn't really the place for you.
You can't expect "frameworks" or libraries to do everything for you
This argument doesn't make a lot of sense to me when it comes to bigger companies like Google, MS, Apple, etc. etc. Do you know how much H1Bs at these companies make? The data is open, you can look at how much Google pays them in the Bay Area for example. To say that Americans WON'T accept such salaries is ridiculous to me