If you are a solo programmer creating a game, what do you do for the graphics and art part?
Should I work with graphics artist to draw the characters and the environment? I don't know how to draw any way.
You basically have three options:
You can outsource it -- Tetrad's links in his comment provide a great starting point for outsourcing -- either in terms of hiring somebody to produce the art for you, or gathering it from art repositories that make their contents available for free and/or under a permissive license.
You can learn to produce it yourself. This could mean learning to model or draw yourself -- there's a lot of information out there on learning to use 3D modelling programs (for example if you use the freely-available Blender, you can check this out). It could also mean learning to draw -- this is a learnable skill to an extent. I took a drawing class in college (we used this book) and I was surprised how much I improved. It will take a lot of practice, of course.
You can design your game such that it requires very little in the way of "real art." Simple or primitive graphics, perhaps built procedurally, can look good in the right contexts.
Josh raises some good points, with Blender the latest version is 2.5x and it has a built in game engine, you can use for prototyping. If you use 3d models, it lets you import pictures as a background, and set the transparency. Using pictures, you can literally trace your 3D model.
There are considerable resources that are "open source", here is a link. It covers sprites, sounds, tiles, etc. Pick your search engine and type, "open source game art".