this post was submitted on 04 Dec 2024
85 points (97.8% liked)

Ask Lemmy

27218 readers
1452 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [email protected] or [email protected]. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email [email protected]. For other questions check our partnered communities list, or use the search function.


6) No US Politics.
Please don't post about current US Politics. If you need to do this, try [email protected] or [email protected]


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 2 years ago
MODERATORS
 

How do I go about this? Are there any free resources that’ll help me get started?

I see people advising to start with a small project, but you need to get some basics down right? What language? How to develop it and stuff?

My only experience is some very basic C programming classes I took during school.

you are viewing a single comment's thread
view the rest of the comments
[–] olafurp 5 points 2 weeks ago (2 children)

Start my picking what you want to do with programming. Then do a couple of simple challenges in any language like advent of code and such in python just to get your feet wet and solve some problems.

After that you should have the main building blocks and then you scale up into making a "thingy" sized project. I personally liked making games with progression like.

  1. Text adventure
  2. Tic tac toe
  3. Another text adventure but with battles and hit points.
  4. Tetris

Then you can start learning separation of code into modules like "This is the game and this is just how it's shown" which applies to pretty much every application with a user interface.

After that you have enough skill to learn anything and you can go about learning a specific skill or technology that you want to work with and you'll be at a skill level of a junior programmer.

Advancing beyond that I'd recommend reading a couple of books (crazy I know) that go over best practices and why they exist. You use those guidelines and get better at working with larger amount of code and then you get to mid level. During this time you should also basic rules of thumb on how long each thing takes to run, both algorithm complexity and how http requests are usually the bottleneck.

For senior level you'll need to gain a lot of experience and become a library of solutions and bug knowledge while also having a good grasp of tradeoffs. You'll need to know when to insulate yourself from change and when it's overkill to deliver the code in a timely manner while not sacrificing tomorrow.

It's very hard to skip any step in my opinion but reading a couple of books really helped me advance through the junior phase quickly just by knowing what solutions are out there. Books are not as valuable when you don't have experience since it'll stick 10x better if you encountered the problem described in the book.

To get started just pick anything and get your feet wet. Good luck!

[–] amldvk 2 points 2 weeks ago (1 children)

Any books you would recommend?

[–] olafurp 3 points 1 week ago* (last edited 1 week ago)

Clean Code, in overly idealistic and speaks like it's the holy truth but ideas are generally good. Same with Clean architecture. The guy talks like it's the only way but in my experience it's just a collection of tricks you could do but maybe shouldn't because of time pressure. One off code with a single purpose doesn't have to be that clean and functions almost never have to be that small.

Pragmatic programmer is also good and there are also more books on non-programming part as well. You could also ask ChatGPT since it's really good at exactly these questions.

Still, no use reading this until you ran the gauntlet of building up basic programming skills :)