Czy niedoświadczony programista potrzebuje IDE? [Zamknięte]

12

Czytanie tego drugiego pytania sprawia, że ​​zastanawiam się, czy ja (jako absolutnie początkujący programista PHP) powinienem trzymać się WAMP i Notepad ++, czy też przejść na IDE, takie jak Eclipse.

Zrozumiałe jest, że wykwalifikowani programiści skorzystają z dużego, błyszczącego IDE. Ale dlaczego absolutnie początkujący powinien korzystać z IDE? Czy korzyści przewyższają dodatkowe wyzwanie związane z nauką IDE oprócz nauki programowania?

Aktualizacja dla wyjaśnienia:

Moim celem jest zdobycie podstawowej wiedzy programistycznej. Wybierając PHP i WAMP (oraz FogBugz i Kiln) mam nadzieję uniknąć konieczności poruszania się po skomplikowanych / niechlujnych szczegółach systemu operacyjnego i kompilacji itp. I skupię się na podstawowej funkcjonalności, takiej jak formularz rejestracji użytkownika online.

Dziesięć lat temu mam dużo teoretycznego zrozumienia z uniwersytetu, ale nie mam praktycznego doświadczenia. Chcę temu zaradzić dzięki projektowi hobbystycznemu, który byłby podobny do rzeczywistej aplikacji internetowej z możliwością sprzedaży.

Trzeba zadać tak wiele pytań. Tylu pułapek pewnie mają do błądzić w. To pytanie jest tylko jednym kawałkiem tej układanki (moim pierwszym!).

Torben Gundtofte-Bruun
źródło
Zależy, co masz na myśli przez IDE ... Notepad ++ może być używany jako podstawowe IDE.
Oded
10
Tak! Nie! Nie wiem .. Idź z tym, co jest dla Ciebie odpowiednie!
Ben
1
sytuacja z prostym edytorem to podstawa - doświadczenie wspólne dla wszystkich programistów. Całe oprzyrządowanie jest po prostu tym - oprzyrządowanie do tego - więc powinieneś zacząć uczyć się podstaw, aby docenić, w czym IDE może ci pomóc.
Uruchomiłem mały zrzut ekranu na programmers.stacexchange.com. Używanie słowa „zależy” lub „zależy” wydaje się zwiększać prawdopodobną liczbę głosów, podczas gdy osoby odpowiadające na frazy zaczynające się od „Chciałbym ...” lub zaczynające się na „Tak” lub „Nie” mają tendencję do głosowania. Wskazówka dotycząca pisania postów: nie miej jasnej opinii na nic.
Jason Sebring,

Odpowiedzi:

21

W zależności od rodzaju programu, który próbujesz utworzyć, IDE może znacznie ułatwić cały proces, zwłaszcza budowanie i wdrażanie. Jest to szczególnie ważne, gdy używasz stosunkowo złożonych ram.

Z drugiej strony robienie tego wszystkiego ręcznie znacznie poprawia zrozumienie tego, co dzieje się pod maską. Z tego powodu tworzenie kilku małych programów „na twardo” jest dobrym ćwiczeniem dla nooba.

użytkownik 281377
źródło
16

Czy n00b powinien używać IDE? To zależy od tego, jaki jest twój cel jako n00b. Oto kilka możliwych bezpośrednich celów:

1) Po prostu zacznij uczyć się języka programowania / czegoś o programowaniu (lekkie wprowadzenie)

2) Zostań mistrzem i zrozum, jak wszystko działa (wprowadzenie do wagi ciężkiej)

Dla 1) użyj IDE . Korzystanie z dobrego IDE sprawi, że Twoje życie będzie łatwiejsze. Nie trudniej. Nauka korzystania z IDE rzadko jest trudna po zainstalowaniu. Następnie, aby skompilować i uruchomić program, wystarczy kliknąć przycisk „Uruchom” lub coś w tym rodzaju. Debugowanie będzie również łatwiejsze ... wystarczy kliknąć przycisk debugowania.

Dla 2), nie używaj IDE (na początku). Jeśli chcesz wszystko doskonale zrozumieć, skorzystanie z debugera i kompilatora wiersza poleceń zapewni lepszy wgląd w to, jak wszystko działa. Będzie to trudniejsze i może początkowo zniechęcać.

