DEV Community

Cover image for Stuff I wish I'd known ( before those 4 years of programming ) - part I
Olaf Ranai { dev-it-out }
Olaf Ranai { dev-it-out }

Posted on

Stuff I wish I'd known ( before those 4 years of programming ) - part I

Hello world 😊
After 4 years of building and maintaining software products, I decided to share a list of stuffs I would like to have known at the time I started programming ^^

Image description

1. Working on a new project / feature / technology ? Start with the WHY.. not the HOW

Image description

At the beginning I was 1000% motivated to try so many stuff πŸ”₯ ( I am still though 😝 ), but was too focused on the HOW part..

How can I use Angular to develop that website ?
How can I implement that feature ?

Doing so made me only feel like a robot whose mission is to "deliver".

But bruh🀨, delivery is the only goal -> that's how I get my salary at the end of the month

I know 😩 but wait😏
would going like that be fun in long-term πŸ€” ?

So what if I instead put myself in the POV of the client. Starting with "Why do we need that feature?"
That may trigger a new conversation/debate like:

Client: we need that in order to have more visibility on our products

Dev: Hm ok I get it, that feature will take 2 weeks to dev. Also what about adding an email marketing + notifications ?

Client: sounds cool ;) let's brainstorm that during our next planning

2. Everyone can mentor πŸ‘¨πŸ»β€πŸ«

Image description

Mentoring is not about only sharing knowledge to the other, but I also learned a lot in the process.

That helps the team to have common ground process and participates in a better team cohesion.
That has contributed to break my shyness too πŸ’πŸ½β€β™‚οΈ

3. Stop losing code πŸ™…πŸΌβ€β™‚οΈ

Yep -> several times during my seasons at the university, I "lost" codes due to a folder deleted or a saved file without history ( so not able to recover old versions ).

Hoya..what if you could go back on time ?

I would have included Git in my main tools.
It allows us to commit / push my codes into the "cloud" and keep track of my changes ( no more code lost πŸ’ͺ🏼 )

Git is my everyday bae ❀️..Git may be your bae too

Image description

4. πŸ‘€ More emphasis on tests

Old process: I develop a feature to add items to cart in an e-commerce website.
Let's deploy my changes to the preprod environment.
Waiting for the QA to test...πŸ‘€

βŒ›οΈ Two days later:

QA team : ⚠️⚠️⚠️⚠️⚠️ Mayday mayday 🚨 the app has crashed
Me: sorry 😐 we were counting on you to test all possibilities in that new functionalities :( we're gonna fix and deploy for you to test
QA team : are you for real ? πŸ™„

Image description

Next-gen process: Write tests ^^
Let us not depend on a QA team to test all our code..we are not only developper but first of all -> OWNERS of the project.

IndeedπŸ’­ but what is the solution ?

I would like to have known the importance of tests at the beginning to avoid wasting time testing manually each features.

Check out that interesting article on Unit Tests: https://dev.to/codingpizza/what-is-a-unit-test-1e1m

A small snapshot showing green tests ( using Jest ) here before committing my code 😍

Image description

ℹ️ Conclusion

we are all learning, I missed a lot of stuff but doing errors is just a part of the process ;)

Image description

What would you want your younger self to have known several years ago ?

Peace ✌🏼 and stay tuned for the part 2 πŸ˜ƒ

Top comments (10)

Collapse
 
olasunkanmi profile image
Oyinlola Olasunkanmi

I agree on the first point of focusing on the why and not the how. I think it’s a generic problem because as software engineers, we try to have a mental picture of how we would solve a particular task. Most times we have this connections in our head and a lot of questions keep on popping up. I try not to dwell on the why too much, I try my best to develop one feature at a time. At the end of the day, the how will show you how it’s supposed to be done.

Collapse
 
olaf_ranai profile image
Olaf Ranai { dev-it-out }

"I try not to dwell on the why too much" yes good one ^^ Indeed, it's still good to know why we are implementing a new feature but not worth to waste too much time at time at it πŸ™…πŸΌβ€β™‚οΈ

Thank you @fiatinnovations πŸ˜ƒ

Collapse
 
felana86 profile image
Felana Letrange

Hi,

Thanks for your sharing. I'm into this process now.

Collapse
 
danielbellmas profile image
Daniel Bellmas

Great articleπŸ‘ŒπŸΌ

Patience! with others and especially with yourself. This will allow for everyone to feel safe and bring out the best from both sides

Collapse
 
sambit02 profile image
sambit

As I am starting my programming journey this is helpful.
Thanks decker

Collapse
 
patrickjabba profile image
Patrick Monteiro Fischer

Great points, I just started a couple months ago so opens my mind read that kind of tips.

Collapse
 
olaf_ranai profile image
Olaf Ranai { dev-it-out } • Edited

a big +1 to the "Do, do, do" part 😍 -> not wasting too much time thinking but instead start and learn through errors ;)

Thank you @dirkecker πŸ’ͺ🏼

Collapse
 
svgatorapp profile image
SVGator

Wonderful advice!

Collapse
 
westernal profile image
Ali Navidi

Great article! thank you.

Collapse
 
olaf_ranai profile image
Olaf Ranai { dev-it-out }

no prob ^^ all the best Ali πŸ’ͺ🏼