Budujesz kompletny program?


15

Czytanie książek, oglądanie filmów i recenzowanie samouczków jest bardzo łatwe. Robienie notatek i faktyczne uczenie się materiału może być nieco trudniejsze, ale nawet wtedy każdy z porządnym mózgiem i sporym zainteresowaniem jest dość łatwy (nie wspominając o zabawie).

Chodzi o to, że tak naprawdę nie przygotowuje cię do napisania pełnego programu lub strony internetowej. Powiedzmy, że jesteś nastolatkiem (tylko w liceum, bez prawdziwych kursów informatycznych lub programistycznych (na poziomie uczelni) i bez doświadczenia w świecie rzeczywistym) i wychodzisz z Grouponem. A nawet Mark Zuckerburg, na pewno był geniuszem i był bardzo zdolnym programistą ... ale jak?

Jak polecasz osobom, które niekoniecznie są nowe w programowaniu, ale nowe w programowaniu prawdziwych aplikacji i prawdziwych programistów, aby zaczęli go rozwijać? Co to jest „proces rozwoju” - szczególnie dla pojedynczych programistów (a może 2-3 nastolatków)?

Co więcej, jeśli chodzi o tworzenie stron internetowych, jaki jest proces? Czy coś takiego jak Facebook czy Groupon zostało napisane za pomocą frameworka (jak CodeIgniter lub Zend dla PHP)? Czy opracowują własne ramy? Nie pytam, jak wymyślić świetny pomysł, ale jak skutecznie wdrażać świetne pomysły? Czy ktoś ma porady?

Przeczytałem kilka książek o C i C ++ (przede wszystkim C Programming Language i C ++ Programming Language) i wziąłem AP Computer Science (jak również kilka dodatkowych książek o Javie i OOP). Przeczytałem również kilka samouczków na temat PHP (i CodeIgniter) i Python. Ale nadal jestem w liceum i technicznie nie jestem jeszcze wystarczająco dorosły, aby pracować na stażu przez kilka miesięcy.


3
Reading books, watching videos, and reviewing tutorials is all very easy. Tak, czytanie ich jest łatwe, zrozumienie ich jest trudną częścią.
yannis,

@Yannis Rizos Właściwie to je rozumiem i mówię o tym w zdaniu później.
Bob

@ Bob uczy się materiału i naprawdę rozumie, że jest całkiem inny, drugi jest znacznie trudniejszy. Moja osobista definicja „rozumienia” polega na tym, że mogę wyjaśnić ten temat w sposób, którego nie zrozumiałby dziesięciolatek. Szybko wyjaśnij „interfejsy” :)
Thanos Papathanasiou,

1
@ThanosPapathanasiou Oprogramowanie, sprzęt czy koncepcja OO? :)
yannis,

2
@YannisRizos to piękno z wyjaśnianiem dziesięciu latom takich rzeczy, jak ty, musiałbyś skorzystać z uproszczonego przykładu, który obejmowałby wszystkie trzy :)
Thanos Papathanasiou

Odpowiedzi:


8

Istnieje różnica między zwykłą wiedzą na temat programowania a wiedzą na temat struktury programu (architektura oprogramowania).

Prosta książka o konkretnym języku programowania nauczy Cię tylko narzędzi, których możesz użyć, aby przejść do konfigurowania architektury programu.

Istnieją również książki, które pomagają w architekturze oprogramowania. Tematy, których powinieneś szukać, to wzorce projektowe , abstrakcja oprogramowania, architektura / projektowanie oprogramowania i wiele innych ... ( Wzory Head First Design Patterns były dla mnie prawdziwym odkryciem.)

W przypadku szerszego zestawu zasobów to pytanie może Cię zainteresować.

Nadal najlepszym sposobem na nauczenie się, jak poprawnie zbudować cały program, jest zrobienie tego, będąc bardzo otwartym na sugestie i nowe techniki.


6

To ten sam bardzo częsty problem z (niezależnym) tworzeniem gier: jak zakończyć.

Oprócz upewnienia się, że możesz to zrobić, ponieważ masz całą wymaganą wiedzę lub chcesz się uczyć - i sprawdziłeś, czy inni sprawdzili, czy nie jest to niemożliwe ...

... najważniejsze, że „wykończenie” jest możliwe, to ustalenie celów .

Cele są celem do osiągnięcia, nie mogą opisywać, jak się tam dostać, a jedynie podstawowe wymagania / funkcje, których potrzebujesz, aby uznać pierwszą wersję aplikacji za „ukończoną”. Nie stawiaj też celów zbyt daleko w czasie.

