Czy powinienem nauczyć się języka programowania, zanim pójdę na studia inżynierskie? [Zamknięte]


14

Zanurzyłem palce w programowaniu w C ++, ale nie zagłębiłem się w to. Chcę wiedzieć, czy naprawdę muszę się tego nauczyć lub innych języków, zanim pójdę na studia inżynierskie, czy po prostu i tak nauczę się w szkole?


Powiedziałbym, że zdecydowanie nie musisz, ale to wcale nie zaszkodzi. Zanim zacząłem na moich kursach CS, nigdy nie kodowałem i nawet nie wiedziałem, czym jest C ++, a klasa była w C ++.
pllee

3
... Nawet jeśli się tam nauczysz, oznacza to po prostu lekcję. Więc nie ma powodu, żeby się tego teraz nie uczyć ...
Izkata,

Może ci pomóc dowiedzieć się, czy masz zdolności i / lub zainteresowanie programowaniem.
JeffO

Zadałeś to pytanie na stronie programmers.stackexchange.com. Czy naprawdę spodziewałeś się innej odpowiedzi niż „tak, naucz się C ++ przed pójściem na studia”?
Martin Thoma,

@moose, a następnie zamknij jako duplikat.

Odpowiedzi:


48

Tak, z kilku powodów.

  1. Im szybciej zaczniesz zdobywać doświadczenie w tej dziedzinie, tym szybciej będziesz mógł dowiedzieć się, czy jest to dziedzina, w której powinieneś zajmować większą pozycję. Jeśli nie lubisz programowania, inżynieria komputerowa prawdopodobnie nie jest dobrym polem do specjalizacji w. Nawet jeśli jesteś najbardziej zainteresowany projektowaniem procesorów, będziesz robić dużo programowania.
  2. Większość ludzi uważa, że ​​poziom i ilość pracy, jakiej oczekują od nich na studiach, znacznie przewyższa to, do czego są przyzwyczajeni w szkole średniej. O ile nie jesteś wyjątkowo utalentowany, znajdziesz się w pracy. Zrób sobie przysługę: dowiedz się, który język jest używany do nauczania kursu pierwszego roku i zacznij się go uczyć już teraz. W najgorszym przypadku będziesz trochę znudzony na zajęciach, ale będziesz mógł szybciej wykonać pracę i wykorzystać czas zaoszczędzony na innych zajęciach.
  3. Wiele klas jest klasyfikowanych według krzywej. Minusem tego jest to, że będziesz konkurować z kolegami z klasy o oceny. Wielu studentów inżynierii komputerowej wykonało już dużo programowania, więc możesz już być za zakrętem. To dobry moment, aby zacząć nadrabiać zaległości.
  4. Jedynym sposobem na dobre programowanie jest zrobienie tego. Im więcej czasu poświęcisz programowaniu w ciągu najbliższych kilku lat, tym lepiej będziesz w tym pracować. Im więcej masz doświadczenia, tym większa szansa na wyładunek i staż.

7
+1 Za rozpoczęcie teraz, aby ułatwić w przyszłości
Andy Hunt

Można również pominąć dwie klasy (zwykle wprowadzenie do programowania i wprowadzenie do struktur danych) podczas studiów, jeśli zostały one podjęte w HS. Posiadanie mniejszej liczby zajęć oznacza prawdopodobnie mniej pieniędzy do wydania lub przynajmniej dłuższy czas buforowania. Programy CSE mogą być bardzo sztywne - np. Pominięcie jednej klasy oznacza powrót na rok. Posiadanie bufora pomogłoby. Zawsze można wziąć dodatkowe klasy lub odebrać nieletniego.
Job

Jeśli skończysz wyjątkowo biegle posługiwać się językiem programowania, zanim podejmiesz wstępną lekcję programowania, zastanów się, czy twoja instytucja ma zasady „zaliczenia przez egzamin”, których możesz użyć, aby się z niej wypróbować. Może zaoszczędzić sporo czasu (ale tylko wtedy, gdy wyjątkowo biegle władasz językiem).
In silico

7

