Oh boy, that's a tough question to answer. More than anything, I think you're asking the wrong question. Rather than ask what language to start with, I'd focus on the principles behind what you're doing (i.e. boolean algebra, data structures, iteration). Once you learn these principles, I find it quite easy to pick up on any language you'd like—it's merely a matter of learning syntax at that point. Although I know many might disagree, and they do have valid points, I would start with Java. I say this because I find the syntax very explicit, making it much easier for beginners to read source code and understand what the source code is actually attempting to do. I also think Java is well suited for beginners as it is strongly typed, leading to less confusion when you find out you're dealing with some type you never would have expected.