ale programuję odkąd skończyłem 15 lat, więc dość dobrze rozumiem programowanie
Chcę tylko podkreślić, że bycie programistą to coś więcej niż programowanie . Poruszanie się po miejscu pracy, interakcja ze współpracownikami i (co najważniejsze w obecnym przypadku) radzenie sobie z nieznanymi to rzeczy, których wszyscy oczekują od programistów w ich codziennych zadaniach.
Twierdzenie, że „znasz się na rzeczy” na podstawie samego doświadczenia w programowaniu, może przynieść odwrotny skutek.
- Menedżerowie nietechniczni są skłonni ufać Twojej samoocenie i oczekują biegłości we wszystkich zadaniach programistycznych, nie tylko w programowaniu. Ponieważ jesteś młodym dzieckiem, któremu przydzielono cały nowy stos technologii w małej firmie, ten punkt jest bardzo istotny.
- Może zaszkodzić Twojemu wizerunkowi, gdy sugeruje, że jesteś nieświadomy / naiwny co do nieprogramistycznych aspektów twojej pracy i ich znaczenia dla twoich zadań jako programisty.
Jak mogę rozwiązać mój problem z moim przełożonym bez brzmienia, jakbym nie był wystarczająco kompetentny?
Definicja „kompetentnego” jest podstawowym problemem związanym z problematyczną sytuacją, w której się znajdujesz.
Ponieważ umiejętność radzenie sobie z niewiadomymi i koordynacja z zespołem to podstawowe umiejętności programisty, nie wiesz, jak podejść do czegoś, czego jeszcze nie wiesz, jest formą „braku kompetencji” w tej konkretnej części pracy jako oprogramowanie programista.
Opierając się na tym, jak opisujesz swoje umiejętności wyłącznie w kategoriach umiejętności programistycznych, wydaje się, że utożsamiasz umiejętności programisty i umiejętności programistyczne. To powoduje problem, z którym masz do czynienia. Koncentrujesz się (do niezdrowego stopnia) na tym, jak uniknąć szkodzenia umiejętnościom programowania (lub ich reputacji).
Ale i to jest bardzo ważne, „brak kompetencji w czymś” nie oznacza „złego pracownika” . Oznacza to po prostu, że potrzebujesz pomocy (od współpracownika) lub wskazówek (od menedżera lub starszego programisty). I to jest absolutnie w porządku. Nikt nie jest jednoosobową drużyną, każdy ma coś, o czym nic nie wie. Nie ma w tym wstydu. Twoje pytanie pokazuje nawet, że ten stos technologiczny jest zupełnie nowy dla Twojej firmy, co dodatkowo potwierdza pogląd, że brak odpowiedzi na wszystkie pytania od samego początku jest całkowicie akceptowalny.
Twórcy oprogramowania często muszą sobie radzić rzeczy, których jeszcze nie wiedzą. To w pewnym sensie cel naszego zawodu: rozwiązywanie problemów. Jeśli potrafisz rozwiązać go skutecznie samodzielnie, wykorzystując rozsądną ilość czasu, to rozwiązujesz go samodzielnie. Jeśli napotkasz przeszkodę, której nie możesz rozwiązać samodzielnie lub zrobienie tego samemu zajęłoby zbyt dużo czasu, koordynuj ze swoim zespołem / kierownictwem, aby znaleźć najlepsze podejście do tego rozwiązania.
Normalnie nie byłby to problem, ale mój menedżer uważa, że mogę to zrobić, trochę się postarając. Mam wrażenie, że mają wobec mnie zbyt wysokie oczekiwania.
Czytasz to, gdy Twój przełożony uporczywie obciąża Cię pracą, że (rzekomo) wie, że nie możesz lub nie powinien uchwyt.
Ale to, co tutaj przeczytałem, to menedżer, który mówi pracownikowi (który właśnie przekazał informację o niepewności lub braku pewności siebie, aby wykonać zadanie), że może poświęcić trochę czasu na rozwiązanie problemu.
Nie mogę jednoznacznie stwierdzić, czy Twoja lub moja interpretacja jest poprawna. Ale mogę powiedzieć, że twoja interpretacja nie jest jedyna, a twoje obserwacje mogą zostać wypaczone przez twoje obawy, że zostaniesz uznany za niekompetentnego programistę.
Trudno mi było zrozumieć podstawowe pojęcia związane z uczeniem maszynowym (używamy deeplearning4j), ponieważ jest to dla mnie zupełnie nowy temat, więc muszę się dużo nauczyć na ten temat (terminologia, matematyka itp.).
Potrzeba czasu, aby nauczyć się nowego stosu technologii, różni się od zmagania się ze zrozumieniem podstawowych pojęć i musisz dokonać rozróżnienia między nimi. Czy problem polega na tym, że potrzebujesz więcej czasu na naukę materiałów, czy też nie jesteś w stanie zrozumieć i nauczyć się z nich?
Prawdopodobnie mógłbym stworzyć prototyp, ale nie w ramach czasowych, które otrzymałem tylko dlatego, że nie mam wystarczającego doświadczenia (mam tylko 23 lata).
Obawiam się, że opinia moich menedżerów o mnie / moje umiejętności spadłaby, gdybym powiedział, że nie mogę tego zrobić.
Ponownie musisz rozróżnić właściwy problem. Czy to kwestia „Nie mogę tego zrobić”, czy „Nie mogę tego zrobić w tych ramach czasowych”. To rozróżnienie ma znaczenie.
W obu przypadkach porozmawiaj ze swoim zespołem (lub menedżerem - w zależności od tego, co dotyczy środowiska Twojej małej firmy), ale pamiętaj, aby wyjaśnić dokładnie, na czym polega problem. Kilka wskazówek, jak zgłosić taki problem:
- Czy poradzisz sobie z tym samodzielnie, czy utkniesz, dopóki ktoś ci nie pomoże? Jeśli poprosisz kogoś o pomoc, ile czasu zajmie jego przyspieszenie?
Jeśli ktoś Ci pomoże, pamiętaj, że firma płaci dwa płace w czasie rozwiązywania tego problemu.
Używając prostego ćwiczenia matematycznego, jeśli możesz zrobić to sam w ciągu 7 lub dwóch godzin, możesz to zrobić w ciągu 5 godzin (= 10 roboczogodzin), to nie powinieneś prosić kogoś o pomoc, ponieważ faktycznie zwiększa koszt, a nie go zmniejsza.
Istnieją uwarunkowania kontekstowe (np. termin, który jest ważniejszy niż liczba płatnych godzin), których nie mogę tutaj uwzględnić. Porozmawiaj ze swoim zespołem / menedżerem.
- Ile czasu zajmie Twoim zdaniem dostarczenie?
Jeśli problem polega na tym, że potrzebujesz więcej czasu na przestudiowanie nowego stosu technologii, zorientuj się, ile czasu Twoim zdaniem potrzebujesz. Jeśli jest to rozsądne, możesz po prostu uzyskać dodatkowy czas, którego potrzebujesz. Ale jeśli chcesz, aby Twój zespół / menedżer / firma podjęła decyzję, potrzebujesz konkretnej i dość dokładnej oceny.
- Czy firma może pomóc w zmniejszeniu problemu, np. kupując książki, wysyłając cię na kurs, dając ci więcej czasu na naukę, ...?
Jeśli zakupione materiały kosztują mniej niż dodatkowy czas potrzebny, gdybyś tego nie zrobił mieć te materiały (obliczone na podstawie Twojej stawki godzinowej), wtedy firma powinna zainwestować w te materiały.
Korzystając z prostego przykładu matematycznego: jeśli zarabiasz 100 USD dziennie, zajmie Ci to 5 dni aby nauczyć się tego samodzielnie, lub możesz to zrobić w 2 dni, korzystając z płatnego kursu 200 USD, wtedy warto wysłać Cię na kurs, ponieważ całkowity koszt (2 dni wynagrodzenia + 200 USD opłaty za kurs = 400 USD) jest niższy niż wtedy, gdy Ty zrób to sam (5 dni pensji = 500 $).
Ponownie, istnieją kwestie kontekstowe (np. korzyści ciągłe przez cały okres trwania projektu), których nie mogę tutaj uwzględnić. Porozmawiaj ze swoim zespołem / menedżerem.
We wszystkich przypadkach następny krok pozostaje taki sam: Porozmawiaj ze swoim zespołem / menedżerem. Jeśli nie możesz tego naprawić samodzielnie , musisz to omówić i skoordynować ze swoim zespołem / menedżerem. Im dłużej zwlekasz z prośbą o pomoc, tym mniej efektywnie radzisz sobie z tym problemem blokującym.