DEV Community

Cover image for How to keep learning to program, over and over again, forever.

How to keep learning to program, over and over again, forever.

Ben Halpern on September 24, 2017

There is an impassioned debate in the programming community about whether the right way to teach and learn this craft. It's probably been going on ...
Collapse
 
jaydeflix profile image
John Eddy πŸ³οΈβ€πŸŒˆ

So, here's where I land on this, because I'm in a major roadblock right now.

I'm a self-taught programmer. I've had maybe one or two actual classes, but most of the programming I've learned has been on the fly while doing technical support, starting with VB (really got into that supporting MS Access). I learned C# because I wanted to learn something new when I had the need to write a quick app.

Through it all, I never really learned the basics, so to speak. Terminology, the right way to do things, that's where I got stuck. So I remain in this middle ground where, today, I want to learn JS.

I'm not starting from scratch, but I'm also not in the 'JavaScript for C# developers' audience.

I'm in that JavaScript for Hobbyists Who Taught Themselves to Code For Fun audience.

Almost every single 'Hello World' is written to such a level that it's disheartening to be sent back to kindergarten. Imagine telling a singer 'Okay, you want to learn how to dance? Let's start with how to keep a beat.'

I recently tweeted "I need something between Javascript for Newbs and Javascript for C# developers. something like 'Javascript for self-taught hobbyist programmers." and was almost disappointed that I didn't even get spam answers. I mean, not disappointed but am disappointed.

The thing with JS is... If you don't count rudimentary HTML, I'm a desktop coder. I haven't even managed to grok the whole JS ecosystem yet. Node? TypeScript? Angular?

And it isn't like I have a specific goal in mind apart from being able to create new and interesting things on my websites. I'll admit, this lack of a solid goal is part of my problem. This is legitimately the first time I've wanted to learn a language to be able to use it to do things rather than wanting to do something so needing to learn a language.

Lastly, I'm not sure why I'm leaving this as a comment. It feels more like a blog post or confessional.

PS I hope that recent twitter link to here got you some extra permanent traffic. =)

Collapse
 
ben profile image
Ben Halpern

I recently tweeted "I need something between Javascript for Newbs and Javascript for C# developers. something like 'Javascript for self-taught hobbyist programmers." and was almost disappointed that I didn't even get spam answers. I mean, not disappointed but am disappointed.

This would make for a decent dev.to #discuss thread if you want to take this to the community πŸ™‚

Collapse
 
jaydeflix profile image
John Eddy πŸ³οΈβ€πŸŒˆ

Once I figure out UWP for this side-hustle I'm on right now, I might do that. I can't imagine I'm alone in the particular level of knowledge/method of learning, but I'm just surprised there isn't more stuff geared towards the "We believe you're smart, so we're not going to teach you how to start an IDE (but we will have a link to show you what type of project to start in case you need it)" type.

Thread Thread
 
nickdex profile image
Nikhil Warke • Edited

I too experienced this early in my career.
There are lots of bootstrap tutorials, lots of advanced/specific tech tutorial, but very few intermediate level.
I found that simply picking a use case (todo list/calculator etc) and going through research -> develop -> test cycle helps bridge the gap.
Duckduckgo, SO, Medium and ofcourse dev.to will be your constant companions
Edit - Definitely check out Freecodecamp for web dev. They have broken knowledge into small (2-5min) modules so you can mix-match what you want to learn

Collapse
 
giorgosk profile image
Giorgos Kontopoulos πŸ‘€

@jaydeflix you can learn the language (modern javascript that is) using this as a guide javascript.info/ and its very well organized. Play with the examples and modify them on your own machine to get a better understanding.

Collapse
 
maxwell_dev profile image
Max Antonucci

I definitely agree with all of this. So much time I've spent trying to figure out exactly what to learn turns out to have been wasted, since most of that energy could be channeled back into just experimenting and learning more.

Don't get me wrong, setting priorities is important. But not to the point where it's paralyzing and it stops you from getting a balance of short and long term goals. For me the simplest and most effective way to quickly do this is ask "what could I improve most in my workflow?" In a blank I was learning more Rails, since it's used often at my job, and playing around with Vue, since I wanted a simpler JS framework for small ideas and experiments. I don't know if they're the absolute best things to learn for me right now (could be React instead), but they get me the most excited to learn more, and that matters more.

I also agree about learning your way around roadblocks. I'm a junior dev where I work, but I'm getting to the point where I'm about to ask a colleague for help, and most times I stop and realize I can figure it out myself with some extra digging and research. That's honestly helped the most with feeding my passion, knowing I'm getting better at teaching myself broader topics. And that's going to keep me going through my whole career :)

Collapse
 
ben profile image
Ben Halpern

This issue resulted in major grief and frustration, but oh my god did it force me to learn a lot all at once. Looking back at all the times this sort of thing has happened and how to take that attitude into the next issue makes me feel pretty great.

