Unless you're doing some low-level (hardware) programming work or interviewing for a job, bit-shifting is irrelevant. I would spend more time on learning how to build complex data structures and algorithms. And this is the area where Python really excels at(much much better than C/C++/C#/Java). For learning material, I…
I always recommend Python as someone's first programming language - it's extremely powerful when it comes to computations, and is still really easy to learn. Until you've got a good grasp on programming pragmatics, I would stray away from anything .NET. Learning the .NET side of the house is just as intense as learning…