Zależy co masz zrobić
Bardzo dużo da się zrobić znając bardzo mało - stąd mamy czasami programistów z doświadczeniem 4 letnim hobbystycznym i wiedzą jak po miesiącu, bo "poco uczyć się więcej"
Jeśli miałbyś przykładowo w projekcie używać bazy danych - wolisz samodzielnie pisać komunikacje z serwerem bazy danych po TCP, użyć biblioteki wbudowanej w język, czy użyć czegoś zewnętrznego?
Zależy od sytuacji
Jeśli masz robić bardzo podstawowe operacje na bazie i musisz strasznie się oszczędzać z rozmiarem aplikacji - wybierz TCP (jeśli wbudowana biblioteka nie jest tą, której już używasz)
Jeśli robisz proste operacje na bazie danych, i nie masz jakichś bardzo ograniczonych warunków, spokojnie podpinasz biblioteke wbudowaną w język
Jeśli te operacje są już na większą skalę, musiałbyś robić jakieś mapowania, bardziej złożone operacje, lepiej użyć ORM - który twoim niskim zaangażowaniem, będzie wykonywał sporo operacji za ciebie
Jak możesz zauważyć, chodzi tu głównie o czas i rozmiar ponad to, czego użyjesz
Im bardziej skrócisz swój czas pracy, tym większy rozmiar będzie miała końcowa aplikacja
Celem jest odpowiednie dopasowanie tego tak, aby była możliwie najlepsza proporcja między czasem pracy i rozmiarem aplikacji
Bo z rozbudowanego systemu zarządzania firmą, nie będziesz łączył się bezpośrednio po TCP z bazą danych, a do stopera nie warto używać rozbudowanego systemu ORM, skoro wystarczy biblioteka wbudowana w język... w hardkorowych przypadkach wspomniane wcześniej TCP, ale to już do serio trudnych warunków
Dodatkowo powiem, że fajnie jest się pobawić jakimiś starymi technologiami z ograniczeniami, wtedy jest większa satysfakcja jak to działa
Ale do biznesu mniej opłacalne, bo dłużej będziesz robić to samo