Jak możemy poprawić ogólną edukację i szkolenie programistów? [Zamknięte]

13

W zeszłym tygodniu właśnie oglądałem ten niesamowity wywiad Kevina Rose'a z Phillipa Rosedale'a z Second Life.

Mieli niesamowitą dyskusję na temat tego, jak znaleźć, zatrudnić i zidentyfikować dobrych programistów i jak trudno jest znaleźć dobrych.

Co skłoniło mnie do myślenia o sposobie uczenia się programisty. Dla większości z nas, włącznie ze mną, jesteśmy samoukami. Co jest wspaniałe w byciu programistą, każdy może uczyć się i rozwijać umiejętności.

Ale oznacza to również, że nie ma prawdziwych standardów tego, czym jest dobry programista i jakie środowisko zachęca do rozwijania umiejętności programowania.

To nie tyle pytanie, ale po prostu pragnienie, by zobaczyć, jak możemy zmienić kulturę programowania i menedżera programowania, aby wspierać edukację i samodoskonalenie.

Istnieje wiele sposobów na dalszą edukację, filmy na YouTube, książki, konferencje, ale ze względu na eksperymentalny charakter tego, co robimy, nie zawsze jest jasne, co jest ważne do nauczenia się i opanowania.

Spójrzmy na The Joel 12 Steps.

Test Joela

Czy korzystasz z kontroli źródła?

Czy potrafisz wykonać kompilację w jednym kroku?

Czy robisz codzienne kompilacje?

Czy masz bazę danych błędów?

Czy naprawiasz błędy przed napisaniem nowego kodu?

Czy masz aktualny harmonogram?

Czy masz specyfikację?

Czy programiści mają ciche warunki pracy?

Czy korzystasz z najlepszych narzędzi, które można kupić za pieniądze?

Czy masz testerów?

Czy nowi kandydaci piszą kod podczas rozmowy kwalifikacyjnej?

Czy wykonujesz testy użyteczności korytarza?

Myślę, że wszystkie one mają ważną wartość, ale z powodu czegoś, co nazywam Luką Doświadczeniową, jeśli programista lub menedżer nigdy nie doświadczył żadnych negatywnych konsekwencji braku wykonania pozycji na liście, nigdy nie zobaczy potrzeby zrobienia czegoś z nich.

Luka doświadczalna to moja podstawowa teoria, że ​​każdy z nas ma inną pracę i inne doświadczenia. Tak więc dla niektórych z nas, którzy zawsze pracowali z dziesiątkami programistów, kontrola źródła jest koniecznością. Ale dla osób, które zawsze były jedynym programistą, nie mogą sobie wyobrazić potrzeby kontroli źródła.

I właśnie z powodu tej poważnej wady w naszym uczeniu się oceniamy ludzi na podstawie najlepszych praktyk, które robią lub nie, a powodem każdego z nich może być wojna z płomieniem.

Zawsze oceniamy ludzi w naszej dziedzinie na podstawie tego, co robią, i myślimy: „Och, jeśli ten facet / gal nie robi najlepszych praktyk xyz, nie może być dobrym programistą, więc nie marnujmy czasu ani energii na rozmowę z nimi . ”

Właśnie dlatego mamy tak wiele programujących wojen płomieni, że z powodu Luki Doświadczalnej nie możemy sobie wyobrazić ludzi, którzy nie podjęli decyzji, które musieliśmy podjąć.

Doprowadziło mnie to do wniosku, że musimy całkowicie przemyśleć, w jaki sposób szkolimy, edukujemy i zarządzamy programistami.

Na przykład, jaki procent zachęciłeś swojego kierownika do uczestnictwa w konferencjach, a nawet zapłacenia za to?

Dla mnie i wielu ludzi jest to niezwykle rzadkie, wielu z nas chciałoby chodzić na konferencje, aby dowiedzieć się więcej, ale nie ma na to pieniędzy.

Tak więc sedno tego pytania ma naprawdę zainicjować wiele sposobów na lepsze szkolenie, naukę i zarządzanie?

Jak możemy stworzyć nową kulturę uczenia się, która nie obraża ludzi za to, że nie mają takich samych doświadczeń zawodowych.

Tak, wszyscy mamy pracę i pracę do wykonania, ale nasza zdolność do dobrego wykonywania pracy zależy od naszego pragnienia, zainteresowania i wsparcia w doskonaleniu naszego opanowania naszych umiejętności.

