I have always enjoyed science and art as a hobby. Most of my education is in mechanical engineering but I also do a lot of computer programming. When I was in high school, I had some aptitude for math but programming was difficult for me. However, I became much more interested in programming when I started to learn computer graphics. The advent of the internet also played a huge role in advancing my learning. I think you can learn almost anything about computer programming from the internet.
I consider myself to be somewhat of a visual learner. I am largely self-taught and I learn from example. For years I longed to learn how to color a single pixel on the computer screen but no one could explain it to me. People often gave me long complicated explanations or sample codes that were long and complicated. But it was not until I finally understood how to do basic computer graphics that my learning advanced much more rapidly. I think we could do a great service for many of the visual learners of the world if we could just show them how to write a simple computer graphics program.
I like to take things that were hard for me to learn, and then share them with others in the form of simple code and graphics. Most of my mathematical artwork is created in Mathematica, POV-Ray, and C++. POV-Ray is great because it is free and it provides a programming language that is very similar to C++. I also think Mathematica is good for beginners because it is a high-level programming language that is easy to learn (in my opinion) and it is easy to produce graphics with.

 

 

Kleinian Double Spiral Rose-Shaped Parametric Surface Sphere with Poincaré Hyperbolic Texture Map Inside the Flat Dodecahedron
Kleinian Double Spiral
Rose-Shaped Parametric Surface
Sphere with Poincaré Hyperbolic Texture Map
Inside the Flat Dodecahedron
Click on a picture to enlarge it.