Mac or Surface which should I go for when interested in app development

That depends what you define under “app” development. Are we talking about “Web app”, “native app” or “mobile app”?

The benefit of having a Mac is, that you can develop for almost every platform (since .NET core also runs on Linux/Unix systems). It is hard or impossible to deploy a mobile app on a iPhone without having a Mac.

If you have no intention to ever develop for iOS or MacOS, then any other brand of laptop would be good. Then you can choose between Windows and Linux. But as a software engineer I believe that a good developer should be comfortable in a Linux/Unix command line environment for deployment, debugging and configuring.

For that reason I advice often against Windows for development machines, although, I don’t have anything against Windows itself.

My thoughts :)