Collapse
 
ben profile image
Ben Halpern

It's all about getting back on that bicycle. 🚲 Hope somebody finds this helpful. At some point in the future you're going to look back and realize how far you've come. I really don't think this ever goes away as long as you stay interested.

Collapse
 
vincecampanale profile image
Vince Campanale

I needed to hear this...I started coding about a year ago and have been programming professionally since March. Up until now, it's been a pretty linear learning process -- not effortless, but the spiral has consistently moved upwards. About a month ago, I felt like I hit a plateau. I've been trying to "double-down" but the plateau is real. The last thing you said about the process taking years makes me feel hopeful. If I keep pedaling, I'll eventually start moving uphill again.

Collapse
 
ben profile image
Ben Halpern

There have been so many times along the way I felt like I had plateaued and I had no idea if I'd ever work my way out of it. I always did, usually without even really realizing it.

Collapse
 
ghost profile image
Ghost

...or learn how to make passive income)

Collapse
 
ben profile image
Ben Halpern

Passive income just means less time pressure to master these machines 😁

Collapse
 
rpalo profile image
Ryan Palo

I used to stress out that I was not focusing enough on a specialty, and was constantly jumping from thing to thing. Focusing is good to a point, but at a certain point, your free time is your free time and if you want to take a day to mess around with Haskell or something, don't feel bad about it! Some days you are allowed to Treat Yo Self!

Collapse
 
ben profile image
Ben Halpern

Absolutely. My worries are usually the opposite, that I'm not exploring widely enough. Either way, they are mostly unnecessary worries. Progress happens when you stay enthusiastic about craft, no matter where you put your focus.

Collapse
 
nhitze profile image
Nils Hitze

The list of my open Tabs tells the same story ;)

Collapse
 
ianandhum profile image
Anandhu Manoj

You are absolutely right!!

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis • Edited

he process takes years and you cannot rush it.

This is very true. You simply cannot rush it.

Collapse
 
ben profile image
Ben Halpern

I'm very much at peace with this, but it was frustrating for a while. I really didn't want to be a newbie any more. I'm not complacent, but I'm trusting the process more than ever. When I see other developers struggling, the advice is to keep putting the work in and the "aha" moments will come more consistently.

Collapse
 
avikaminetzky profile image
Avi Kaminetzky

The idea that learning to program is iterative, and takes place over extended periods of time through deliberate work, resonates with me.

I am very conflicted about junior devs who aren't exposed to "raw" programming skills like algorithmic thinking, SQL queries. Most companies interview with a "first principals" approach and dig into the basics of programming. Many of us are using frameworks and ORM's, and although we may have had some exposure of the basics, I don't think standard interviews test for our knowledge.

Would it make sense to practice algorithmic thinking, SQL, etc, simply for interviews, even though the relevant knowledge will be learnt over time?

Collapse
 
aidanharding profile image
Aidan Harding

Great points! I think an important part of this is accepting that you will write bad code in the learning stage of a new area/language.

If you're an experienced developer, it's quite hard to let yourself write stinky code. But, if you're working in a new language and you don't know how to make it right, stinky code is inevitable. It's part of the learning process. And having the humility to write it, then learn from it, is a vital step in keeping your learning going throughout your career.

Feeling like you're too experienced to write junk can be a source of paralysis and sap at the mojo. Really, it shouldn't be. We need to remember to learn like children, scientists, et al.: by making lots of experiments and not always considering code to be the end product.

Collapse
 
bgalvao profile image
Bernardo

"For as many people as there are trying to lift you up and cheer you on, there are also the ones that want to tear you down. It's probably not a conscious effort on the part of these types. It's probably out of subconscious insecurity or projection, but those types exist."

words of a wise man :D

Collapse
 
albertogarrido profile image
Alberto Garrido

I am very relief to see that everybody has/had the same concerns than me. I usually am overwhelmed with the amount of things there are "to learn" and I was doubting even my capacity to keep up.

Collapse
 
petivagyok16 profile image
Peter Palocz • Edited

As an autodidact front end developer i find this article really helpful and encouraging, thanks! :)

Collapse
 
nektro profile image
Meghan (she/her)

Programming is a never-ending series of aha moments until you look back and you realize that you're an experienced developer.

Collapse
 
dominusx profile image
Dominus

Thank you very much, you gave me motivation to keep going in the specialization despite my bad grades, i know i can do it but eventually that is...

Collapse
 
hawicaesar profile image
HawiCaesar

I think you putting the point of "You Own Your Own" Learning...YOYO!!

Collapse
 
obaino82 profile image
Obaino82

Thanks alot for the advise

Collapse
 
hacker4world profile image
hacker4world

That's a great blog, thanks for the advice

Collapse
 
heyamjoe profile image
Joe

Hey. Great piece Ben, it's really spoken to me. Thanks.

Collapse
 
ben profile image
Ben Halpern

So glad you liked it, Joe!