Napisz gdzieś swoje cele. Napisz to.

Po ustaleniu celów musisz po prostu znaleźć sposoby na ich osiągnięcie. To słynna „ścieżka”, która jest bardziej interesująca niż przybycie. Nie martw się o dotarcie do ścian i odkrycie, jak się mylicie. Przez większość czasu, jeśli temat jest nowy, popełnisz błąd i dowiesz się, dlaczego, i możesz to zrobić poprawnie, a także dokonałeś wzajemnej konfiguracji, aby zbliżyć się do celów.

Nawet w projektowaniu gier wiemy, że musisz wyznaczyć cele, aby upewnić się, że gracz wie, nawet w abstrakcyjny sposób, co musi osiągnąć, niezależnie od tego, co robi.


4

Czytanie dużo o pływaniu nie czyni z niego pływaka. Oczywiście przygotowuje kogoś z wymaganą wiedzą, aby zostać pływakiem, musisz wskoczyć do wody.

Widzę, że wielu ludzi, którzy to zrobili, niż pomyśleli / przeczytali o tym, są tymi, którzy odnieśli sukces.

Jeśli chcesz być pływakiem, po prostu wskocz do wody i naucz się pływać, jeśli chcesz zostać programistą, zacznij programować od pomysłu i naucz się programowania.

Uważam, że esej Petera Norviga jest istotny tutaj: Naucz się programowania za 10 lat


2
Dobra odpowiedź! Mam dwóch przyjaciół, którzy wciąż czytają (zaczynają czytać) książki o programowaniu, mając nadzieję, że pewnego dnia poczują gotowość do rozpoczęcia programowania. Nigdy tego nie poczujesz. Wystarczy wskoczyć do zimnej wody i rozpocząć pracę nad prawdziwym projektem. Jeśli uważasz, że jest to zbyt skomplikowane, wybierz mniejszy. Pracuj nad nim, aż się skończy. W trakcie projektu szukaj książek i lektur zgodnie z otwartymi problemami, które pojawiają się w trakcie podróży.
Giorgio

1

Wygląda na to, że zbytnio koncentrujesz się na aspektach implementacyjnych oprogramowania, co stanowi zaledwie ułamek całego procesu tworzenia oprogramowania (patrz SDLC). Konieczne może być przyjrzenie się niektórym metodologiom oprogramowania i nauczenie się korzystania z tych, które lubisz. Poza tym, przeczytaj studia przypadków, dowiedz się plusów i minusów każdego narzędzia, które warto rozważyć w oprogramowaniu, oceń i stamtąd. Po szybkim przeczytaniu pytania może być konieczne skupienie się na obszarach analizy i projektowania oprogramowania oraz poznanie UML, rozkładu i być może wzorców projektowych ... może ..

Mam nadzieję że to pomoże..


0

Krótka odpowiedź, ustal swoje cele i zacznij.

Nie ma żadnej książki ani sposobu, aby cię tego nauczyć, ale praktyczne doświadczenie.

Popełnisz wiele błędów i stopniowo zdobędziesz doświadczenie. Więc jeśli napotkasz problem, zastanów się nad tym, spróbuj znaleźć rozwiązanie, a jeśli się nie powiedzie, przejdź do stackoverflow i uzyskaj pomoc. Miej także recenzje kodu tak wcześnie, jak to możliwe.

Po zakończeniu pierwszego projektu i dokładnym zrozumieniu problemów technicznych zacznij szukać bardziej abstrakcyjnych i bardziej zaawansowanych tematów inżynierii oprogramowania.

Dzięki nowo nabytej świadomości typowych problemów otrzymasz abstrakcyjne koncepcje książek o czystym i oddzielonym kodzie, ponieważ twój pierwszy projekt będzie nie do utrzymania.

Książki (zwykle podejrzani):


0

W tym momencie musisz przestać czytać o programowaniu i rozpocząć programowanie. Jeśli chcesz zbudować stronę internetową, przejdź do samouczka dla wybranej przez siebie struktury. Wybierz taki, który ci się spodoba. Zapoznaj się z samouczkiem, aby dowiedzieć się, jak korzystać z frameworka, a następnie rozpocznij tworzenie własnej aplikacji internetowej.

Po napisaniu kodu książki o technikach programowania będą miały znacznie większe znaczenie.


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.