21 karma · joined March 13, 2017
It's not about "node flexing" and neither is it about letting the system do the work for you. You still have to do the work of turning information into understanding.
I'm not much of a Windows fan but I do understand the usefulness and convenience of having a linux dev environment when forced to use windows for one reason or another.
Youtube is an amazing resource but it's also an ocean of incompetence and phony expertise by people doing exactly what you prescribe. Just be careful not to contribute to the ever expanding circle jerk of self congratulatory mediocrity. No one wants that.
I often hear that learning algorithms / data structures is pointless these days because it encourages reinventing the wheel or it wastes time. I believe the opposite is true. People who are ignorant will keep reinventing the wheel, they just won't realize they are doing it and how poorly they are doing it.
Learning algorithms and data structures will enhance your ability to write software because you will have a deeper understanding of how things work. When you understand how things work you can build interesting things.
Of course, if you just want to be a non-contributing faceless code monkey at a corporation where you don't matter and get a decent paycheck well, you probably can skate by in mediocrity. If you want to be able to build things that don't rely entirely on the work of others that actually understood what they were doing then you need to put in the time. The return on that investment lasts a lifetime.
With Rust I don't think you have to choose.
Once you "get" the borrow checker and understand the ownership model Rust becomes very productive and feels like a high level language. There's a little noise in the syntax but what you get in return is so worth it. There are quite a bit of high level features to take advantage of that "compile away" with so called zero-cost abstractions.
It's a legit low level language in the sense that you can write a legit OS. No GC, guaranteed memory safety. It's bonkers.
I believe it is blurring the lines of what it means to be high/low level.
I remind myself of this whenever I feel like I'm being swallowed up in a rabbit hole of videos and opinions.
Do you have a math background? The thing that ultimately saved me from what I think is a similar problem to yours, and bear with me, is mathematics, particularly Discrete Math. I learned to program long before I discovered an interest in mathematics and the difference in skill, confidence and happiness is stark.
Many programmers go on about how math is not really necessary for programming. They are wrong. Sure, you can get by and you can do creative things and have a job that doesn't require "CS theory" but you'll be forever hamstrung by the torrent of shit being hurled at you from every direction at all times. You'll forever be at the mercy of bad tutorials, shortcuts and conveniences.
Mathematical thinking is the antidote to this kind of paralysis and insecurity. It's the power of knowing how similar things really are in computing and how little it's really changed. It's the power to eliminate bullshit.
You'll still have to learn new languages and tech but you'll be far greater equipped to detect and avoid the garbage.
Mathematical thinking is a super power in this field.
Don't worry about that dumb crap. JS is a good language. It's come a long way since its dark early days.
People who shit on JS and on those that like it are usually not worth your time. I find those people are more interested in displaying their intellect or superiority by being condescending. It's not helpful.
Read and watch Douglas Crockford if you haven't. He has extracted the best aspects of Javascript to focus on. If you take his advice then I believe you will find JS to be a very good companion.
Just don't let JS be your only language. No language should be your only language.
The problem is thinking that "It's ok!" to spend your career in ignorance because your job doesn't involve inventing new algorithms or pondering theory. That's just lazy. I know, I did that for years too, not knowing why I should bother since I'm doing just fine without it! That is the arrogance of ignorance at work. I guarantee that you don't know how miserable you really are.
It's not about passing whiteboard interviews, it's about achieving a deep understanding of fundamentals. It will change and improve the way you think and approach problems. It will improve your software regardless of whether or not it involves an actual "CS problem" because your mind will be elevated. I did the same thing for years, I whined about "whiteboard interviews that don't effectively display my skills and unique gifts to do the job". It's a dumb mindset.
My advice as an internet nobody would be: Now that you've seen that you are struggling in this area, work on it! Don't let these people encourage you to remain ignorant. Advocating for ignorance is shit that propagates shit.
Ultimately, understanding the principles of your field will make you better. It's not about the damn whiteboard!
System76 is also one of the only companies that sells machines that is committed to Open source, linux and hardware. They recently released their own Linux distro Pop_OS!. Its a really well put together Ubuntu based distro. Great design and continuity.
They recently opened a factory and are designing and building their machines in house. You get lifetime support.
I don’t work for them but I really can’t say enough nice things about them.
They are worth a look.
1.