DEV Community

Ali Spittel
Ali Spittel

Posted on • Edited on

If you could change one thing about learning to code, what would it be?

If you could wave a magic wand and make your biggest challenge when you were learning to code disappear, what would you choose to change?

Top comments (91)

Collapse
 
ben profile image
Ben Halpern

I would have loved more encouragement to... just do it my way.

I never fit in with anyone else's idea of how one is supposed to approach this craft, so it took a while for me to really have the whole thing sink in.

If people had encouraged me play and do things I liked to do instead of their idea of computer programming/computer science, it all would have happened a lot sooner for me.

Collapse
 
jackharner profile image
Jack Harner πŸš€

I like the mantra "Make Dumb Shit".

I feel like it's a whole different kind of learning when you're just messing around. Being able to explore the "I wonder if I can do this"'s of the programming world is So Much Fun. Especially when it turns out you can, in fact, do { Insert Whatever }.

Collapse
 
justinvincent profile image
Justin Vincent

Yes agreed! Simone Giertz takes that to a whole new level!

youtube.com/watch?v=E2evC2xTNWg

Collapse
 
jsardev profile image
Jakub Sarnowski

This! I like to think about programming as a form of art and learning to program like learning to play the guitar - as soon as you can hold the guitar properly, and have a basic understanding of how the instrument works, how to use it - you start experimenting, trying new sounds, "messing around". This is pure joy!

Collapse
 
cjbrooks12 profile image
Casey Brooks

I felt like there was a plethora of content out there for absolute beginners, and plenty of highly specific/advanced topics, but not nearly as much content for intermediate developers. It felt like a real challenge getting past the "hello world"s of various frameworks into real-world development topics without getting deep into theory and design patterns that aren't necessary for 90% of apps.

You don't need to use the most bleeding-edge technologies and design patterns for the vast majority of projects that a beginning developer would be doing. They serve a great purpose for experienced devs doing professional development, but for beginners/hobbyists, it becomes a real blocker to even getting started.

And on the extreme end of things, it trains developers to just copy-and-paste solutions to get something to work without teaching them why it should be done that way, and as a result, it becomes harder for devs to actually take a step back and think through the problem they are trying to solve.

Collapse
 
cjbrooks12 profile image
Casey Brooks

And continuing on from that, I just want to say that Dev.to has actually been really great in this regard, with a good ratio of beginner to intermediate to advanced topics. There are so many articles I read here and think "wow, I really wish I had read this article several years ago".

Y'all are amazing.

Collapse
 
ben profile image
Ben Halpern

That's definitely intentional!! Though, with the complexity of the network, it's really hard to know if it's working right.

We know the traffic is going up and to the right, but it can be hard to tell if the real value is being created.

So hearing it is on some level is very motivating. πŸ˜„

Collapse
 
laurieontech profile image
Laurie

Funny that you mentioned that. Ali has actually been doing a post series on that.


The idea of getting past those tutorials and copy/paste solutions.

But you're abolsutely right that it's an awkward jump to make. Beyond theory it often requires you to start digging into integration points between various tools. And it's hard for posts, tickets, etc to capture the full array of problems you can encounter since there are so many permutations.

Collapse
 
jasterix profile image
Jasterix

Thanks for sharing!

Collapse
 
zkriszti profile image
Krisztina ZΓ‘vecz

If I had written a comment to this thread, this would have been it... Too much "hello world" and too much "ninja" materia, and barely anything on the middle of the spectrum.
Also I'm struggling to understand how can coding tutorials (even some very good resources) can be video based...

Collapse
 
murkrage profile image
Mike Ekkel

I agree 100%. Getting out of that 'beginner' mind set was incredibly difficult. You really do get stuck in tutorial hell for a while if you're not careful. It's just... there was no content for me to consume that was intermediate. Now that I am, or rather consider myself, intermediate, I find it tons easier to get up and running in projects but also grasp new more advanced concepts. It's a strange thing to experience because I didn't really "feel" myself go from beginner to intermediate as such, but I can definitely feel myself going from intermediate to advanced.

Collapse
 
jackharner profile image
Jack Harner πŸš€ • Edited

If I could change one thing about learning to code, it would be that it was started earlier, particularly in schools.

I was fortunate that my dad worked for Intel growing up so he always knew (in my head) everything about computers. He started teaching me Visual Basic and Macro writing pretty young and that definitely sparked my interest in tech/web/programming. It helps build logical and critical thinking, problem solving, creativity, and so much more. We need to teach all the kids to code!

