[–] 1 point 1 week ago* (last edited 1 week ago)

Here's a little textual flowchart to help you out.

Is it free?
 ├Yes
 │ └Is it open-source?
 │   ├Yes
 │   │ └Is it mature?
 │   │   ├Yes
 │   │   │ └Is it memory-safe?
 │   │   │   ├Yes
 │   │   │   │ └Is it sufficiently cross-platform?
 │   │   │   │   ├Yes
 │   │   │   │   │ └Does its license work for your use case?
 │   │   │   │   │   ├Yes
 │   │   │   │   │   │ └Consider it.
 │   │   │   │   │   └No
 │   │   │   │   │     └Don't use it.
 │   │   │   │   └No
 │   │   │   │     └Don't use it.
 │   │   │   └No
 │   │   │     └Don't use it.
 │   │   └No
 │   │     └Don't use it.
 │   └No
 │     └Don't use it.
 └No
   └Don't use it.

wondering if you’re expected to have a deep knowledge of most of the tools out there or what

Employers expect you to be able to learn a tool on the job, whether that be an application or a programming language. The specific code or language matters less. As Linux Torvalds once said, "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."

Employers care most that you understand the principles and can adapt well. That said, being familiar or having experience does help in the field, so you should try to have some experience with using the APIs relevant to your use case, and have read their documentation at least briefly. You will accumulate knowledge over time.

