DEV Community

Alex Gwartney
Alex Gwartney

Posted on • Updated on

My programming journey: Learning math!

I am posting a little late this week. I have been busy with a million other things. But this week I wanted to discuss my journey to learning math. And my advice for you all that would like to break this barrier. So with that said let's get this going.

About six months ago I made the decision of breaking into graphics programming. And with that came the realization of learning math. And this was a something at the time I dreaded. Because I was really bad at math. Which leads me to my first point in this post. If you want to learn something doesn't matter if its math or programming or whatever. Just because you were bad at something once. Does not mean you suck at it. It just means you need to find a better way of learning how to do it. And that was exactly what I have found 6 months later. Because I have covered up to algebra2 thus far. And will soon be moving into precalculus etc. And this is something that I never in my life thought I would be able to do.

So my next piece of advice is going to have patience because at first things are going to be slow. And it may be confusing but don't give up just keep going. I was lucky enough to have my brother tutor me and still is. Which has been helping me a lot? I also want to say when you are looking for a place to start learning the best to resources would have to be Kahn academy. And books but not just any books I personally have been reading them for dummy series books. As it teaches the concepts you need without completely over complicating it. I also tend to use these two methods mixed with different youtube videos depending on what it is I am wanting to learn. I also have taken and bought workbooks as well to go with the main reading. This way I can retain what it is iam learning.

I have found that by removing the aspects of school and going at my own pace. I have been able to learn a whole lot more. Another thing that I have been doing that has been killing two birds with one stone. Is taking the concepts I have been studying math and applying them to programming projects to help me learn c++. Which has been really interesting because it allows me to solidify what I have been learning even further.

So this is how I have been able to get where I am at thus far. I still have a while to go. But if there is anything to take away from all of this. It stay postive. Know that you can do it you just have to find the way that works for you. And keep on pushing forward.

Also you can see my latest project here:

gwartney21 / CompleteTheSquare

This program was created to simplify the process of completing the square with quadratics.

CompleteTheSquare


With that said thank you for reading and I will see you all next week.

Top comments (8)

Collapse
 
cbstryker profile image
cbstryker

Great post. This is something I've been thinking about doing also, strengthening my math skills. You mention the Dummy series, which I've read books from before and liked them. Do you have any specific recommendations in the Dummy series? Thanks.

Collapse
 
alexgwartney profile image
Alex Gwartney • Edited

Thanks. And yea here is a list of what I currently have for the books. You can also find the workbooks to go along with all of these except for the differential geometry if you search for them on Amazon.

Differential Geometry (Dover Books on Mathematics)
Erwin Kreyszig

Linear Algebra For Dummies
Sterling, Mary Jane

Calculus II For Dummies
Mark Zegarelli

Pre-Calculus For Dummies
Kuang, Yang

Trigonometry For Dummies
Sterling, Mary Jane

Geometry For Dummies
Ryan, Mark

Algebra II For Dummies
Sterling, Mary Jane

Algebra I For Dummies (For Dummies (Math & Science))
Sterling, Mary Jane

Collapse
 
georgeoffley profile image
George Offley

I want to move into animation and game engine programming. So learning graphics programming is going to be a large part of that. Thanks for sharing your thoughts!

Any suggestions where I can start? Resources? Books?

Collapse
 
alexgwartney profile image
Alex Gwartney

So as far as resources go for graphics programming. I would start taking a look here.medium.com/vrtigo/resources-for-be... I also pretty much have all the different books I could get my hands on when it comes to graphics programming. Take a look at the picture I took on my Instagram. This is some of the main ones I would say you should get. instagram.com/p/BgzW64thWn5/?hl=en I also have Computer

Graphics: Principles and Practice
John F. Hughes, Morgan McGuire, Andries Van Dam
Kindle Edition

Game Physics
David H. Eberly
Kindle Edition
Sold by: Amazon Digital Services, Inc.

Physics for Game Developers: Science, math, and code for realistic effects
David M Bourg, Bryan Bywalec
Kindle Edition
Sold by: Amazon Digital Services, Inc.

Ray Tracing: the Next Week (Ray Tracing Minibooks Book 2)
Peter Shirley
Kindle Edition
Sold by: Amazon Digital Services, Inc.

Ray Tracing: The Rest Of Your Life (Ray Tracing Minibooks Book 3)
Peter Shirley
Kindle Edition
Sold by: Amazon Digital Services, Inc.

Ray Tracing in One Weekend (Ray Tracing Minibooks Book 1)
Peter Shirley
Kindle Edition
Sold by: Amazon Digital Services, Inc.

And then for c++ I have been reading

C++ in One Hour a Day, Sams Teach Yourself
Siddhartha Rao
Kindle Edition
Sold by: Amazon Digital Services, In

Collapse
 
alexgwartney profile image
Alex Gwartney

Now as where to begin starting I would say begin with math depending upon where your skill level that is. I would say you need to know at least calc to begin. If you know math I would then start with

Computer Graphics: Principles and Practice
John F. Hughes, Morgan McGuire, Andries Van Dam
Kindle Edition

and then move on to learning c++ and reading the OpenGL red book. And continue on from there.

Also here is some other advice I found on twitter.

"1. learn linear algebra well. the concepts you will mostly be needing in graphics are

  • Cross Product
  • Dot Product
  • Transformation Matrix
  • Orthonormal Bases.
  • intersection calculations. e.g., intersection between ray and sphere

focus your efforts on groking the above.
"
"
Good linear algebra book:
immersivemath.com/ila/index.html
"

"

  1. Learn and start using RenderDoc AS EARLY AS POSSIBLE. It will save you so much time in the long run.(or use something similar like Nvidia Nsight, if you prefer that) "

"More

  1. Study the graphics pipeline, and make sure you roughly understand it. Otherwise, it's actually difficult to even write a Hello Program in OpenGL or DirectX. (see e.g. gamedev.net/articles/programming/g... …) "

"

  1. OpenGL and DirectX can unfortunately be pretty opaque API:s, to a beginner. If you find them difficult, try your hand at instead writing a ray tracer or a software rasterizer. Once you've done this, the graphics API:s are much easier to grok. "

"See Peter Shirley's ray tracing books, if you want to learn ray tracing
twitter.com/Peter_shirley/status/9...

See scratchapixel, for an intro to software rasterization:
scratchapixel.com/lessons/3d-basic...

Eric Arnebäck added,
"

"5. Keep dependencies to a minimum. big libraries can easily waste your time,
which takes away time you could be using for coding graphics. In the beginning,
the only libraries you will ever need will probably be GLFW and a simple image loader(I use lodepng)
"

"7. Now I'm gonna suggest some good beginner's projects. These projects don't take that
much code to implement.

  • blinn-phong shading
  • bare-bones minecraft renderer.
  • directional lights, point lights and spotlights.
  • heightmap rendering "

"more projects:

  • reflection rendering, using cubemaps.
  • shadow rendering, with shadow maps
  • view frustum culling.
  • particle systems.
  • cloth simulation. "
Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
alexgwartney profile image
Alex Gwartney

It’s corrected

Collapse
 
alexgwartney profile image
Alex Gwartney

Oops sorry for the typo I need to do a better job of spell checking before I post.