10 Tips for Beginner Developers -or- What I learned from Mentoring Interns
I’ve been fortunate enough to be able to mentor people while they take their first steps into programming. This experience has taught me a lot about not only myself, but also about how to smoothen the path towards becoming a developer.
Below, I will try to share the tips I’ve learned from beginners. Things that I struggled with as a junior that I also saw some of our interns struggling with when I was mentoring them.
1. Don’t try to learn everything all at once
From my own experience, I can say that learning to code can be difficult and not just because you have to learn to write code, but mainly because there are so many different technologies out there. Choosing the right one to focus on can be difficult.
Instead of trying to learn multiple languages and/or frameworks at the same time, I recommend just picking one. You can narrow your focus, learn the basic concepts and after you’ve mastered the first one, learning the next (if you need to) becomes so much easier.
2. Take it slowly! Instead of rushing, slow down and try to understand what you’re actually doing
Another thing I did as a junior, but also noticed when mentoring, is the desire to rush. When you receive a task, it’s easy to get excited and start coding right away. You may succeed in this way eventually, in a hack-type way, but 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 don’t have ideas, ask for help from your mentors or research from the internet. This way you can create a logical solution beforehand and more easily turn the idea into a working solution.
Which brings me to another point…
3. Don’t copy and paste the code. If you find a solution online, try to understand it, play around with it and rewrite it!
When you find a solution from the internet, PLEASE try not to just copy/paste it. Believe me, I’ve been gone through this phase in the past where I created various Wordpress websites by 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 not only contained bugs, but I also didn’t learn much…
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 where needed. This way it’s not just an example from the internet but someething you’ve actually written.
4. Timebox yourself
Oooooh boy! I can’t emphasize enough the importance of this point. Timebox yourself when you start something new.
I’ve seen myself doing it and even noticed it during my last project that it’s easy to get lost in time trying out various solutions that just don’t work. I encourage you to try things out yourself first, but a good developer knows when to ask for help. This is why my advice is: whenever you start a new task, create 30 minute time slots. If you see that you haven’t made any advancements during the last 30 minutes, go ask for help.
5. Make a plan before jumping in
Regarding planning and dividing 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, plus you get the feeling of accomplishment whenever a part gets done.
6. Have a side project that uses the technologies you’re using at work
If you’re working as a beginner developer, my advice would be to have a side-project that utilizes the same technologies that you’re already working with. At work, you usually can’t create projects from scratch, but having your own projects at home gives you an opportunity to work with the parts of the language or framework that you otherwise wouldn’t be able to.
I remember when I started out as a professional developer. We were just about to start utilizing Docker and I didn’t understand much about it at all. I decided to create a pet project that utilized Docker, combined with automatic deployment. After that, I was able to have a say in things related to Docker and actually use my newly acquired skills at work.
7. Be humble!
When I think back to when I was pair-programming with my mentors, I remember Sometimes thinking “omg, how doesn’t he know that shortcut or that function” Having now been a mentor myself, I got to see things from the other side. From this I’ve learned how important it is to be humble, because no one will know everything and software development is about continuous learning. You may be more knowledgeable 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 and when possible teach others, but always be thankful!
8. Keep a journal of what you’re doing
Something that I learned from my colleague when he was a junior was to keep a journal or log of what you’ve done and learned. This is a great idea for two reasons — first, it gets you in the habit of writing things down the way you’d understand it later, and second, there will then always be 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, and sometimes it’s just while going for a small coffee break.
My point here is that you don’t have to be working behind the computer all the time to solve problems.. You can still think about problems and figure out solutions even 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 getting rest. This is advice that I struggle to follow as well, but I still strongly recommend you to take regular breaks. For example, you can program for 30–45 minutes and then take a 5-minute break. Doing so is good for both your health and your mind.
Also, lastly, don’t forget to take time for non-programming-related hobbies.