- Joined
- Apr 20, 2018
That has nothing to do with python. Python doesn't even have references, it has a weird pass by name system depending on the mutability. The issue with C++ is it's monstrously complex and gets more so every version.As much as it's a meme answer, I'd recommend learning at least a bit of c++ beforehand to prevent you wasting several hours trying to debug a case of passing a reference to a function and modifying it thinking you changed a copy.
For a lot of jobs, putting together the libraries is what you need to do. For many tasks it really is about writing code that is fast enough, where enough means a python library will do. If you really need to write fast code you will know it.Imagine learning2code and one of the first things you learn is that it's fine, nay, necessary to do indentation and nesting with whitespaces. Can you ever recover from that? Hey perhaps! I am no neurologist. I mean, wonders happen. Sometimes.
Then the very next thing you learn that there's a library for everything and how to smash 30 of them together. I mean, it's just asking for it at this point. The end result is scientists that write code so janky that you end up being celebrated by the whole faculty by making everything three times as fast just by moving some lines around. Lets not even talk about code that isn't critical and doesn't have millions of dollars of equipment hinging on it, because I'm getting one of those headaches again.
Maybe I come from an academic / math perspective, but I've always thought understanding the abstractions and CS concepts is more important than knowing anything particular about any modern language. This includes basic principles like modularity, DRY, single responsibility, etc. If you use properly named functions and code organization this already makes you better than like 90% of programmers. Also if you don't understand the architecture and design decisions of what you're working with, then you can never really write good code, just hacks thrown together that are fragile and buggy.
For personal bias: I love the theoretical algorithms side of programming. Things like efficient data structures: binary trees, priority heaps, segment trees, b-trees, graph algorithms, dynamic programming, stuff that is usually hiding behind a library implementation.
Last edited: