this post was submitted on 03 Jul 2023
2 points (100.0% liked)

Ask Experienced Devs

1384 readers
1 users here now

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

founded 2 years ago
MODERATORS
 

What advice would you give to someone who is trying to teach themselves software development skills? I'm doing that right now, and I'm finding it easy to understand, yet difficult to implement in computer code. I want to move onto more advanced stuff, but I feel that I don't have enough experience quite yet. What skills/courses would you recommend I take? How did you get better on your coding journey? Any tips to make the process go faster? Thanks in advance!

top 6 comments
sorted by: hot top controversial new old
[–] jmk1ng@programming.dev 1 points 2 years ago

BUILD SOMETHING.

Learning concepts without the ability to apply them are essentially useless.

Get your hands dirty and build something that would be valuable to you and solve a problem for yourself.

Don't get hung up on doing it "right". Focus on making it work. Don't worry about how it'll work for a million users. Right now your focus is on making it work for one user.

As you go you'll hit walls. Research how to get past them and keep going. Again, you're going to make mistakes. DO NOT GET HUNG UP ON THIS.

Making mistakes is part of the journey. Even the best software engineers in the world rarely get things right their first try. It's part of the process.

[–] vcmj@programming.dev 1 points 2 years ago

Like others have said, practice is key, however I'd like to add that you should not feel too discouraged if it feels like you're making no progress. You're probably making more headroom than you realize. At least personally in programming more than anything else I have occasionally only seen results after I came back to a concept I gave up on learning.

spoiler
Do be aware of getting stuck in local minimum though. I know it probably feels like bad advice but I figured I'd give it since it helped me personally, so maybe it might help someone else.

[–] h_a_r_u_k_i@programming.dev 1 points 2 years ago

No matter what you learn, keep the foundation strong. Religiously follow the "First Principle". For example, instead of learning tons and tons of web framework, try to learn the fundamentals of the language first and how networking works.

Try to understand the concept by yourself. Verify the inert knowledge. Don't rush for the quantity. Take your time and build a strong root. Make time your friend.

[–] douglasg14b@programming.dev 1 points 2 years ago* (last edited 2 years ago) (1 children)

Practice practice practice, always challenge and improve on your foundational skills. Everything else gets easier. Write code and solve problems, struggle through it in whatever way works for you. There's not really a shortcut to getting more experience than to put in the work.

It's especially important to try and do things the "right way" as a learning/growth tool. It will take longer, and you'll rewrite your code multiple times, but the next time you encounter a similar problem you suddenly know exactly what to do and the constraints around the problem.

Do this often enough and you'll find yourself having a general idea of how to solve just about any problem you come across, and how to do it elegantly.

[–] navigatron@beehaw.org 1 points 2 years ago

Struggle through it

I want to double down on this. Struggle through it, and learn to enjoy the struggle.

At its core, this field is all about solving problems. You learn and grow by tackling problems that are “too hard”, and learning / hitting your head against the wall / discovering new techniques until you defeat the problem.

Defeating a problem should feel amazing, and is something that should be celebrated. Be proud of it.

Then, the next time you’re facing a seemingly impossible challenge, think about that payoff, and keep going.

Eventually, impossible problems aren’t dissuading - they simply represent some tools or skills that you don’t have yet, and now you get to go on an adventure to discover them.

I don’t think it’s a good idea to just “learn tools”. Every tool in your toolbox should have some personal project or problem that it has already solved, so that you know how to use it. Don’t buy an oil filter wrench until you have a car that needs an oil change, if you know what I’m saying.

[–] nibblebit@programming.dev 1 points 2 years ago

Don't teach yourself complex software dev skills. Teach yourself complex software problems and learn how others have solved them in the past.