Link to Original Source
If you have a base its better than starting from 0. Now for my sales pitch:
Check out my site WiBit.net. We offer video computer programming tutorials in a linear and fun way. We break apart everything into 5 minute videos that are focused and comedy infused. You can skip right to things you want to learn, and skip over things you already know. We made it so you can learn if you have no experience, or skip right to what you're trying to figure out if you're experienced.
We have C,C++, and Obj-C for now. Java and C# are coming soon! Out content is free! We only ask that you sign up to download labs material!
End of sales pitch. Thank you for your time and for tolerating my excessive use of exclamation points.
How many times has it been "the year of Linux" over the years?
I don't know if it's the year of Linux or not, but I think with economic times being what they are it is certainly a good time to brush up on some skills and strengthen your resume.
You can do that at WiBit.net
I definitely agree with you on the memory management point. All I am suggesting over-all is a straight shot approach. Start with C, then C++, then probably Objective C, then Java, on and on. Each language broaches concepts and don't repeat the taught concepts of the previous languages. I can't tell you how many times I've watched a tutorial or read a book and it's gone over what OOP is when this is something I should (usually) know already. I've not used Objective Pascal so I can't really comment on it, but I'm sure it came after C++ and therefore probably borrows concepts from it?
Python is a great scripting language, but I've got to disagree with your ordering of learning. I would recommend doing C, then C++, then move on. Get a strong core in OOP concepts will help you learn any other language you want.