DEV Community

Cover image for 20 principles I learned from 10 years of developing software

20 principles I learned from 10 years of developing software

Ondrej Sevcik on August 25, 2022

It's been 10 years since I started my first job in the software industry. Here are 20 principles that I have learned and try to follow in my day-to...
Collapse
 
ravavyr profile image
Ravavyr

That's a great list of great advice. Nicely written :)
Now, i probably need to go back and force myself to catch up on half of those, haha.

Collapse
 
mwarren2 profile image
mwarren2

Perfect list, but the tops would be:

  1. Make notes

I started doing this far too late in my career - now I save so much time.
Software installation - think you will remember how you installed all those tools you need in order to work? Ha! You won't. And that software will often get trashed in ways you hadn't foreseen.
Sql - keep notes of all the sql queries you do for your colleagues/clients that aren't saved in code somewhere
Solutions to obscure error messages that had you searching the net for days before solving the problem, because one of them will come back again soon - like the killer in the horror movie you thought you'd taken out who suddenly reappears at the end BLAM! just as you were relaxing.

Any many, many more reasons - I must have a thousand or more of useful notes

Collapse
 
othimar profile image
Pélé Oussoumanou

Good job. (l'm applying point n°19😀)

Collapse
 
chemwenochelsea profile image
Chelsea Chemweno

my favorite in this read is "write Notes "
Something that I am creating a habit for and understanding that I am human , I cannot always remember everything .
Good Job @ondrejsevcik on this beautiful piece

Collapse
 
lexiebkm profile image
Alexander B.K.

"6. Prefer functional programming"

It has to be clear here : do you mean functional vs OOP ? If so, then this is debatable. How can this apply using Java or C# ?
If you mean such things like Design Patterns proposed by GoF, then it maybe right, although some people may disagree.

Collapse
 
lorenzotenti profile image
Lorenzo Tenti

Looking at the features added to the newest versions of Java, I'd say functional programming is totally possible. Functional and OOP are not mutually exclusive.

Collapse
 
lexiebkm profile image
Alexander B.K.

Lambda expression ? Yes, it is a good addition to the language. C# has it too.

Collapse
 
eecolor profile image
EECOLOR

If I would have written the list and was asked this, I probably would have changed it to "Prefer function programming techniques" or "Prefer techniques that feel natural when using a functional programming language". Things like:

  • Immutability
  • Composition
  • Single responsibility

Also perceiving typical OOP techniques like classes to a functional lens can help, for example: Realizing classes are a group of partially applied functions. This can help identify functions that should not be grouped together.

Collapse
 
andrewharpin profile image
Andrew Harpin

I think he means procedural.

Functional is a terrible name for the alternative

Collapse
 
rooneyhoi profile image
Dax Truong

Couldn't agree more. Thanks for the great list

Collapse
 
biffbaff64 profile image
Richard Ikin

Nice list, but I completely disagree with #6. I would never prefer functional programming over OOP if the language I'm working with supports OOP. I don't find any difficulty in reading, or following, OOP code and I love working on OOP projects.

Collapse
 
arielbk profile image
arielbk

Criticize in private, praise in public

Praise for good work

I especially like these ones!

It reminds me of the Charlie Munger quote,

Praise by name, criticize by category

which was reinterpreted by Naval Ravikant as,

Praise specifically, criticize generally

Collapse
 
samuel_kelv profile image
Samuel Kelv

Thank you @ondrejsevcik, number 10 is really important to note and that's a practice I've learnt to enforce. If I see any code maybe on twitter that I need to take note of, I get my twitter note and put it on it.

Collapse
 
stevepenner profile image
Steve P.

Agree about the note-taking: in any meeting with those who supervise, I am jotting down (key)words almost like a stenographer where the thoughts/words coming out are not making sense to listeners but will end up being useful at some point, either as part of a to-do or reminder, or a question in follow-up, but definitely a task. Of course most notes in a session will make sense beyond mere jotting down whatever is uttered.

Collapse
 
kissu profile image
Konstantin BIFERT

Love the Criticize in private, praise in public. Is it specific to you or more towards the others?

Collapse
 
elabftw profile image
eLabFTW

I really agree with this list. Especially number 7 (Delete code).

Collapse
 
hamzadev profile image
Hamza Elkotb

helpful article i like this list of advice,
but what do you mean with point number 4?

Collapse
 
ondrejsevcik profile image
Ondrej Sevcik

If you don't have automated test for the software, you have to test it manually - like really running the software and checking if it does what it's supposed to do.

Collapse
 
hamzadev profile image
Hamza Elkotb

Thank you so much

Collapse
 
sajadjalilian profile image
Sajad Jalilian

Thank you, Ondrej for sharing these valuable insights

Collapse
 
somtookaforr profile image
Somtochukwu Okafor

Great and insightful post, something else that could be on the list is : If you’re stuck ask questions don’t wait to be asked.

Collapse
 
eecolor profile image
EECOLOR

Very nice list!

Collapse
 
gagagaggag profile image
fafafafafffaffa

Great advice

Collapse
 
chathunpc profile image
chathunpc

Great article

Collapse
 
drfcozapata profile image
Francisco Zapata

Thanks!
Thanks a lot for sharing them.
I'll take this like mine.
Blessings from Venezuela.
(Sorry my spanglish)

Collapse
 
rickschultz profile image
Rick Schultz

Great advices! 😁

Collapse
 
perty profile image
Per Lundholm

I agree and I have been doing this since 1980.

I praise you. 👍

Collapse
 
erickrod54 profile image
Erick Rodriguez

That's pure reality :)

Collapse
 
pekachu17 profile image
AADARSH B.K.

valuable.

Collapse
 
manuelsayago15 profile image
Manuel Sayago

I'm focusing on 12°, it's very important and thanks for sharing these nice principles!

Collapse
 
anastasiia_tilikina profile image
Anastasiia Tilikina

I'm a very beginniner)
And that ‘s really useful )
Thanks!

Collapse
 
logudotcom profile image
Loganathan Natarajan

Very good advice. Thanks for sharing

Collapse
 
viirak profile image
Virak HOR

Great Summary 👍 Can't agree more, especially on point 4 -- always write test.

Collapse
 
walebee01 profile image
Osho Wale

Thanks for these valuable principles

Collapse
 
mezieb profile image
Okoro chimezie bright

Thanks is helpful