|
|
|
|
|
by remar
3109 days ago
|
|
Would also suggest this route if you're the type of person who prefers a "bottom-up" style of learning, as in, starting from the absolute primitives and incrementally increasing your toolbox of knowledge with a combination of learning more primitives, and learning how to compose those primitives. Learning basic computer organization (through nand2tetris - highly recommend this project!), while cultivating your intuition for what's possible in the world of data processing/manipulation (by learning algorithms and data structures, and the formal language of how to reason about complexity in this domain) will give you a huge advantage over the school of people who refuse to ever delve into the "implementation details" and just abstract everything away. Learning the fundamentals of operating systems, networking, and database theory, IMO, also pays off immensely. I can't tell you how many thousands of engineering hours I've seen wasted because of engineers I've worked with who haven't taken the time to learn these primitives making horrible decisions in either "using the wrong tool for the job" or not even having the knowledge to reason about the feasibility of a proposed solution... and this is at a "big 4" company. It's a lot harder to buy into "hype", or be sold on bullshit in this industry when you're able to decompose a system into its most fundamental elements and have the tools to reason about them. |
|