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.

  • CADmonkey@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    11 months ago

    I wish I could get my head around programming. I’ve tried learning from books, I’ve tried learning from codecademy, and all I can do is follow the lessons, I don’t understand how I’m supposed to turn all these lines of gibberish into a program that does something. The most common bit of advice I get is “Just make up a project! Find something that you want the computer to do, it’s easy and fun!” And I’m over here like… “OK, how?” It’s like someone pointing to a pile of metal and a welder and saying “Build something!” Sure, someone who knows how to weld can do that, but most people are going to need more information.

    • WalrusByte@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      11 months ago

      You need to pick a project to start out so you have a goal, then from there it’s just google searches for each individual part.

      I started learning in High School because I wanted to create a game. I had learned a little bit of Java from a book my dad gave me, but I was kind of in the same spot as you at first where I didn’t know how to do anything other than follow along with the book.

      But once I sat down with my goal to make a game, and just started Googling stuff, that’s when it started to click.

      Python has easy syntax, so that might be a good place to start. You could google: “Python game library” and it would pull up something like PyGame. Then you could look up “Pygame tutorial” which would give you a baseline on how to set up a window, etc. If you have a hard time with Python fundementals, you could just google “python for loop” or “python functions”.

      That’s pretty much what my learning process looked like: start with a goal, google how to get started, google each problem as it comes up. I still follow that same process to this day, and I have a CS degree now.

      At the end of the day, it’s a skill just like anything else. Just takes practice. I don’t think anyone is too dumb to learn it, but it depends on how much you want it. If it’s not worth the effort for you then you probably never will.

    • hperrin@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      What I tell people is to find something you regularly do manually, and automate it. I download a lot of torrents, then need to rename the many many files so my media server knows what they are. That’s something that can be automated. A perfect project for someone who’s just learning to program.

    • NathanUp@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      Why not try simple scripts at first? You could write a little script in Bash, JS, or Ruby to create folders or text files. Besides the very basic stuff I did on the high school robotics team, my first programming project was when I worked as a print broker and we invested in a digital press. I needed a program to calculate the cost of a print job, so I learned a little BASIC and wrote a program on my TI-98 to do it for me. It would ask a series of questions (eg - paper cost, single / double sided, color / black and white, how many imposed on an SRA3 sheet, etc) and spit out the cost of the job.

      As for how you use the code, say you write a ruby script; to run it, you’d navigate to the script directory in the terminal and type ./scriptName.rb to run it. If you’re using a compiled language, you’d compile it (your lessons would cover how to do this) and then you’d run the resulting binary the same way.

    • ebits21@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

      Go through the book Automate The Boring Things (Python)

      Then AFTER figure out your own projects.