Jako absolwent CS (BS, MS, doktorat), zaleciłbym jak najszybsze zmoczenie stóp. Będziesz miał wystarczająco dużo innych rzeczy na pierwszym roku studiów. W szczególności w przypadku programowania:

  • Sprawdź stronę internetową uczelni docelowej i zajrzyj do katalogu klas niższych klas lub na stronie instruktorskiej instruktora, aby zapoznać się ze wstępnymi zajęciami programowania. Poszukaj nauczanego języka programowania i zobacz, jakie rzeczy są omawiane w pierwszej klasie. Zanim zaczniesz, przeczytaj ten materiał.

  • Ponownie, patrząc na stronę sylabusa klasy, spójrz na poprzednie zadania programowania i zobacz, jakie narzędzia programistyczne i środowisko są używane. Czy to vi i gcc (tego używają prawdziwi mężczyźni)? Microsoft Visual Studio? Zaćmienie? Spróbuj użyć tych narzędzi przed rozpoczęciem.

  • Programowanie oprogramowania to tylko jedna z rzeczy nauczanych w programie CS. Inne to algorytmy (np. QuickSort), struktury danych (drzewa, listy połączone, tabele skrótów) i czysta teoria (NP-kompletność i logika zestawów). Powiedziałbym, że są one co najmniej tak samo ważne jak każdy język programowania, którego się uczysz.


+1 za nie tylko czytanie w językach programowania
Andy Hunt

4

To zależy od uczelni. Kiedy studiowałem coś, co nazywają „informatyką” na California State University, (słusznie, moim zdaniem) skoncentrowali się na jej naukowym aspekcie i spodziewali się, że wszyscy (nawet pierwszoklasowcy) już będą umieli korzystać z systemów operacyjnych i napisz kod w jakimś popularnym języku. Nie wyrazili zgody na przeniesienie części punktów, które zdobyłem podczas kursów językowych na State University of Ohio. (To był dla mnie kłopot, ale znowu to rozumiem.) To także miało plus: ukończyłem zadanie raz, pisząc mój kod w C; profesor nie mógł odczytać C, więc poprosił mnie o przepisanie go w Pascalu. Zapytałem kierownika działu o zasadność tej prośby, a on powiedział, że skoro nie uczą języków, nie mogą też oczekiwać, że ktoś wykona zadanie w danym języku. Więc mój profesor musiał żyć z moim zadaniem napisanym w C. Tak więc, sedno sprawy brzmi: sprawdź na uniwersytecie, do którego zamierzasz się udać. Ale jeśli chcesz mojej rady, nigdy wcześniej nie dowiesz się jak najwięcej.


2
A C ++ jest dobrym wyborem na początek dla języka, jeśli wybierasz się na którąś z dyscyplin inżynieryjnych, ponieważ dzięki C ++ możesz nauczyć się programować blisko maszyny, a jednocześnie możesz zacząć uczyć się OOP.
Mike Nakis,

Dziękuję, że zadzwoniłem do szkoły (University of Illinois) i powiedzieli mi, że zwykle studenci po prostu rozumieją język i że powinienem nauczyć się jak najwięcej, zanim pójdę do szkoły. Dziękuję za radę.
Matt

Świetny. Spróbuj także zapoznać się z wierszem poleceń Linuksa, jeśli możesz; taka wiedza zwykle przydaje się w środowiskach uniwersyteckich. Lepiej być tym, który pokazuje innym ludziom w laboratorium komputerowym, jak się rzeczy mają, niż tym, który zawsze pyta innych.
Mike Nakis,

4

Jeśli musisz zapytać, czy powinieneś nauczyć się języka programowania, zadaj sobie pytanie, czy to naprawdę to, co chcesz zrobić. Większość pierwszych lat informatyki jest już całkiem dobra w programowaniu, zanim jeszcze się zacznie, więc będziesz konkurować z tymi typami, które naturalnie dążą do maniaka. Albo wskocz do niego najpierw, albo zrób coś, co kochasz. Nie bądź na płocie. Kocham to co robisz. Nie potrzebuję ani nie chcę głosować na ten, chcę po prostu z tobą porozmawiać.


1
Zmieniłbym to, aby powiedzieć „większość UCZYNIANYCH studentów informatyki na pierwszym roku”. Kiedy byłem w college'u (a później w szkole), niepokojąca liczba studentów CS nie wiedziała, co należy wiedzieć o korzystaniu z komputerów, ale słyszeli tylko, że CS to wszystko, na co leżą wszystkie pieniądze. Większość z nich zmieniła specjalizacje, po tym, jak bardzo się zirytowała instruktorami, którzy nie mówili im, co pisać.
puszysty

Byłem jednym z tych noobów i odniosłem duży sukces. Musiałem jednak naprawdę bardzo się starać, aby poradzić sobie z tymi maniakami od zera. Gdybym nie był w sytuacji, w której musiałbym zarabiać pieniądze dla mojego dziecka, nie naciskałbym na siebie tak mocno. W końcu uwielbiam to, ponieważ bardziej to rozumiem.
Jason Sebring,

3

