DEV Community

Ali Spittel
Ali Spittel

Posted on • Updated 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 (103)

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.

Collapse
 
ssimontis profile image
Scott Simontis

I wish I would have not tried to learn C++ as my first language. The first few years I spent trying to learn programming were a complete waste of time and effort, I was top young to have any sort of clue what I was learning. It all worked out in the end, but I'm still kind of amazed that I was stubborn enough to keep pushing through the failure and confusion.

Collapse
 
kritoke profile image
Matt

I really wish there were a lot more accessible languages in computer science when I was enrolled in a degree towards it around 2001ish. It's taken me more than a decade to really get back into programming and found that I like it again. If Ruby or Python or even Javascript was at the level it is today back about 18 or 19 years ago, I probably would have finished that degree instead of changing majors. Now I can approach things like C# and a few of the scripting languages with a lot of ease. Though I hear C++ has changed a lot for the better these days, it still scared me off way back when.

Collapse
 
ssimontis profile image
Scott Simontis

I think the way that things were taught was off-putting too. When I had to learn C in university, it was a terrible experience. The updates to the language made in 1999 (C99 dialect) improved the language a ton, but we didn't learn about any of that. It almost felt like some of my professors considered it a rite of passage that since C was miserable when they learned it, it was going to be a miserable experience when you learned it too.

I'm fortunate enough that I knew as much as I did in high school because I ended up teaching my AP Computer Science class. The teacher had no experience with programming whatsoever and didn't know Java at all. He was basically learning the language with us. A few people tried really hard to learn it on their own and participate, but 2/3 of the class played Age of Empires or Starcraft against each other everyday and bombed the exam.

It saddens me that kids are in a position where they can't study topics that interest them. My school district was incredibly wealthy, and they couldn't bother to hire a single teacher with programming experience. It makes me fear for creative classes even more...if kids can't get the resources they need to discover if a STEM career is right for them, they probably won't get the chance to learn how to express themselves and develop their own sense of self. I can't help wonder if that's on purpose :(

Thread Thread
 
kritoke profile image
Matt

Funny you should say that, I had AP Computer Science in high school with C++. I relied on everything from that class for my first courses at University. Then when I hit data structures and had a class with 100+ students and the teacher was unavailable, only teaching assistants available. We had no computers in the classroom, the tests were all handwritten code. They added a computer lab to the class about a decade after I left. We didn't use the issued book for the class because the book was littered with errors, but a custom written book that the teacher wrote that was on printouts stapled at the book shop.

Collapse
 
goodidea profile image
Joseph Thomas • Edited

I'm self-taught, and did most of my learning in a very isolated way. I would have benefitted from having more peers at the same level to work alongside with. Now that I am teaching, I see how much my students learn from and encourage each other - I wish I had had that. (I also wish I had had dev.to when I was getting started!)

Collapse
 
hwolfe71 profile image
Herb Wolfe

This was back in the early to mid 90's, so it may not be quite as relevant today, but I really could have used a mentor. I made a lot of poor choices for college courses, both in what I took, and what I didn't take. I didn't know that I would have to teach myself a lot of things, nor where to learn them.

Collapse
 
ebourgess profile image
Elias Bourgess

A mentor or a helping hand to help me start on the right track, since at first I didn't know from where I should start my learning path.

I started hopping from language to language wasting time on them until I got to PHP and built a career out of it.

Also back then I couldn't find the right community to join so that I could learn new stuff the right way.

Collapse
 
derek profile image
derek • Edited

✨Technical documentation

When I first started trying to learn by reading books and technical documentation, it was always quite terse and esoteric. It's not so much the case now due to great platforms such as this, medium, coursera, and other video tutorial services etc that you can supplement the documentation or lack thereof.

But I do wish 🧞‍♂️the evolution of writing technical documentation continues to improve and is a skill people invest and develop as much as writing the code itself. To allow for more efficient knowledge transfers.