DEV Community

Cover image for  4 Tips I Wish I Knew 10 Years Ago
Anthony Viard 🥑 for Entando

Posted on • Originally published at entando.com

4 Tips I Wish I Knew 10 Years Ago

Hey, fellow developers!

What advice would you give to yourself if you could travel back in time? What if you could leverage your acquired experience? What are the top pieces of advice you would give to any beginner developer?

This is the exercise I tried to do and want to share with you. Great Scott! Let’s go back to the future!

1. Work on the Basics

This advice sounds logical and natural for a beginner in any domain, including IT. However, we do know IT is an exciting world full of distractions. When you start you want to test everything, learn everything, and move forward on every topic at the same time.

What I would do differently is focus on “basic” knowledge, such as learning design patterns, mastering a method of development like Test Driven Development (TDD), etc… I’m not saying I skipped these things, but they’re worthy of a deep understanding.

My tips: Learn the basics, enforce your knowledge. This will help you to be better.

2. Contribute to Open Source Projects

Contributing to OSS is probably the best decision I made in my career. But, I probably should have done it sooner. I know it’s hard to expose yourself and your weaknesses to the rest of the world, but it’s an opportunity to share your strengths and help others.

It was easy to take action once I felt it was time. What I learned is: whatever your experience, your knowledge, your position… you are valuable. You can help communities by sharing your know-how.

What happens if you fail? You realize that making mistakes is the best way to learn.

If I could, I’d contribute sooner than I did.

My tips: Start contributing as soon as possible. Don’t frame it like you can add value to existing projects; you are the value.

3. Avoid Toxic People

I don’t know if I’m a lucky person or if the IT world is mostly kind, but I don’t think I’ve met too many toxic people. My overall experience is a good one, and when I met good technical people I also met a lot of friends.

In my experience, IT people don’t fit the nerd stereotype. I have a lot of good memories of meeting new people, learning from different cultures, and learning from new friends.

However, I also had bad experiences working with toxic people. You know people are toxic when they think about themselves while the team is trying to build a project as one person. You know people are toxic when they put a lot of pressure on you, or don’t hesitate to blame teammates for something that went wrong or when tasks have not been completed in time.

I did encounter people like this and I swear their toxicity can destroy a team’s effort. Unfortunately, I might have lacked the confidence to fight this type of person.

The world is full of kind people. Be close to them. Run away from the others.

My tips: Feel free to claim you don’t want to work with toxic people. Don’t let them put in your mind that you are not good enough or valuable. Enjoy smart and kind people and be the person you want the other to be. Throw away toxicity.

4. Don’t Think You Don’t Deserve It

Several times I felt I did not deserve all the good things that happened to me. In a constantly moving technical world, it’s hard to find our place and understand this one is legit. You can quickly be the trusted person for a given application if you work on it for several months.

You can quickly teach others about a specific technology, framework or tool you worked on.

After 3 or 5 years you can carry a team and be a reference for beginners.

So often I was wondering if all this attention was normal and I was not cheating my colleagues.

I think my main issue was the inability to do some introspection and understand that if people trusted me for a task that meant they were doing it with good reason.

My tips: If sometimes you feel you’re overestimated, know that people trust you for good reason. You deserve the good things that happen because you worked hard for them. We are never totally prepared for new things, embrace them.

Conclusion

I have a gut feeling that all the things I would like to tell myself sound familiar to other developers. However, I also know we all have different stories, different experiences, and we probably give ourselves different advice.

I’m wondering, what advice would you give yourself? Is it the same as mine?

Discussion (31)

Collapse
harryrf3 profile image
Harry Fahringer \|/

One issue I've ran into with contributing to OSS is not knowing where to begin.

I, and most likely others, would greatly benefit from knowing how the actual development process goes from start to finish when talking about larger projects.

Collapse
softmantk profile image
NIKHIL CM

I agree. I also find it difficult to start.

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

I think a good project is a project that helps beginners to onBoard. I understand it's hard to find where to start and, unless there are existing resources like that, it should be good to have a kind of listing of OSS projects where we can start.

Collapse
camco profile image
Camco

This is super helpful.

Regarding #2. I have for so long been wanting to contribute to a open source project, but I have absolutely no idea where to start!

I've been building web applications for the better part of 15 years. I leverage open source software every single day... and I'm kinda embarrassed to say I don't even know where to look to start?

Whenever I come across a repo that I feel is worth working, I often think if it's as simple as asking if the owner is open to pull requests and contribution. As simple as that sounds and it may be exactly what I should do, I thought about it often but never done it.

It'd be nice to hear your input on where to get started.

Great article thanks

Collapse
jamesthomson profile image
James Thomson

Posting this as you and others may find it helpful: opensource.guide

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

good resource overall, thank you James!

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

Thank you John,
I know it's hard to contribute to OSS since you need to find where you can help, and find a community where you feel well.

For several years, I try to break some stereotypes about OSS and try to help people onboard them by contributing (PR, docs, fixes, issues, contents).

If you already know where to contribute, it's good but I understand finding where to contribute could be hard.

It seems what @jamesthomson suggested could help to find projects.

Collapse
renanfranca profile image
Renan Franca

Thank you very much for sharing this!😃

Fot item #1

I would give the same advice as you. In addition to that, I would tell myself to focus on web development and don't get distracted with programming for native Windows Phone, Native Android and iOS.

For item #2

That was my biggest mistake ever, I started only last year! I tried to engage with the JHipster project as a contributor (I made one little pull request), but I don't have the time to code for the project. So I decided to engage with the JHipster project as enthusiastic by spreading the word and sharing my experience using it.

For item #3

That's a problem, especially if you depend on the toxic person's opinion to be recognized by other people because he is your superior.

For item #4

You are such a gentleman Anthony! I have been following your work and you were maybe the first person that interacts with me on the JHipster project ☺

I would tell me to start a blog

I would tell myself that there's no problem in talking about yourself and your success and failure. You are not showing off, you are letting the people know you to engage or invite you to work together or a job opportunity.
My last 3 posts here were annotations that I wrote down in case I forget how to do something or if I need a quick refreshing on a specific technology.

Collapse
avdev4j profile image
Anthony Viard 🥑 Author • Edited on

Hey Renan
Thanks for your contribution.
For #1 and #2 an do agree with you and I'm glad to see people sharing their experience on JHipster and knowing how they are making their apps. We often forget that the first way to help people is just to share our daily work to let them understand how we can leverage from a tool or a framework. Also, it helps the maintainers to be connected with the community and understand the needs.
You can't imagine how many people I saw doing great things, for who sharing was not an option.
Not because they wanted to keep it for themselves but just because they didn't realize it's a good way to support others.
So please, keep going on this way.

  1. I think it takes time to figure out you can be your own captain and make your own decision, especially throwing away these people. Sometimes it's good to be selfish and first think about our well-being.

  2. I can't be happier to know from my little city in France I helped people across the world in Brazil. This is my main reward for being a contributor and content creator. I would like to help people like people who helped me start in this domain. Thanks for sharing it with us!

Last but not least, please continue to write blog posts and share your experience with us. It's a chance for us ;)

Collapse
renanfranca profile image
Renan Franca

Thank you for the insights and for supporting my goals! 💪

Collapse
stereoplegic profile image
Mike Bybee

Re: Blogging - I wish I'd given myself (and actually followed) the advice I give my students and junior dev mentees, to "learn in public" by blogging and/or posting on e.g. LinkedIn.

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

I agree, sharing is a good way to learn and verify if you really understand the concepts you are using. And it helps others.

Collapse
techmaniacc profile image
Joseph Mania

Helpfull

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

you're welcome

Collapse
stereoplegic profile image
Mike Bybee

If I could go back in time, I'd tell myself not to waste years and tens of thousands of dollars on IT and CS degrees, instead devoting that time (and saving that money) on the self-teaching I always ended up doing anyway.

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

Interesting because I've often wondered if I should spend money on passing degrees or just learning by myself. Finally, no courses or degrees here but maybe it is worth sometimes following one or two of them.
However, maybe having too much is not a good solution since we can also leverage our own experience to enforce our knowledge and improve our skills.
Interesting because I've often wondered if I should spend money on passing degrees or just learning by myself. Finally, no courses or degrees here but maybe it is worth sometimes following one or two of them.
However, maybe having too much is not a good solution since we can also leverage our own experience to enforce our knowledge and improve our skills.

Collapse
waqar profile image
Waqar Ahmed

Great article. I need to look for design patterns and open source contributions.

Identify toxic people. Follow the advice of don't react, don't explain and don't engage. It is best to go no contact or low contact if you must.

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

I totally agree with you.

Collapse
omogidi profile image
omogidi

Many thanks for this post.

On contributing to Open source. Im new to AWS, although I have been training for 3months straight. For a beginner, quote me when I say its quite hard to do when you practically have no idea what to do. I checked out open source projects on Github, however, im at loss at where to begin. Another thing I have observed is that these open source projects are not optimized for beginners like myself

Any tips and hacks on how to do this as a beginner

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

I agree with you:

  • Projects are not always optimized for beginners
  • It's hard to know how to start

I would say the best way to start is to contribute to the software you are using daily. Because, you have the opportunity to understand what happened, and as a user, you have the best role to help the project to be still relevant.

@jamesthomson shared that website with us previously, you should have a look: opensource.guide/how-to-contribute...

Collapse
sohinip profile image
Sohini Pattanayak

So well defined. Thank you for sharing your ideas. One must surely be helped by these :-)

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

Thank you!! I hope it help people to be confortable in this IT world

Collapse
edgaarcruz profile image
Edgar Cruz

thanks, i need to put on practice your tips!

Collapse
avdev4j profile image
Anthony Viard 🥑 Author • Edited on

Feel free to let you know how it's going, on Discord (discord.gg/yrZfhEeUSY) or on Twitter ;)

Collapse
aquadrehz profile image
AquaDrehz

Agree.

Collapse
kazi94 profile image
__KaziWhiteSalafiDev

Thanks for sharing !

Collapse
nenad_cvet profile image
Nenad Cvetković • Edited on
  1. is to me the most important. Going deep and more deep is extremely important for understanding why something works or doesn't work. So crucial for planning architecture of systems.
Collapse
avdev4j profile image
Anthony Viard 🥑 Author

One thing I would to add (and I forgot) is to learn to debug software. It helps to dive into the code details and understand what is going on when you are struggling with a task.
I saw so many beginners that were not able to debug or did it in the wrong way.
Maybe we don't learn it enough at school but I feel it's a really important skill to have and it helps to go deep as you said.

Collapse
booboboston profile image
Bobo Brussels

Good article, thank you.

Collapse
chacalonchacaloso profile image
Paul Cortes

"What happens if you fail? You realize that making mistakes is the best way to learn.". I think that it's the better phrase. thanks so much, this article helpme so much for reflexion

Collapse
avdev4j profile image
Anthony Viard 🥑 Author

Thank you @chacalonchacaloso
every time, everywhere I'm trying to follow this idea. I'm trying to explain to my children that failing is the normal process of learning.
Failing is not something we want to do, of course, but when it happens we should always try to figure out what we can extract from that experience.

So don't be afraid to fail, it's just normal, when it happens analyze what you've learn from that, then try again ;)