I’ve always flunked at math; and knowing how intertwined programming is with math, I’m skeptical of my ability to learn how to code. Can someone be too dumb to learn programming? If it helps, I’m mostly interested in learning Common Lisp.

  • AFK BRB Chocolate@lemmy.world
    link
    fedilink
    English
    arrow-up
    67
    ·
    1 year ago

    Title question first: yes, you absolutely can be too dumb to program.

    But as others have mentioned, being bad at math isn’t necessarily a deal breaker, especially if you’re taking about the actual arithmetic part of math.

    What turns out to be key to programming is breaking down a problem into steps and figuring out the logic to do what you want to do. The computer is going to do the actual arithmetic, but you’ll need to tell it what you want to do step by step.

    • MachineFab812@discuss.tchncs.de
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I was gonna suggest there might be a “too dumb to program for the profit of others”, but … yeah, even if your pay and code is a financial detriment, we can pretty much promise it’ll be an insignificant portion of the money that company is costing itself. You gotta eat, and practice is practice.

      That said, advice remains the same: program on company time towards a path you don’t care about beyond covering your ass and trying to deliver what’s been demanded(I’m not saying don’t do your best, just keep it to what you can do on the clock), and see that as practice for passion projects on the side. Save a little bit of that no-fucks-given/objectivity for objectively testing and fixing your code - fix it like someone else made the mistake, and you can do it better, but at the same time something must ship(don’t let perfect be the enemy of good).

  • Synthead@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    arrow-down
    1
    ·
    1 year ago

    You’d be surprised how little math is involved in programming that doesn’t require it. A significant majority of programming is simply managing conditionals. For example: “when the door opens, turn on the light.”

    Math comes into place when you need it, and hardly ever comes as a surprise. Additionally, solved problems are generally kept in libraries. For example, you don’t need to calculate a sum; simply tell it to calculate a sum for you, because this is a solved problem.

    What you’re already running into is called “impostor’s syndrome.” You believe that you are not capable of something to some degree, even though reality says otherwise. You haven’t tried your hand at programming, so why worry now? You’re inventing problems for yourself before you even got a chance to start.

    Just go for it and see what you think. If you don’t enjoy it, no biggie. If you do enjoy it, keep going. No obligations 👌

  • MagicShel@programming.dev
    link
    fedilink
    arrow-up
    24
    ·
    1 year ago

    Math is less important than logical thinking which often, but not always, goes with math skills. More important still is intellectual curiosity. Do you like solving puzzles? Do you like the feeling of breakthrough after a frustrating struggle figuring out how something works? Those will take you a long way.

  • CaptainBasculin@lemmy.ml
    link
    fedilink
    arrow-up
    19
    ·
    1 year ago

    Math knowledge is not essential; but really useful in programming as you’re trying to make the computer do calculations of some sort.

    Someone could definitely be too dumb to code though.

  • swordsmanluke@programming.dev
    link
    fedilink
    arrow-up
    17
    ·
    edit-2
    1 year ago

    Programming success is more closely associated with language skills than math skills.

    Yes, if you need to invent a new algorithm you’ll need math. Computer Science is definitely mathematics heavy.

    But writing a program is all about expressing your intent in a programming language, step by step. It’s about “communicating” with the machine (and your users).

    All this to say, I got C- and D grades in my math courses in college and still became a successful computer programmer. I’m not pushing the boundaries of computation, but if you need an app for your business, I can build that for you in a reliable, tested, and flexible manner.

    Edit: Also! I love Common LISP. It’s such an amazing language and I’m so sad that it isn’t more popular in the industry.

    • jwt@programming.dev
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      But writing a program is all about expressing your intent in a programming language, step by step. It’s about “communicating” with the machine (and your users).

      And your coworkers, and ‘you a year from now’. For the love of god have some compassion with ‘you a year from now’ and save him a day of debugging.

  • Lmaydev@programming.dev
    link
    fedilink
    arrow-up
    13
    ·
    1 year ago

    80% of programming jobs will only require basic maths.

    A lot of the time you’re glueing together libraries written by much smarter people haha

    It’s more about logic than maths. People absolutely can find it too hard.

  • Captain Aggravated
    link
    fedilink
    arrow-up
    12
    ·
    1 year ago

    Directly answering your question: Yeah you can be too dumb to program. If you cannot read, write or count, you have learning to do before trying programming. I don’t think that’s you, because you were able to put several coherent thoughts together.

    Let’s talk about math class. Because I bet you’re not bad at math, you’re bad at math class, and this is because for the vast majority of students past about seventh grade, math class is so badly designed I’m going to call it an outright waste of time. Right around seventh grade, they throw away stuff like “If you have three pies and five friends, how do you cut the pies so everyone gets the same amount?” and start with “The transitive immutable property of additive inequality” or whatever. "For the rest of your adolescence and your entire early adulthood, math class is now about your ability to memorize and consistently apply completely arbitrary rules that we’re only going to explain to you in nineteen dollar words.

    That meme of 6/2(4+2) or whatever where people argue about whether it comes out to 0.5 or 18 is a symptom of this, because it turns out that meaningless math is meaningless. Funny how it’s never a problem in shop class or science class where the numbers actually mean something.

    Yes, there’s math in programming. There’s math in programming that your math teachers never even tried to teach you because the kinds of people who write school curricula aren’t the kind of people who do things for society. You weren’t taught boolean logic, you weren’t taught base 2 or base 16 math, etc. Find a good tutorial that works for you and you’ll learn it.

    I’m also going to give this advice: Don’t approach it from the perspective of “I’m going to learn a programming language.” Because when you see how big a task that is, you’ll be overwhelmed and quit. Instead, pick a project, something you want to build, and say “I’m going to learn how to make a calculator in this language.” or “I’m going to make a simple game in this language.” You’ll learn the parts of the language you need for that, and get it done. Then pick another project, you’ll find new aspects to learn about. Keep going in that fashion and before long you’ll know how to program.

  • throwawayish@lemmy.ml
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    1 year ago

    Nah, no need to worry. I’ve got a friend that was bad at math and therefore dismissed a career as programmer initially. Eventually, he just couldn’t ignore how much programming interested him and did start a Bachelor’s degree in Computer Science (after disliking his first year of Finance). A couple of years later and he’s the proud owner of a Master’s degree in Computer Science while still being relatively bad at math, but it didn’t stop him. Nor should it stop you.

  • kingaloo@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    1 year ago

    You can be but it’s very rare to find someone that is.

    For programming I always tell folks you need 3 skills: adaptability, self-reliance, and strong problem solving (thinking outside of the box, etc)

    The most lacking skill I see new students is self-reliance. Learning to do your own research, knowing when to ask for help and when not to, etc.

  • CaptDust
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    1 year ago

    I think it depends what you want to achieve? I learned to program to let the computer do the math for me, it’s worked out pretty well so far. I admit I get jealous of the cool visuals, optimizations, and clearer algos people can build with their math experiences, but it certainly hasn’t stopped me from making useable webpages, apps and arduino projects.

  • NostraDavid@programming.dev
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    1 year ago

    Have too low IQ? Yeah sure, I guess.

    Be slower at it than the norm? Absolutely.

    I only learned Algebra by learning programming and through that I learned how to think abstractly (abstract just mean “hiding details” - think of how a child draws a car. You can’t tell it’s colour, brand, model, etc, yet you can tell it’s a car, even though all those details are hidden). Once I got that, I was able to follow videos from MIT that taught me more of the maths, giving me a theoretic foundation for programming. Now I’m doing an Algorithm course (also MIT) and feel like an “actual programmer” (because I felt like a “fake programmer” before that - though that still sometimes returns). After that I intend to learn more about SQL because I’m painfully lacking in that regard.

    Anyway, I’ve been at it since 2005 when I was a 20-something kid, and there’s always something new to learn.

    FYI: I made a dependency graph of a bunch of freely available MIT courses, left is a dependency for stuff on the right: https://thaumatorium.com/articles/mit-courses/

  • eksb@programming.dev
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    1 year ago

    Like with anything, you will not know if you are going to be good at it until you spend a lot of time trying and failing and learning. If you enjoy it, just keep doing it.