Hey there!

I’m a chemical physicist who has been using python (as well as matlab and R) for a lot of different tasks over the last ~10 years, mostly for data analysis but also to automate certain tasks. I am almost completely self-taught, and though I have gotten help and tips from professors throughout the completion of my degrees, I have never really been educated in best practices when it comes to coding.

I have some friends who work as developers but have a similar academic background as I do, and through them I have become painfully aware of how bad my code is. When I write code, it simply needs to do the thing, conventions be damned. I do try to read up on the “right” way to do things, but the holes in my knowledge become pretty apparent pretty quickly.

For example, I have never written a class and I wouldn’t know why or where to start (something to do with the init method, right?). I mostly just write functions and scripts that perform the tasks that I need, plus some work with jupyter notebooks from time to time. I only recently got started with git and uploading my projects to github, just as a way to try to teach myself the workflow.

So, I would like to learn to be better. Can anyone recommend good resources for learning programming, but perhaps that are aimed at people who already know a language? It’d be nice to find a guide that assumes you already know more than a beginner. Any help would be appreciated.

  • Asudox@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    edit-2
    9 months ago

    I’d say go with Go or Rust. Go is like Python (garbage collection) but compiled. Rust is kind of like C++ but not exactly. It does not have garbage collection or manual memory management but something called “ownership and borrowing”. It’s as fast as C++ or even faster and has a modern syntax. Though Rust is harder than Go since it is under the hood a systems programming language. If you want something faster than Python, Go is good. I specifically chose Rust over Go since I wanted performance and just wanted to try how it was. I’m still a beginner in Rust but I wrote a few projects at reasonable scale for my level. And also, Rust’s error messages are extremely nice. It really lives up to the memes.

    To learn Rust: https://www.rust-lang.org/learn

    To learn Go: https://go.dev/learn/

    • Fal@yiffit.net
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      9 months ago

      Rust syntax is way closer to Python than go. Go’s syntax is awful imo. It’s like objective C

      • Asudox@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        9 months ago

        Okay, my bad. Go’s syntax sucks now that I take another look at it compared to Rust’s.

    • Turun@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      No.

      I have written rust for my research (one does not simply calculate 4 million data points in python), but just no.

      My main code is still python, because it’s just so much nicer to write and iterate on.