Nie sądzę, że musisz się tego nauczyć, zanim pójdziesz na studia. Jednak uważam, że podobnie jak większość rzeczy w życiu, jeśli jesteś przygotowany wcześniej przed wzięciem udziału w jakimś wydarzeniu itp., To najprawdopodobniej będziesz w stanie lepiej podejmować świadome decyzje dotyczące tego, jakie informacje należy wchłonąć, a jakie usunąć.

Mówiąc dokładniej, przynajmniej zanurzając palce, możesz być w stanie słuchać tego, co mówią twoi wykładowcy, zamiast kopiować to, co mówią dosłownie, ale nie wchłaniając pojęć, które starają się przekazać, co moim zdaniem jest najważniejsze część uniwersytetu (a nie część uczenia się składni języka itp.).

Co do tego, jakiego języka programowania się uczyć. Prawdopodobnie nie ma to znaczenia, ale może być przydatne, aby zacząć czytać o tych, które prawdopodobnie pokryjesz w pierwszym roku.

Jednak drugą stroną wstępnego uczenia się jest to, że kiedy dojdziesz do pierwszych kilku miesięcy, może ci się wydawać nudne i elementarne. Może to prowadzić do tego, że nie będziesz uczestniczyć w zajęciach lub odrzucisz to, co wykładowcy starają się przekazać, a zatem brakuje niektórych istotnych informacji, takich jak uświadomienie sobie, że sposób, w jaki się czegoś nauczyłeś, jest niewłaściwy, tzn. Nauczyłeś się złego nawyku przed pójściem na studia.

Korzystając już z tego rodzaju witryn, prawdopodobnie już jesteś na dobrej drodze, aby być o krok do przodu i tym samym pomóc w nauce podczas studiów. Tak czy inaczej, to, czego nauczysz się, prawdopodobnie będzie tylko wierzchołkiem góry lodowej. Będziesz musiał kontynuować tę krzywą uczenia się w materiałach szkolnych i poza nimi, jeśli chcesz kontynuować korzyści, które może zapewnić.


2

Tak, ale nie zaczynaj od najbardziej skomplikowanego języka, będzie na to dużo czasu później.

Zacznij od czegoś prostego, aby zmoczyć stopy. O wiele łatwiej jest ominąć koncepcje programowania, gdy sam język nie jest obciążony. Podobnie, niektóre języki robią rzeczy lepiej niż inne.

Naucz się języka Python w zakresie programowania dynamicznego, prostych technik programowania obiektowego i prawidłowego wcięcia. Dowiedz się javascript + JQuery lub Lua, aby dowiedzieć się o zamknięciach. Naucz się języka Java lub C #, aby dowiedzieć się na temat pisania statycznego. Naucz się wyrażeń regularnych do analizowania ciągów. Naucz się trochę SQL, ponieważ każdy programista musi w pewnym momencie dotknąć bazy danych. Następnie naucz się PHP, aby rozpoznać kod spaghetti.

Ta lista może się różnić, ale w zasadzie wybierz kilka zabawnych języków i użyj ich do nauki pojęć . Następnie nauczysz się dostosowywać, zamiast stagnacji na jeden język do końca życia i ze złością próbujesz go bronić w Internecie przez cały czas.


1

Powiem, że nie sądzę, aby miało to zbyt duże znaczenie, jaki język znasz, kiedy zaczynasz, ale prawdopodobnie da ci to przewagę w tym sensie, że kiedy dostaniesz pierwsze zadanie programistyczne, nie będziesz miał zmagać się z problemem myślenia w kategoriach kodu - będziesz już miał tam trochę doświadczenia. Jedna krzywa uczenia się do pokonania jest dobra. Bonus, jeśli nauczysz się języka, którego nauczają w pierwszym roku, ale nie jest to konieczne.


1

Nie dowiesz się, czy inżynieria komputerowa jest dla ciebie odpowiednim programem studiów, dopóki przynajmniej nie dowiesz się, jak trudne lub łatwe jest programowanie, a także, jak dobry jesteś w tym. Jedynym sposobem, aby naprawdę wiedzieć, jest próba nauczenia się co najmniej jednego języka programowania i zrobienia dużo kodowania, JAK NAJSZYBCIEJ.


1

