DEV Community

Cover image for Top 10 Tips for Self-taught Software Engineers from 20+ Coffee Chats
Sophia Li
Sophia Li

Posted on • Updated on • Originally published at

Top 10 Tips for Self-taught Software Engineers from 20+ Coffee Chats

I started my self-taught software engineering journey four months ago. Since then, I’ve gone on over twenty coffee chats with software engineers. I invite folks to coffee chats to learn about their journey, hear their thoughts on the industry, and to ask for advice on becoming a self-taught software engineer. These tips are tried and true. I've applied each of these tips throughout my learning journey.

These are the top 10 tips for self-taught software engineers from 20+ coffee chats:

1. Build projects, any projects.

Get out of tutorial hell, especially in the early stages of your learning. Once you've built a couple of mini projects, apply your knowledge to solve a problem that's interesting to you.

2. Document your projects well.

Recruiters and hiring managers will look at your projects. Write good documentation to help them quickly understand what you’ve built, why you built it, and how you built it. Here’s a guide on writing a thorough readme.

3. Pair program.

Practice collaborating with other developers, explaining your thought process out loud, and speaking technically. This will help prepare you for interviews and real world work.

4. Build a community.

Go to local meetups and conferences to meet people in the industry who you can learn from and also learn with.

5. Teach others.

You learn better by teaching others. Teaching a concept, even if you're not an expert, is a great way to identify gaps in your own knowledge, test your understanding, and deepen your understanding of the topic.

6. Stand out.

There is a sea of junior developers. Show your personality and how your unique perspective will bring value to the team.

7. Determine the right type of role for you.

Do you need structure? Can you create structure out of chaos? Is mentorship a strong requirement for you? Can you dive right into the weeds without structured support? These are some questions to reflect on to help determine if you should look for an internship, apprenticeship, or a full-time job.

8. Understand your "why".

Why do you want to be a software engineer? Your answer to this question will be your North Star. Your North Star is what’s going to guide you and keep you motivated even when you face rough patches.

9. Hustle!

Being a self-taught developer can be hard. Imposter syndrome is real, but know that you can and you will move forward. You're going to go the extra mile to network, keep learning, and crush all the interviews.

10. Take care of your mental health.

Mental health is important. Schedule time each week to do at least one activity that brings you joy. Don't burn out.

Huge thanks to all the folks who have shared their learnings and advice with me. I hope these tips help you on your programming journey. Remember to find your North Star, keep building, and keep on going!

What's your tip to aspiring software engineers?

Photo by

Discussion (15)

arvindmehairjan profile image
Arvind Mehairjan

Great article! Documentation is definitely an important aspect that one you should know.

For writing a good ReadMe.txt for your project, I use this template:
It's quite handy and straight forward.

skyandsand profile image
Chris C


Thanks for the post. Great advice and although Mr. Chris here isn't necessarily an aspiring software engineer, I can apply the same guidelines. You have the pillars you need to build the career path you want! Keep it up :)

zaynaib profile image
Zaynaib (Ola) Giwa

When you are building projects have fun and follow your interest. I feel like people get burnt out doing to-do list or a project that looks good just for the sake of putting it on your portfolio. You learn more when you are having fun. And as long as you can articulate how this project relates to a potential employer you will be fine.

sophia_wyl profile image
Sophia Li Author

Great tip. Thanks, Ola!

nineismine profile image

My best advice is "Don't just train by listening to material" find things that you want to accomplish and then use google/ training to learn the concepts required to built it.

I find general training to be better when I am filling in gaps, not trying to learn a complicated subject.

sophia_wyl profile image
Sophia Li Author

Agreed, 100%!

around25team profile image

Couldn't agree more with no.4. You can learn a great deal on your own terms, but you can only improve leaps and bounds when someone experienced and disinterested is by your side.

We have a small local developer community and almost all speakers we invited stressed on the fact that nowadays it really is not that hard to get a mentor (you can connect at meetups/conferences, reach out on twitter/linkedin etc).

And something else we found particularly important is that devs keep the self-taught mentality for all their careers. If possible :) This is an example from one of our engineers who learned to train their own machine learning model:

sophia_wyl profile image
Sophia Li Author

I agree, software engineering is a field that keeps evolving and engineers need to keep up with new and relevant technologies! A growth mindset is important to have in this field.

brunonp_ profile image
Brüno 🤠

Thanks Sophia, I'm complementing my study at university and the study in home about stuff related to software development, so your article suits me. Thanks!

davekoder profile image

Presented brilliantly... More of these advises please =)

maelingcodes profile image
Maeling (she/her)

Thanks for sharing this Sophia! Great tips to have for my journey!

madza profile image

Less is more (sugar in coffee, i mean) :)

godswillazubike profile image
Godswill Azubike

Nice piece Sophia,
Something that I have found to especially important is practice meetups and deciding your nich, if it's front or back end, maybe fullsack.

stephqqmore profile image
Stephanie K

Thank you Sophia!! Well written and concise. :)

abdulsalam profile image
Abodunrin AbdulSalam

Great post! I really learn alot from this.