Collapse
 
dylanesque profile image
Michael Caveney

Beat me to it! I was thinking the other day that most languages are no more difficult than learning English( or most other languages), mathematics, etc. The only difference is that those concepts are continuously drilled in us from an early age, and learning coding would be easier if we started learning a high-level overview of logic, data modelling, etc in elementary school.

Collapse
 
grodier profile image
George Rodier

When I was in high school, I didn’t even know that software development was an option to study. There were no programming classes. I didn’t see a line of code until I was 21 and decided I wanted to learn more about programming to see if it would be a fit for me. Luckily 10 years later it was definitely the right choice!

Collapse
 
jackharner profile image
Jack Harner πŸš€

Exactly! Get kids messing around with logic earlier. Even just the "How to get the Pizza to the party" stuff (Order Pizza, Right Turn, Forward 2, Left Turn, forward 1, pick up pizza, etc)

Collapse
 
3zzy profile image
Ibrahim Ezzy

Real world examples, instead of foo bar baz. For a long time, I thought those words had a special meaning.

Collapse
 
fassousa profile image
Fagnner Sousa

Haha when I was starting to code, I also thought these were special words... and hate them, still!

Collapse
 
egilhuber profile image
erica (she/her)

Yes! They're everywhere in StackOverflow code and for the longest time I thought they were part of a language/library/joke I didn't get.

Collapse
 
damcosset profile image
Damien Cosset

Not having to deal with religion-like arguments about languages, frameworks, tools... Or whatever. Would have loved to have to freedom to pick something and not having to question my pick because people have these hardcore opinions about it ( and opinions about me as a developer by association...)

Collapse
 
wjnbreu profile image
William J.N. Breuer

in a word: documentation

don't get me wrong, in the vast majority it is really incredible and commendable how thoroughly devs document their work, but for total newbies trying to figure out how to join the party, most docs are set up for more advanced understanding.

I'm not necessarily saying this is a bad thing, but I ran into tons of head-scratching in my experience.

Collapse
 
mariawhen profile image
Maria Nguyen

This! I thought I was terrible at reading docs (ok this might still be a little true). Turns out, I was just missing a lot of assumed knowledge.

Collapse
 
neex profile image
neex

More emphasis on reinventing the wheel and then doors, lights and the rest of the vehicle with ONE tool. So many people waste so much time by scratching the surface in million languages. Especially true in web development where you can see a junior dev resume with 15 languages and frameworks. And 6 months of total study time.

Less "well meaning advice" of the kind: you can do it in X in half the code/time/effort".

The struggle and depth you achieve by going deep in one language will let you switch much faster to a new one afterwards.

Being able to choose a proper tool for the job will only happen if you actually struggled through doing it the hard way in something before and reached a general understanding.

Collapse
 
hwolfe71 profile image
Herb Wolfe

I think part of the reasons that you see all those languages and frameworks is because job ads ask for them.

Collapse
 
nickylewlew profile image
Nick Lewis

The overwhelming feeling of 'there's too much, how will I ever learn all this!' or the self doubt on starting to learn a new language thinking it looks too confusing and thinking you'll never pick it up.

It's a barrier to overcome when learning new languages!

Collapse
 
karataev profile image
Eugene Karataev

I think my biggest mistake was to read a lot instead of practicing a lot.
I started to read a technical book with a goal to finish it. Nowdays my goal is not to finish reading a book, but to get the required information for my current task.
Reading a technical book from start to finish without a practical goal is a boring task and a waste of time. Instead find what is interesting for you, do research, ask questions, find answers, ask more questions. Make your brain work instead of just consuming information from a book/article.

Collapse
 
gypsydave5 profile image
David Wickes

Hmmm. I don't know - the biggest challenges always feel like the biggest successes when you've overcome them. So I'd not take away any of the things I've actually learned.

But what I'd try and take away would be my odd obsessions with the unimportant things. Things like:

  • which text editor to use
  • which font to use in the text editor
  • setting up a terminal to look pretty
  • adding every plugin to the text editor
  • understanding geeky jokes
  • etc etc etc

The amount of time I've wasted making Sublime Text look nice, or learning Vim, or playing around with every shell under the sun - without getting along with the actual coding bit. Ridiculous.

So, yeah - that's what I'd ask/help beginners with. Please stop adding to your problems with incidental crap and just use the quickest, most basic set up you're comfortable with.