Casey Patton
źródło
W jaki sposób użycie IDE nie pozwoliłoby lepiej zrozumieć, jak wszystko działa? Brakuje Ci opcji wiersza polecenia kompilatora i poleceń debuggera, ale są to dwie rzeczy, których możesz nauczyć się później na jednostronicowym objaśnieniu. Pliki makefile też nie są o wiele trudniejsze. Nie mogę wymyślić niczego innego, co nie jest trywialne.
Rei Miyasaka,
3
Nie twierdzę, że istnieje różnica między nocą a dniem, ale z pewnością nie sklasyfikowałbym Makefiles i to wszystko jako „trywialne” dla nowego programisty. Nie twierdzę również, że będziesz całkowicie nieświadomy, jeśli zaczniesz od IDE. Mówię tylko, że rozpoczęcie od wiersza poleceń daje lepszy obraz tego, jak działają rzeczy.
Casey Patton
Cóż, mam na myśli, że Makefile są dość trywialne, kiedy zrozumiesz, że budowanie programów zwykle wymaga kilku kroków i wielu plików - których IDE i tak nauczy cię po drodze.
Rei Miyasaka,
3
@ReiMiyasaka, czy IDE nauczy Cię tego po drodze? Mam wrażenie, że wielu programistów nigdy nie zorientowało się, co dzieje się między wprowadzaniem kodu do IDE a tworzeniem kodu wykonywalnego.
Winston Ewert
@Winston Tak, robią. Nie sposób nie zauważyć, że dzieje się coś, co łączy dziesiątki plików kodu i bibliotek. Nauka dokładnego formatu danych opisujących interakcje jest przydatna, ale znowu jest to coś, czego można się nauczyć w ciągu kilku godzin, gdy już zrozumiemy, że coś się naprawdę dzieje. Czy próbowałeś kiedyś uczyć połączonych list bez wyjaśnienia, do czego są przydatne? Listy połączone mają o wiele większy sens dla ludzi, gdy mają powód, aby znać ich szczegóły. To samo dotyczy plików makefile i parametrów kompilatora.
Rei Miyasaka,
5

Jako ktoś, kto próbuje nauczyć się nowego języka w małym projekcie hobby, powiedziałbym, że trzymaj się edytora tekstu z podświetlaniem składni.

Kiedy zaczynasz, popełnisz błędy. Zapomnisz gdzieś średnik lub źle przeliterujesz nazwę zmiennej. Bez i IDE będziesz musiał skupić się tylko na języku i sposobie pisania. To jest cenna nauka.

Duże, błyszczące IDE będzie próbowało zaoszczędzić Twój czas, próbując wyłapać te błędy, które okradną cię z nauki. Również, jak powiedzieli inni, nauka IDE będzie również narzucać więcej nauki. Wyobraź sobie, że IDE coś sugeruje, będziesz się zastanawiać, dlaczego to sugeruje, a nawet czy jest to właściwe. To tylko doda zamieszanie.

Lubię zaczynać nowy język tylko za pomocą edytora tekstu, a potem, gdy mam wystarczającą pewność, zajmuję się dowolnymi wtyczkami Eclipse.

joatis
źródło
4

dodatkowe wyzwanie związane z nauką IDE

Masz na myśli tę część, w której IDE wykonuje dla ciebie większość pracy?

Teraz nigdy nie używałem żadnych IDE PHP, ale zakładając, że działają one podobnie jak inne rodzaje IDE, oszczędzają ci ogromnej ilości pracy. Praca związana z nauką IDE będzie trywialna w porównaniu z funkcjonalnością, którą IDE oszczędza przed robieniem tego samemu. Rzeczy takie jak uzupełnianie kodu i podświetlanie składni są niezwykle przydatnymi narzędziami i całkowicie niezastąpionymi.

Każdy, kto koduje profesjonalnie, robi to za pomocą narzędzi takich jak IDE i nie bez powodu.

