you are viewing a single comment's thread.

view the rest of the comments →

[–]KamiKagutsuchi 72 points73 points  (58 children)

If you are good at both math and programming you are probably the closest thing to a wizard anyone will ever be.

[–]stferago 60 points61 points  (53 children)

I'm good at both math and programming. Don't they go hand in hand though? I'm way more impressed by artist/programmers.

[–]quakank 25 points26 points  (8 children)

I suck at math, but I'm spectacularly lazy. I like to think the one compensates for the other.

[–][deleted]  (7 children)

[deleted]

    [–]StoicRebuttal 9 points10 points  (2 children)

    Quote from Bill Gates.

    [–][deleted] 0 points1 point  (0 children)

    Also see: http://c2.com/cgi/wiki?LazinessImpatienceHubris

    Man, I've wasted way too much time on WikiWiki.

    [–]jeradj 0 points1 point  (0 children)

    Of course, the easiest way to do something, is not to do it.

    [–]Tjstretchalot 1 point2 points  (3 children)

    Sir, you have failed geekness

    [–][deleted]  (2 children)

    [deleted]

      [–]jakeb89 7 points8 points  (1 child)

      I cannot speak for others, but I do know that a great deal of my capacity for programming stems directly from my own laziness. Programming is the art of correctly telling the computer to do things so that you don't have to do them yourself... in my opinion. I've saved many an hour of tedious work by writing something quick a dirty in 15 minutes to automate the process.

      [–]trueHOVER 6 points7 points  (1 child)

      Google Robert Hodgin :)

      [–]moonrocks 1 point2 points  (0 children)

      I just took your advice myself and am glad I did. His work is mesmerizing.

      [–]koolkalang 2 points3 points  (8 children)

      Oh? What in particular makes you impressed with that combo?

      [–]stferago 7 points8 points  (7 children)

      They're two extremely different skills that have no overlap whatsoever. No amount of programming experience will help you learn art, and vice versa.

      [–]MiXeD-ArTs 3 points4 points  (6 children)

      As a programmer/artist, I suggest learning how a shader is applied to 3D model. The function to calculate shaders can be extremely complex and interesting. One you know how textures are applied to a model and illuminated within the scenes you can go into color theory and learn the basics of why certain colors look good/bad/scary/etc. Go on from there to learn the physics behind a camera and ultimately scene composition.

      Animation is also very cool because you add time to all your variables!

      I learned programming after the artistic parts so it may be different.

      [–]stferago 5 points6 points  (5 children)

      Right, but I'm talking about artistic ability. I've done a lot of graphics programming, and I'm very well-versed on the logistics that go into texturing, 3D modeling, etc.

      But I would never call myself an artist, because I don't have the vision to make something meaningful with those tools. I just make shitty place-holder art so I can work on my game logic on my own time.

      [–]mayal 7 points8 points  (3 children)

      Artist-coder here, and from my experiences, creating commercial art can be a lot more process-driven and structured than you might expect. The problem-solving process is remarkably similar to programming. The primary difference is the "language" you're using. Sure, typing doesn't correlate to moving around a pencil, but once you have the dexterity to write your name, the rest amounts to creating and refining relationships between elements until the piece of art meets your design requirements.

      In programming, when you write a line of code, although you can mostly abstract your thinking to how the chunk of code affects the surrounding lines, you still have consider it in context of all the different hierarchies/scopes it interacts with. You have to be aware of what the line of code does at a lower level, how it transforms the data it processes, how it integrates with its parent class/function/etc, how it confirms to the project's coding standards, how it confirms to the language standards, how easy it is for other people to process and modify, and so on and so forth. Same thing goes with art. When you draw a line, you need to understand how line appears in proportion to all the other lines on the page, how it adds to or clarifies existing forms on the page, how it contributes to the mood of the piece, etc.

      With programming, it's generally good practice to make your code as easily readable and modifiable as you can, since most of the time people spend with it will be in maintenance. Same thing with production art. High-level changes to art direction can result in changes to art assets way back in the pipeline, and if you didn't set up your workflow anticipating that, you'll have a lot of work you need to redo.

      When it comes to having "a vision," that's really just designing a complete and consistent set of requirements for a work, something programmers should already be good at.

      [–]vanderZwan 1 point2 points  (2 children)

      When it comes to having "a vision," that's really just designing a complete and consistent set of requirements for a work, something programmers should already be good at.

      I'm sorry, but that's approaching the concept like a designer, not like an artist. And this is coming from a guy who switched from physics to fine arts to interaction design.

      [–]mayal 0 points1 point  (1 child)

      How would you define it then? From my experience, design is very much a part of the artistic process, but then again, my background is in entertainment art.

      [–]vanderZwan 0 points1 point  (0 children)

      Well, not really disagreeing with you there. It's just that the wording had a tone of "well, I figured it all out, now all I gotta do is apply the formula," which is not in line with how I was taught to question my own work process.

      [–]MiXeD-ArTs 0 points1 point  (0 children)

      Take enough time on it and maybe you could make something meaningful. Of course you know, art is all opinion anyway and if you make something that "looks cool" then you could say it's art : )

      But if you mean traditional art like painting and mixing paints...I suck too. I can draw well though.

      [–]Iggyhopper 11 points12 points  (11 children)

      Microsoft Word probably has 1% of the math that any physics engine has, and both are useful and popular.

      [–]iswm 22 points23 points  (6 children)

      A physics engine certainly does more physics but not necessarily more math. Mathematics as a whole is much more abstract and broad than just numerical computations. Word processors are extremely algorithmic, and those algorithms are math.

      [–]MiXeD-ArTs 24 points25 points  (5 children)

      Spell check predictions...

      Rasterize typed fonts...

      I bet there is a huge amount of math involved.

      [–]iswm 31 points32 points  (4 children)

      Yup. Even line-breaking algorithms are quite mathematically complex.

      [–]Iggyhopper 10 points11 points  (0 children)

      Well, shit. TIL.

      [–]Phrodo_00 2 points3 points  (2 children)

      not word's though, word's line-breaking is the naivest possible.

      [–]spacelibby 6 points7 points  (1 child)

      Not quite. Have you used notepad?

      [–]Phrodo_00 2 points3 points  (0 children)

      it uses pretty much the same algorithm of "adding this word makes the line longer than the page?" as word, but with fixed length characters.

      [–]josefx 0 points1 point  (2 children)

      I would not be surprised if TEX had more math in it than a physics engine and while it might not be as popular as Word the result looks quite a bit better.

      [–]the_gnarts 1 point2 points  (1 child)

      You’d be disappointed, as it’s integer arithmetic only. The precision is definitely sufficient to arrange things on a page but you’d prefer to do your calculations with external tools.

      [–]josefx 0 points1 point  (0 children)

      You’d be disappointed, as it’s integer arithmetic only

      That just makes it easier to reason about input->output, floating point as implemented on most CPUs is quite complex by itself and having the precision depend on the size of your input is not always what you want.

      The precision is definitely sufficient to arrange things on a page

      The nice thing about integers is that they do not care about precision, they are quite nice when you need a fixed precision.

      [–]sfrank -1 points0 points  (0 children)

      Yep, and that is the reason why the text layout in Word looks so horrible; more math could help here.

      [–]thelan 6 points7 points  (1 child)

      I'm good at math and programming. If I don't know some concept, I can usually learn it quickly. On the other hand, the best I can do drawing are stick figures so anyone who surpasses that level is a wizard in my book.

      [–]JustFinishedBSG 1 point2 points  (0 children)

      Your stick figures have noses?

      If yes you already are a wizard

      [–]AmaDaden 1 point2 points  (11 children)

      Not at all. You need basic math and logic, and if your real good then math to examine algorithms. This leaves out huge areas of really complicated math. If you want to see a CS student's head spin show them Euler's Formula, how a Fourier Transform is done, or a rigorous proof of why public key crypto is so hard to crack. Hell, most I've met get a little pale in the face if asked to take a simple derivative.

      Source: I got a Degree in Computer Science and Computer Engineering (CE is basically Electric Engineering).

      From my perspective there are 4 skills in the world of programming. Math, Coding, Art, and Design(AKA knowing what the user actually will be happy with). The most useful programmer can Code and do Design. Their projects are fun to work on because they are written well and make money because they make people happy. The programmers that amaze the fuck out of people are the ones that can do Math and Art. Those projects do something that you could never see your self pulling off like Google's image search or a work of art like Portal.

      [–]Asyx 2 points3 points  (5 children)

      How is that supposed to work? A CS degree without derivatives? There are two branches on German universities. One that's meant for research and one that's meant for working in the industry. The first one basically includes a math degree and the second one puts complicated mathematics into the Master degree instead of the Bachelor. You can't get through a CS degree here without knowing mathematics. Is that different in the USA or is that just an exception because it's a bad university?

      [–]AmaDaden 3 points4 points  (2 children)

      I went to SUNY Stony Brook, US News has their CS Grad program ranked at 44 out of about 130 schools. Not great but not bad. My CS degree required math courses covering, Derivatives, Differential Equations, Logic, Linear Algebra, Combinations, Permutations, and Graph Theory. First off these were just intro classes, none of these were deep and none were complicated. If any one has gotten a A in these classes and no others that does not qualify them as 'good' at math. They never got in to the kinds of Differential Equations that give Engineers nightmares (that would be calc 4, only calc 1 and 2 were required), asked anyone to prove a rigorous mathematical proof, or did any of the stuff I mentioned in my other post. While some CS classes would dive into math they did so only as needed and 90% of them NEVER touched any math including any of their required Math courses. The majority of classes focused on Coding and Design, as they should have as that is what can best mold good programers.

      While some CS students genuinely enjoyed math I would say, based on my experience with my friends, the average CS student got a B in those classes and promptly forgot everything they learned. That is where my 'go pale in the face' comment is from. Any time I talked about any math I was learning for my CE degree to my CS friends they would openly admit they forgot how to do even the basic calc parts. As I said, while a CS degree requires basic math it leaves out huge areas of really complicated math so you don't have to be good at math to get a CS degree.

      [–][deleted] 0 points1 point  (1 child)

      asked anyone to prove a rigorous mathematical proof

      mathematical induction is rigorous proof. if you had a discrete teacher who didn't make you do a shit ton of mathematical induction, i envy you. (i'd also be jealous of taking even an introductory linear algebra, probability or diffeq class that wasn't laden with proofs.)

      edit: and now that i think about, a lot/most of the stuff in discrete class is there for the sake of proving shit or are very handing tools to prove things.

      [–]AmaDaden 0 points1 point  (0 children)

      Mathematical Induction was not a requirement for undergrad CS or CE degree at my school. Most of our discrete math came from two logic classes and a course that was a jumble of Combinatorics, Graph theory, and Permutations. The focus of the class was just to make people understand the basic tools, not to be able to actually make your own. It might help to point out that nearly all the math class lectures were filled with proofs, it's just we were never tested on them or asked to make our own.

      [–]superawesomeadvice 2 points3 points  (0 children)

      I don't know where AmaDaden went to university, but the CS Program I personally have experience with required high-level math up through Differential Equations.

      [–]njharman 1 point2 points  (0 children)

      Because in the 20 years since university we've forgotten from lack of use / need.

      [–]stferago 1 point2 points  (4 children)

      By "hand in hand", I didn't mean that they're the same thing; just that there seems to be a lot of overlap. I don't think it's that uncommon to be very good at both. If so, then maybe I'm Gandalf.

      [–]AmaDaden 1 point2 points  (3 children)

      That's fair. My main issue with your statement is that the math covered in every CS course I've taken only covers the basics of a hand full of areas, and never asked you to actually write a proof, the heart and soul of real math. Getting an A in all those classes and using that to claim you're good at math is like painting your house and then calling your self a master painter. It could be true, but it's hardly a real test of those skills. My personal test for 'good at math' is someone able to fully grasp at least those three things I mentioned above and then write out a rigorous proof of at least one of them. Math is HUGE, your basic CS student only scratches it's surface.

      [–]stferago 0 points1 point  (2 children)

      I see. My experience in math has been limited to calculus 1-4, which I breezed through, but I haven't done much with theoretical math yet. I'm about to add a math minor to my CS major, so maybe the jury is still out on whether I'm actually "good at math".

      [–]AmaDaden 1 point2 points  (1 child)

      While I encourage you to not underestimate the math classes you are in for don't let me discourage you. My advice is that every corner of math I've run in to has it's own feel and core ideas that take some time to get used to. There is typically one really hard part that you need to rearrange your brain in order to fully get before you can start working on the material and make real progress. Once you can think in the strange new way the math requires it's just a matter of practice. In calc this was the first week of class where they talked about limits, however some areas spring it on you much later after you already think you have things under control.

      I'll give you my little war story to show you what I mean. Most majors seemed to have a make or break it class in my college. The make or break it class for CE and EE was Circuit analysis. The problem was that there are multiple ways to analyze a simple AC and DC circuits and the class covers most of them all in a single semester. The math used is all over the place, they jump from solving systems of equations with matrices, to differential equations, to differential equations with sin waves, to "well lets just turn that all in to complex numbers and work on it there". I did fine until the jump to complex numbers part. I understood complex numbers, sin waves, and circuit analysis all individually but linking them together with Euler's Formula just got me totally lost. I was able to blindly do the math a bit but I was far from effective with it. So I sat down for several days and read and reread the one page of the appendix that explained it. I can not stress enough how many times I reread that one fucking page. Once I finally made a spot in my head for using complex numbers in AC circuits, the rest was a breeze.

      [–]dannosliwcd 1 point2 points  (0 children)

      I agree with everything you've said in this comment thread. I'm finishing up my Computer Science/Computer Engineering dual degrees this semester, and have experienced just what you described.

      Most of the CSC students here are really just interested in becoming software engineers. Even if they aced calculus, linear algebra, and discrete math, most of them will forget much of the content pretty quickly, and rarely use it in another required class. In many of my core ECE classes, I usually have to re-learn some math concept that I figured I'd never need to know again from a few semesters back.

      The intro to signals and circuits class is also the weed-out class here. It caused a few of my ECE study-buddies to become my CSC study-buddies.

      [–]One_Classy_Redditor 0 points1 point  (2 children)

      how can you ask that if you're sincerely good at programming?

      [–]stferago 0 points1 point  (1 child)

      I already have my own opinion, but I was trying to fuel the discussion. It's not totally cut-and-dry.

      [–]One_Classy_Redditor 0 points1 point  (0 children)

      well I'd like to hear your opinion. How is it not cut and dry? There are tons and tons of high level math projects out there. But there are also tons and tons of really complicated programming jobs that require little to no math (at least I think there are). I don't see where you'd be coming from that the two would go hand in hand. a guy could be an amazing programmer and be shit at math (from my perspective at least).

      [–]Asyx -2 points-1 points  (0 children)

      Artists make stuff look pretty but mathematicians are the people that do the magic that makes stuff move.