I'm pretty good with computer graphics and programming, but I've never done anything with VR. Where should I start?
Here's a general breakdown:
Oculus Rift Development Kit (DK2),
GearVR (ionly compatible with Galaxy S6 or Note 4),
mobile VR viewers (durovis, wearlity, DIY 3D printed headset, etc.)
ThreeJS + WebVR
For me, one of the best ways to get assimilated with VR was actually using the webVR API (http://webvr.info/). It's a JS based way to interface with the Oculus Rift or Cardboard. Using Three.JS to set up scenes and then using the webVR API to render stereo, get sensor data, etc. was a fast way for me to learn VR development.
Since you've mentioned you're adept with graphics and programming then maybe it's worth exploring Unreal as it's a bit more advanced, but can produce some awesome results.
Happy to answer any other questions!
I don't think there is a link to it directly from the Oculus developer's site. But it is available if you Google it.
I believe the WebVR teams are looking into using OSVR to avoid having this issue in the future.
Check out: 
I can't show it off just yet unfortunately, but I made this web player for 360 photos and videos that has a VR mode. It came out better than expected.
Thinking about moving to Unreal next, not necessarily because it can do something that WebGL can't, but because I'm simply interested in that route.
While I'm sure Unity is a fine tool, I've had bad luck with them. I was interested in developing a mobile VR video player for 360 video, unfortunately Unity can't exactly map a video texture onto a 3D sphere, which is pretty much the standard way of making a 360 VR video. You can try taking the individual frames and mapping them onto the sphere as fast as possible, but the frame rate was a poor ~20fps, which I wasn't impressed by. It might be different for video, but last I recalled you should shoot for at least 60fps for VR experiences if you want to avoid the whole motion sickness issue.
I've also played around a bit with Google Cardboard, and I have to admit, it's alright, but at the end of the day it's still a cardboard shell for your phone with special lenses, so if you really want to play around with VR an Oculus DK1 or DK2 isn't that bad.
The Samsung Gear VR is a fine choice too, but only if you already have a Samsung smartphone, otherwise I'd still just recommend you go for the Oculus.
So, those are my thoughts.
You want to be able to respond to the user's head movements as fast as possible--16ms max (which is 60FPS), but even at that point some rare people get sick. At 11ms, the number of people who get sick drops so dramatically that Valve claims they haven't met anyone yet who does get sick. But clearly, the lower, the better. Some people are claiming 8ms is "necessary"--I think calling it necessary is ludicrous--but I'm sure it would be an incredible experience.
How often the scene actually updates is besides that. You could animate the video on the sphere at 15fps and it's not going to make the user sick, as long as you can react to their head movements faster than that. That's kind of the point of the TimeWarp feature that the Oculus Rift provides. You render the scene larger than the Rift is capable of displaying, and then the display driver shows different subsets of it based on the latest motion data, regardless of how old the frame actually is. It's not perfect, but it makes up for a lot of sins.
The start for me was building my own cardboard smartphone viewer from lenses I already had in my house. It was fun, wasn't very hard, and didn't take a lot of time. If you want to try this yourself, you the typical lenses to get are spherical, 50mm diameter, 50mm focal length, glass lenses.
Or, just buy Unofficial Cardboard 2.0+ (http://www.unofficialcardboard.com/). They have a number of additional features over the stock Google Cardboard that definitely warrant the price.
I also have a Wearality Sky. They advertise a 150 degree field of view. I've gotten into arguments with their CEO over their exact definition of "150 deg FOV", but it's definitely the best smartphone-based viewer I've ever had. There are some issues with lens flare if you have any bright lights near you, but overall I think they are worth the effort.
Finally, I do have an Oculus Rift DK2, but you should skip it (unless you can get one donated by someone). Stick to the Google Cardboard-like solutions for now, while you're still learning and getting a feel for the design of VR applications. In 6 to 8 months, the HTC Vive and Oculus Rift CV1 will be available. They will be very similar to each other, but completely outclass the DK2.
And then, when you're all setup, check out my project, https://www.primroseeditor.com :D
As for writing code, if you want easy programming, go with WebVR (Three.JS + a WebVR build of Firefox or Chromium). I do suggest getting a physics library of some kind, though. I've been using Cannon.js. It's pretty easy to use, especially alongside Three.JS.
Interactions with the company have been very disappointing. They don't pay attention to their own Twitter account or the common VR subreddits (/r/virtualreality or /r/oculus, though they post their own press releases to them, so they certainly know they exist) and they had the spam filter on their own support email line configured poorly. There were about two weeks between when the Sky first started going out and when Wearality started answering questions about what exactly they meant by "150 deg FOV". Their official replies were very derisive towards anyone who had done their own measurements and complained about people not signing up on their private forums to ask questions. Sorry, I personally think private vendor forums are a dead concept. I'm certainly not going to sign up to ask one question in a forum that has 0 posts. They've not updated any of their marketing material to even mention 7" displays, let alone that it's necessary to get the full 150 deg FOV. It's not even entirely clear from just their own information that 5" displays won't show as wide of a view as 6" displays, you're left to either figure that out on your own or hope that the separate set of clips change the focal distance (they do not).
In the end, they define 150 deg FOV as the visual angle between the eye and the rear lens aperture. You lose some view around the edge where the lenses only show the internals of the frame. Also, a 6" screen phone is not large enough to fill the view of the lenses, even though the max size of clips they provide is for 6" phones. My own measurements put the Sky with a 6" phone at about 110-120 deg FOV. That's certainly better than Google Cardboard. Wearality claims you have to use a 7" screen to fill the lenses. I suppose the holder will stretch to fit such a tablet, but it's very much not designed for it, and considering they provide separate holders for 5" and 6" phones, I would expect a 7" tablet to need a clip scaled for it.
Let me reiterate: it's the best smartphone-class viewer I've ever used, even if it doesn't live up to the claims. And I believe one could expect to get very close to 150 deg FOV out of a 7" phone. Of course, that extra inch will be so blurred you won't be able to make out any details, but the extra light is nice for the periphery. You'll have to modify the holder clip 3D models and print them yourself. Wearality does not provide a full package that is capable of 150 deg FOV out of the box.
It's also not so cheap. I Kickstarted at $130 to be able to get the very first shipment of the lenses, spacing frame (there are 4 lenses, two per eye, and they have to be spaced correctly), the 5" and 6" mounting clips, a carrying bag, a hat (with a flat brim to be able to clip on the device so it can be used hands-free), t-shirt, and a patch. They now are offering additional purchases to some backers of the lenses and frames with one set of clips and no mention of hat for $99. I have no idea what the retail price will be, but I'm assuming it's going to be more than $100.
As for your other question, there is no integrated input mechanism. That's not a problem, though. The framing of the Wearality is completely open, so you're encouraged to touch the screen with your finger. That open frame design is great for portability. I recently showed it off to a bunch of friends and family at a party. Had it in my pocket right next to my phone, just pulled it out of the provided bag of holding and clipped it on while I waited for the Tuscany demo to load.
Also, Google Cardboard has gotten away from the magnet. Turns out magnets aren't nice to compasses, who knew? In the 2.0 version, it's now a strip of copper tape that connects the finger to the screen through an origami bumper button.
Finally, most people who use their smartphone viewers frequently end up buying a headstrap of some kind and a bluetooth gamepad or keyboard.
The Gear VR's software ecosystem is an Android port of the Oculus SDK. It's a no-nonsense, rather '90s style C++ affair, mostly written by John Carmack.
I've enjoyed playing around with it, although if you're used to modern cutting-edge PC game engines, you may find it limited or old-fashioned. (Naturally the Android phone isn't a match for a modern PC, but it goes surprisingly far in VR, IMO.)
I have next to no proper programming skills but I've done a bit of work in 3d graphics alongside my video work (stuff like Cinema 4D). At first I was focused on trying to build things in Cinema and translate that to VR but I've found it easier to just start learning and experimenting with Unreal Engine. You can immediately view what you've created inside the Rift for testing and learning purposes.
Still, I'm not sure what you're going after. For me it was yet another thing to play around with and learn a little about but while I could cobble together a neat little game or interactive environment, I don't have the skills to do something like this (https://www.youtube.com/watch?v=Ghgbycqb92c) which uses depth cameras to develop live, 3d video and telepresence.
Not sure what tools are available for simpler setups like Cardboard but I believe there is at least some level of support in Unity and Unreal.
If you have an OculusRift, I think that's probably the easier start. Not because "mobile" is harder, but because you can focus more on doing stuff instead of optimizing / cutting stuff because mobile devies still do not have so much computational power.
Unity3D / Unreal engine are really easy to set up for VR. So easy to set-up that most people lose sight of VR.
I HIGHLY suggest you to give a read here
You may think this is simple, everyone do it but... no. There are so many useful hints about how to reduce sickness and produce a better product, and so easy to find, that is mandatory to know.
This will get you started pretty well :)
Unity with the Cardboard SDK is very easy to dive into as well.
We use Unity because it's way more popular with the local dev community here, but I actually prefer Unreal's licensing terms, as well as their documentation (I'm not a video person, and Unity relies on video tutorials a bit much).