DeadMG
źródło
2
Pracuję z PHP profesjonalnie i nie używam IDE, używam Vima!
Gary Willoughby
1
@Gary VIM jest IDE.
prawej strony
2
Nie, to redaktor. Definicja IDE: en.wikipedia.org/wiki/Integrated_development_environment Vim nie jest tym.
Gary Willoughby,
1
Jestem prawie pewien, że Vim jest wyposażony w takie funkcje jak uzupełnianie kodu lub może być do tego dodany, co w zasadzie czyni z niego IDE do tego celu.
DeadMG
3
Istnieje duża różnica między VIM a IDE. VIM nie ukrywa szczegółów tego, co się dzieje, jak IDE. Wiele zalet IDE jest dostępnych w VIM. Ale wywoływanie VIM jako IDE jest po prostu nieprawidłowe.
Winston Ewert
4

Myślę, że niedoświadczony programista PHP byłby o wiele bardziej produktywny dzięki IDE.

Pytanie powinno brzmieć: czy doświadczeni programiści PHP potrzebują IDE?

Gary Willoughby
źródło
2
właśnie tak myślałem, że to źle
odczytało
4

Z zasady wybieram tak:

  • Jeśli jest to mała aplikacja z niewielką liczbą plików, trzymaj się wiersza poleceń.
  • Jeśli jest to duża aplikacja z wieloma plikami, użyj IDE, ponieważ będziesz ciągle przełączać się między plikami i możesz korzystać z funkcji szybkiego przeglądania i przeglądania (zwłaszcza języków obiektowych).

Naucz się korzystać z obu w razie potrzeby. Zacznij od wiersza poleceń.

David
źródło
3

jest kilka rzeczy, które pomogą każdemu programistowi w dowolnym języku, bez względu na poziom umiejętności:

  1. podświetlanie składni oraz dopasowanie nawiasów klamrowych

  2. sprawdzanie składni podczas pisania (bardzo przydatne, aby uniknąć kilkunastu błędów pochodzących z jednego zapomnianego ;lub niedopasowanego nawiasu klamrowego)

  3. łatwe przeglądanie dokumentacji (jednak nie musi to być w samym IDE),

    • główne biblioteki dowolnego języka będą miały dokumentację online, do której można uzyskać dostęp w przeglądarce,
    • ale wewnętrzna dokumentacja (z projektu, nad którym pracujesz) nie będzie, chyba że wyraźnie ją udostępnisz
  4. automatyczne formatowanie do jedynego prawdziwego stylu nawiasów klamrowych i poprawne odstępy (abyś spędzał mniej czasu na egzekwowaniu tych reguł) (ponownie można to zrobić za pomocą zewnętrznego narzędzia)

tylko 1 i 2 muszą znajdować się w edytorze IDE /

maniak zapadkowy
źródło
3

Zawsze używam IDE (Eclipse) i poleciłbym je nawet początkującym. Główne zalety, jeśli zaczynasz:

  • Natychmiastowa informacja zwrotna o złym kodzie (np. Błędy składniowe w kodzie)
  • Zajmuje się konfigurowaniem projektów przy użyciu standardowych konwencji, dzięki czemu nie musisz się martwić specyfiką konfiguracji / systemu operacyjnego itp.
  • Często potrafi wygenerować przykładowy kod, na którym można zbudować i uczyć się z niego
  • Zapobiega konieczności zapamiętywania całego zestawu tajemniczych opcji wiersza poleceń i wywołań, dzięki czemu można skupić się na kodzie.

Jednak, chociaż uważam, że powinieneś używać IDE w gerneral, myślę, że warto wykonać co najmniej jedno lub dwa ręczne wykonanie kodu w wierszu poleceń. Ma to na celu zrozumienie, co dzieje się pod maską. To zrozumienie pomoże ci, jeśli będziesz musiał później debugować problemy.

mikera
źródło
1

Drugie, nie zadawane pytanie: czy doświadczony programista PHP potrzebuje IDE?

IDE pomaga zautomatyzować proces kompilacji - ale w PHP nie ma procesu kompilacji. Podświetlanie składni jest bardzo fajną funkcją, ale nie potrzebujesz do tego pełnego IDE, wiele lekkich edytorów tekstu zapewnia podświetlenie.

Pracuję w PHP w NetBeans, ale to tylko dlatego, że jestem przyzwyczajony do NetBeans. Założę się, że mógłbym to zrobić równie dobrze w dowolnej liczbie edytorów tekstu.

Mike Baranczak
źródło
1

