Jestem inżynierem oprogramowania, który zajmuje się programowaniem pozycji w VBA (chociaż nie śmiem uważać tego za „prawdziwe” doświadczenie, ponieważ było to metodą prób i błędów!), Perl w / CGI, C # i ASP.NET. Te dwa ostatnie są po studiach licencjackich, z moim wejściem do „prawdziwego świata”. Jestem 2 lata po studiach i mam 5-letnie doświadczenie (łącznie) we wszystkich językach, o których wspomniałem. Jednak jeśli chodzi o moje CV, mogę odłożyć tylko 2 lata na C # i mniej niż rok na ASP.NET.
Wydaje mi się, że znam C #, ale wciąż muszę spędzać czas na „Co robi ta metoda?”, Podczas gdy niektórzy inżynierowie wyższego szczebla mogą od razu powiedzieć: „Och, Metoda X to robi, nawet na to nie patrząc. metoda wcześniej. ” Wiem więc empirycznie, że jest tam przepaść, ale nie jestem do końca pewien, jak ją pokonać. Zacząłem programować w Project Euler i wybrałem książkę o wzorach projektowych, ale nadal czuję, że spędzam każdy dzień chodząc po wodzie, zamiast iść do przodu.
Nie oznacza to, że nie czuję się tak, jakbym poczynił postępy, to po prostu oznacza, że o ile przybywam każdego dnia, wciąż widzę szczyt w oddali.
Moje pytanie brzmi: jak pokonałeś ten płaskowyż? Jak długo Ci to zajęło? Jakie metody możesz mi w tym pomóc?
Przeczytałem Code Complete , The Mythical Man Month i CLR poprzez C #, wydanie drugie - moje pytanie brzmi: co mam teraz robić?
Edycja : Właśnie znalazłem to pytanie dotyczące projektów dla programistów na poziomie średnim. Myślę, że to dodaje do dyskusji (choć nie zastępuje mojego pytania). Jako taki, dodaję go do pytania jako „Aby uzyskać więcej informacji”.
źródło
Odpowiedzi:
Gratulacje!
Z Twojego opisu, to są pośrednim deweloper.
Ta faza potrwa około 3-8 lat, w zależności od chęci uczenia się ponad problem chwilą
Aby przyspieszyć ten proces, czytaj, surfuj, bloguj, chodź na spotkania grup użytkowników, znajdź mentora, przeprowadzaj niezależne badania, poboczne projekty kodu i zakopuj się w nowych technologiach. To może zmniejszyć czas o rok lub dwa.
Lub możesz mieć życie poza programowaniem ;-)
Poważnie, bądź na bieżąco i introspektywnie, ale od czasu do czasu wyłączaj #% $ @
Dodatek: kiedy wychodzisz na zewnątrz, pamiętaj, aby nosić spodnie.
źródło
Jednym z najlepszych sposobów na górę jest napisanie czegoś dla siebie, ponieważ chcesz. Najlepsi programiści mają wspaniałe odpowiedzi na pytanie „jaki jest najciekawszy program, który napisałeś w wolnym czasie”. Jeśli w wolnym czasie nie piszesz żadnego kodu, nie kochasz swojego rzemiosła na tyle, aby być w nim lepszym.
źródło
Musisz przejść przez etap larwalny.
Chociaż teraz programuję w VB.NET w systemie Windows, przeszedłem fazę larwalną w systemie Linux x86 z asemblerem jako moim podstawowym językiem.
Przez pewien czas musisz poświęcić się rzemiosłu, dopóki go nie opanujesz. Tak zwane instynkty mistrza programisty to naprawdę wyuczone zachowania. To wspólna kultura. Programiści muszą myśleć tak samo, jak maszyna.
Poznaj i zrozum. Największymi umiejętnościami nie są umiejętności związane z konkretnym językiem, ale można je zastosować w prawie każdym języku. Poznaj pojęcia, szukaj ich zarówno w problemach, jak i językach, bądź gotowy wymyślać nowe rzeczy, gdy zajdzie taka potrzeba.
To jest droga do wielkości.
źródło
Programuję od 8 roku życia ... Będę miał 33 lata w Wigilię Bożego Narodzenia. Nadal widzę górę w oddali. Bez względu na to, jak daleko zaszedłeś, zawsze jest więcej do nauczenia się.
Weź paradygmaty za pasek i dowiedz się, w jaki sposób język, w którym obecnie kodujesz, wdraża te paradygmaty. Programowanie to doświadczenie na całe życie, które zawsze wymaga więcej nauki. To radość, bez względu na to, jak biegły jesteś, zawsze jest więcej.
Jednym ze sposobów, w jaki uczę się nowych rzeczy, których normalnie bym się nie nauczył, jest spędzanie czasu tutaj i na innych forach programistycznych, takich jak Bytes and Experts Exchange, gdzie ludzie zadają pytania. Jeśli potrafisz odpowiedzieć na pytanie, śmiało, jeśli nie możesz, spróbuj dowiedzieć się, jak samodzielnie wykonać zadanie, PO nie tylko doceni twój wysiłek i pomoc, ale także nauczysz się czegoś nowego.
Odkryłem, że uczę się więcej, pomagając innym ludziom znaleźć odpowiedzi na rzeczy, których jeszcze nie wiem, niż kiedykolwiek, po prostu programując moje codzienne rzeczy, które robię codziennie.
źródło
Status programowania pośredniego oznacza, że wychodzisz z mentalnej małpki „pisz szybciej” i wkraczasz w sferę chęci budowania prawdziwych systemów jako kariery. Jest to poważna zmiana zawodowa i, szczerze mówiąc, tak naprawdę nie chodzi o umiejętności techniczne. Praca na poziomie pośrednim (inaczej „programistycznym”) wymaga znacznie zaawansowanego zestawu umiejętności ludzi.
Oto kilka symptomów, o których możesz pomyśleć:
Najlepsze podsumowanie, jakie mogę wymyślić, to to, że pośredni programista (lub „programista”) nauczył się być bardziej produktywny w ciągu ośmiu godzin pracy, aby mogli pójść do diabła do domu i mieć życie poza pracą.
Punkty bonusowe przyznawane, jeśli uda ci się znaleźć małżonka i powielić ....
źródło
To, co teraz robisz, jest świetne, ale jeśli chcesz niesamowicie przyspieszyć swój postęp, możesz zrobić dwie dodatkowe rzeczy:
1) „Naucz” - Prostym sposobem na to jest założenie bloga i próba wniesienia czegoś przydatnego regularnie (być może co tydzień). Celuj w rzeczy, których ostatnio się nauczyłeś lub o których jeszcze nie wiesz . Oznacza to, że zmusisz się do badań, zrozumienia i ponownego wykorzystania.
BTW, możesz bardzo łatwo założyć konto SingingEels, na którym masz bezpłatny blog na istniejącej społeczności programistów.
2) Napisz wiele miniprogramów - mam na myśli około 1 tygodniowo. Możesz użyć tego w połączeniu z powyższym ... lub po prostu dla zabawy. To, co zrobiłem jako młody programista, po prostu losowo wybrałem (nie żartuję) przestrzeń nazw w środowisku .NET. W tym wybierz klasę, której nigdy wcześniej nie widziałeś / nie używałeś i stwórz mały program, który z niej korzysta.
źródło
Spróbuj
Czytaj więcej książek Odbierz te wielkie tytuły z Amazon i przeczytaj je. Na przykład autor Code Complete napisał świetną książkę o inżynierii oprogramowania - Rapid Software Development, kup ją i przeczytaj.
Naucz się innego języka programowania Warto nauczyć się języka skryptowego, takiego jak python / ruby. A może funkcjonalny język programowania :) Może to zmienić zdanie na temat programowania. Być może wiesz, że niektóre wzorce GOF nie są konieczne dla tego rodzaju języków.
Dołącz do społeczności Ludzie mogą wymieniać swoje myśli, słuchając innych i wygłaszając prezentacje.
źródło
Znajdź inteligentnych programistów i ucz się od nich. Naśladuj ich. Zauważ, że robią inaczej niż ty.
Czy Twoja firma wykonuje recenzje kodu? To jeden z najlepszych sposobów na naukę. Możesz być zaskoczony sugestiami, które robią bardziej zaawansowani programiści i rzeczami, o których oni myślą podczas kodowania.
źródło
co powiesz na zaangażowanie się w inny trwający projekt open source, aby przynajmniej ktoś był wart swojej pracy, a Ty możesz uczyć się i wchodzić w interakcje z innymi bardziej zaawansowanymi programistami wykonującymi pracę w świecie rzeczywistym
abyś przynajmniej nie był ograniczony tym, czego chcesz się nauczyć lub jakiego rodzaju projektu chcesz wykonać. i jest to już darmowe narzędzie, którego używasz, możesz być dumny z tego, że faktycznie pomagasz je ulepszyć.
i pokazuje się również w twoim CV. :)
więc jeśli nadal pozostawia Ci to trochę wolnego czasu, dlaczego nie prowadzić bloga dokumentującego twoją naukę, doświadczenia i co nie. kto wie, możesz być kolejnym joelem w oprogramowaniu lub programistycznym horrorze: str
źródło
Aby wyróżnić się jako programista C #, przeczytaj poniższe dwa. Zauważ, że te książki koncentrują się bardziej na języku (C #), a nie frameworku (.NET) ..
Czytałeś już CLR przez C # , w przeciwnym razie jest to prawdopodobnie trzecia sugestia dla deweloperów C #.
Powinno to również uczynić cię lepszym programistą: Wytyczne dotyczące projektowania ram i efektywna praca ze starszym kodem .
źródło