To pytanie sprawiło, że pomyślałem, że jest lepsze pytanie.
Czego nauczyłeś się w szkole, że w tym czasie Cię nie obchodziło, ale okazało się przydatne lub musiałeś ponownie uczyć się w miejscu pracy, ponieważ miałeś je w szkole, ale nie zachowałeś informacji i potrzebujesz ich? (Mam na myśli zadania związane z oprogramowaniem.)
Myślę, że może to pomóc uczniom w określeniu, na co powinni zwrócić uwagę podczas nauki.
programming-practices
HLGEM
źródło
źródło
Odpowiedzi:
Większość programistów, których widziałem świeżo po szkole, nie miało dużego doświadczenia w tworzeniu OO . Słyszeli o tym, ale większość z nich to po prostu „wkładanie rzeczy na zajęcia”.
W szkole dostajesz mnóstwo przykładów samochodów i ludzi, które można umieścić w ramach OO. To uczy polimorfizmu, przeciążania i tym podobnych rzeczy. Raczej „podstawowe” rzeczy. Dobrze jest wiedzieć o tych rzeczach i o tym, jak one działają, ale nigdy nie znalazłem przykładu takiego zastosowania w świecie rzeczywistym. Myślę, że ważne jest, aby pokazać uczniom niektóre scenariusze z prawdziwego świata, w których zastosowano pewne elementy projektu.
Inną rzeczą, za którą tęskniłem na studiach, jest wykorzystanie (lub niewłaściwe użycie) użytecznych wzorców projektowych . Myślę, że obecnie najważniejsze wzorce należy wprowadzić gdzieś pod koniec pierwszego roku lub na początku drugiego roku. Studenci powinni się z nimi zapoznać.
Pisanie czystego kodu to coś, czego nie uczy się (wystarczająco) w szkole. Możemy zrobić prawdziwy bałagan w kodzie i nadal uzyskać A +. „Jeśli aplikacja działa, jest dobra”. było motto. Uczniowie powinni nauczyć się pisać czysty kod o wysokiej jakości i otrzymywać za to wynagrodzenie, co oznacza również refaktoryzację i stosowanie wzorców lub najlepszych praktyk, których się nauczyli.
Oczywiście chętni uczniowie nauczyli się tego wszystkiego samodzielnie, ale inni, którzy nie byli tak chętni, nie zrobili tego. Może to wynikać z braku motywacji lub po prostu nie wiedzieli, gdzie i jak szukać. Płacąc za szkołę dużo pieniędzy, myślę, że powinni naprawdę nauczyć cię tego na wpół zaawansowanego.
Ponadto niektórym ludziom brakuje przyzwoitego (profesjonalnego) pisania . Szkoda, ponieważ jest to bardzo ważne w prawdziwym świecie. Najważniejsza jest umiejętność wyrażania się w języku ojczystym. Jeśli nie umiesz pisać wyraźnie w swoim głównym języku, trudno jest porozumieć się w firmie.
Nie wiem, czy możesz nauczyć kogoś pisać w tym wieku, powinien on już znać tę umiejętność. Można powtórzyć rzeczy nauczane w szkole średniej. Może naucz uczniów, jak pisać komentarze i dokumentację techniczną. Nadal trudno mi pisać dokumenty techniczne, ponieważ wydaje się, że nikt nigdy nie wie, jak to zrobić lub jaki jest domyślny format.
źródło
Dziewczyny. Możesz myśleć, że żartuję, ale nie jestem.
Nie wariuj ani nic, nadal musisz się uczyć akademickich rzeczy. Ale musisz również poświęcić trochę czasu na naukę o ludziach, od ludzi wokół ciebie.
Obejmuje to połowę ludzkości, która ma zupełnie inne zainteresowania i postawy niż ty i twoi przyjaciele, ale z którą nadal będziesz chciał się dogadać.
źródło
Wydaje mi się, że powinienem poświęcić około 42% więcej energii na statystyki.
źródło
Pisanie byłoby dla mnie jednym z największych. Nie sądzę jednak, że ogranicza się to tylko do programistów.
źródło
Programowanie funkcjonalne. Wówczas wydawało się, że jest to rój nawiasów, który nic nie może zrobić. Teraz, gdy wyrażenia lambda znajdują szerokie zastosowanie, musiałem ponownie wyszkolić swój mózg, aby myśleć w ten sposób. Na studiach chciałem tylko umieścić LISP i program tak daleko w lusterku wstecznym, jak to możliwe i nigdy nie oglądać się za siebie. Gdybym miał pojęcie, jak przydatne mogą być niektóre aspekty programowania funkcjonalnego, zwróciłbym większą uwagę.
źródło
Wyrażenia regularne. Wyraźnie pamiętam, jak zdmuchnąłem je na studiach. Były niezbędne do pracy.
źródło
Moja ulubiona odpowiedź (statystyki) jest zajęta, więc dam drugą ulubioną odpowiedź. Notacja Big-O i znajomość wydajności różnych algorytmów kluczowych. Jest to dla mnie mniej „tajna broń” niż statystyki, ale wciąż jest bardzo cenna.
źródło
Chciałbym słuchać tego, co powiedział mi mój nauczyciel, gdy miałem 14 lat. Niestety nie mogę ci powiedzieć, co to było, ponieważ nie słuchałem.
źródło
Musi to być kurs języka skończonego i teorii automatów.
Myślałem, że to zbyt teoretyczne, dopóki moja praca nie wymagała ode mnie tworzenia od podstaw kompilatora języka specyficznego dla domeny.
źródło
Powiedziałbym C, a także UNIX. Chociaż nauczyłem się systemu UNIX wkrótce po studiach, wydaje mi się, że skorzystałbym na tym, aby wcześniej lepiej się zakorzenić w systemach UNIX i C.
źródło
źródło
Techniczne pisanie. Spędzam dużo czasu na pisaniu wymagań, komunikowaniu się z klientami i współpracownikami. Jest to obszar, w którym miałem 1 godzinę zajęć w College. Jedyną inną klasą, która naprawdę pomogła w mojej karierze, była kolejna klasa godzin kredytowych. Tak było w programowaniu C. Reszta, choć interesująca i prawdopodobnie pomogła mi w ogólnych umiejętnościach analitycznych, nie była tak naprawdę bezpośrednią korzyścią dla mojej kariery.
To prawda, że 20 lat temu poszedłem do szkoły, a C uznano za najnowocześniejszy w dziale elektrotechniki. CS ludzie robili trochę rzeczy z Lispem i C ++, ale nadal prawdopodobnie nie tyle OO, ile mam nadzieję, że dzieje się z dzisiejszymi absolwentami.
źródło
Dokumenty projektowe
Zawsze zakładałem, że ktoś inny będzie tym, który tworzy te rzeczy, lub że są to tylko proste dokumenty. Nie są wcale takie proste, a mój zespół jest na tyle mały, że wykonuję własne dokumenty projektowe.
źródło
Drugi język obcy. Rosyjski w moim przypadku. Wiele książek, zasobów i więcej w tym konkretnym języku w mojej otaczającej przestrzeni.
źródło
Od strony CS rzeczy:
Z kategorii wszystko:
źródło
Wektor matematyki i rachunku różniczkowego. Miałem je, ale moje profesje były okropne i właściwie nie uczyłem przedmiotów. Ale jako ktoś, kto intensywnie zajmuje się programowaniem graficznym ... pomogłaby lepsza podstawa matematyki wektorowej.
źródło
Oczywiście, historia i literatura. Problem często polega na tym, że szkoła ich nie interesuje.
źródło
Elektronika
W szkole nie miałem wiele rzeczy związanych z oprogramowaniem . Ach - informatyka, ale to anulowałem. :) Ale później łatwo było się nauczyć. Podczas gdy elektronika często tego nie rozumiem. Mikrokontrolery, PWM, GPIO - wtf? Chciałbym to zrozumieć.
źródło
Rozproszone sieci / komputery . Programowanie nie jest wyzwaniem, ale warunkiem obecnej architektury jest dogłębna znajomość koncepcji rozproszonych.
Szczegółowy kurs był oferowany jako przedmiot do wyboru, ale musiał wybierać między tym a sztuczną inteligencją: tak naprawdę nie jest to żal.
źródło
Wzory projektowe: sposób, w jaki zostały zaprezentowane, nie powiedział ci, jak bardzo są one użyteczne, od tego czasu przeczytałem o nich kilka książek i uważam, że są niezwykle przydatne.
źródło
Unix, Shellscripting, C. Miał okazję dobrze się tego nauczyć w szkole, ale musiał to zrobić później w pracy.
źródło
Rzeczy niezwiązane z informatyką:
Osobiście chciałbym mieć język ojczysty, jak większość normalnych ludzi tutaj. Rozumiem przez to, że większość ludzi urodziła się w jednym głównym języku i może wybrała inny lub dwa później. W tej sytuacji dodatkowe języki zwykle nie wpływają na język ojczysty, ponieważ masz już solidne podstawy, które obejmują mowę, pisanie i słuchanie. Dorastałem, mówiąc i pisząc jednocześnie w trzech różnych językach. Mimo że zawsze dobrze sobie radziłem na zajęciach językowych zarówno w szkole, jak i na studiach, chciałbym mieć pełną płynność w JEDNYM języku. To powoduje, że muszę ułamek sekundy zastanowić się przed sformułowaniem odpowiedzi. Niektórzy zauważają to i dochodzą do wniosku, że jestem zbyt nieśmiały (co do pewnego stopnia nie jest złe).
źródło
Ekonomia. Może to być nudne (i nieco okrutne), ale w każdym razie jest to jedyne, co jest naprawdę niezbędne w tym społeczeństwie. Następnie statystyki.
źródło
Myślę, że trzy klasy, które dały mi najlepszy wgląd w sposób działania komputerów w wykonywaniu oprogramowania (które to zrozumienie pozwala na bardziej optymalne programowanie) to:
Kompilatory systemów operacyjnych w języku asemblera
Być może bardzo łatwo jest pomyśleć, że te zajęcia nie są tak przydatne, chyba że przejdziesz do kariery zawodowej skoncentrowanej na którejkolwiek z tych rzeczy, ale nawet jeśli jesteś programistą i nie korzystasz z żadnej z tych metod bezpośrednio byłoby nadal niezwykle pomocne w efektywnym kodowaniu.
źródło
Jest około tuzina zajęć, które chciałbym wziąć na studia, ale tego nie zrobiłem. Głównie nie CS. Fotografia, General Chem, więcej pisania!
źródło
To zabawne, że liczba ludzi mówiących o sztukach wyzwolonych: byłem studentem kognitywistyki (Filozofia / CompSci / Anatomia) ... Skończyłem z przejściem na filozofię / CompSci z ciężką nieletnią w języku angielskim (mogłem dostać licencjat, ale nie zawracałem sobie głowy wzięciem 101, które pominąłem).
Zajęłoby mi tydzień opowieści, aby opowiedzieć o wszystkich bzdurach, jakie dostałem od moich kolegów z CS za wzięcie udziału w tych zajęciach sztuk wyzwolonych. Bez względu na to, że pół tuzina klas logiki zrobiło więcej dla mojego programowania niż jakakolwiek ilość rachunku różniczkowego. Bez względu na to, że wszystkie moje najlepsze kursy AI to kursy filozofii. Bez względu na to, że na moich lekcjach angielskiego zdarzały się cholernie DZIEWCZYNY. Nie, nie. Byłem jakimś nieprzyzwoitym pozerem za udział w tych kursach.
Weź jednak serce. Przynajmniej ty nie trzeba wyjaśniać swoje wykształcenie za każdym razem ktoś patrzy na CV.
źródło
Równania kwadratowe i trygonometria.
Bardzo ważne przy pisaniu oprogramowania dla tradycyjnych dyscyplin inżynieryjnych.
źródło
Tak, nie zwracałem uwagi na kompilatory tak, jak powinienem.
źródło
CS / Matematyka: więcej logiki, algebry, teorii kategorii. Bardziej podstawowe i mniej stosowane rzeczy: zrozumienie zastosowanych rzeczy, gdy dobrze znasz podstawy, jest znacznie łatwiejsze niż na odwrót i bardziej owocne.
(Miałem A w statystykach, ale zajęło mi dużo czasu, aby połączyć go z prawdziwymi potrzebami programistycznymi, dużo zapomniałem).
„Humanities”: język naturalny, pisanie, formułowanie, rozumienie i bycie zrozumianym. Nie wydaje się to ważne, dopóki nie dołączysz do zespołu złożonego z więcej niż 2-3 innych hakerów, czyli w tak zwanym „prawdziwym życiu”.
źródło
Grafika komputerowa (renderowanie 3d w opengl / directx)
Szczerze mówiąc, bardzo mnie to interesowało, ale byłem tak zajęty, że nie mogłem poświęcić czasu, który bym chciał. Stało się obowiązkiem zamiast hobby. Myślę, że być może będę musiał wybrać książkę, aby zainteresować się nią ponownie.
źródło