Jeśli możesz oczekiwać, że będziesz pisał kod w ciągu całego życia lub piekła, nawet jeśli nie - powinieneś dostać rozszerzalny edytor / IDE i zacząć się go uczyć. Jeśli nie możesz sobie pozwolić na nic, skorzystaj z Notepad ++ lub podobnego - coś, co pozwoli ci zacząć od całego życia zadecydować „jak lubię moje skróty klawiszowe” i nauczyć się tradycyjnych.

Twoje IDE oprzyrządowania, jak je nazywam - Visual Studio, Eclipse, What-have-you, przychodzą i odchodzą i ewoluują, często stają się zbyt obszerne i nie reagują, aby można je było zastosować, gdy chcesz po prostu wymazać kod lub masować / refaktoryzuj to na określone sposoby.

Tak więc masz swojego „domowego” edytora, tego, który pozostaje z tobą przez całe życie, którego kochasz bardziej niż swój GF.

Dojdziesz do punktu, w którym praca nad czymś przy użyciu zarówno Tooling IDE, jak i Home IDE w tym samym czasie będzie całkowicie naturalna i produktywna, wykorzystując to, co najlepsze z obu światów.

My Home IDE to SlickEdit, z którego korzystałem i który rozszerzyłem w ciągu ostatnich 10+ lat, w tym czasie napisałem dla niego ponad 120 modułów Macro i mam ponad 1000 skrótów klawiszowych.

Czy pamiętam je wszystkie? Nie, prawdopodobnie około połowy w danym momencie, może 60%, ale inne są przeznaczone do specjalistycznych zadań, które kończę na wyszukiwaniu na żądanie.

Pamiętaj, że życie jest krótkie, a jeśli wykonasz matematykę przy jakimkolwiek dużym projekcie, zobaczysz, że nawet jeśli życzliwi kosmici dyktują telepatycznie idealny kod w twojej głowie, abyś mógł pisać 8 godzin dziennie - pisanie MIESIĄCE zajęłoby MIESIĘCY coś dużego (bez inteligentnego edytora, makr, szablonów itp.).

Dlatego. Planuj długoterminowo, co jakiś czas toruj sobie drogę w przyszłość.

Właściwie bardzo często. Mimo że teraz Cię to kosztuje.

znak
źródło
1

Mogę jedynie podzielić się własnym doświadczeniem, a także wglądem w to, jak wpływa to na programistę.

Po pierwsze stwierdzę, że lubię pracować w obu środowiskach. To, czy korzystam z Vima i makefile w GCC, czy QtCreator / Visual Studio z ich odpowiednimi środowiskami i kompilatorami, zależy wyłącznie od samego projektu i skali aplikacji.

Do nauki od czasu do czasu używam Vima tylko dlatego, że nienawidzę nie wiedzieć, jak to działa, po prostu odejść i napisać coś przez ignorancję. Kiedy po raz pierwszy nauczyłem się kodować, zrobiłem to przez C # i Visual Studio. To nauczyło mnie podstaw. Jednak po pewnym czasie postanowiłem wziąć na siebie naukę korzystania z plików Makefiles i porządnego edytora tekstu.

Rei Miyasaka powiedział w komentarzu, że każdy może nauczyć się korzystać z pliku Makefile w ciągu kilku godzin, mając jedynie informacje o wartości strony. Z całego serca się z tym nie zgadzam , szczególnie dla kogoś nowego. Może to potrwać kilka dni (przynajmniej w moim przypadku tak było). Warto również zauważyć, że większość dokumentacji na Makefiles obejmuje setki stron i chociaż można uzyskać dobre wprowadzenie na jednej stronie, to naprawdę wiedzieć, jak z nich korzystać, zajmuje znacznie więcej czasu i czytania.

