this post was submitted on 29 Jan 2025
53 points (90.8% liked)

Ask Lemmy

28546 readers
1555 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
 

I would like to code for a living and to contribute to open source projects and things, but my coding skills are absolute shit after taking online courses and watching video tutorials. How can I learn to code for real?

What I would like to learn is algorithms, web development ("full stack"), how layouts work (both in like kotlin compose and HTML) and how to read other peoples code. Maybe thats more than I can chew, but its probably good for me to try out many things before getting settled on one.

Now I have been coding for a while already (~ 4 years), but I kind of feel like I need more guidance to be able to actually create code that works as intended intentionally, and not through trial and error / stack overflow. As for what level i am at, CS50 is probably my only qualification, I have played around with APIs (I.E. making discord bots), and made some html "apps" (horribly made, but things like the "genius" game and a calculator) and "prototype" react websites (as in, really bare bones, barely working).

I do plan on taking CS or something similar, but i'm not yet in college, and I would like to have a good head start before getting there.

Sorry for my bad English, and any help is appreciated.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] ThePowerOfGeek 15 points 3 weeks ago* (last edited 3 weeks ago) (2 children)

First off, the fact that you are aware of your shortcomings and are interested in addressing them is awesome. That shows real growth potential and wisdom.

I'm no rockstar developer, but I've been doing it professionally for over 2 decades. And I've been told by multiple bosses that I'm pretty good at my job. I've worked with a lot of other developers. Including some less experienced ones. Here are some thoughts on pitfalls and hurdles I've seen, both in myself and truth other developers:

  • Don't get too fixated on the technology. I know that sounds weird at first blush, but there's a whole layer to software development that involves analysis and critical thinking, and that layer is completely agnostic of technology. Make sure you work on your analytical skills, because they are the foundation that will allow you to excel with actually writing code.
  • Sometimes newer isn't better. It's tempting to chase after the latest approach or platform and think that will be perfect and last for many years to come. But they seldom last more than 5 years before they start getting vilified as old and outdated. Yet there's a lot of wisdom and tried-and-tested reliability in older approaches and seemingly stale design patterns.
  • Related to that, many of the concepts in software development are cyclical to a degree. What's considered passe and wrong today can often be returned under a cool new name in 5 or 10 years time and suddenly find popularity and use again. So be prepared for that.
  • Get to know design patterns, but don't treat them as set in stone. Two mistakes I've seen people do (and I've done myself) is assume a) a design pattern fits into more scenarios than are actually applicable, and b) think that design patterns are immutable and must be followed completely. But really they are like a buffet where you can take often a bite or two from one, and where also every trip to the restaurant is different, so your menu of choice will change.
  • Practice software development from the ground up. Where the ground is reading business requirements, then converting them to system requirements, then designing your a system, then implementing it, and then working through the subsequent challenges.
  • Related to that, it's extremely rare that a developer creates a complex system with perfect code right out the gate. It's okay to make mistakes and work around them. It's just part of the process and something we all do.
  • Don't get too caught up on writing code "the right way". I think coding is more an art than a science. And with that in mind, have some fun with it. Keep in mind things like performance and scalability, obviously. But if you stick to a rigid approach to writing code you will struggle to evolve and adapt and build your skill set.
  • Also, I bet you are a better coder than you think. So many developers I've worked with think they are poor at writing code and have imposter syndrome. But most of them are solid.
  • And lastly, in my opinion don't get caught up on certifications. I've worked with devs who had lots of certificates and who were okay. But I've also worked with devs who had no formal training and no certificates, but they were amazing at writing really innovative, well designed, and high performing code. Like I said earlier, it's all about the state of mind.

Hope this helps.

Edit: fixed some typos.

[โ€“] ChilledPeppers 3 points 3 weeks ago

Thank you for the response, I actually was with the opposite position as to being an art. I was literally just thinking "there is a correct way to do things, if you don't use it, your code sucks", and things like that. (Im watching a Linus Torvalds interview, and he was just talking about good vs bad code lol).

load more comments (1 replies)