It's going to affect our jobs, but not like many people think. I imagine that it's not that crazy to think that some future software will auomate the design and implementation of, let's say, CRUD web apps... but by then the requirements of web apps would have changed: they would be more complex to the point that this automation software won't be able to deal with them, hence the need for human software developers. Rinse and repeat: automation comes but by the time it arrives, more complex requirements appear and the automation can't yet cope with it.<p>> My strategy, albeit likely flawed, is:<p>- focus on fundamentals: so instead of learning a
graphics API like OpenGL 2.1 or OpenGL 4.x [...]<p>I agree on that we should learn and focus on fundamentals, but we also need to learn the specifics. So, from my poiint of view there's no shortcut. Example: let's say you want to design the infrastructure of some online services: you need to know the fundamentals of networking (NAT, subnets, firewalls, VPNs, etc.) but you also need to be proficient when it comes to use the tools you have available at the moment to implement your infrastructure (e.g., terraform, k8s, ansible, bash, etc.). These tools change from time to time (hence we need to keep learning all the time).<p>One needs to have solid fundamentals and one needs to be proficient in ephemeral tools. It's tedious.