Teraz widzę, że nasza kultura jest raczej zdezorganizowana, wspieramy elity, ale te tony z nas, które chcą się polepszyć, po prostu nie mają wystarczającego wsparcia, aby się uczyć i ulepszać.

Mam na myśli, czy my jako przemysł chcemy być postrzegani jako tylko wymienne koła zębate?

Dziękuję Ci...

Crosenblum
źródło
+1: Myślę, że to Carl Franklin z .NET Rocks zauważył kiedyś, że branża programistyczna „jest do bani przy stażach”. Mam nadzieję, że poprawnie przypisałem ten cytat; ale ja całkowicie się z tym zgadzam. Naprawdę nie wiem, jak kandydaci na poziomie podstawowym wspierają się obecnie w szeregach.
Jim G.
Dzięki za świetne komentarze. Ale częścią moich celów jest pomóc obudzić gigantów naszej branży, że potrzebujemy lepszych mechanizmów edukacyjnych, i po prostu nie sądzę, że konferencje i kolegia są wystarczające. Nie jestem jednak pewien, jaka jest prawidłowa odpowiedź.
crosenblum
Moim celem nie jest promowanie określonych ram lub metodologii, moim celem jest zwiększenie edukacji i zapewnienie programistom wsparcia.
crosenblum
Każdy może próbować uczyć się i rozwijać umiejętności, większość nie ma wymaganych atrybutów; ale i tak zrób to, kosztem naszych branż.
Orbling
Czy masz link do wywiadu? youtube.com/watch?v=irF-V9RUuXCzy to?
Łukasz Madon

Odpowiedzi:

13

Wow, świetne pytanie do przemyślenia, trudne do odpowiedzi. Ponieważ wszyscy mamy różne doświadczenia i pragnienia, trudno jest znaleźć jeden rozmiar pasujący do wszystkich rozwiązań. Ale podzielę się opiniami na ten temat.

1) Przestań postrzegać skakanie do pracy jako złe i zachęcaj je. Zmieniaj firmy co kilka lat. W trakcie swojej kariery programista jest narażony na wiele różnych technologii, metodologii i firm. Firmy stale napływają nowych pomysłów.

2) Przestań postrzegać siebie jako programistę w firmie X i postrzegaj siebie jako profesjonalistę świadczącego usługi dla firmy X. Jeśli myślisz jak profesjonalista, będziesz traktowany jak profesjonalista. Jeśli jesteśmy postrzegani jako wymienne koła zębate, to dlatego, że zachowujemy się jak wymienne koła zębate.

3) Uniwersytety muszą się zmienić. Powinny mieć początkowy 2-letni okres podstawowej edukacji komputerowej, a następnie wybór. Informatyka lub inżynieria komputerowa. A tor inżynierski potrzebuje profesjonalistów, którzy codziennie pracują w terenie, a nie kogoś, kto po prostu pisze dokumenty. To, czego się naucza, musi być praktyczne, abyś mógł rozpocząć działalność następnego dnia po ukończeniu szkoły. Może masz program praktyk dla tych, którzy nie przechodzą programu studiów.

4) Edycja: To było trochę rant-ish. Miałem na myśli to, że każdy z nas musi się wiele od siebie uczyć, niezależnie od wieku i doświadczenia.

5) Nieco związane z punktem 2. Przestań postrzegać swojego pracodawcę jako odpowiedzialnego za twoją karierę. Ty jesteś. I tylko ty. Jeśli chcesz pójść na konferencję, zapłać za nią sam, jeśli Twoja firma tego nie zrobi. Każdego roku odkładaj pieniądze na książki i szkolenia oraz rozwój zawodowy. Jeśli czekasz na pracodawcę, aby wysłać cię na szkolenie, będziesz długo czekać. Czas spędzony na oglądaniu swoich umiejętności staje się nieistotny. Nie robisz wystarczająco dużo, żeby sobie na to pozwolić? Zmień pracę.

6) Musimy być szczerzy wobec siebie i naszych programistów. Programowanie jest trudne. Bardzo trudny. Nadal widzę reklamy szkoleń komputerowych z bogactwami gwarantowanymi po ukończeniu studiów. To przyciąga wielu ludzi, którzy po prostu nie są wykwalifikowani lub gorzej, nie mają rzeczywistego zainteresowania poza pieniędzmi. Musimy znaleźć sposób, aby zachęcić ich do ponownego przemyślenia swoich planów zawodowych.

