Learn Programming

0 readers
0 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 2 years ago
MODERATORS
1
 
 

Chip8 is often considered the "Hello, World!" of emulation development. As someone who's thinking of starting a personal project as a foray into the world of Rust development, I found this collection of Chip8 Creative Commons Zero games.

Could be useful to someone else out there!

2
 
 

One of the most common questions that comes up involves trouble setting up VS Code - in particular if you want to not just use it as an editor, but set it up to fully run and debug your code.

Obviously the details vary by platform on language, so I'd welcome any resources you think are particularly good that specifically walk a beginner through how to set up VS Code on Windows with Python, or how to set up VS Code on macOS with C++, etc.

3
 
 

How do I upgrade to Ruby 3.2, when any system I use will only upgrade to Ruby 3.0 something?

4
 
 

I have the following navigation bar for a website I am making, but in firefox it cuts off one of the svg sides. How do I make the svg on the left render correctly in firefox?

Here is how it is supposed to look:

Here is how firefox displays it:

Here is the code for the navbar (aria-current is for the gold arrow):
https://pastebin.com/2SQR6mVs

5
 
 

cross-posted from: https://programming.dev/post/223663

Hey folks!

I've noticed that it's often difficult for newcomers to git to understand what the heck is happening and how the commands work.

Here's a flowchart that has helped me explain things in the past, and (more than once) folks have asked me for a copy of it to use as a cheat sheet. Hope it's helpful!

6
 
 

Although I prefer the Pro Git book, it's clear that different resources are helpful to different people. For those looking to get an understanding of Git, I've linked to Git for Beginners: Zero to Hero ๐Ÿ™

The author of "Git for Beginners: Zero to Hero ๐Ÿ™" posted the following on Reddit:

Hey there folks!

I've rewritten the git tutorial. I've used over the years whenever newbies at work and friends come to me with complex questions but lack the git basics to actually learn.

After discussing my git shortcuts and aliases elsewhere and over DMs it was suggested to me that I share it here.

I hope it helps even a couple of y'all looking to either refresh, jumpstart or get a good grasp of how common git concepts relate to one another !

It goes without saying, that any and all feedback is welcome and appreciated ๐Ÿ‘

TL;DR: re-wrote a git tutorial that has helped friends and colleagues better grasp of git https://jdsalaro.com/blog/git-tutorial/

EDIT:

I've been a bit overwhelmed by the support and willingness to provide feedback, so I've enabled hypothes.is on https://jdsalaro.com for /u/NervousQuokka and anyone else wanting chime in. You can now highlight and comment snippets. โš ๏ธ Please join the feedback@jdsalaro group via this link https://hypothes.is/groups/BrRxenZW/feedback-jdsalaro so any highlights, comments, and notes are visible to me and stay nicely grouped. Using hypothes.is for this is an experiment for me, so let's see how it goes :)

https://old.reddit.com/r/learnprogramming/comments/14i14jv/rewrote_my_zero_to_hero_git_tutorial_and_was_told/

7
 
 

Many of you may be familiar with CS50, Harvard's Intro to Computer Science course - it is often recommended to newbie programmers (and basically shows up on every 'how to learn to code for free' list). However, there are other lesser-known online courses offered by Harvard's Computer Science department. Since I wanted to brush up on my Python skills, I decided to take CS50P, their Introduction to Programming with Python course.

