Programming Motivation
Hey everyone-
I have recently been finding myself in a dilemma when trying to program. Often I get partway through a project that I am working on (a few of these include a spring system simulator, a fractal generating program, arbitrary precision doubles and arbitrary length integer classes, mathematical classes, fluid flow simulator, etc). The problem is that I really love the math and physics behind what I am doing, but I end up going off and writing more stuff in my notebooks (number theory, physics stuff, math in general). Theory is my favorite thing to study, and I really want to see some applications of it through simulations and visualizations. Can someone offer me advice as to how I should learn to appreciate the programming more? I wish I could finish some of these projects and put them online and demonstrate some of this stuff. Thanks for any advice you give.
Brendan
Brendan"Mathematics is the Queen of the Sciences, and Arithmetic the Queen of Mathematics" -Gauss
Keep the notebooks, it's good to have all that stuff in a centralized place. You don't want to have to load all your old source code everytime you want to check some equations you coded in the past. Chances are your comments are only notes and not full explanations, either.
If anything, this math and theory helps you think more like a programmer. In math you are always looking for steps and information to reach solutions, and you always have to try a few equations out to see if they yield appropiate results, and then inspect your work to see if it's kosher, and then recheck the theories and the reasoning, etc. You do the same thing in programming, combining everything you know to reach a solution. You will definitely use all the math directly if you're hired ad a 3D programmer or physics programmer.
[edited by - Zipster on January 30, 2003 7:14:57 PM]
If anything, this math and theory helps you think more like a programmer. In math you are always looking for steps and information to reach solutions, and you always have to try a few equations out to see if they yield appropiate results, and then inspect your work to see if it's kosher, and then recheck the theories and the reasoning, etc. You do the same thing in programming, combining everything you know to reach a solution. You will definitely use all the math directly if you're hired ad a 3D programmer or physics programmer.
[edited by - Zipster on January 30, 2003 7:14:57 PM]
Programming is always done best fara away from a computer.
Don''t design when sitting at the computer.
/ Bucko aka Backman
Don''t design when sitting at the computer.
/ Bucko aka Backman
/ Bucko aka Backman
quote:
Original post by Punty50
The problem is that I really love the math and physics behind what I am doing, but I end up going off and writing more stuff in my notebooks (number theory, physics stuff, math in general).
About two years ago I also had a lot of notebooks with various stuff about programming and math. Then I realized that it is the wrong way and threw them away. Now I''m following the principles: 1) Learn basics of everything in such amount that you can keep it in your memory
2) Don''t learn anything else unless you need it right now
3) The most important knowledge is - where to find the required knowledge
There''s nothing wrong with loving maths and enjoying doing it in notebooks. I often do the same - I use a notebook to simplify and solve problems before coding them, e.g. by simplifying algebra, especially eliminating things that make game code far too slow such as trig and compex numbers.
But it sounds more like your problem is motivating yourself to code. This is something that''s very personal, i,e, different people do it for different reasons. I find I can only program if I''m doing something useful, or at least that I think''s useful. This ranges from paid work to freeware apps to sample code for stuff I''ve written.
You could try setting yourself targets which you can aim for in your progrmming. For small projects this could be the entire project/application. For larger projects it could be particular areas (in a game: sound, controller, file loading, ...), or particular milestones (first playable version, alpha, public beta). This makes it easier to see progress and to feel your getting somewhere.
But there''s no simple answer to this. If you find the maths interesting but not the programming remember that even in games with complex dynamics the maths may only be a small part of the game, so you need to be interested in more general programming or you''re going to find it very hard going.
But it sounds more like your problem is motivating yourself to code. This is something that''s very personal, i,e, different people do it for different reasons. I find I can only program if I''m doing something useful, or at least that I think''s useful. This ranges from paid work to freeware apps to sample code for stuff I''ve written.
You could try setting yourself targets which you can aim for in your progrmming. For small projects this could be the entire project/application. For larger projects it could be particular areas (in a game: sound, controller, file loading, ...), or particular milestones (first playable version, alpha, public beta). This makes it easier to see progress and to feel your getting somewhere.
But there''s no simple answer to this. If you find the maths interesting but not the programming remember that even in games with complex dynamics the maths may only be a small part of the game, so you need to be interested in more general programming or you''re going to find it very hard going.
John BlackburneProgrammer, The Pitbull Syndicate
Well I love Maths and Physics because its beautiful. Equations work, Symmetries are everywhere and things connect up in the appropriate limits (e.g. Relativity and Newton).
I love programming too. The thing I most like to see in my programs is a beautiful structure. This means that I have about the same level of interest for it as my physics - because anything thats beautiful is interesting, especially if you are creating it. I have found the Object-Oriented way to be most enlightening in this respect. I have become so obsessed with this that my programming rate suffers because I spend ages working out ways of doing things that are clean and elegant (like using recursion) instead of dirty and evil (like using Global variables).
(After a while of doing both Programming and Physics I have started to think of mathematical symbols like Objects which can be interfaced with an operator and which produce output - the answer. Er, thats not normal is it? Actually it gets worse than that, I think I spend ages debugging my equations so that Type errors do not occur, like making sure the dimensionality is consistent. This gets further complicated when you make the h=c=1 simplification. Oh dear. Perhaps I should ''use strict''.)
For example: The game I am making has objects which can collide (Colliders). Well I thought how can I best control this? I know lets create a ColliderGroup (a list of Colliders). Objects in the same Collider group don''t collide (e.g. friendly fire). Obviously this will be very powerful when it finally works, because some objects will be members of more than one group. The real challenge is getting the Collision system to operate underneath this structure, yet maintaining a simple add/remove interface. Its just the idea behind this approach that attracts me, because it has a mathematical quality to it. When I finally see it working on my screen I''ll be ecstatic, and then I''ll start messing about with it to stretch its ability to cope, and create a system for creating group unions or intersections etc. It must be similar to the experience of discovering new mathematics.
Anyway my point I want to make is - programming requires abstract and analytical reasoning like in maths and physics and is just as fun, particularly if you create a smart program. After doing a lot of it, you might find it has had an effect on the way you think about maths and physics.
Entropy isn''''t what it used to be
I love programming too. The thing I most like to see in my programs is a beautiful structure. This means that I have about the same level of interest for it as my physics - because anything thats beautiful is interesting, especially if you are creating it. I have found the Object-Oriented way to be most enlightening in this respect. I have become so obsessed with this that my programming rate suffers because I spend ages working out ways of doing things that are clean and elegant (like using recursion) instead of dirty and evil (like using Global variables).
(After a while of doing both Programming and Physics I have started to think of mathematical symbols like Objects which can be interfaced with an operator and which produce output - the answer. Er, thats not normal is it? Actually it gets worse than that, I think I spend ages debugging my equations so that Type errors do not occur, like making sure the dimensionality is consistent. This gets further complicated when you make the h=c=1 simplification. Oh dear. Perhaps I should ''use strict''.)
For example: The game I am making has objects which can collide (Colliders). Well I thought how can I best control this? I know lets create a ColliderGroup (a list of Colliders). Objects in the same Collider group don''t collide (e.g. friendly fire). Obviously this will be very powerful when it finally works, because some objects will be members of more than one group. The real challenge is getting the Collision system to operate underneath this structure, yet maintaining a simple add/remove interface. Its just the idea behind this approach that attracts me, because it has a mathematical quality to it. When I finally see it working on my screen I''ll be ecstatic, and then I''ll start messing about with it to stretch its ability to cope, and create a system for creating group unions or intersections etc. It must be similar to the experience of discovering new mathematics.
Anyway my point I want to make is - programming requires abstract and analytical reasoning like in maths and physics and is just as fun, particularly if you create a smart program. After doing a lot of it, you might find it has had an effect on the way you think about maths and physics.
Entropy isn''''t what it used to be
Entropy isn''t what it used to be
I find what motivates me the most is looking like an idiot
So if you want to be a game programmer prepare a resume and send it off to a game company. You don''t have to actually send it, but how does it look? Do you look like a joke or do you look like a serious candidate? That should be your motivation. You need to show it isn''t just a hobby, but something you seriously plan to do as a career. The goal is not to complete the program. The goal is to get a career doing what you enjoy doing. If you dink around you''ll end up with a career as a grunt programmer writing GUI data entry forms and printing off billing statements. High order math there is multiplication and division. Data processing for a large multi-national corporation is certainly complex and full of challenges, but the complexity isn''t in the individual program. Rather it is in the coordination of the activities of tens of thousands of employees. That is interesting and challenging to some, but I doubt it is going to be for you.
If your goal is to be a mathematician on the other hand then I have absolutely no idea what they do with their time.

If your goal is to be a mathematician on the other hand then I have absolutely no idea what they do with their time.
Keys to success: Ability, ambition and opportunity.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement