DEV Community

Cover image for 10 tips for beginner developers - things I learned by mentoring interns
kethmars
kethmars

Posted on • Updated on

10 tips for beginner developers - things I learned by mentoring interns

Sooo... I just created a new Youtube channel (yikes) called Developer Habits. The main topics discussed in the channel are growth mindset, developer lifestyle and technical tutorials.

The first video is about tips for beginners. It's mainly about the things I struggled with as a junior but also saw our interns do when I was mentoring them.

That said, feel free to check out the video(and subscribe???) or just go through the list below:

1. Do not try to learn everything at the same time

From my own experience, I can say that learning to code is hard. Not because you have to learn to write code, but mainly because there are so many different technologies out there. Choosing which one to focus on is hard. First, you have to choose a language. And then you have to choose your go-to libraries. For example in FE Javascript ecosystem, we've got tons of decent libraries like React, Vue, Angular. They can all be used for the same goal. In the end...it doesn't really matter. They all can be used to get the job done.

So instead of trying to learn multiple languages and/or frameworks at the same time, just pick one. You can narrow your focus, learn the basic concepts. After you've mastered one, learning the next one(if you need it) becomes so much easier.

2. Take it slowly! Instead of rushing, take it slowly and try to understand what you're actually doing.

Another thing I did as a junior but also noticed when mentoring the interns is rushing. When you get a task, it's easy to get excited and start coding right away. Probably you'll succeed, eventually. In a hackish way. Based on my experience, you should instead grab a sheet of paper and start thinking about how you'd approach the task. In case you've got no ideas, ask help from your mentors or research from the internet. This way you can create a logical solution beforehand and turning the idea into a working solution becomes much easier.

Which brings me to another point...

3. Don't copy and paste the code. When you find a solution online, understand it, play around with it and rewrite it!

When you do find a solution from the internet, PLEASE do not copy-and-paste it. Believe me, I've been through the phase where I created various Wordpress websites sites just by copy-pasting different parts of code together. I got the work done, but the quality of my code didn't tolerate any criticism. It contained bugs and I didn't learn much...
So my advice in case you find a working example - go through it line by line, understand it and then rewrite it, adding your own modifications to it. This way it's not just an example from the internet but actually something you've written.

4. Timebox yourself

Oooooh boy! I can't emphasise the importance of that point. Timebox yourself when you start something new.

I've seen myself doing it and also noticed it during my last project that it's easy to get lost in time and try out various solutions that just don't work. I do encourage you to try things out yourself before, but a good developer knows when to ask for help. And that's why my advice is: whenever you start a new task, create time slots of 30 minutes. If you see that there haven't been any advancements during the last 30 minutes, go ask for help.

5. Make a plan before diving in

Regarding planning and chunking your tasks, just a simple and easy-to-follow tip - convert your task into small chunks. This way it's easy for yourself to follow what you're doing + you get the feeling of accomplishment whenever a chunk gets done.

6. Have a side-project that uses technologies you're using at work

If you're working as a beginner developer, then my advice would be to have a side-project that utilises the technologies you're using at work. Usually, at work, you can't create projects from scratch, but having your own projects gives you an opportunity to work with the part of the language/framework that you otherwise wouldn't use.

I remember when I started out as a professional developer. We were just about to start utilising Docker. I didn't understand much what it was all about. But then I created a pet project that utilised Docker combined with automatic deployment. After that, I was able to have a say in things related to Docker and actually use my skills at work.

7. Be humble!

I remember when I was pair-programming with my mentors. Sometimes I was thinking "omg, how doesn't he know that shortcut or that function"...Having been a mentor myself now, I got to see it from the other side. And my takeaway from that is - be humble because no one will know everything. Software development is about continuous learning. You may be more acknowledgeable about the latest small tricks/methods than your mentor. But that alone doesn't make you a great developer. Development is much more about communication, architectural decisions and software design than it is about small syntax shortcuts.

So...be humble. When possible, teach others but always be thankful!

8. Keep a journal of what you're doing

Something I learned from my colleague when he was a junior - keeping a journal or log of what you've done and learned. A great idea for two reasons - firstly, you have to write things down the way you'd understand it later. But also, there's always a reference for how you've solved problems in the past.

9. Get away from the computer.

I can't count the times I've come up with solutions for my problems while I'm doing something completely unrelated to programming. Sometimes it's when I wake up, sometimes it's when I've gone jogging. Sometimes it's just I go for a small coffee break.

My point here is that... You don't have to be working behind the computer all the time. You can still think about the problems while being offline.

10. Have a rest! You'll be more productive and remember things better that way.

The previous point naturally leads me to the importance of having a rest. Something I myself struggle to do, but...I strongly recommend you to take regular breaks. For example, you can program for 30-45 minutes and then take a 5-minute break. Believe me, it's good both for your health and mind.

Also, don't forget to take time for non-programming-related hobbies.

Discussion (12)

Collapse
0x12b profile image
Simme

I could not agree more with point 3. I've taken it to such "extremes" that when I instruct a class, I only provide them screenshots of the code examples, to force them to at least copy it by hand if they want to copy, thinking that hopefully adding some additional keystrokes in the target technology at least won't hurt.

Collapse
kethmars profile image
kethmars Author

Oh wow. Can I ask where do you instruct?

But I like the idea of creating screenshots instead of giving actual code. It's a forced good and I assume the code snippets aren't so long either. Has it helped?

I'm also planning to make a video about my journey as a freelancer before joining a professional company. I was the kind of guy who just copy-pasted everything together but in the end, didn't really understand what I'm doing.

Collapse
0x12b profile image
Simme

It varies a bit actually, but mostly on companies. I think it helped, though some students have whined about having to type it. πŸ˜…

Collapse
joellau profile image
Joel Lau

Great tips! I just started working in a new company, had to pick up a new stack, but this is 100% applicable.

on a separate note there might be a minor typo in point 7:
"You may be more acknowledgeable ..."

Collapse
kethmars profile image
kethmars Author

Thanks Joel!
Based on your experience, is there any more advice you have for people who have to learn new stack?

Collapse
trippymonk profile image
Blake Stansell

All great points. #1 is extremely relevant to absolute beginners. When I first started, it was "obviously I need to learn HTML/CSS". Then you want to make interactive areas, so JavaScript is a must. "You know, I'd like to have an email list on my personal site", so here comes NodeJS/Express/SQL. "Everybody seems to be using GitHub, better learn Git."

And once you get a little bit of momentum, "hey if I knew Wordpress well enough I could maybe make some money doing this!" So here comes Wordpress/PHP.

It takes real discipline to pick a technology/language and stick to it until you know it well.

Collapse
kethmars profile image
kethmars Author

Thanks for your kind words!
I get you. When learning FE Javascript, I was torn between different libraries. Then I needed to learn Node, but again, so much new knowledge that in the end, I didn't understand neither FE nor Node properly.

I guess if you know one thing well, including the fundamentals, learning other technologies become easier too.

Collapse
hinasoftwareengineer profile image
Hina-softwareEngineer

Amazing tips. As i am beginner, i really need this. Great. Hope for future Articles from you.πŸ˜ƒπŸ˜ƒ

Collapse
kethmars profile image
kethmars Author

Hey! Thank you :) and good luck! Make sure to follow my Youtube channel as I'm definitely planning to publish more content there, targeting beginners. I've been through the hassle and know it can be hard, but it's totally doable :)!

Collapse
hinasoftwareengineer profile image
Hina-softwareEngineer

Yeah of course.

Collapse
eduluz1976 profile image
Eduardo Luz

Great tips, @kethmars ! I agree 100% with each of your advices.

Collapse
kethmars profile image
kethmars Author • Edited on

Thanks, Eduardo. It means a lot coming from someone with your experience!