Hacker News new | past | comments | ask | show | jobs | submit login

What is it about programming the visual stuff that you like? For me I realized what I enjoyed about graphic algorithm is that you are constantly dealing with high level concepts like perceptional models as well as having to make a performant implementation using various approximations and what not. It wasn't necessarily the "art" part of it. Sticking to visual work:

* Someone has to create the tools that the games and movie industry has to use. Companies like Adobe and Autodesk that create 3D rendering and modeling software need tons of programmers familiar in graphics programming at all levels. Office source software like Blender is actively developed.

* Vehicle manufacturing companies like Honda, Ford, Boeing, Airbus, BMW all use tons of visualization and engineering software when designing their vehicles.

* Architectural firms use all kinds of rendering packages to visualize their buildings. VR is becoming a part of this and perhaps a place to get in early and become an expert in.

* Companies like Sony and Samsung that create panels deal with so applying human perceptual models to get colors and contrast correctly.

* Nikon, Canon, Fuji all offer hardware and software to the medial field and have to process X-ray, MRI info etc. Even in their consumer-level cameras lots of graphics know how is needed to process imaging data in their video streams.

* All of the tools mentioned above will have a user interface that has to be carefully and creatively designed to be used by creative people, analytical people etc. This is interesting in and of itself to me.

Things like video codecs and digital signal processing tickle the parts of my brain as game programming did.




Wow, thanks for all the suggestions.

> What is it about programming the visual stuff that you like?

I like that at the end of it, I get to see someone interact with my application. Your example of GFX tooling sounds like something I would like, but I probably lack the experience for. I feel like the math bar for being a game developer is a lot lower than being the implementor of tools for game developers. I don't have a very strong math background. Game development seems appealing because of all the tooling and resources for learning.

> * Vehicle manufacturing companies like Honda, Ford, Boeing, Airbus, BMW all use tons of visualization and engineering software when designing their vehicles.

I have a friend who works in vehicle UIs, maybe I should ask him if his company is hiring. That being said, I don't even know how to drive and I feel like that might be a problem.

> * Architectural firms use all kinds of rendering packages to visualize their buildings. VR is becoming a part of this and perhaps a place to get in early and become an expert in.

I applied for a job once with a start up working on an architectural design application. I didn't get the job, but it did seem very interesting. Unfortunately, VR makes me nauseous.

> * Companies like Sony and Samsung that create panels deal with so applying human perceptual models to get colors and contrast correctly.

That sounds interesting but like something I don't have the domain knowledge for.

> * All of the tools mentioned above will have a user interface that has to be carefully and creatively designed to be used by creative people, analytical people etc. This is interesting in and of itself to me.

That doesn't seem very different from working on CRUD, to be honest. Occasionally it's interesting but mostly you're just glueing together widgets from a toolkit.

I guess my problem isn't that I think gaming is the only interesting place to work, it's that I have only an undergrad degree in CS / digital art from a non-top tier university. When I interview for these super interesting jobs, I don't meet a lot of people like me. There are ton of people like me working on making CRUD though. Gaming seems like there isn't a terribly high barrier to entry. That, and I love games.


The interface stuff is hard to gauge on the surface but don't write it off just yet. Many interfaces require lots of hardware acceleration to work right even though they look simple (for example Photoshop or Lightroom). Video editing software has to use all kinds of tricks to show real time updates usually involving some kind of fast approximations upfront with better and better ones blending in. This is often straight, hardcore programming to get the memory and performance of the rendering at a good place and not really applying PhD level stuff. Often times the topics you touch on will be years ahead of the game stuff. Game graphic techniques are often times things that we've been doing in other software for years and finally possible in a game(eg tone-mapping, HDR, physically based lighting, etc).

Then there are interfaces like this:

* http://www.musictech.net/wp-content/uploads/2016/07/Caption-...

Things used by creative people often don't have existing widgets toolkits to draw from and entire new UIs have to be created.

Domain knowledge can be acquired along the way. Not just for games, but in general you never want to be "Just a programmer". You want to be "X that can program" or a "a programmer that knows X". You need enough domain knowledge to be useful to experts.

For cars, I don't didn't mean the car's UI itself but rather that industrial manufacturing uses tons of software with large graphics components. Things like SolidWorks or other kinds of things that analyze the physical shapes of things have a lot of just straight hardcore programming in them.

Edit: as for education, go get some! MIT open courseware has tons of calculus and engineering classes for free. The text books can be found online often times for a few bucks. The digital signal processing course was actually fun.


Lots of good stuff here, I'll also add that most UIs are hardware accelerated so tons of stuff in that space.

If performance constraints are your thing embedded systems are almost a drop-in as a engine dev.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: