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
 
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
 
felana86 profile image
Felana Letrange

Hi,

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

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 πŸ’ͺ🏼