Przepraszamy, jeśli to pytanie jest zbyt otwarte na stronie, ale wydawało się, że jest to najlepsze miejsce, aby o nie zapytać.Zasoby do budowania umiejętności inżynierii oprogramowania
Jestem programistą samoukiem z niewielkim wykształceniem matematycznym, który przez dziesięcioletnią karierę powoli przechodził od frontowych skryptów sieciowych i tworzenia stron internetowych do oprogramowania średniego i warstwy danych. . W rezultacie są pewne obszary mojej wiedzy i doświadczenia, których brakuje.
Po niedawnym przeglądzie z moim kierownikiem, zostało mi wskazane, że przezwyciężenie tych luk było wszystkim, co było między mną a awansem do roli inżyniera. Jednak aby to osiągnąć, musiałem znaleźć dla siebie uporządkowane podejście do uczenia się i wykazać, że wziąłem na siebie to, co powinienem wiedzieć.
Osobiście identyfikuję moje słabości w następujący sposób. Należy pamiętać, że problemem w wielu przypadkach nie jest to, że nie rozumiem, technicznie, jak te rzeczy działają, ale nie widzę, gdzie to jest lub nie jest właściwe, aby je zastosować. Na przykład wiem, czym jest interfejs i, z technicznego punktu widzenia, co robi, ale trudno mi odróżnić, kiedy właściwe jest użycie interfejsu, na przykład, grupy powiązanych klas OO, które dziedziczą po klasie bazowej. Jest to więc raczej ignorancja dobrego projektowania oprogramowania niż techniczna ignorancja - mam problemy z docenianiem, trawieniem i pracą nad takimi luźno powiązanymi systemami.
- Interfejsy
- Delegaci
- Wzorce projektowe
- architektura sieci & protokoły
Również nigdy nie robiłem niektóre rzeczy niskiego poziomu jak kompilatory i tym podobnych. Zastanawiam się czasami, czy miałoby to duże znaczenie dla mojej zdolności pisania kodu, który jest nie tylko skuteczny, ale również zoptymalizowany, gdybym miał lepszą znajomość tego rodzaju materiału.
Czasami niepokój, że nie mogę zidentyfikować słabości w moim zestawie umiejętności, ponieważ nie wiem, jak zadać właściwe pytania, odskakuje na mnie. Tak więc, mając nadzieję, że właściwie sformułowałem pytanie, chciałbym, aby twoje sugestie:
- Z tego, czego mi obecnie brakuje, czy są jeszcze inne tematy, o których powinienem pomyśleć?
- Gdzie są dobre zasoby do nauki tego materiału?
- Czy są jakieś ustrukturyzowane, samoukowate kursy, nad którymi mogę pracować? Niestety nie mam czasu na przyjęcie formalnej kwalifikacji.
Cheers, Matt
Matt Chciałbym również uczestniczyć w wieczornych spotkaniach w sieci .net. Walczę, aby dostać się do każdego (jak ty, mam małe dzieci). Ale http://dotnetdevnet.com/ i http://cms.vbug.net/Regions/VBUG-Bristol/Bristol-Events.aspx są lokalne i bardzo dobre. –
Matt, Jestem teraz w podobnej sytuacji. Każda rada oparta na twoim doświadczeniu. – jaamit