Out of those options I would recommend the first one based on the fact that the higher resolution gives you a lot more space to work with when coding. Also it has a fairly good card which will definitely last you for a while specially if you're not looking for highest-end gaming.
To be honest I don't have experience with the other brands but I can definitely say that I ruled the Lenovo one out because of the 1366x768 resolution which will leave you with little room to work with on programming environments.
Another thing I would take into consideration but don't have an opinion on is the keyboard as that will be the part you will be interacting with the most. Some people prefer 'chiclet' type keyboards over regular ones but as with most things it always comes down to preference.