I would recommend the Razor blade stealth(late 2017 edition). Price is good and build quality is awesome. Touchscreen is a plus.
If you use Ubuntu then try to install Ubuntu 16 or later.
Drivers: https://github.com/openrazer/openrazer
Another thing to consider is the battery life. This is the weak point of this laptop.
Review by Linus: https://www.youtube.com/watch?v=T69TyUSf7og&t=210s
I am about to complete my Graduation in this year. In 1st semester we introduced to C. Most of the problem solvings are done via C.
In sophomore year, we tend to learn Java, Android, PHP or C#. That's it! That's how it goes in Indian Subcontinent(e.g. India, Bangladesh and Pakistan).
Functional programming is not in our wishlist, sadly :(
But I think I'm gonna give it a try. I've heard that it changes one's way of thinking. Don't know big of a truth is this!