Computer Science student looking for a new laptop: Lenovo VS ASUS?

I will be heading off to college in a month and am in need of a new laptop. I'm going to be studying Computer Science, so I will mostly be using this for programming.

After researching online, I'm looking between Lenovo & ASUS. They both seem like the best choices, but I'm still stuck. What are the pros & cons of getting one over the other?

(Side Question: Would the Surface Pro 4 be any better than these two for a Computer Science major?)

Dell. My two at 16 years and 17 months still work. My 6 year old Acer works. My 4 year old Lenovo G555 has had 3 video chip detachments (a common problem). Now trying a replacement motherboard.