Moim zdaniem, jeśli jesteś wystarczająco ambitny i dopiero zaczynasz się uczyć, rzuć dystrybucją Linuksa (nie ma znaczenia, która z nich ma dobry menedżer pakietów i jest względnie stabilna - polecam Linux Mint, a nawet Debiana sam) i nauczyć się C. Zacznij od edytora tekstu (wyróżnianie składni, automatyczne wcięcie i obsługa numerów linii są koniecznością - wszystko inne jest wyłącznie preferencją), po prostu naucz się, jak wywoływać kompilator za pomocą CLI. Kiedy już dotarłeś do momentu, w którym uczysz się kodować za pomocą tylko jednego pliku źródłowego na projekt, to wtedyrozpocznij naukę, jak napisać plik Makefile. Warto również podnieść Valgrind (jeśli piszesz w C / C ++, nie jestem pewien, czy obsługuje inne języki programowania). Po kilku miesiącach kodowania w tym środowisku, kiedy podejmujesz się większych projektów, naucz się IDE (najlepiej coś FL / OSS) i powinieneś zacząć.

Powodem, dla którego sugeruję to, jest to, że używanie IDE poważnie ogranicza programistę, gdy tylko się uczą. Autouzupełnianie i zarządzanie projektami / kompilacjami jest bardzo miłe, jednak jeśli nie masz pojęcia, jak to działa pod maską, będziesz poważnie ograniczony pod względem debugowania i / lub zastanawiania się, dlaczego twoja aplikacja nie jest działa poprawnie, szczególnie jeśli jest to spowodowane niewłaściwym ustawieniem kompilacji lub kompilatora określonym przez Ciebie lub IDE.

Twoje zdrowie.

o pustym miejscu
źródło
-1

Korzystanie z IDE znacznie ułatwi życie. PHP ma wiele niespójnych funkcji, z którymi autouzupełnianie w IDE może bardzo pomóc. Ponadto posiadanie debugera w IDE jest naprawdę nieocenione ...

Jest coś miłego w prostocie pracy z surowymi plikami w edytorze tekstów, ale jeśli chcesz dowiedzieć się, jak to jest stworzyć prawdziwą aplikację internetową, nauka korzystania z funkcji IDE będzie ogromną pomocą w długi bieg.

bunglestink
źródło
-1

Na moich zajęciach z informatyki nie zaczęliśmy od IDE. Było to coś, co zrobiliśmy PO, gdy zrozumieliśmy, co robimy.

IDE mają tendencję do zbytniej abstrakcji dla początkujących i ostatecznie produkują wykształconych głupców. Na początku bardzo ważne jest, abyś dobrze zrozumiał, w przeciwnym razie skończysz myśląc w samym IDE i bez tego nie będziesz w stanie zrozumieć podstawowych rzeczy. Będziesz także ograniczony tylko do tego, co może zrobić IDE. Niektóre IDE są wręcz złośliwe, mając takie abstrakcje i swój własny paradygmat, że w rzeczywistości ludzie go głupiej używają. Przypadek w punktowych formularzach internetowych dla ASP.NET.

Jest coś, co można powiedzieć o samodzielnym ładowaniu.

Jason Sebring
źródło
-4

Oto moje zdanie na ten temat:

  1. Początkujący są jedynymi osobami, które potrzebują IDE. Wynika to z debugowania - początkujący wciąż mogą mieć problemy ze zrozumieniem działania programu, a przejście przez kod może w tym pomóc.
  2. Programiści Mediogre mogą przyspieszyć proces programowania, ponieważ IDE zapewnia funkcje, które pozwalają łatwiej nawigować w dużych repozytoriach źródłowych i znajdować lokalizację każdego symbolu w kodzie źródłowym. Nie potrzebują już ideu, ale czasem ułatwia życie.
  3. Zaawansowani programiści nie potrzebują IDE. Zrobili to wystarczająco długo, aby interfejs użytkownika IDE był dla nich po prostu zbyt wolny - naciśnięcie klawisza i oczekiwanie na odpowiedź trwa zbyt długo - potrzebna jest natychmiastowa reakcja, aby nie tracić czasu. Poruszanie się po kodzie źródłowym nie jest głównym priorytetem, ponieważ mogą pamiętać, gdzie znajduje się każdy fragment kodu - przeczytali cały kod przed modyfikacją.
tp1
źródło
1
Oddałbym głos, gdybym mógł. Podczas pracy z dużymi projektami nie jest możliwe utrzymanie wszystkiego w głowie. Nie musisz koniecznie używać ide, ale posiadanie niektórych narzędzi (narzędzi) jest koniecznością.
Bwmat
@Bwmat, możesz teraz głosować
Pratik