Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
October 3, 2020 10:13 pm GMT

Lessons for beginners and junior developers after 11 years of coding

I initially wrote this as lessons for beginners and junior developers on Reddit and it blew up with over 50 awards. So I've decided to upgrade parts of it based on people's reactions.

Some of these are things I wish I knew at the beginning of my journey as a Software Developer so I could stress less.

Let's get to it.

All tutorials are not created equal.

Imagine yourself as a lab rat.

As you learn and experiment, pay attention to the kinds of tutorials that work for you. Many will not work. Thats fine. In fact, thats exactly how experiments work until you find a solution.

But the moment you strike gold, stick to it, consume it voraciously and then find similar tutorials like that to continue rapid growth.

coding-on-a-mac.jpg
Photo by Christopher Gower on Unsplash

When I started, I used to bang my head against Head First Java, the book. But after studying for many hours, I just wasnt getting anywhere. Yet, everyone online said it was the best programming book ever. But TheNewBoston youtube tutorials did it for me back then even though people don't recommend him anymore.

I wish I could say this stopped after my 1st year.

Fast forward 2 years down the line when I started learning algorithms and ALL the blog tutorials I followed just didnt make sense until I watched Youtube videos on Hungarian folk dance teaching algorithms.

And it just clicked.

Since then, my approach to learning has been to learn the same thing from multiple places until I find the instructor and style that works for me.

If youre not practicing with a project, nothing goes into long term memory

Youll forget a lot of things.

Deeply understanding this will change how you learn.

I cant count the number of times I took Introduction to Python Programming on Udacity, Coursera, etc and still forgot everything.

Its so annoying.

But Ive since learned that youll forget anything you learn in isolated exercises because they are stored in short term memory. Neuroscience research shows that this is just how the brain works.

If you dont want to forget, test your knowledge using spaced repetitions. To do this, build projects.

Ill give you a concrete example: len(myList) will give you the length of a list in Python. Youll learn this in Udacitys intro course.

Come back a month later and you might not remember if its len, length( ) or myList.size( ).

But with spaced repetition through a project, the outcome is different. For example, you work on a 2-month long Django app for new coders where you need to count multiple times the number of users, the number of exercises done, the number of chats, etc. Imagine doing this throughout the span of the project, for two months. its hard to forget what len( ) does.

This is a trivial example, but hopefully you get the idea.

New learners can start with simple, isolated examples.

But if youre not practicing within the scope of a project that makes you use and reuse what youve learned, nothing is going into your long term memory; its all short-term. And youll forget.

Work within fear; not against it.

Ill admit: this one is easier said than done.

But you have to master this if you want to last long.

Theres this temptation to fix your fear first before you continue to learn. Unfortunately, it doesnt work like that.

In fact, youll spend a lot of time trying to make your fear disappear that itll only double your anxiety. You have to find a way your way to acknowledge that youre afraid, and frankly will continue to be afraid for a long time, then work within that realization. No need to fight it.

Sometimes, this fear disappears as you become more proficient.

Other times, it vanishes for a while and comes back when you get into a new environment, work with smart software developers, or move to a completely new stack.

Its okay.

If you want to progress as a software developer, you have to remember:

This IS the life.

Its a sinusoidal wave endlessly going up and down. Dont take it too seriously or youll lose yourself.

Consistency > hard work.

Consistency is king.

When you start learning, you lay down neural pathways that make it easier to retrieve information. According to Neuroscience research, these pathways only get strong through frequency of use, not just intensity.

This means 30 minutes a day, for 5 days a week is way better than 2.5 hours one day, only once a week.

Same hours; Different impact.

Dont just work hard, apply wisdom here.

Talent = hidden practice.

Its easy to dismiss progress as talent.

My first programming class was in C++ and my classmates refused to believe I had never coded before because I was just-so-talented.

But what they also refused to accept was that right after class, I would spend five hours typing cout << this is my first program, realize it didnt run because I forgot a semicolon; retype it and realize it didnt print out my statement on a new line because I didnt add endl.

This deliberate practice built perceived talent.

Talent is sexier than hustle so no one wants to hear that you worked hard and got here. Just tell me you were born this way - its more believable.

But becoming a proficient software developer is like playing an instrument.

talent-vs-hustle-chart.png
Talent vs. Hustle - The majority of us mostly hustle our way through it.

Only a tiny few are born talented.

The majority can only get as good as the amount of practice they put in. And you can immediately tell a student hasnt been practicing the moment they sit at the keyboard.

Youll meet a**holes!

Every field has its dose of horrible people.

No doubt.

But Im not sure what it is about software dev that attracts a**holes in droves. Maybe because coding gives the feeling of having a super-power or a rare skill. If youre a newbie, youll meet those whove been coding for years and think no one else should come in.

A windows developer only? Youll meet linux fanatics that think youre mediocre.

If youre a woman, youll immediately be dismissed because of your gender. I know this from personal stories from colleagues over the years.

If youre a minority, youll meet people who think you should only fetch coffee; not code.

If youre coming from another field (particularly not STEM), youll meet people who automatically make themselves gatekeepers of the programming community.

We dont want social scientists here; were purists!

Theyre online.

At work.

And sadly sometimes in your family.

Its not if youll meet them, its when.

Learn to move on.

Things are getting better but theres still a lot to do to educate people.

But dont let this deter you. Build your resilience so you dont quit after you meet these people.

And when you get to the top don't be an a**hole!

Master 1 thing.

New developers tend to jump around learning a lot of things.

Okay, its not just new devs; its also experienced folks.

You learned React for one week.

Then JavaScript for two weeks.

Laravel for three.

Stop.

You need to wake up and realize that the harsh truth is that youre simply extending the time itll take you to truly learn anything.

If one is a master of one thing and understands one thing well, one has at the same time, insight into and understanding of many things. - Vincent Van Gogh

Pick one thing.

Stick with it for a few months ideally 6 to 12 months before you move to something else.

This has two benefits:

  • Youll go deep enough and hit critical mass that moves you towards mastery.
  • After you master one domain, you can transfer knowledge to another. Learn Flask and you can easily walk into Django. Learn React deeply, and you can quickly identify the pros and cons of Laravel within a few days.

This doesn't mean learn HTML alone for six months then only CSS for 1 year; rather, it means don't mix up learning Django, with Express, then React, some Gaming Development, and iOS.

You might get a lot done in a short time.

But you'll master nothing!

Software development is an ever evolving field.

Its exciting.
Its frustrating.
Its intimidating.

But if I had to, Id do it all over again.

Thanks for reading spread the word!

Phew! Did a lot of reflection and lots of hours to put this together.

If you enjoyed it and you're on Twitter, like and retweet this to help spread the word. I know it sounds trivial but it actually really helps.

Check out other articles on LifeTechPsych you may find something else you like.

What's Next?

Im trying out a new initiative to help new coders and junior devs feel less overwhelmed, manage imposter syndrome and learn smarter.

To be honest, Im not sure what the entire process looks like yet. But Im going with the flow and putting together resources and write-ups based on what people need the most help with.

If youre interested, let me know on Twitter. If you prefer sending a direct message, my DM is open.

Heads Up - I love research so I tend to back my advice and approach with concepts from Behavioral Psychology and Neuroscience.


Original Link: https://dev.to/lifetechpsych/lessons-for-beginners-and-junior-developers-after-11-years-of-coding-mej

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To