Od prawie 3 lat jestem programistą (w niepełnym wymiarze godzin lub w pełnym wymiarze godzin). Zawsze byłem typem osoby, która ma talent do kierowania rzeczami i zapewniania organizacji, aby załatwiła sprawy. Odkąd byłem studentem mojego wyższego projektu w college'u, czułem, że to moje prawdziwe powołanie, a nie siedzenie za kodowaniem na biurku. Teraz wiem, że muszę zrozumieć, jak napisać kod, aby inni programiści naprawdę mnie szanowali. Poza tym uwielbiam kodować. Pracuję nad wieloma bocznymi projektami w domu poza pracą, nadążam za najlepszymi praktykami kodowania i staram się stale poszerzać swoją wiedzę w tej dziedzinie.
Moje główne pytanie brzmi: jakiego rodzaju rzeczy lub okazji powinienem szukać, co pomogłoby mi rozwinąć karierę do roli kierowniczej, a nie programistycznej. Tak jak powiedziałem, uwielbiam kodować, ale chciałbym jeszcze bardziej móc projektować rzeczy na wysokim poziomie i organizować zespół w taki sposób, aby robić rzeczy i monitorować ich postępy, jednocześnie pomagając w kwestiach technicznych decyzje tu i tam. Tego rodzaju rzeczy naprawdę mnie uszczęśliwiają, w przeciwieństwie do siedzenia przez cały dzień za biurkiem i kodowania.
Oczywiście jednym z moich głównych marzeń jest stworzenie własnego oprogramowania, które w końcu wybuchłoby i uczyniło go wielkim, a następnie zaczęło zatrudniać zespół i robić to wszystko sam, ale mam wrażenie, że szanse na to są znacznie gorsze niż tylko trochę zmienić moją ścieżkę kariery, aby dostać się tam, gdzie chcę iść. Czuję, że mogę czerpać tę samą satysfakcję, robiąc to raczej dla pracodawcy niż dla siebie. Mimo że wcześniej tak się nie czułem, wydaje mi się, że dzieje się tak głównie dlatego, że nie robię tego, co NAPRAWDĘ chcę robić.
Jakieś wskazówki, wskazówki lub rzeczy, o których warto pamiętać? Ktoś, kto właśnie to zrobił, a jeśli tak, to jak to zrobiłeś?
źródło
Odpowiedzi:
Przejście z roli programisty na rolę kierowniczą lub przywódczą wymaga czasu. Specjalizowałem się w inżynierii oprogramowania, kładąc nacisk na proces inżynierii oprogramowania, a także w zarządzaniu biznesem i komunikacji. Nawet z tym doświadczeniem akademickim w zakresie zarządzania projektami oprogramowania, rekrutacji i zatrudniania, kierowania zespołami oraz komunikacji z grupami werbalnie i na piśmie, odkryłem, że najbardziej role kierownicze i przywódcze, szczególnie w branży, której chciałem do pracy, wymagam ponad 5 lat doświadczenia w inżynierii oprogramowania (miałem 2, w tym spółdzielnie i staże).
W międzyczasie po prostu kontynuowałem studia na temat zarządzania projektami.
Pierwszą rzeczą, którą poleciłbym, to zostać dobrym komunikatorem i negocjatorem. Dowiedz się, jak prowadzić ważne rozmowy. Nawet jako programista muszą podejmować decyzje z udziałem współpracowników, klientów i użytkowników. Czasami musisz odbyć trudne rozmowy i dojść do porozumienia, które przynosi korzyści wszystkim. Nie jest to łatwy cel, ale książka Trudne rozmowy: jak dyskutować o tym, co najważniejsze Najbardziej polecam tę właśnie tematy. Są też inne, takie jak „ Przebicie się nie” i „ Tak”: negocjowanie umowy bez podania jej , które również byłoby pomocne. Są one istotne bez względu na to, jaką pozycję zajmujesz.
Z technicznego punktu widzenia zrozumienie cyklu życia oprogramowania jest ważne dla kierowania zespołami oprogramowania i zarządzania nimi. Pozycje przywódcze prawdopodobnie oznaczają, że zajmujesz się inżynierią wymagań, architekturą systemu oprogramowania, projektowaniem, wdrażaniem, testowaniem i zapewnianiem jakości oraz zadaniami utrzymania. Chociaż nie możesz być ekspertem, menedżer lub lider musi przynajmniej zrozumieć je wszystkie. Jako programista prawdopodobnie wykonujesz większość prac związanych z projektowaniem, wdrażaniem i konserwacją, z pewnymi testami. Bardzo poleciłbym książki takie jak Wymagania programowe (i towarzyszące, Więcej informacji o wymaganiach programowych ), Architektura oprogramowania w praktyce (chociaż moja uczelnia przeszła naArchitektura systemów oprogramowania: praca z interesariuszami przy użyciu punktów widzenia i perspektyw po ukończeniu kursu architektury, który został mi zalecony) oraz wskaźników i modeli w inżynierii jakości oprogramowania .
Z perspektywy zarządzania projektami można dowiedzieć się o modelach procesów i metodach. Istnieją zwinne metody, takie jak Scrum i programowanie ekstremalne, oraz metody oparte na planach, takie jak Waterfall i Spiral. Istnieją również ramy metodologiczne, takie jak CMMI i proces oprogramowania osobistego / proces oprogramowania zespołu. Te, które są dla Ciebie istotne, zależą od miejsca pracy, pod względem branży i firmy. Istnieje wiele książek na temat różnych metodologii i struktur, ale gorąco polecam Rapid Development: Taming Wild Software Schedules do ogólnego zarządzania inżynierią oprogramowania i procesu inżynierii oprogramowania.
Jeśli chcesz kontynuować edukację, możesz spojrzeć bardziej na ścieżkę zarządzania technicznego niż na ścieżkę zarządzania firmą. Jeśli potrzebujesz stanowiska kierownika technicznego, spójrz na inżynierię oprogramowania, zarządzanie inżynierią oprogramowania i programy do zarządzania inżynierią. Aby uzyskać więcej informacji o ścieżce zarządzania biznesem, możesz rozważyć programy MBA, zarządzanie biznesem lub niektóre programy zarządzania inżynierią, które mają silny aspekt ekonomiczny lub finansowy.
źródło
Te inne odpowiedzi są świetne, ale wrzucę moje 0,02 $. Przeszedłem z młodszego programisty w mojej obecnej firmie przez szeregi do starszych programistów, a następnie kierownika zespołu, a teraz architekta. Zajęło to kilka lat. Ilekroć dostałem awans, było tak dlatego, że już wykonywałem pewne prace , a moje kierownictwo po prostu to dostrzegało i nadawało mi odpowiedni tytuł. Dlatego radzę nie czekać, aż dowiesz się, że jesteś kierownikiem technicznym lub menedżerem. Po prostu zacznij przejmować obowiązki, które mają osoby pełnione w tych rolach. Po kilku miesiącach lub roku przekonasz się, że zasadniczo wykonujesz pracę, na którą celujesz, i możesz wskazać to swojemu kierownictwu, jeśli go nie zauważyli.
źródło
Nie będę próbował udzielić pełnej odpowiedzi, ponieważ Thomas Owens już wymienił kilka naprawdę dobrych rad (+1 do tego).
Chciałem tylko dodać kilka wskazówek / sugestii:
... a teraz mam zamiar przejrzeć linki, które Thomas opublikował
źródło
Osobiście nie chcę obecnie opuszczać obecnej pozycji, ale w zależności od tego, gdzie jesteśmy w cyklu wydawania, spędzam od 10% do prawie 100% mojego czasu na zadaniach innych niż kodowanie. Jeśli jesteś cierpliwy i spostrzegawczy, istnieje wiele możliwości zrobienia czegoś innego niż „tylko kodowanie” w bieżącej pozycji. Na przykład:
Poinformuj swojego menedżera, że jesteś zainteresowany tego rodzaju możliwościami, a zakładając, że dobrze sobie radzisz z bieżącymi obowiązkami, skieruje na ciebie okazje, gdy tylko nadejdą. Inicjatywa bardzo się liczy. Większość menedżerów przynajmniej pozwoli ci obserwować, nawet jeśli nie uważają, że masz obecnie kwalifikacje.
źródło
Jeśli chcesz przejść do roli zarządzania projektami, absolutnie nie zaszkodzi brać nocne lekcje i pracować w kierunku swojego MBA.
Inną opcją byłoby zajrzenie do certyfikatu PMBOK Project Management Body of Knowledge . Wiele miejsc Cię nie rozważa, chyba że masz kilka lat doświadczenia w kierownictwie lub jeden z dwóch wymienionych powyżej elementów.
PMBOK jest niezwykle trudnym testem i wymaga dużo nauki, aby go zaliczyć. Myślę też, że mają wymagania dotyczące faktycznego doświadczenia w zarządzaniu projektami i przywództwa, aby móc przystąpić do testu.
źródło
Wydaje mi się, że możesz chcieć pracować w kierunku Project Management. Duża liczba pozycji PM w zakresie tworzenia oprogramowania również wymaga doświadczenia w kodowaniu.
Szukałbym stanowisk, w których można dorastać do obowiązków, które zapewnią ci pożądany statek zarządzający / lidera. Po przejściu po drabinie może wyglądać inaczej w zależności od tego, jak działają rzeczy w miejscu pracy. Ale nawet przy mniejszym doświadczeniu w programowaniu, stanowiska PM są dostępne, jeśli masz jakiekolwiek doświadczenie w kierowaniu i zarządzaniu.
źródło