CS50P is a lot like the regular CS50 course in its structure. The course is broken up into 10 "Weeks" (though, it's entirely self-paced, so you can really think of them as "Modules") where you watch a 2ish hour lecture then complete problem sets. There are around 40 problems to complete, and you have to submit a Final Project at the end. So you get a lot of practice with Python.

This point is worth emphasizing: the teaching style is very much like a university course where you watch a lecture then complete a bunch of problems on your own afterward. It's not like freeCodeCamp or other online learning resources that give you lots of bite-sized problems as you learn. So if the university-style of learning isn't for you, you'll probably want to go elsewhere.

I also want to mention that I found CS50P to have a much smoother learning curve than the regular CS50 course. In fact, the regular CS50 course has such a steep learning curve that I usually don't recommend it to newbie programmers. But CS50P is much more manageable, and I'd definitely recommend this one to beginners.

Especially for any beginners who want to do the regular CS50 course - take CS50P first. It introduces you to a lot of programming concepts that, once you learn, will make the regular CS50 course feel a little easier.

So, overall, CS50P a good course. It doesn't have the flashiness of the regular CS50 (no big lecture hall, no props, no funny videos), but David Malan is a really good teacher who has a knack for conveying complicated concepts.

It's a pretty comprehensive course too, though Python has tons of features and built-in libraries. So it doesn't cover everything. It took me about 35hrs of work to complete this course, but I was already fairly comfortable with Python. So I'd expect it to take a newbie 60-80 hours to complete.

So, in summary: I'd definitely recommend this course to anyone who wants to learn Python or improve their Python skills - or any newbie who wants an easier onramp to coding before taking the regular CS50 course.

Just don't pay for the $200 EdX certificate. This is a free course, and you will get a free certificate once you complete this course. You will get pushed to purchase an EdX certificate, but I don't know any good reason to do this.

8
 
 

Looking for a place or resource to expand my knowledge on the world of software QA or Testing. Originally browsed the "subreaded" but since moving/migrating away from the previous medium, wondering where else I should look?

Also just found out the ISTQB CTFL syllabus had just been updated to the 4.0v

9
 
 

cross-posted from: https://programming.dev/post/80128

Rust lets you do efficient reference-counted strings and dynamic arrays using Arc basically just as easily as their owning (and deep-cloning) equivalents, String and Vec respectively. So why not use them as a reasonable default, until you actually need the mutability that String and Vec provide? Get into the weeds with me here, feat. some cool visualizations, with special guest appearance from Box.

This video assumes some familiarity with Rust and its core smart pointer types, namely Vec/String/Rc/Arc/Box, along with data structures like HashMap and BTreeMap, and traits like Clone, Hash, Ord, and serde::{Serialize, Deserialize}.

serde feature flag for Rc/Arc
Arc docs
Vec docs
Smart pointers in Rust โ€ข Crust of Rust
animations

10
1
submitted 2 years ago* (last edited 2 years ago) by JaumeI@programming.dev to c/learn_programming@programming.dev
 
 

This community is aimed at two specific topics:

  • Support general programming questions, of any language, mainly for people beginning their journey in programming.
  • Give some advice on programming education or career.

What this community doesn't intend to do:

  • Give specific answers to very specific, non-beginners, problems of a particular language. You probably can go to a community of that language to get help with that.
  • Solve your programming assignments. You can ask for a specific issue, but it's essential that you learn to think and solve them, or you'll never progress.

As suggested by Captain Janeway, here are some rules specific to the posts:

  • Paste your code. Unless there's not any other way, please don't provide screenshots of the code, it's harder to review.
  • If possible, try to provide a runnable example of the code in question
  • Explain as much as you can: what youโ€™ve tried, what the error is, what you think the problem is
  • As usual, be kind

The probability of getting an answer will increase dramatically if you follow these points.

This post will be updated periodically, with any new inputs considered necessary.-----

11
 
 

If people are going to post questions with code samples in this forum, I think we need to maybe address some basic underlying requirements. Personally, I prefer a loose moderation wherein we try to ensure a few basic quality of life requirements in posts:

  • Try not to provide screenshots of code since that's harder to review
  • If you need help debugging, please try to only provide the bare minimum portions of your code which are relevant
  • If possible, try to provide a runnable example of your code in question
  • Try to explain: what you've tried, what the error is, what you think the problem is

I'm not trying to sound pushy about forum etiquette. But I personally am much more likely to review code that meets the above requirements. I like something I can compile and run quickly. I prefer some context as to where the issue probably is. Everything else is sort of secondary to me, but still matters.

What does the community think? Also, what do we want this community to do? Support specific programming questions or general CS career/education questions? Both?

12
 
 

Let's get some resources (websites, games, programs...) to help people that want to start learning how to program.