DEV Community

Cover image for It's Never Too Late To Learn: 3 things my 11yo taught me about coding

It's Never Too Late To Learn: 3 things my 11yo taught me about coding

Nitya Narasimhan, Ph.D on August 04, 2020

Recently I wrote a couple of spontaneous threads on Twitter that became the most-viewed of my posts in over a decade. They focused on learning. The...
Collapse
 
ruannawrites profile image
Ruanna

Absolutely love this! I can definitely relate to the "it's never too late to learn" theme. I have a background in education (elementary teacher), but love writing and am passionate about diversity in tech and tech for good. After five years of teaching I decided to make a career change and learn all about digital marketing, content writing, and content creation. Now I'm working in dev relations at a company I <3 and continue to learn new things every day!

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

OMG that is incredible - and congratulations! Contnet creation and digital marketing are both high-value areas for developer relations and I have the biggest respect for educators, so I can absolutely envision how your teaching background will be such a huge benefit when creating content that helps others learn tech.

Thank you for sharing. I hope you write a blog post about your journey and share it as well - I know many folks looking for inspiration around career changes and this is perfect!

Collapse
 
ruannawrites profile image
Ruanna

Thanks so much! That means a lot!

I wrote a post about some tips for changing careers and sustaining yourself on the job search journey on LinkedIn back in January, and just revamped it and posted it here on DEV! I'm planning on writing another one as a follow-up – thanks for the motivation and inspiration! :)

Thread Thread
 
nitya profile image
Nitya Narasimhan, Ph.D

Woot. I am off to read the post and amplify it ♥️ anytime. I think this is exactly what Community is about. Helping and learning from each other, and sharing that with others

Thread Thread
 
ruannawrites profile image
Ruanna

Awesome, much appreciated! I fully agree 😊

Thread Thread
 
ruannawrites profile image
Ruanna

FYI - I decided to go deeper with my original article and make it into a series, elaborating on each of the 5 things that helped me make my career change. Thanks for the inspiration! 😊

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️
  • Use functions to abstract complexity so code was readable
  • Use print + interactive runs to test & validate assumptions
  • Make the basic idea work before layering on complexity

Those are three very valuable lessons for any new programmer. Specially the last two!

Two many programmers start hacking stuff together until they feel they have reached some goal; then they try running it and nothing works because a bunch of assumptions were wrong and it's now very hard to debug the whole construct.

I was once helping a friend over screenshare and after every line of code I was like "Dude, why aren't you running it to see if it works so far?" and it took quite a lot of effort to get him used to not just run the program after completing a whole 30+ line function.

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

I know - there is a lot we need to change in tech about "perceptions" of what a good programmer or coder is. I know folks who believe that good coders are those who can reduce code to 1 line of dense (unreadable) semantics in the name of efficiency, and who think knowing all the available debug tooling and being a power user is the key.

It's not.

Like everything in life, programming is about adapting to context and personalizing to preference. And being able to have short, fast, "iterate-test" cycles is key to agile development. And print statements are still the most common way to validate your thinking and keep making progress. Tools are awesome too - and everyone will get to the point where they will use the right tools for the right job and it's okay to get there in your own time.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Lately, I've seen quite many people defend print statements for debugging because they're dumb, but they get the job done and I really think they're missing the point.

Print statements are the most versatile debugging output available; they can communicate every last bit of information that is programmatically available from a given state of the application, whereas "advanced" debugging features, while often incredibly useful, provide a much narrower insight into certain aspects of the state of the application.

But even beyond debugging, printing some meaningful application state can help, as you said, to validate the programmers assumptions. Validating your assumptions in short implement-validate-fix-cycles helps in detecting both bugs based on technicalities (typos, syntax, etc.) as well as those based on incorrect assumptions (wrong order of arguments, less information returned from a function than expected, etc.) and, in the latter case, can prevent spending much more time chasing down a path that, as it later turns out, doesn't work because it only works for an incorrect assumption (like wanting to use information that an API just doesn't provide, etc.)

Thread Thread
 
nitya profile image
Nitya Narasimhan, Ph.D

"Print statements are the most versatile debugging output available;"
I couldn't agree more - and it is definitely one of those hills I am willing to die on. I think there is a reason we all "print Hello World!" as the starting point for every new learning journey.

Thank you for this!

Collapse
 
thorners55 profile image
Stephanie 🌞

This article is great. I love how enthusiastic your son is, and how you're enthusiastic about learning with him.

It also strikes me quite personally - I wish I had had someone there when I was younger to encourage me to go from tinkering with code into actionable learning, as your bio says. As an 11-13y/o, I started to tweak my MySpace profile's HTML and create some personalised Bebo skins. I was good at it and enjoyed doing it, but never realised it was possible to do more than that, or that I was capable of it. As an adult, I realised I COULD, so jumped straight into a coding bootcamp, which I recently completed and loved it.

It makes me feel so good that there's someone out there helping people find this path! Thank you for sharing this story!

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

Thank you so much!!

And I agree. Not just as a parent but as someone who looks back on her childhood and thinks "what if I had started learning this then?" And I absolutely appreciate what you say - I try to give back as much as I can. But I also know my 11yo has privileges that other kids don't and I hope that by us all sharing stories, other parents realize how much their kids are capable of as well.

The truth is that kids emulate parents and the adults they observe around them. All the time. And they are made for curiosity and play. If we see them and appreciate their efforts, they can (and do) flourish.

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

I think there is always a generational change - mobile phones went mainstream in the late 1990's but the generation that grew up then takes them for granted. Similarly I think the current generation of kids is born digital - they own phones, have computers in every school, read books and submit assignments online, and play games across 5 different platforms. And because of that, they see the environment differently almost as a toy they can hack.

Programming - if seen as digital puzzle solving and fun creative activity - is a good thing for kids. However, I am aware that having young kids get too much screen time is bad - so I absolutely encourage my 11yo to sketch out problems, read more books, play board games and do all the things that build problem solving muscles without having to be online always.

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

Thanks so much . Bengaluru is one of my favorite places in the world .. love that you have a WhatsApp coders group. Unfortunately I don't have an account there but if you have a dev.to Community or series of posts let me know and I'll be happy to share

Collapse
 
tutrinh profile image
Tu Trinh

Love this story. Cultivate and Create.

Collapse
 
nitya profile image
Nitya Narasimhan, Ph.D

Thank you so much! I appreciate it!