Niektóre rzeczy, które mogą Cię zainteresować przed rozpoczęciem studiów (wybierz spośród nich):

  1. Trochę więcej matematyki (nie mogę być bardziej szczegółowy, ponieważ jestem Francuzem i nie mam pojęcia o umiejętnościach matematycznych, których się od ciebie oczekuje).
  2. Niektóre inne języki programowania, takie jak Ocaml, Scheme, Haskell, Lua ... Otworzą twój umysł na nowe sposoby myślenia.
  3. Książka o algorytmach
  4. Lepszy angielski i umiejętności pisania (a język obcy nigdy nie jest zły)
  5. Używanie i kodowanie w systemie GNU / Linux oraz ogólnie wolne oprogramowanie. Umiejętność studiowania wolnego oprogramowania (i przyczynienia się do niego) nauczy Cię bardzo dużo.
  6. Autonomia pracy, możliwość zdefiniowania planu pracy i trzymania się go
  7. SICP

Nie polecam skupiania się w wąski sposób na C ++; inne języki, książki, umiejętności przyniosą Ci znacznie więcej. Nie wydawaj wszystkich wysiłków na C ++.

Życzymy miłej nauki.


1

Szczerze mówiąc, jeśli masz na to czas. IT będzie miało więcej sensu podczas nauczania nauczyciela. Wydobędziesz z tego jak najwięcej, niż studenci, którzy nigdy nie programowali.


1

Zdecydowanie! Jeśli nie programowałeś wcześniej, nauka języka C ++ lub C, Java lub C # pozwoli Ci zacząć od razu. Wszystkie te języki (z grubsza) są oparte na Algolu - gdy tylko nauczysz się jednego z nich, naucz się Lisp lub Haskell. Wspaniała zmiana paradygmatu między dwiema rodzinami pomoże ci bez względu na to, jakie są twoje kursy.


0

Osobiście poleciłbym to. Nie dotyczy to wszystkich szkół, ale poszedłem do bardzo dobrej szkoły inżynierskiej, a zajęcia z programowania wstępnego były okropne. Znajomość podstaw pomoże ci uniknąć wielu złych praktyk / niewłaściwej wiedzy, których możesz się nauczyć. I jak wspomniano w innej odpowiedzi, będziesz przechodzić przez te proste zajęcia z programowania, podczas gdy inni będą się zmagać. A jeśli jesteś podobny do mnie, daje to więcej możliwości pomocy znajomym, którzy sami sobie z tym radzą.


0

Myślę, że powinieneś. Oprócz powodów podanych przez innych tutaj dodam, że wielu profesorów uniwersyteckich nie jest zbyt dobrzy w nauczaniu i dlatego nie można polegać na nich, że bardzo dobrze nauczają tego, czego się uczą. Zrozumiesz, co mówią o wiele lepiej, jeśli znasz już podstawy.

Ponadto stosunek materiałów do zajęć jest często zbyt wysoki na uniwersytetach, więc nawet jeśli profesor jest przyzwoitym nauczycielem, nie może cię skutecznie uczyć w dostępnym czasie zajęć. Każda wiedza zdobyta z wyprzedzeniem pomoże ci nadążyć za szybkim tempem zajęć.

IMO C ++ jest jednym z najgorszych języków dla początkujących. Śledź C ++, jeśli nie jest to zbyt trudne, ale inne języki, takie jak C #, VB, Ruby lub Python, są znacznie łatwiejsze.


0

Byłoby to bardzo mądre posunięcie, aby znać jakiś język przed podjęciem studiów. Nauczanie na kierunku informatyka jest często ponurej jakości, udzielane przez TA, którzy nie są przeszkoleni lub nie mówią po angielsku. Kursy wprowadzające nie są priorytetem, a złe nauczanie jest regułą. Uniwersytety zarabiają na kosztach stypendiów; otrzymywanie stypendiów jest priorytetem większości wykładowców uczelni, a nie nauczania studentów. To smutna zasada z kilkoma wyjątkami.

Jednak jakość programów w szkołach średnich może być również niska. Wiele administracji szkolnych uważa, że ​​szkolenie w korzystaniu z Micosoft Word to informatyka. Ach, bzdury emanujące ze szkół ed!

Chciałbym być bardziej optymistyczny. Jeśli masz dobry program Compsci w liceum, zatrzaśnij się na nim. Przekraczaj granice i bądź agresywny w nauce. Jeśli jesteś dość przedsiębiorczy, nie jest trudno nauczyć się języka Python i nabrać wprawy. Gdy się go nauczysz, nauka innych języków nie będzie trudna. Prosta gramatyka Pythona sprawia, że ​​nauka jest stosunkowo łatwa.


0

Tak.

To, czego powinieneś się nauczyć, zależy od tego, co oznacza „inżynieria komputerowa”. To dość niestandardowy termin. Tam, gdzie studiowałem, było to połączenie elektroniki i informatyki.

