Po prostu natknąłem się na to i zastanawiałem się, czy ktoś ma sposób na udowodnienie lub obalenie tego stwierdzenia:
O czym należy pamiętać ... jaki jest okres półtrwania wiedzy w zaawansowanych technologiach? Śledzi to według prawa Moore'a: połowa wszystkiego, co wiesz, stanie się nieaktualna za 18-24 miesięcy.
ŹRÓDŁO: W odpowiedzi Craiga Tradera na to pytanie „ Jaka jest najbardziej skuteczna rzecz, którą zrobiłeś, aby poprawić swoje umiejętności programistyczne? ”
Statement = (True or False)
Tak.Odpowiedzi:
To stwierdzenie dotyczy tylko efemerycznych technologii, których i tak powinieneś się uczyć tylko w razie potrzeby. To powiedziawszy, nauczysz się wielu z nich podczas swojej kariery.
Podstawowe zasady i techniki programowania są wieczne.
źródło
Nonsens
Ludzie, którzy mówią takie rzeczy, starają się być sensacyjni, albo uczą się niewłaściwych rzeczy.
źródło
Najlepszym (najgorszym?) Testem, jaki mogę wymyślić, jest cofnięcie się o rok. Ile wiedzy programistycznej, z której korzystasz na co dzień, nauczyłem się w poprzednich 18 - 24 miesiącach? Co więcej, ile wynaleziono w poprzednich 18-24 miesiącach? Zasada wydaje mi się bardzo podejrzana, ponieważ większość wiedzy programistycznej i technicznej, z której korzystam na co dzień, zdobywałem przez 5-10 lat.
Teraz, jeśli pracujesz dla platformy telefonu komórkowego, być może jest to inna gra.
źródło
Z mojego doświadczenia wynika, że istnieje ogromny rozdźwięk między medialnym / publicznym wizerunkiem tego, która technologia jest nową nową rzeczą, a tym, co faktycznie jest używane w prawdziwym świecie.
Weź coś takiego jak Visual C ++ / MFC w obszarze aplikacji komputerowej. Choć może się to wydawać stare i przestarzałe i prawdopodobnie nie jest czymś, czego nowy programista powinien się teraz uczyć w zakresie tworzenia komputerów stacjonarnych, wciąż istnieje wiele prawdziwych projektów i miejsc pracy, które są w nim utrzymywane - i prawdopodobnie będą utrzymywane przez lata i dekady. Chciałem podać COBOL jako przykład, ale byłoby to mówienie teoretycznie - tak naprawdę znam osobiście przykład VC ++ / MFC.
Zasadniczo nie chodzi o to, że technologie stają się bezużyteczne i nieużywane, gdy stają się „przestarzałe”, a bardziej, że nie są już postrzegane jako najbardziej aktualny sposób robienia rzeczy i rozpoczynania nowych projektów. Ale wycofywanie dużych systemów oprogramowania z prawdziwego świata, które się nie zepsuły i nie wymagają naprawy, dzieje się znacznie wolniej. Wiele projektów Visual C ++ / MFC, nad którymi pracowałem (które rozpoczęły się na początku lat dziewięćdziesiątych), wciąż jest bardzo żywa i zatrudnia wielu programistów (zarówno w zakresie konserwacji, jak i rozwoju) i wydaje się, że nigdzie się nie wybiera w najbliższym czasie. W rzeczywistości jestem pewien, że większość z tych, o których myślę, będzie jeszcze w 2020 roku i dłużej.
Oczywiście nie jest to nawet główny problem. Główny problem polega na tym, że wiele pojęć jest podobnych lub powiązanych i nie uczysz się „od zera” podczas nauki nowej technologii. Na przykład: kiedy zrozumiesz języki znaczników i ich treść, bardzo łatwo będzie nauczyć się nowych. Więc nie ma znaczenia, że JSON jest nową rzeczą, a wszystko, czego używasz od lat, to XML. To tylko kwestia uczenia się nowej składni - w przeciwieństwie do bycia nie-programistą, który nie wie nic o tym, czym są języki znaczników, ani o wewnętrznych koncepcjach danych, które reprezentują itp.
TL; DR: 1) Istnieje wiele „przestarzałych” technologii, ale ponieważ nie jest to seksowna nowa rzecz, nie słyszysz o niej wiele - ale jest to dalekie od bezwartościowości dla osób, które ją stosują . 2) Koncepcje programowania budują się jeden na drugim i ewoluują. Niewiele rzeczy jest naprawdę czymś, czego musisz się całkowicie nauczyć od zera i zapomnieć o starym.
źródło
Wszystko zależy od tego, na czym koncentrujesz się w nauce, zapamiętywaniu i ogólnie wypełnianiu mózgu. Szczegóły mogą szybko stać się nieaktualne, ale zasady powinny trwać znacznie dłużej.
Przykłady rzeczy, w które byłem ostatnio głęboko zaangażowany:
Odważne rzeczy, których się nauczyłem, będą trwać znacznie dłużej niż rzeczy po lewej stronie. Jeśli chcesz uniknąć pułapek przestarzałości w programowaniu, skoncentruj się na zasadach .
źródło
Robert Harvey to przybił , ale po przemyśleniu tego jestem zmuszony rzucić zwięzłość na wiatr i odpowiedzieć.
Muszę dodać zastrzeżenie, nie zagłębiałem się w Perl On Rails od momentu ogłoszenia. Miałem wrażenie, że działa dobrze dla bardzo zlokalizowanego zastosowania, do którego został zaprojektowany i zanotowałem go do wykorzystania w przyszłości.
Nie poddałem się także ponad 50 permutacjom standardowej biblioteki C w ciągu ostatnich dwóch dziesięcioleci. Chciałbym móc z nimi linkować, ale wydaje się, że są one obecnie kwestionowane.
Gdy pojawi się coś nowego, chwyć go i spójrz. Jeśli powiesz „kutas”, upuść. Jeśli powiesz „wow”, popraw to. Jeśli nie możesz pomyśleć o takiej decyzji, wybierz mózg ludzi, którzy potrafią.
Sędzia wszystko na wartości technicznej sam . Warto poświęcić swój czas, co oznacza, że oszczędza Twój czas, jednocześnie podnosząc kciuki do góry od większości swoich rówieśników.
Teraz odpowiem bezpośrednio na twoje pytanie:
Musisz nas poinformować za 18 - 24 miesiące. Firmy płacą znaczne sumy, aby ludzie mówili o tym, jak świetny jest ich produkt. Musimy przedzierać się nie tylko przez nowe firmy, ale także przez gigantów, którzy wydają znaczne sumy gotówki, aby:
Możesz oczywiście podejmować własne decyzje na podstawie wcześniejszych doświadczeń i prób z czymś nowym. Robiąc to, unikaj pracodawców, którzy mają menedżerów, którzy wydają przykazania na podstawie swojego czytnika RSS.
Mam jednak tę niesamowitą nową bibliotekę do budowania mostów, która jest wystarczająco inteligentna, aby przełączać się między Brooklynem a Londynem w zależności od lokalizacji. Będzie ogromnie, chcesz wejść na parter?
Moja odpowiedź jest rzeczywiście celowo sardoniczna i może anty-boolowska, ale naprawdę? Dla celów obsługi wyjątków moja odpowiedź brzmi jak nieprawda .
Jeśli uważasz, że coś jest technicznie poprawne - obejmij to, w przeciwnym razie będzie to normalne. C jest moim głównym językiem, działa tak samo dobrze, jak prawie dwie dekady temu, podczas gdy dostaję ponad dwukrotnie więcej niż prawie dwie dekady temu.
Podziwiam twoją zwięzłą formę i cytaty, ale wydaje się, że to eksperyment naruszający prawo .
Dobra robota :)
źródło
To zależy od tego, co spędzasz czas na nauce. Nauczyłem się programowania w powłoce Bourne'a i języku C w 1980 roku. Nadal używam go codziennie. Z drugiej strony czas spędzony na nauce struktur menu Compuserve jest całkowitą stratą i nawet wtedy nie był tak strasznie przydatny. Potem są rzeczy pośrednie, takie jak wyprowadzenia kabla RS-232 i protokoły szeregowe: dzisiaj bezużyteczne, ale niezbędne przez około dziesięć lat mojego życia. Starannie wybieraj technologie, na które poświęcasz dużo czasu.
źródło
Zasada jest prawdziwa. Rzeczywista wartość jest - według mojej wiedzy - znacznie większa.
Pamiętam prezentację Pragmatic Programmer, w której mówiono o siedmiu latach, ale nie mogę jej teraz zlokalizować, więc wartość może być nieco inna.
Pomyśl tylko, jak zmieniły się technologie: piętnaście lat temu sieć była zupełnie nowa i wszyscy próbowaliśmy pisać strony internetowe - być może nawet przy stołach - i animowany gif. Siedem lat temu AJAX wystartował. Dzisiaj niektórzy ludzie piszą gry typu Doom na telefony komórkowe.
Najlepiej jest nauczyć się ogólnych rzeczy, które można zastosować w następnej technologii zamiast mówić „Rozpocznij! Znam tylko Visual Basic!” (lub odpowiednik za 15 lat).
źródło
Nie wydaje mi się, żeby to było dokładne.
Kiedyś było to bliższe prawdy - dawno temu miałeś mały wybór, ale musiałeś programować na stosunkowo niskim poziomie abstrakcji, co oznaczało znajomość ogromnej liczby szczegółów, które nie były już istotne na nowej platformie.
Z czasem jednak coraz więcej programów jest wykonywanych na coraz wyższych poziomach abstrakcji. Wyższy poziom abstrakcji przekłada się mniej więcej bezpośrednio na mniejszą troskę o szczegóły, które mogą się szybko zmienić i stać się nieaktualne.
Oczywiście są ludzie, którzy pracują na takich urządzeniach, jak sterowniki urządzeń lub małe systemy wbudowane, którzy nadal muszą pracować przy niskim poziomie abstrakcji. Poza takimi obszarami nie ma jednak usprawiedliwienia dla takich rzeczy. Tak, wielu ludzi zrobić dowiedzieć się wiele ciekawostek nigdy nie potrzebują, ale jeśli naprawdę używanie takiego rzeczy w kodzie dużo, szanse są całkiem dobre, że jesteś po prostu nie czyni bardzo dobre decyzje. Większość takich rzeczy można (a co ważniejsze należy) na ogół unikać.
źródło
Być może prawda, a może nie; Jednak nawet jeśli rzeczy, których się nauczyłem, stają się przestarzałe wkrótce po ich nauczeniu, zawarte w nich koncepcje i pomysły mogą być przydatne znacznie dłużej.
źródło
Jeśli tak było tylko 5.39x10 -6 z Mityczne Man-Month byłoby dzisiaj istotne. Ponieważ jest bardzo niewiele kluczowych zasad, które szczegóły Freda Brooksa datowały znacznie lub okazały się zasadniczo fałszywe.
źródło
Duża część twojej wiedzy pozostanie aktualna podczas próby czasu (choć może wymagać aktualizacji w miarę upływu czasu), szczególnie podstawowych, takich jak struktury danych itp.
Oczywiście, jeśli znasz język programowania X i Y, nauka języka Z będzie łatwiejsza niż w przypadku, gdy nie znasz X ani Y, więc możesz wykorzystać swoją wcześniejszą wiedzę do dostosowania nowej wiedzy.
Warto również wspomnieć, że wiele umiejętności, które były ważne kilkadziesiąt lat temu, są nadal aktualne, nawet konkretne technologie, takie jak C (początek 1970 r., Nadal aktualne).
Możliwe, że połowa tego, co wiesz, będzie z czasem przestarzała i prawdopodobnie więcej niż tylko połowa, ale każde 18–24 miesięcy brzmi trochę ekstremalnie.
źródło
Pojedyncze fakty nie mają wielkiego znaczenia. Bierzesz je, rozumiesz, stosujesz tylko na chwilę.
Ale uczy to procesu obsługi faktów lub przynajmniej obsługi określonego podzbioru faktów. Nauczyłem się wielu matematyki w szkole, z których tak naprawdę nigdy nie korzystałem. Wciąż uczyłem się i trenowałem matematyczne myślenie.
Pracowałem jako programista internetowy w Ruby on Rails. I chociaż obecnie nie piszę stron internetowych, mocno wpłynęło to na mój kod myślenia i uczyniło mnie lepszym koderem C ++. (Na przykład użyj więcej STL).
Podobnie jest z nauką rakiety. Nigdy nie napisałem żadnego dużego programu, ale dało mi to nowy punkt widzenia do zastosowania w obszarze problemów.
Chodzi tylko o trening umysłu ...
źródło
Myślę, że możesz z łatwością obalić to stwierdzenie, bawiąc się przedmiotem, który znajduje się w „połowie wszystkiego, co wiesz”.
Istnieje pewna dystrybucja wiedzy, z której część stanie się przestarzała (bez względu na tempo). Tak więc, jeśli dana osoba zawiera tylko wiedzę z połowy tego spektrum, która pozostanie po 18-24 miesiącach, łamie to stwierdzenie.
źródło
Oto lepsza wersja zdania: połowa wszystkiego, czego nauczyłeś się dzisiaj (lub w tym tygodniu, w tym miesiącu lub w tym roku), stanie się przestarzała za rok lub dwa. To prawda - uczysz się, jak zrobić coś w wersji 5 narzędzia, a gdy pojawi się 6, robi to automatycznie, lub uczysz się, jak robić coś w języku, który się nie chwyta, więc nigdy więcej tego nie użyjesz. Ale druga połowa tego, czego uczysz się każdego dnia, pozostaje z tobą i rośnie, i to sprawia, że programista z 20-letnim doświadczeniem jest lepszy niż ten z dwuletnim doświadczeniem.
źródło
Jest tu bryłka prawdy lub trafności, ale myślę, że została przedstawiona niedokładnie.
Lepszym sposobem przedstawienia tego byłoby
lub
Może to zależeć od dziedziny, w której pracujesz, ale wiem, że ciągle pracuję nad nowymi technologiami. Wydaje się, że każdy projekt zawiera ogromną ilość nowych rzeczy, których muszę się nauczyć - nowe ramy i wzorce, nowe podejście do nieco różnych problemów lub po prostu nowe narzędzia, które (podobno!) Są lepsze niż te, których wcześniej używaliśmy.
Jeśli co sześć miesięcy projekt wymaga zaledwie 12,5% nowej wiedzy, to w ciągu dwóch lat pełne 50% wykorzystanej wiedzy będzie „nowe”.
To powiedziawszy, nie jest to zbyt znaczące ani dokładne.
źródło
O Boże, taka cudowna, rozsądna odpowiedź jest powyżej. Dobra robota.
Krótko mówiąc, jeśli jest to moda lub trend, jeśli jesteś dobrym programistą, przeczytasz o tym, a następnie wrócisz do tego, co zwykle robisz lub pracujesz.
Chyba że istnieje coś istotnego dla tego, co robisz, lub nowe praktyki, które mają dla ciebie sens.
Tylko dlatego, że coś jest nowe, nieco nowe lub nieco stare, nie oznacza, że musi to być rozwiązanie do niczego.
Mam proste zdanie, które obejmuje wszystko.
„Jeśli to działa, użyj go”
Oznacza to, że jeśli ta nowa technologia jest niesamowicie fajna, ale nie ma nic, co zwiększyłoby wydajność pracy, jakość, podatność na błędy lub rozwiązania problemów technicznych, takich jak rozwiązania mobilne lub klient / serwer. Niż najlepiej go przeczytać, a następnie zignorować, dopóki nie będziesz miał praktycznego zastosowania.
Widziałem i czytałem więcej ludzi marnujących czas, próbujących znaleźć nową, gorącą rzecz, a następnie użyć tej nowej. Co zwykle kończy się całkowitą stratą czasu i pieniędzy.
Ważne jest, aby zawsze uczyć się i ćwiczyć oraz doskonalić swoje rzemiosło i umiejętności.
Powinieneś jednak dowiedzieć się, co jest przydatne lub co daje różne perspektywy rozwiązywania problemów, które zwykle masz.
Ale poza tym powinien wrócić do podstaw bycia niesamowitym programistą.
Stosuję najlepsze praktyki zdrowego rozsądku, których wszyscy uczymy się na podstawie naszych doświadczeń. Nie trać czasu na rzeczy, które są po prostu fajne.
Ponieważ szczerze mówiąc, fajne nie jest po prostu fajne.
źródło
Słyszałem to wyrażenie przypisane do dziedzin inżynierii, a nie programowania. Mówiąc dokładniej, słyszałem: „Zanim uzyskasz tytuł licencjata inżyniera, pierwsze dwa lata studiów będą oparte na starej technologii”. (Lub coś w tym rodzaju).
Nie sądzę, że w ogóle dotyczy to programowania. Jedynym możliwym sposobem, w jaki mogłem to zobaczyć, jest to, że funkcje są przestarzałe lub usunięte z języka programowania / biblioteki / cokolwiek innego.
źródło
Przeciętna platforma technologiczna utrzymuje się od 10 do 25 lat, więc wydaje mi się to mało prawdopodobne, nawet jeśli całkowicie pominiesz fakt, że znajomość wzorów utrzymuje się dzięki technologiom. Jeśli jesteś na jakiejkolwiek dużej platformie, możesz liczyć na to, że ten stos będzie popularny przez co najmniej 5 lub 6 lat, zanim zacznie on zanikać. Znam programistów, którzy kodują w RPG od 30 lat, używając prawie identycznego sprzętu i oprogramowania.
źródło