Algorytm programowania rozwoju [zamknięty]

16

To dość ogólne pytanie. Znam trochę Perla i Pythona i staram się nauczyć programowania bardziej dogłębnie, aby po jego zrozumieniu móc rozpocząć tworzenie aplikacji, a następnie stron internetowych.

Chciałbym poznać algorytm (sekwencję kroków :)), który mógłby opisać moje podejście do uczenia się programowania w ogóle. Zadałem małe pytania na temat Perla / Pythona i otrzymałem świetną pomoc od wszystkich.

Uwaga: - Nie spieszy mi się uczyć. Wiem, że to wymaga czasu i jest w porządku.

Podaj wszelkie sugestie, które uważasz za ważne. Proszę, nie zmuszaj mnie do nauki Lisp, Haskell itp. - Jestem początkującym.

użytkownik9057
źródło
Czy jest jakiś konkretny język, którego chcesz się uczyć? Wiem, że wspominasz o perlu i pythonie, czy to jest to, czego szukasz?
Jason
Więc o co prosisz, to ... o co dokładnie? Proces uczenia się określonego języka? Sam programujesz? Za pomocą czego?
glenatron
Myślę, że to dobre pytanie. Zredagowałem, aby było trochę jaśniej.
Gary Rowe,

Odpowiedzi:

28

Algorytm 11 kroków do nauki nowego języka programowania

Obecnie uczę się Lisp i poleciłbym następujący algorytm:

  1. Zapytaj, czy warto uczyć się języka i gdzie można znaleźć dobre zasoby. Jeśli eksperci udzielą pozytywnych odpowiedzi na język, przejdź do kroku 2.
  2. Utwórz początkowe środowisko programowania. Prostota: edytor tekstu i kompilator / tłumacz. Absolutne minimum. Rozważ konkretne konto użytkownika na swoim komputerze ze specjalnym schematem kolorów, aby wskazać zmianę sposobu myślenia.
  3. Utwórz „Witaj, świecie!” podanie.
  4. Naucz się ogólnych instrukcji składniowych i kontrolnych (jeśli-to-jeszcze, powtarzaj do itd.). Utwórz piaskownicę, aby zweryfikować proste przypadki kontrolne (oceny prawda / fałsz itp.). Wypróbuj każdy typ pierwotny (int, double, string itp.). Wykonuj obliczenia walutowe. Gra w zgadywanie liczb (jak sugeruje @Jeremy ) jest do tego dobra.
  5. Utwórz klasę (jeśli dotyczy) za pomocą kilku metod / funkcji. Nawiązuj połączenia między funkcjami. Zastosuj instrukcje kontrolne.
  6. Dowiedz się tablice i kolekcje. Twórz odpowiednio złożone przykłady, które tworzą tablice i kolekcje każdej z klas / funkcji / prymitywów, które są dostępne
  7. Dowiedz się plik IO. Twórz przykłady czytania, manipulowania i pisania plików binarnych i opartych na znakach.
  8. Zadaj więcej pytań na temat programowania idiomatycznego w języku (wskaźniki, makra, monady, zamknięcia, struktury wsparcia, środowiska budowania itp.).
  9. Wybierz (lub dostosuj istniejące) IDE do pracy w zalecanym idiomie.
  10. Napisz różnorodne aplikacje, które zadowolą ciebie (lub twojego szefa).
  11. Po roku powróć do kroku 1 dla innego języka, zachowując zainteresowanie tym, którego właśnie się uczysz.
Gary Rowe
źródło
1
Uważam, że gra polegająca na zgadywaniu liczb jest świetnym drugim programem do pisania. (W kroku 4.) Pozwala dowiedzieć się o liczbach całkowitych, wynikach logicznych, wprowadzaniu / wyprowadzaniu tekstu, zapętlaniu i warunkach.
Jeremy Heiler,
@Jeremy Dobra sugestia, umieściłem ją tam.
Gary Rowe,
Cześć Gary - dziękuję za szczegółowe instrukcje Spróbuję zmapować go za pomocą pytona - bardzo dobre wyjaśnienie krok po kroku, dlatego uwielbiam ten łańcuch forów ... @Jeremy tak, jestem na nim :)
user9057
specjalny schemat kolorów wskazujący zmianę sposobu myślenia , czy możesz rzucić na to trochę światła?
Santosh Kumar
Podczas pracy z Lisp wybieram ciemniejszy schemat kolorów, ale jaśniejszy używam w Javie. Kolor przypomina mi o zmianie sposobu myślenia.
Gary Rowe,
12
while (stillLearning)
{
    read(some);
    practice(lots);
}
Steven A. Lowe
źródło
4a5 > cross_pollinate(many);
ocodo
2

Dla każdego języka, którego chcesz się uczyć L

  • Krok 1: poznaj składnię L.
  • Krok 2: Napisz kompilator Lw swoim ulubionym języku.
  • Krok 3: Napisz kompilator w swoim ulubionym języku L
  • Krok 4: Idiomatycznie napisz duży projekt L
  • Premia: Upewnij się, że wynik kroku 2 jest zgodny z wynikiem kroku 4.

To powinno w zasadzie to obejmować, wróć do nas z raportem z postępu prac za 10 lat .

Jeśli wszystko, czego szukasz, to nauka tworzenia stron internetowych, a znasz już Perla i Pythona, na pewno masz dość. Powiedziałbym: zacznij uczyć się tajników Apache (a konkretnie mod_perli mod_python), a potem zacznij ćwiczyć. Może wybierz książkę lub dwie na temat programowania CGI, komunikacji sieciowej i tym podobnych, a nie instrukcji obsługi konkretnego języka.

Na koniec, bycie początkującym nie jest powodem, aby nie uczyć się Lisp. Idź sprawdź SICP i wykłady wideo . Ani nie zakłada żadnego poziomu wiedzy specjalistycznej z zakresu programowania ani komputerów. Cytując wprowadzenie do wykładów wideo

Chciałbym powitać cię na tym kursie informatyki. [Zapisuje to na tablicy] Właściwie to okropny sposób na rozpoczęcie. Informatyka to okropna nazwa dla tego biznesu. Przede wszystkim nie jest to nauka [przekreśla „nauka”]. Może to być inżynieria lub sztuka. [...] Nie chodzi też o komputery [przekreśla „komputer”]. I nie chodzi o komputery w tym samym sensie, że fizyka tak naprawdę nie dotyczy akceleratorów cząstek. A biologia tak naprawdę nie dotyczy mikroskopów i płytek Petriego. -Hal Abelson

Inaimathi
źródło
Brzmi zabawnie. Do zobaczenia za 10 lat!
Jeremy Heiler,
+1 dla kroku 2 napisz kompilator dla L! Mózg ... boli ... tak ... bardzo ... teraz.
Gary Rowe,
-2

Nie chcę mówić wiele poza dwoma krokami.

  1. Dowiedz się struktury danych
  2. Naucz się wstępu do algorytmu

Programowanie PS to twoje codzienne zadanie.

Cześć 福气 鱼
źródło
W przypadku programistów zachęcamy do „mówienia dużo”, nie wstydź się :) Podaj szczegółowe informacje na temat swoich porad, takie jak zasoby, referencje lub przykłady z własnych doświadczeń.
Matthieu,
-2

Najlepszym sposobem jest nauczenie się podstaw / podstaw języka programowania, a następnie dołączenie do firmy jako młodszy programista (wykonawca). To będzie najszybszy sposób na naukę i zarabianie pieniędzy na swój czas;)

jimmydoontec
źródło