Jestem głównie artystą, choć opisuję siebie jako artystę / fizyka. Chociaż potrafię robić matematykę, radzić sobie ze słowami i „logicznymi” rzeczami uważanymi za lewy mózg, to wysiłek i popełniam błędy, podczas gdy mam się dobrze i przez większość czasu myślę w kategoriach rzeczy związanych z prawym mózgiem myślenie - relacje przestrzenne, holistyczny kontekst dużego obrazu itp. Oczywiście wszystko to jest rozmyte, ponieważ teoria prawej-lewej mózgu jest nadmiernie uproszczona i żadna aktywność umysłowa nie jest tak prosta. Jednak wydaje mi się, że dobrze wpasowuję się w artystów, reżyserów wideo, szefów kuchni i inne niewerbalne, kreatywne typy, podczas gdy większość ludzi w „IT” lub hardkorowych inżynierach oprogramowania ma umysły, które działają inaczej, z dbałością o szczegóły, trzymając się jednocześnie wiele szczegółów na myśli oraz silne racjonalne i werbalne możliwości.
Więc tutaj dostaję wynagrodzenie za naprawianie wybrednych i niejasnych błędów w ogromnym roju oprogramowania C ++, bardzo obciążającego OO, i żaden wiersz kodu nie ma sensu, chyba że mam na myśli około dwudziestu innych nazw klas i metod, relacje między nimi, przebieg egzekucji (bardzo podobny do spaghetti) i inne szczegóły.
Poza tym jestem też zdecydowanie przeciwny wielu współczesnym stylom C ++ i OO. Ci, którzy napisali ten kod, naprawdę pili głębokie OO i Modern C ++ kool-ade. Uważam, że w rzeczywistości kod jest znacznie trudniejszy do naśladowania, trudniej jest zdecydować, gdzie coś naprawić lub zmienić. Nie wiem, czy jest to część różnicy między lewą a prawą stroną (czy jakkolwiek chcesz to nazwać), czy nie.
Ale muszę pracować nad C ++ - ludzie zależą ode mnie od moich dochodów. Jakie są wskazówki i techniki radzenia sobie z tą sytuacją, aby były jak najbardziej skuteczne dla mojego pracodawcy?
Odpowiedzi:
Spróbuj w większym stopniu zająć się projektowaniem rzeczy, w których wygoda z rozmytością jest siłą, która byłaby moją sugestią w zakresie rozwoju kariery. Dla kogoś, kto lubi być kreatywny, praca nad konserwacją może nie być świetnym dopasowaniem, podczas gdy praca nad nowymi rzeczami może być lepsza, jeśli jest to możliwe.
Chociaż nie ma nic złego w chęci dumy ze swojej pracy, chęć niezaangażowania się w szczegóły może być czymś, co może wymagać znalezienia nowego podejścia do poprawy. Zamiast patrzeć na to, jak się psuje i brudzi, może być inna perspektywa, która może sprawić, że będzie to zabawne.
Wsparcie i konserwacja prawdopodobnie mają swoich fanów, ponieważ niektórzy woleliby ulepszać istniejące systemy niż instalować nowy. Wiem, że lepiej pracuję z istniejącym systemem, który zmieniam, zamiast próbować wyciągnąć coś z eteru.
Możesz spróbować zauważyć, kiedy ludzie chcą pomysłów na radzenie sobie z różnymi problemami i rozwiązaniami burzy mózgów, ponieważ jest to część tego, co lubisz. Nie chodzi o to, aby wiedzieć, które wiersze kodu należy zmienić, ale raczej, czy możesz komuś powiedzieć: „Czy spojrzałeś na ten obiekt i sprawdziłeś, czy robi więcej, niż twierdzi?” rodzaj rzeczy.
Kolejną kwestią jest wiedza, co chcesz stworzyć: grafika, aplikacje, strony internetowe, procesy lub systemy? To są nieco inne rzeczy, które chcąc stworzyć, możesz zostać poproszony o „Stwórz co?”
źródło
Nie brzmi (przynajmniej dla mnie), jakby Twój kod był szczególnie obiektowy lub szczególnie podobny do „Modern C ++”. Przeciwnie, jednym z kluczowych elementów dobrej orientacji obiektowej jest hermetyzacja, której głównym celem jest zmniejszenie liczby rzeczy, które musisz śledzić w danym momencie. Podobnie, „bardzo spaghetti… przepływ wykonania” nie brzmi ani zorientowany obiektowo, ani nowoczesny (cokolwiek).
Teraz przypuszczam, że jeśli spojrzałbym na kod, który przechowujesz, mógłbym zobaczyć go inaczej i / lub możesz zobaczyć mój kod jako podobny do tego, który trzymasz w tej chwili - to trochę trudne do odgadnięcia. Prawdą jest, że jeśli spróbujesz prześledzić każdy szczegół działania mojego kodu, przypuszczam, że mógłbyś postrzegać go jako raczej spaghetti przepływ kontroli.
Na przykład lubię (lub przynajmniej toleruję) całkiem sporo ukrytych konwersji niż wielu programistów - używam rzeczy takich jak klasy proxy. Oznacza to, że w trakcie wywoływania jednej funkcji mogą być łatwo utworzone trzy lub cztery obiekty tymczasowe różnych typów (i zauważ, że nie mówię o tym, że faktycznie wykonuję tę funkcję, tylko ją wywołuję ). Oczywiście wszystkie te obiekty tymczasowe zostaną ponownie zniszczone na końcu wyrażenia zawierającego wywołanie funkcji. Jeśli policzysz to, możesz łatwo wywołać pół tuzina lub więcej oddzielnych funkcji wywoływanych podczas wywoływania / powrotu z jednej funkcji, która jest „widocznie” wywołana w kodzie.
Celem robienia tego w ten sposób jest jednak ułatwienie zignorowania większości drobiazgów związanych z (na przykład) radzeniem sobie ze szczegółami, takimi jak reprezentacja danego obiektu, i skoncentrowanie się wyłącznie na tym, czym tak naprawdę jest . Z większością tego kodu będziesz musiał sobie poradzić tylko wtedy, gdy zobaczysz błąd w tej konkretnej części. Staram się jednak tego unikać, tworząc klasy tak małe i proste, że robią tak niewiele, że uświadomienie sobie, że jest to oczywiście poprawne, wymaga jedynie jednego spojrzenia , więc odtąd łatwo je zignorować.
źródło
Ostrzeżenie : ta odpowiedź jest bardzo długa i ma wiele psychobabble (co staram się wyjaśnić, ale nadal). Co mogę powiedzieć? Psychologia jest jednym z moich ulubionych przedmiotów poza programowaniem.
Opiera się to na nieco przestarzałym spojrzeniu na neuronaukę. W pewnym momencie naukowcy uważali, że lewy mózg był odpowiedzialny tylko za logikę i surowe dane sensoryczne, podczas gdy prawy mózg był odpowiedzialny wyłącznie za intuicję i odczuwanie. Jak się okazuje, lewy mózg jest naprawdę zdolny do wszystkiego, co jest prawy mózg i odwrotnie. Jako osoba wyjątkowo mądra, ale logiczna, okropna kierunkami i orientacją przestrzenną, całkowicie pozbawiona kreatywności artystycznej tradycyjnie związanej z właściwym mózgiem, mogę to potwierdzić.
Najlepszym sposobem, aby pomyśleć o różnicy między lewym i prawym mózgiem, jest postrzeganie ich jako odbicia lustrzanego. Aby to zrozumieć, potrzebujesz danych w tle. Psycholog Carl Jung opracował teorię osobowości w latach dwudziestych, która podzieliła osobowość na kilka wymiarów. Prawdopodobnie słyszałeś o jednym z nich: introwersja kontra ekstrawersja. Napisałem kilka postów na ten temat, ale w zasadzie sprowadza się to do tego: introwersja odróżnia się od innych, podczas gdy ekstrawersja koncentruje się na tym, jak może łączyć się z innymi. Jest to określane jako „postawa”.
Następnie masz cztery różne funkcje poznawcze: myślenie, odczuwanie, odczucie i intuicja. Dla uproszczenia powiedzmy, że dwie z tych funkcji są uważane za funkcje „osądzania” (myślenia i odczuwania), podczas gdy dwie pozostałe są funkcjami „postrzegania”. Funkcje sędziowskie podejmują decyzje. Kiedy jesteś nastawiony na ocenianie, starasz się unikać niespodzianek. Chcesz wcześniej podjąć wszystkie właściwe decyzje, abyś nie musiał się dostosowywać, gdy pojawią się niespodzianki. Ponieważ tyle zaplanowałeś z wyprzedzeniem, możesz mieć skłonność do stania się sztywnym i nieelastycznym po podjęciu decyzji. Z drugiej strony postrzegający sposób myślenia woli latać przy siedzeniu spodni i toczyć się z ciosami.
Ogólnie rzecz biorąc, łączysz funkcję i postawę, aby stworzyć (kreatywnie nazwaną) postawę funkcyjną (introwertyczne myślenie, ekstrawertyczne uczucie itp.). Świadome osobowości ludzi są definiowane głównie przez dominującą postawę funkcyjną i pomocniczą postawę funkcyjną. W końcu psychologowie doszli do wniosku, że istnieją zasadniczo dwa rodzaje ludzi: ludzie, których dwie podstawowe funkcje składają się z introwertycznej funkcji osądu i ekstrawertycznej funkcji postrzegania, lub ludzie, których dwie podstawowe funkcje składają się z wywróconej funkcji oceny i introwertycznej funkcji postrzegania . Jeśli kiedykolwiek zdałeś test MBTI lub podobny test osobowości, ostatni list mówi, do której kategorii należysz. Jeśli jesteś P, oznacza to, że jesteś introwertycznym sędzią / ekstrawertycznym postrzegającym, a J jest na odwrót.
Nadal jesteś ze mną? Tutaj dochodzę do tego, co miałem na myśli, mówiąc, że obie strony są lustrzanymi odbiciami siebie. Nikt wtedy nie zdawał sobie z tego sprawy, ale w zasadzie budowali szkic tego, gdzie funkcjonuje mózg. Rzeczywiście, każda z funkcji Junga została przyporządkowana do szorstkiej lokalizacji w mózgu. Jak się okazuje, wszystkie funkcje P (introwertyk oceniający i ekstrawertyczne postrzeganie) znajdują się po prawej stronie mózgu, a funkcje J po lewej stronie mózgu.
Ilekroć mówisz, że ludzie o lewych mózgach są dobrzy w szczegółach, a ludzie o prawych mózgach są dobrzy w „dużym obrazie” (chociaż powiedziałbym, że „cały obraz” byłby dokładniejszy), skupiasz się na wywróconej stronie rzeczy . Jeśli osoba o lewym mózgu zarządza osobą o prawym mózgu, lewica będzie chciała poznać wszystkie szczegóły dotyczące tego, jak prawy będzie wykonywać swoją pracę z góry iz góry. Chcą, aby wymagania określone w kamieniu i twarde terminy były ustalane z góry. Righty chce po prostu bardzo szerokiego wyobrażenia o tym, co musi zrobić, aby później uzupełnić szczegóły.
Pamiętaj jednak, że nie jest to coś, czego doświadczasz. Wygląda na to, że kod lewicy prawdopodobnie nie był zbyt dobrze przemyślany z góry i ma pewne problemy, którym można by zapobiec przez pewne przemyślenia. Wynika to z faktu, że kiedy budujesz w głowie abstrakcyjne modele takich rzeczy, jak kod, używasz introwertycznej funkcji, która działa na odwrót. Righty chce wcześniej zbudować ten model i zrobić to w taki sposób, aby wypełniał wszystkie niezbędne szczegóły lub łatwo mógł uzupełnić wszystkie szczegóły. Ponadto mogą stać się sztywne pod względem najlepszego podejścia (pamiętaj, że twardo traktujesz swoje zdanie na temat bardziej zaawansowanych funkcji C ++). Model lewicowców będzie bardziej ad hoc i będzie uzupełniany w miarę upływu czasu.
Z mojego doświadczenia wynika, że z tego powodu lewicowcy będą oskarżać prawicowców o nadmierną inżynierię wszystkiego, podczas gdy prawicowi będą oskarżać lewicowców o zbyt szybką i brudną sytuację. Obie strony mają w sobie ziarno prawdy, ale tylko wtedy, gdy podejście to jest skrajne. Oto, co jest śmieszne: przyjmują przeciwne podejścia, aby osiągnąć ten sam cel (to znaczy załatwić sprawę). Słudzy chcą, aby ich model zdecydował z góry, aby mogli poświęcić mniej czasu na wdrożenie rzeczy, a tym samym szybsze wykonanie całego projektu. Lewicowcy chcą spędzać mniej czasu na architekturze, aby mogli szybciej załatwić sprawę.
Nawiasem mówiąc, te dwie postawy są odwrócone, jeśli chodzi o rzeczy typu zarządzania projektami (określanie terminów, wymyślanie wymagań itp.). Może to prowadzić do naprawdę zagmatwanej sytuacji, w której jedna strona oskarża drugą o zbyt sztywne podejście, podczas gdy druga twierdzi, że druga strona nie planuje wystarczająco naprzód, a następnie w następnym argumencie obie strony przyjmują dokładnie przeciwne stanowisko.
Co możesz z tym wszystkim zrobić? Nic innego, jak być świadomym tych różnic i starać się jak najbardziej dostosować do poglądów drugiej strony. Problem polega jednak na tym, że dzieje się to w obie strony. Możesz zrozumieć i zadowolić lewaków w jak największym stopniu, ale nie zrobi to dużej różnicy, chyba że będą próbować odwdzięczyć się. To zawsze jest wyzwanie. Nie dlatego, że lewacy są dupkami i chcą sprawić, by ich życie było nieszczęśliwe, ale dlatego, że lewacy są przyzwyczajeni do dominacji w dziedzinie programowania. Jeśli twój sposób myślenia został powtórzony przez prawie wszystkich innych, byłbyś całkiem przekonany, że również masz rację.
źródło
Zaufaj swojej intuicji. Jeśli jesteś dobrym profesjonalistą, oznacza to, bez względu na swoją „inteligencję” - lewą czy prawą - rzeczy, które lewoskrętni robią świadomie, możesz to zrobić intuicyjnie. W końcu to to samo. Niestety nie kontrolujemy naszej podświadomości, ale działa ona szybciej niż nasza świadomość, jeśli w ogóle to robi. Te intuicyjne spostrzeżenia wychodzące znikąd są dokładnie wynikiem podświadomych obliczeń.
Aha, i możesz zawieść, to zbyt zawodne. Ale skoro zapytałeś ...;)
źródło
Myślę też wizualnie, a szczegóły typografii opierają się na mnie.
Warunki Google: brytyjska strona z dysleksją Style uczenia się: wizualne myślenie przestrzenne, nauka w całości lub w części.
Po pierwsze, porady po
WSKAZÓWKI, które pomogły mi:
Którą sekcję naprawić następnie?
Mój przepływ pracy
Kto tam mieszka? (proces, połączenia, dane itp.)
co oni muszą zrobić? (funkcja) OK
dobrze
kod gdzieś to może być sprawdzone pod kątem składni / pisowni OK skopiuj i wklej
Test
Wynik -> to działa? Tak, kontynuuj
Nie? Bohaterowie muszą odgrywać rolę Hamleta tam, gdzie wszyscy umierają.
Powrót do środowiska
źródło