W tym momencie myślę, że moja głowa zaraz wybuchnie, więc zakończę.

Świetne pytanie! Z niecierpliwością czekam na więcej odpowiedzi.


źródło
3
+1 za punkty 2 i większość z 5. To rewelacyjny moment, kiedy zdajesz sobie sprawę, że twój pracodawca potrzebuje cię bardziej niż potrzebujesz.
Carl Norum,
@Carl, to naprawdę wspaniałe uczucie.
+1 za świetne uwagi do pytania. Kompletnie się zgadzam. Zgadzam się również całkowicie z punktami 2 i 3.
KeesDijk
W najbliższej przyszłości nie widzę tendencji do odwracania utowarowienia. Trend w większości sklepów z oprogramowaniem dla firm dotyczy hiperspecjalizacji ról (inaczej szufladkowania).
bit-twiddler
1
Ale gospodarka może zmusić nas do znalezienia pracy, w której nie mamy tyle swobody i wyboru.
crosenblum
1

Nie sądzę, że jest zdezorganizowany wyłącznie z powodu braku nauczania. Myślę, że to rzeczywiście odzwierciedla fakt, że „najlepsze praktyki” będą się różnić w zależności od pracy. „Najlepsze praktyki” zawsze będą oparte na konkretnym kontekście.

Zdarza się, że istnieje wiele przekrojów w odniesieniu do niektórych najczęstszych dziedzin pracy, tj. tworzenie stron internetowych. Myślę jednak, że błędem jest wierzyć, że tylko dlatego, że dobrze jest zaangażować się w określoną praktykę w większości miejsc pracy, należy ją stosować we wszystkich zawodach.

Stosowane przez Ciebie praktyki powinny wynikać z analizy i eksperymentów dotyczących tego, co sprawia, że ​​pracujesz lepiej. Nie należy ich wybierać w ślepej wierze. To, że coś często odbija się echem w sieci, nie czyni prawdy w twojej sytuacji ani Prawdy (dla wszystkich sytuacji).

dietbuddha
źródło
0

Świetne pytanie do ćwiczenia umysłu, zgadzam się, że coś trzeba zrobić, ale myślę, że nie można na nie odpowiedzieć. Moja próba:

Po pierwsze Nie zabijaj kreatywności w ogóle Muszę powiedzieć, że zgadzam się z Sir Kenem Robinsonem, obejrzyj tę wspaniałą rozmowę TED . Nasz system edukacyjny zabija kreatywność i należy to zmienić. Specjalnie dla programistów.

2. Naucz jak wzorcenasza dziedzina zawodowa nie jest wystarczająco dojrzała. Mamy wiele różnych rzeczy, które naszym zdaniem są dobrym rozwiązaniem, ale nie możemy się z nimi zgodzić. (pomyśl TDD, BDD, Agile vs Waterfall, ilość potrzebnej dokumentacji, Java lub .Net) Moim zdaniem wynika to z dyskusji bez kontekstu i dużej specjalizacji. Nie możesz dokonać właściwego wyboru, nie wiedząc, w jakim kontekście pytanie jest zadawane, i nie możesz dokonać właściwego wyboru, jeśli znasz tylko jedną opcję. Kiedy przywrócisz to do edukacji, wydaje się to niemożliwe. Nie można oczekiwać, że ktoś pozna wszystkie możliwe konteksty i wszystkie możliwe rozwiązania. Ale z wzorami mają teraz pewne ogólne rozwiązania i konteksty, które mają zastosowanie i konteksty, gdy rozwiązania się psują. IMHO to jest sposób, w jaki musimy uczyć,

Trzecie umieszczenie zrzeczenia się odpowiedzialności na przykładach Myślę, że jest problem z przykładami, które pokazujemy na MSDN, na blogach, w książkach itp. Przykłady są często głupie, aby zrozumieć, o czym pisarz stara się zrobić. Ale w najbardziej podstawowych przykładach są już decyzje na wielu poziomach. Te przykłady uczą wszystkich tych innych decyzji błędnych. Myślę, że każdy przykład musi zawierać oświadczenie z informacją, o co w tym wszystkim chodzi, a czego w ogóle nie powinieneś robić. Świetny przykład tego opublikowano dziś tutaj na blogu .

Last Do Do Do Myślę, że musi być więcej do zrobienia. Nauczyłem się po prostu robić, zawodzić, naprawiać i dyskutować.

KeesDijk
źródło