Jeśli chodzi o tworzenie dowolnego typu – nie obchodzi mnie, czy jest to praca w sieci, na urządzeniach mobilnych, czy na innej platformie – jest mnóstwo książek, kursów online itd., dzięki którym nauka jest niezwykle łatwa to chcesz się uczyć.
Żeby było jasne, nie pukam też w żaden z dostępnych sposobów nauki. W końcu wszyscy uczymy się na różne sposoby, prawda? A kogo mam powiedzieć, który sposób jest lepszy niż jakikolwiek inny, zwłaszcza że codziennie piszę o tematach tutaj i na innych stronach?
Ale mogę definitywnie powiedzieć dla mnie – kogoś, kto lubił uczyć się poprzez edukację formalną, tutoriale, kursy itd. – najlepszy sposób na zdobycie doświadczenia w tej branży był dwojaki:
- praca z innymi ludźmi,
- łamanie rzeczy i uczenie się, jak je naprawiać.
Czy mam na myśli robienie tego w tej konkretnej kolejności? Nie. Czy to oznacza, że jestem o krok przed innymi? To śmieszne.
Ale ponieważ miałem przyjemność pracować z innymi przy wielu projektach, rozmawiać z innymi przez Twittera, konferencje i tak dalej i doświadczać zarówno dobra, jak i zła, myślę, że każdy powinien mieć okazję w pewnym momencie zrobić.
Gdybym miał to podsumować, powiedziałbym, że chodzi o znalezienie równowagi między pragmatyzmem zespołowym a inżynierią. Dlaczego jednak, jeśli nic z powyższych nie jest nowe (biorąc pod uwagę, że firmy produkujące oprogramowanie istnieją od dziesięcioleci), zadaję sobie teraz trud, aby o tym pisać?
Pragmatyzm i inżynieria zespołowa
Prawdopodobnie mógłbym wymyślić listę powodów, dla których ten konkretny temat jest dla mnie ważny, ale są trzy konkretne rzeczy, o których chciałbym wspomnieć w tym poście. I przez wzgląd na długość (czytaj: czas), zrobię co w mojej mocy, żeby były krótkie.
W rzeczywistości TL;DR tego, o czym będę mówił, ma związek z pragmatyzmem i umiejętnościami inżynierskimi. Początkowo zamierzałem również przedstawić perspektywę biznesu w ogóle, ale ogólny post był nieco odbiegający od tematu.
1 Pragmatyzm
O równoważeniu inżynierii i pragmatyzmu pisałem już wcześniej. Więc może nie mam wiele do zaoferowania, jeśli chodzi o coś nowego, ale zaczynam trochę zmieniać swoją perspektywę.
Oznacza to, że w pewnym momencie chodziło wyłącznie o znalezienie równowagi między znalezieniem rozwiązania, które działa na zamówienie, które jest dobrze zbudowane, a które rozwiązuje ich problem. I nadal to subskrybuję.
I oczywiście jest coś do powiedzenia na temat organizacji kodu, aby można go było utrzymywać w miarę upływu czasu. To jest klucz. Ale sposób, w jaki budowany jest kod, a budowane jest rozwiązanie, polega na tym, że rzeczy, które mogą być nieco bardziej rozmyte w odniesieniu do pragmatyzmu.
To znaczy, że łatwo jest napisać podstawowy kod obiektowy, udokumentować go, kilka klas lub funkcji wywoływać się nawzajem, podłączyć do WordPressa, a potem wywoływać to w ciągu dnia.
2 umiejętności inżynierskie
Ale czy ten poziom zrównoważenia wysyłki rozwiązania i zaprojektowania rozwiązania to cienka linia do przejścia. Uważam jednak, że próba bycia zbyt pragmatycznym niesie ze sobą niebezpieczeństwo: jeśli starasz się pozostać jak najbardziej pragmatyczny przez cały czas i pozostawić swoje umiejętności inżynierskie na określonym poziomie, możesz nie robić postępów jako programista.
Chociaż wolę używać programowania obiektowego w rodzaju pracy, którą wykonuję, nie jestem osobą, która wdaje się w wojnę religijną lub w jaką wersję jakiego języka, jakiej technologii, lub jeśli jest funkcjonalna, proceduralna lub zorientowana obiektowo programowanie jest lepsze.
Mówiąc najprościej: chodzi o ogólny poziom umiejętności, jaki możesz osiągnąć w trakcie swojej kariery.
A kiedy pracuję z programistami, którzy pracowali nad projektami o różnych umiejętnościach, którzy zostali wykształceni na różne sposoby i którzy rozwiązywali różnego rodzaju problemy, stale uczę się nowych rzeczy.
Nie oznacza to, że nie ma dyskusji na temat rzeczy, które możemy wdrożyć jako zespół lub jako partnerstwo, ale chodzi o to, że może to zapobiec stłumieniu potencjału rozwoju jako programista.
Mógłbym dalej o tym mówić, ale w skrócie: jeśli masz zamiar pracować z innymi, upewnij się, że mają doświadczenie, ciesz się używaniem tego samego rodzaju paradygmatów, co ty, bądź otwarty na przemyślaną rozmowę i weź ze sobą różnorodność doświadczeń do stołu.
Ostatecznie może to pomóc poprawić zarówno Twoje umiejętności, jak i jakość tego, co Ty i Twój zespół wnosicie do stołu.
Zawsze jest więcej
Jak wspomniałem wcześniej w poście, zawsze jest więcej. Prawdopodobnie opowiem więcej o aspekcie biznesowym w przyszłych postach.
Na razie jednak zostawię to, co napisałem, tam, gdzie jest, i odejdę stamtąd później.