But rest assured that technology is not a monolith, and there is not one person alive who has a deep knowledge of the majority of tools.

  • source
  • [–] 1 point 3 weeks ago

    Also seconding Automate the Boring Stuff. I skimmed the beginning and it seems very usable for beginners. Also very useful for folks NOT new to programming but looking for an easy intro to a new programming language (Python), which is what I used it for.

  • source
  • parent
  • context
  • [–] 3 points 1 month ago (1 child)

    I always shout out "Automate the boring stuff" because it is excellent and free: https://automatetheboringstuff.com/3e/chapter1.html

    I find picking simple tasks that I want to accomplish can be a great way to learn things, and the book above is a fantastic resource for this. If you want to learn how to modify values in a CSV file or perform calculations or get data from the internet, this teaches you how. When you need to understand a function, go read the documentation for how it works but dont get bogged down. Small iterative cycles with a feedback loop are how we learn. Read how to do something, extend the idea and apply it yourself, see what works and what doesn't. It becomes fun after a while.

  • source
  • [–] 3 points 1 month ago* (last edited 1 month ago) (1 child)

    I faced this problem numerous times. This is mostly a problem with parsing the text.

    Most often the solution is to translate the text into how other people think through a problem and replicate their mental model of the world in your head. This sounds tough but when you read, you should pay attention at various levels: Phrases -> Sentences -> Paragraph. Construct the mental model as numerous Cause->Effect relations. Identify other types of relations that the author wants to convey.

    Often also change the way you parse the text. What I described above is Bottom-Up approach where you construct the big picture from smaller pieces. The other way would be to start Top-Down, construct a big picture view by reading only the start and end of a specific paragraph/technique, understand the transformation that is happening to code/data/control flow, then move on to the next big chunk. Eventually you will get the general idea. Then you can drill down on specific paragraphs/ideas and focus on the details.

    Regarding Python itself, The sentence "reinstall it and use the pure python version, it's the only way you'll learn it properly" is assuming that one would easily figure out one among the the numerous ways of installing a python environment. It's not an easy thing to do given that you as a beginner won't understand all the nuances of what each method achieves.

    Easiest way to proceed is to pick one way to setup your python environment and be done with it.

    Tl; Dr

    I am on Linux, so my personal stack is:

    1. pyenv -> a. curl -fsSL https://pyenv.run/ | bash b. ~/.pyenv/bin/pyenv init --install

    2. Install a python version -> a. pyenv install 3.14

    3. Create my workspace and set the python version to the one I installed: a. mkdir workspace b. cd workspace c. pyenv local 3.14

    4. Create a venv so I have a local python virtual environment: a. python3 -m venv .venv b. source .venv/bin/activate

    5. Start working on my project/code.

    (Note for others: I don't recommend uv here as I don't use it myself and haven't tried to properly use it for an extended duration of time)

    On Windows, use python install manager + Venv.

    This is a good tutorial:

    https://www.youtube.com/watch?v=6e3WLhPLiZQ

    Edit: I forgot to mention that the python docs are an excellent starting point for learning python in general: https://docs.python.org/3/

  • source
  • [–] 6 points 1 month ago* (last edited 1 month ago)

    Addressing your verbosity complaint:

    Spend time learning to read the lowest level documentation possible.

    stdlib

    It's dense and terse, which makes it difficult to read. But the knowledge per word is the value.

    For example, you were mentioning relying on tools to build your environment and manage your installation. Don't. Learn how venv and pip work. Learn at the lowest level. Build up. Stop learning from the top and building down. Save that for when a project demands it.

    Understand "why", not "how", and then you can evaluate whether a guide is wasting your time.

  • source
  • [–] 3 points 1 month ago

    Use PyCharm if you can, a very very user friendly (and newbie friendly) IDE IMO.

    Are you struggling with something specific otherwise?

    You can also just ask away on duck.ai, useful for short examples like open and read a file, store things on a dict etc.

  • source
  • [–] 1 point 1 month ago

    I think if you are learning to code you cannot use AI to generate code. You can ask questions and get small snippets to explain concepts but you must be solving the actual problem yourself even when it feels simple and feels like you know the solution.

    I used it once and had to draw a hard line. Because it was so much better than me that if I used it then I would have no reason to write any code.

    The way I use it is to talk through the problem and my solution and why with an instruction to not generate code, give suggestions and to be critical and teach.

    Then once I'm happy with a high level plan I write the code and test it and when I get stuck I give it a bit of time trying to figure it out myself then go to AI for review.

    The motivation to not use it is because i want to learn to code. The end result doesnt matter as much as the process to me. If I had 10years experience I'd be vibe coding like a man possessed.

  • source
  • [–] 3 points 1 month ago

    Avoid the frontier models. They make it much easier to say "I want X app", and theyll spit it all out. If you use an older model, you have to break down the task a lot more, which at least forces you to think about the architecture. And each task is easier to review.

    I use gemma4-12b. It is fine for generating code, but you definitely can't one shot things with it.

  • source
  • [–] 3 points 1 month ago

    That's great ! Web developement is always fun because you see results quickly.

    Javascript never "clicked" with me but it's a nice tool.

    Depending on what you want you may want to try doing a bit of php next but never forget that HTML as a lot of nice tools, when I'm trying to do something I always go back to that list : https://chrisburnell.com/html-can-do-that/ and try to find if there isn't a native html element that can do the trick.

  • source
  • [–] 2 points 1 month ago

    no complexity

    to be fair i am often scared by the direction CSS is going.. it was supposed to be just styling and then it added states like hover and hidden to cover html semantics.. but then that lead to state management and before you know it we have a Turing complete language with variables and interactio with HTML.

    Sure nobody HAS to use all of that but sometimes I feel like having all of that seems overkill.

    But then who am I to complain.. I do my frontend with Jinja2 and flask so pure CSS animation is tame in comparison.

  • source
  • parent
  • context
  • [–] [S] 1 point 2 months ago (1 child)

    Actually, I am learning more than I expected. I thought website animations were implemented by JS, but just now I pushed a commit by adding animation to an image just using the CSS keyring property. And it was much simpler than I imagined. No rush, no complexity.

  • source
  • parent
  • context
  • [–] 2 points 2 months ago (2 children)

    as someone who types out their own html and css.. the struggle with setting up hugo, fighting against it's directory layout format and a lot of magic invocations that the docs refuse to explain within 100 lines of "get started" title has simply made me appreciate the w3c group and the joy it is to writing my own html and css and how readable it is. copying it to the server as the CI/CD pipeline is an added bonus.

  • source
  • [–] [S] 1 point 2 months ago

    I use ghostwriter to write blogs in markdown. Then with the help of a converter i convert it into html format and modify it from there.

    Why not directly write in HTML?

    Because for me writing blogs in direct html feels so hard for several reasons,

    • Adding tags every-time affects my writing flow.
    • Markdown is so simple compared to HTML and ghostwriter shows a direct live preview on the side.
    • Markdown to HTML converters work so well by converting the markdown symbols into proper HTML tag.

    But why I may switch?

    I would consider to switch to directly writing blogs in HTML when i have enough knowledge about web development. The reasons are,

    • It is harder to correct or tweak lines of converted HTML, when compared to directly written HTML.
    • Converters are not perfect either, they make mistakes when identifying equivalent tags. Then later it will become a headache to review again and again.
    • Later we have to implement CSS and class by reading each line of converted HTML, which actually doubles the effort.
    • If I learned HTML, CSS and JavaScript well, and get comfort with it, then there is no need to write in Markdown format, use Hugo/Zola, find a good pre-built theme and keep it from breaking, etc. HTML, CSS, JavaScript manages itself everything.
    • Managing our own website and writing blogs in it is actually very interesting and exciting than writing blogs in someones else's template/theme. (No matter we get viewers or not).

    I recommend directly writing on HTML rather than Markdown to reduce the effort needed.

    Thank you for the resources. It looks very helpful.

  • source
  • parent
  • context
  • [–] 2 points 2 months ago* (1 child)

    I’ve heard that CSS was designed to make sense to layout designers, not programmers [...]

    Most programmers have only ever learned the imperative c-style of programming. When that's all you have experience with, it's hard to understand (and sometimes even recognise) other kinds of programming because you need to learn an entire different way of thinking.

    CSS is definitely a programming language, specifically it's in the declarative/constraint/logic programming paradigms.

    Learning different programming paradigms can be difficult because you often can't bring your previous knowledge with you and also need to learn the problem space that the language is designed to solve.

    • CSS: requires learning about layout systems, design
    • SQL: requires learning how best to store and process data
    • Prolog/datalog: requires learning how best to think about and search a problem space
    • Proofers (Z3, etc...): requires learning how best to create rules that can prove or disprove possibilities
    • Graphics programming: requires learning how best to compute over massively parallel hardware without any one computational unit holding back the other units.

    so i wonder if there’s a possible crash course in CSS knowledge prerequisites?

    For learning CSS specifically: I'd recommend Kevin Powell playlist for beginners: (https://www.youtube.com/@KevinPowell). Then you can follow up with https://ishadeed.com/ and https://www.joshwcomeau.com/.

    I'd recommend against w3schools since they usually just list out a bunch of things. That's useful for learning what things there are, but not what they're used for, why you would want to use them, how you would combine them to solve a specific problem, or if there's something else not on the list that already solves the problem for you (or the other problems you're having that you don't even realise you're having).

    I'd also recommend against bootstrap (unless you just need something small made and you don't care about having to make changes in the future). It leads to "div soup", and often makes you use old tools methods that have their own problems that you won't be aware of. Tailwind suffers from the same thing with it's own variation of div soup called class soup.

    CSS solves problems much easier the cleaner your html is, you want to avoid soup as much as possible.

  • source
  • parent
  • context
  • view more: next ›