definition of a good programmer
A beginner knows a programming language and perhaps technologies, patterns and frameworks.
A good programmer knows how to apply them to solve and represent complex problems and real-world systems.
An advanced programmer can also make the solution maintainable, and meet other non-functional requirements.
It is not the language that makes programs appear simple. It is the programmer that make the language appear simple!
Git gets easier once you understand branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space