Nie wiem po co Aenimie studia w ofercie pracy, ale studia (informatyka) uczą trzech rzeczy, których ciężko się jest samemu nauczyć:
- projektowanie
- projektowanie
- i jeszcze raz projektowanie
Oczywiście można ruszyć z książkami o inżynierii programowania, ale to nie to samo. Programowania się możemy sami nauczyć, ale projektowanie to tylko kupa wiedzy i doświadczenie. Program albo się skompiluje, albo nie. Albo będzie działał, albo się wysypie. Albo będzie szybki, albo będzie ssać. Ucząc się projektowania nigdy nie wiesz czy Twój projekt jest dobrze zaprojektowany. To wychodzi później. Nagle się okazuje, że uwaliłeś założenia, źle strukturę bazy danych zaprojektowałeś, nie wziąłeś pod uwagę tego i tego. Na studiach dobry profesor będzie się czepiał o najgorszą pierdołę. Będziesz mieć gotowy projekt, wszystko cacy, a profesor Ci powie a co jeśli będzie Pan musiał dodać nową funkcjonalność i ta funkcjonalność rozwala nam projekt - bo założenia złe.
Klniemy na profesora, że czepia się o duperele i jest teoretykiem. Później przychodzimy do pracy, pryska piękny sen. Przychodzi do Ciebie marketing i mówi, klient chce mieć nowe funkcjonalności i te nowe funkcjonalności rozwalą Ci projekt, jeśli popełniłeś poważny błąd w fazie projektowej.
No i jest druga strona medalu. Tysiące informatyków świeżo po studiach, co nic nie potrafią bo egzaminy z programowania na pałę zdawali. Później czyta się na usenecie, “hej chłopaki jutro mam kolosa z programowania i napiszcie mi sortowanie binarne”
Z książkami jest błędne koło. Z jednej strony nie można zbyt dużo czytać książek - lepiej ten czas poświęcić na pisanie. Dziś trzeba wyrobić w sobie umiejętność uczenia się z dokumentacji i z googli (blogi, fora, artykuły). Dziś to już nie lata 90-te, gdy internet mało kto miał i programować się uczyło z książek, a narzędzia się kupowała na bazarku (kompilatory, debuggery itp. - mówię teraz głównie o C, assemblerze itp.). Jak książki ktoś nie napisał, to nie było. Dziś wchodzimy na google i szukamy po blogach, forach, w dokumentacji. Rzadko jest tak, że nie możemy znaleźć wiedzy na interesujący nas temat. Wychodzi rails 2.1, a w becie dopiero książka do 2.0!
Ale żeby uczyć się z googli to trzeba mieć jakąś wiedzę i wiedzieć, czego się szuka. A wiedzę tę mamy z książek. Nie przeskoczy się tego.
Dobra bo off topa robię Wracając do tematu, lepiej uczyć się rubego czy uczyć się rails. Moim zdaniem najlepiej pisać, testować, kombinować. Samo czytanie nic nie da, bo będzie w piątym rozdziale, a zapomnimy co było w pierwszym. Siadać i klikać. Brać cudzy kod i patrzeć jak działa, modyfikować, przerabiać. Mam znajomych co siadają zieloni do rubego i klikają w tym projekt. Fakt, że później po miesiącu dochodzą do wniosku, że wiele rzeczy trzeba przepisać, ale są o mile dalej niż Ci co najpierw pół roku uczą się rubego, a później pisać zaczynają. A tak wchodzimy i widzimy, zmienne się deklaruje tak, struktury sterujące są takie i takie. O są wyjątki, klasy, zmienne klasowe, instancji i ogień jedziemy i piszemy
Ważna też jest umiejętność pracy na cudzym kodzie. Bierzemy np. takie webistrano i próbujemy dodać sobie to i to. Mamy gotowy projekt, napisany w jakimś tam stylu kodowania (wcięcia, nazewnictwo). I dłubiemy. Bardzo ważną umiejętnością jest praca z cudzym kodem. Przychodzisz do pracy i nie dostaniesz nowego projekciku specjalnie dla Ciebie. Dostaniesz często kolosa na glinianych nogach, jak to się ma dla przykładu ze starymi serwisami pisanymi w php. Znajdź tu, gdzie się stopkę wyświetla na stronie ;)) Z piania “po kimś” mamy ten plus, że bardzo szybko się uczymy. Nie wynajdujemy na nowo koła.
Podsumowując: nie mamy złotego środka co lepsze. Jedni uczą się rubego, inni railsów. Taka prawda, że i tak pewną wiedzę będzie trzeba posiąść i tak - wszystko kwestią czasu, przydatności, pieniędzy i chęci