Jeśli spodziewasz się przede wszystkim pracy ze sprzętem komputerowym, sugeruję naukę języka C i Forth. Jeśli zamierzasz przede wszystkim robić to, co uważam za „informatykę”, sugerowałbym nauczenie się czegoś takiego jak Python lub Smalltalk w celu wypróbowania „prawdziwej pracy” i wybranego funkcjonalnego języka programowania (sugerowałbym jakiś wariant seplenienia lub schematu, ale wybierz to, co najłatwiejsze i najfajniejsze).


0

Podzielę się własnym doświadczeniem.

Zacząłem programować około 10-11 miesięcy temu. Po raz pierwszy zetknąłem się z nim w języku PHP, ale potem zacząłem uczyć się języka C # na kursie wprowadzającym (CS 140) w lokalnym college'u. Po tym, jak nauczyłem się podstaw, prawie z nim latałem i od tamtej pory nie przestałem. Po C # postanowiłem zacząć uczyć się mechaniki niższego poziomu działania komputerów. Pracuję nad aplikacją, która ma być wieloplatformowa i ma pomagać silnikom gier wideo w interakcjach ze sobą (podobnie do SDL, ale prawdopodobnie bardziej niższego poziomu, ze ścisłym naciskiem na GUI, matematykę) i inne funkcje pomocnicze).

Zasadniczo, gdyby nie ta klasa, nie znalazłbym tego, co kochałem, dużo, dużo później. Tak naprawdę nie wiemy, że lubisz programowanie, aż naprawdę zrozumieć pojęcia za nim. Jeśli chcesz się dowiedzieć, polecam wybrać wprowadzenie do książki o programowaniu i zacząć od C / C ++, ponieważ musisz zrozumieć, co robisz, zamiast używać języka, który będzie trzymał cię za rękę, takiego jak Java lub C # lub tylko jakiś język skryptowy - pamiętajcie, mają one swoje miejsce i są dobrymi narzędziami do użycia, ale bardzo ważne jest, abyście rozumieli pojęcia niższego poziomu na początku. To był błąd, który popełniłem na początku.

Następnie kontynuuj programowanie, jeśli Ci się spodoba. Jeśli nie, naucz się czegoś innego. Cokolwiek zdecydujesz się zrobić, powinieneś poświęcić na to jak najwięcej czasu, zanim pójdziesz na jakiś uniwersytet 2-4 lat, aby się tego nauczyć, ponieważ NAPRAWDĘ utrzyma cię na czele gry. Będzie to również stanowić motywację dla każdego pracodawcy, który potencjalnie mógłby cię zatrudnić.

Mogę ci powiedzieć, że dziedziny informatyki / elektrotechniki są zdecydowanie najszybsze pod względem tempa ewolucji (które rosną z roku na rok) i będziesz musiał uczyć się nowych technologii, aby nadążyć za tym, co jest najnowszy i największy (który powinien być co najmniej nieco interesujący, choć tak naprawdę zależy od dziedziny specjalizacji, w której się specjalizujesz) Na przykład nienawidzę programowania internetowego i nie interesuję się wcale istniejącymi technologiami za to, ale niektórzy naprawdę to lubią i są zainteresowani). Mimo to C / C ++ są świetnymi językami do nauki, ponieważ podczas gdy wiele innych języków (np. C #, Java), ma swoje własne gotowe interfejsy API, aby „ułatwić życie”, nie nauczysz się cholernie rzeczy o tym, co się naprawdę dzieje pod maską, aż „

Zasadniczo programuję od 10-11 miesięcy i nie uczęszczałem ani trochę na uniwersytet. Wziąłem klasę C # na uniwersytecie (moja pierwsza klasa programowania, która nauczyła mnie podstaw) i co najmniej 95% reszty nauczyłem się samodzielnie. Jest tak, ponieważ po wzięciu udziału w tych zajęciach wiedziałem, że chcę zostać programistą. Dowiesz się, kiedy to zrozumiesz. Niezależnie od tego, którą ścieżkę wybierzesz, powinieneś studiować ją niezależnie, jeśli naprawdę chcesz odnieść sukces, ponieważ zwiększa to twoje umiejętności motywacji i zaangażowania. Programista mabyć zmotywowanym do odniesienia sukcesu. Mają do czynienia z czymś więcej niż tylko „pisaniem kodu”. Aplikacja musi być stale testowana, debugowana i zrozumiana od podstaw. Zazwyczaj, czy to małe, czy duże, prawie nauczysz się czegoś nowego dla każdego podejmowanego projektu. To dobra rzecz, ponieważ musisz utrzymać ten mózg aktywny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.