I think it is important to start with block-based programming, even in secondary school. In education, a programming language, be it Scratch, Blockly or Python, is primarily a tool for learning the thinking skills needed to program well. Yes, you need to learn the syntax and vagaries of a language but that becomes increasingly easy with each new language. Block-based languages allow pupils to explore the logic of programming without the cognitive load of a text-based language where the merest missing bracket can cause great confusion.
The important thing is how you use the language chosen as a tool.
MIT's Lifelong Kindergarten advocate a lot of play and experimentation. I have to admit that my agreement here only goes so far, particularly for secondary. I think it is too easy for the emphasis on play mean that little progress is made in computational thinking and programming.
I taught myself to program long using BASIC and it was my curiosity and probably annoying geeky self-discipline that led me to being a good programmer. I love the patterns and symmetry of a well-written piece of code - code can be beautiful, just like Maths! I don't see this among that many pupils. More often, they just want to get it done - sometimes whether it is actually right or not is less of a concern! Don't get me wrong, if they are thinking something through and making headway, that is to be lauded. If they come to a solution, they have every right to be pleased with themselves.
LightBot is a great way to get pupils thinking. I have used it to great effect with pupils from primary to university. The old version is the best IMHO as it includes all the levels, it is free and the interface is less cluttered. The new version is only free on Hour of Code and then you need to buy it. There doesn't appear to be any kind of site licence for schools available. That said, the free hour is probably enough to gain what you need from it. I often use it as a homework task to prepare for other computational thinking / programming tasks. With Flash about to disappear forever, you will need to use the new version fairly soon. :-/
As I said on the Computational Thinking page, I think Rapid Router is a great place to start. My predecessor as Educational Consultant at Code for Life, Sharon Harrison, was responsible for creating a clear and effective structure for teaching programming and comprehensive teaching materials. I can take no credit for these at all!
Scratch is a lovely programming language, particularly for primary-aged pupils. It allows pupils to have a great deal of fun and can be used to great effect. However, I prefer Rapid Router in secondary because of the:
Pupils also really enjoy using it and seem to find the inbuilt support and challenge keep them motivated.
There is huge scope for experimentation and projects with the micro:bits and you will find very useful resources on their website. I use them after Rapid Router in Year 7 and my aim is to further embed those early programming skills with some physical computing as well as start to introduce sensors, IO and the concept of a CPU. I use the block-based language and pupils find it easy to translate their knowledge and understanding of programming concepts from Rapid Router to the micro:bit. I use some of the tutorials but add in counters and light sensing. We talk explicitly about variables and I label the concepts pupils are encountering at each exercise. I am not convinced that they pay a great deal of attention to this flagging, perhaps I should emphasise it more.