Podcast Programisty Odcinek 4

Zapis tekstowy 4 odcinku podcastu programisty. Możesz uczestniczyć w jego uzupełnianiu. W tym celu naciśnij przycisk "Edytuj" na dole po prawej i dopisz dalszy fragment podcastu. Nie musisz się rejestrować ani logować!

Witam w drugim odcinku podcastu programisty. Dzisiaj chciałbym powiedzieć o 4 rzeczach, takich jak:

  • Dlaczego strona polishwords nie działa,
  • Jakie hostingi testowałem i dlaczego, i co z tego wynikło,
  • Jakie zadania powinni dostawać programiści na studiach informatycznych,
  • Jakie ksiązki są dostępne w języku angielskim a nie są dostępne w języku polskim i dlaczego te ksiązki są ważne.

Zapraszam.

Strona przestała działać przedwczoraj i nie działa do tej pory (możliwe, ze już działa – zaraz sprawdzę). Okazało się, ze mój dostawca hostingu postanowił zmienić serwery na lepsze, świetna wiadomość, prawda? Niestety trochę za późno się o tym dowiedziałem. Ale z drugiej strony to dobrze dla niego, bo w tym czasie zdarzyłem przetestować inne serwisy hostingowe i mam mniej więcej pojecie kto jak działa, Ogólnie mam wrażenie, ze dostawcy hostingu w Polsce najchętniej by nic nie robili. Jeśli chce wrzucić parę plików html na swój serwis, to jest ok. a jak coś więcej, to już nie jest tak łatwo, najlepiej żebyś zapłacił, żebyś sam to zrobił, a najlepiej żebyś nic nie robił, tylko wrzucał te pliki i do widzenia. Jeżeli Twoje konto zużyje za dużo zasobów, zostaje wtedy blokowane, skasowane, wolna amerykanka, po prostu tak niesamowite rzeczy się dzieją. Wypisałem je na moim miniblogu tomaszs.pinger.pl. Tutaj są takie rzeczy, ze dopiero po utworzeniu konta dowiedziałem się, że nie można przypisać dwuczłonowej domeny do hostingu, albo, ze w ogóle nie można tego przypisać do hostingu, płacisz 50 zł np. za 1 GB miejsca, możesz wybierać tylko z domen, które dawca Ci udostępnia a Ty nie możesz przypisać własnej domeny.

Jeśli ja mam domenę polishwords.com.pl to nie mógłbym jej przypisać za te pieniądze. Są tez tacy, którzy chcą dużo kasy za swoje usługi chociaż nie maja za dużo do zaoferowania, ale najgorsze rzeczy działy się przy rejestracji – jeżeli chce założyć hosting, to chciałbym go najpierw przetestować, założyć konto itd. Patrzę jak szybko ładuje się strona głowna. Podczas rejestracji pojawiał się problem, ze nie może połączyć się z bazą danych, no to co myśleć o takim hostingu, który się zawiesza podczas rejestracji. Inna sprawa, jeśli chcę założyć hosting i płacić za niego jakąś kasę, to chciałbym przetestować go, czyli wrzucić jakieś pliki, podpiąć domenę, wrzucić jakieś dnsy i zobaczyć czy to wszystko chodzi jakbym chciał.

Tutaj pojawiają się schody, bo niektórzy chcą żeby zrobić to wszystko w języku niemieckim. Ja akurat znam ten język, ale to nie jest zbyt wygodne, szczególnie dla osób, które nie znają języka niemieckiego. I jak taka osoba ma wiedzieć, który przycisk służy do zmiany języka na angielski, który jest drugim dostępnym językiem w panelu administracyjnym. Niektóre serwisy w ogóle nie maja okresu testowego, niektóre chcą żeby zapłacić kasę, a dopiero później serwis będzie dostępny. No, to jest takie ciekawe podejście, w sumie dobrze, ze nie spotkałem hostingu, gdzie trzeba wysłać maila aktywacyjnego, takiego snailmaila, listu. Takie rożne rzeczy się działy, jak okres testowy 24h. Jedna osoba miała wątpliwość czy nie jestem czasem hakerem. No tak, jak chce założyć jedna stronę internetowa, to jestem już hakerem. Nie wiem kim był w takim razie Kevin, Kevin kim byłeś? Za co poszedłeś do więzienia?
No, w każdym razie nie jestem hakerem i chciałbym porozmawiać o rzeczach programistycznych.

Wczoraj zacząłem się zastanawiać jakie zadania powinni dostawać studenci na studiach, jakie projekty powinni robić. Często pojawia się takie pytanie na forum 4programmers.com żeby zrobić reklamę. csharp.pl ostatnio dobrze się rozwija. Także forumphp.pl i tak nie wymiennie wszystkich for, które pomagają w zakresie programowania. Wybaczcie mi.

Więc tak, jakie zadania? Programista powinien na studiach realizować na studiach projekty wymyślone przez siebie czy przez wykładowcę? To jest pierwsze pytanie. Drugie, czy powinny być takie zadania jak: napisać drugą naszą-klasę. Trzecie pytanie brzmi czy powinno się implementować systemy logowania albo własne bazy danych, na takich zajęciach.

Tu można się zastanowić i mam nadzieje, ze ten podcast skłoni do zastanowienia się ludzi, którzy będą słuchać tego, te parę osób, dwie osoby, trzy. Więc moje zdanie na ten temat brzmi: nie, nie, nie. Tak jak dostałem ostatnio odpowiedz na moje pytania, na jednym forum: nie, nie nie. Dlaczego tak myślę? Jeżeli już jest nasza-klasa, to po co pisać druga, lepiej wymyślić coś innego. Poza tym fajnie jest znacząc na studiach realizować jakiś swój projekt, bo jeśli będziemy musieli go zaliczać, to jest jakaś motywacja żeby robić coś, można przy okazji to zaliczenie dostać a jeśli będzie zainteresowanie, to można go zrealizować. Połączenie przyjemnego z pożytecznym, tym bardziej, ze wiele projektów ze studiów później stało się zalążkiem dużych biznesów. Można się utrzymać później z takich pomysłów. Jeżeli ma się dobry pomysł, to fajnie się go realizuje. Np. Opera, chociaż do końca nie wiem czy pomysł ten powstał na studiach. Jego autor musi lubić to, co robi, a robi to dobrze, gdyż Opera jest jedna z najlepszych wyszukiwarek. Ostatnio miała rzekomo być wykupiona przez Microsoft, ale okazało się to przeterminowana wiadomością. Wracając do tematu – jak dobierać projekty na studiach? Przede wszystkim to, co nas interesuje.

Jeśli kogoś interesuje hodowla kotów, to czemu nie napisać strony społecznościowej, chociaż dla kotów to nie bardzo. W każdym razie chodzi o to, aby realizować rzeczy, które się samemu potrzebuje. Ja sam zacząłem pisać programy, ponieważ miałem jakieś potrzeby, zacząłem programować i w ten sposób rozwiązywałem moje problemy, przy okazji rozwiązywałem też problemy innych, gdyż oni mogli korzystać z tych programów. Okazało się, że więcej osób ma takie problemy i na tym chyba polega wymyślanie fajnych rzeczy. Dlatego odradzam pisania naszej klasy. Warto też opisywać co się robi i co by się chciało robić, jeśli ma się jakiś pomysł nie znaczy, że ktoś może go sobie ukraść i go zrealizować, powiedziałbym więcej, jeśli ktoś potrafi ukraść tak pomysł i zrealizować, to jest to słaby pomysł, bo da się skopiować. Trzeba wziąć na uwagę to, że nie da się tak łatwo przekonać kogoś, że nasz pomysł jest najlepszy na świecie i że warto to robić. Także sztuka jest przekonanie kogoś do tego, samo powiedzenie „mam taki i taki pomysł” nie wystarczy. Jeśli pomysł jest fajny, to trudno będzie go skopiować, poza tym nie każdemu będzie się chciało realizować Twój pomysł, Ty możesz myśleć, że pomysł jest dobry, a kogoś innego nie będzie to interesowało w ogóle.

I to jest właśnie to – dobre podejście, bo jeżeli nikt nie będzie tego robił, to masz szansę zaistnieć i zrobić coś ciekawego dla świata. Jeśli chodzi o takie projekty, jak logowanie, to jest to najgorsze, co można zlecić, kazać zrobić na zaliczenie. Systemów logowania jest tyle, ile jest stron. Każda strona ma inny system logowania i każdy system logowania ma swoje problemy i bolączki. Są takie standardy też jak open id, które można by było wykorzystać, prawda? Jeśli mamy takie standardy, to może napiszemy system logowania oparty o open id, to też nie ma sensu, dlatego, że jeśli chcemy napisać dobry system logowania open id, to trzeba naprawdę dużo czasu poświecić na to i z perspektywy czasu, to jeśli bym zaczynał od początku robić stronę internetową, to wykorzystałbym jakiś gotowy mechanizm open id, do którego bym delegował po prostu prośbę o zalogowanie, o rejestracje itd. Wtedy jest pewności, ze ta firma, która zajmuje się tylko open id ona cały czas nad tym siedzi, aby usługa ta działała idealnie. Mi nie chce się programować tego, bo mam sto innych rzeczy do zrobienia na swojej stronie i mam pewność i śpię spokojnie, że gdy zapłacę ileś tam pieniędzy ta firma będzie dbać o to żeby ten kawałek strony, której będę miał u siebie, będzie działał idealnie.

To jest podejście kompetentne, rozdzielania pracy i polecałbym tak do tego podchodzić i nie zmuszać biednych ludzi do pisania po raz kolejny systemów logowania. Dlaczego to jest takie ważne? Dlatego, że np. gdy uczymy się matematyki, to na matematyce uczymy się sposobu rozwiązania powiedzmy całki – to jest sposób liczenia konkretnej całki i nie ma od tego za bardzo odstępstwa – używamy tego sposobu i tyle. I teraz jeśli na informatyce uczy się studentów zebu robić systemy logowania, to wtedy taki człowiek wychodzi ze studiów z myślą i przeświadczeniem, że jak będzie chciał zrobić własną stronę internetową, to będzie musiał zacząć od stworzenia własnego modułu logowania, bo tak każdy robi. A to nie jest prawdą, bo systemy logowania są gotowe i powinno się z takich gotowych komponentów korzystać, dla bezpieczeństwa i dlatego, aby nie tracić czasu na to po prostu. Także dlatego uważam, że to jest niedobre, dawać takie zadania. Kolejnym zadaniem, z którym się spotkałem, to tworzenie własnego systemu bazy danych. <wymiana nazw tych systemów> i parenaście typów baz danych, z których każda baza posiada swoje możliwości i teraz dostajemy zadanie, aby napisać własna bazę danych. Czy to nie jest marnotrawstwo czasu przypadkiem? Lepiej byłoby po prostu napisać program, który używa bazy danych takiej a nie innej. Wydaje mi się, że tak powinno być, ale wiadomo, że informatyka rozwija się szybciej niż matematyka. Mam nadzieje, że nie obrażę teraz żadnego matematyka, ale coś w tym jest, bo w matematyce nie wymyśla się sposobu mnożenia co trzy lata nowego, prawda? Także jest drobna różnica.
Ostatnia rzecz, o której chciałbym dzisiaj powiedzieć, to ksiązki w języku angielskim, które bym polecił, albo które chciałbym przeczytać.

Jest taka dyskusja na stackoverflow.com pt. “What is the single most influential book every programmer should read?”. Jest tam lista rożnych książek, które wpływają na programistów według ich samych. Na pierwszym miejscu, 340 głosów Code Complete napisana przez Steva McConnell’a. Miałem okazje czytać fragmenty tej książki w języku angielskim, ale nie udało mi się zdobyć tej ksiązki w języku polskim. Jest jeszcze drugie wydanie jeżeli ktoś wie o takiej wersji, to prosiłbym o informację. Chętnie kupię taka książkę w wersji polskiej i ja zareklamuję na blogu, ale na razie nie ma. Polecam tę książkę. Jest tu więcej książek, które warto przeczytać, np. „Pragmatic Programmer”, tej książki nie musze przedstawiać. Jest dostępna w języku polskim, ale nie jest zbytnio popularna chyba. Napisana jest przez Andrew Hunta i Davida Thomasa. Myślę, że jest to książka, którą każdy powinien przeczytać. Została mi ona polecona kiedyś, dawno temu i mogę ją z czystym sumieniem polecić i polecam, ale nie do czytania od deski do deski, tylko należy się wczytać w nią dokładnie, popatrzeć na nią pod kątem swoich zadań, pracy albo zadań jeśli chodzi o rozwijanie swojego projektu własnego. Bardzo rozwijająca ksiązka. Jakie tu są jeszcze książki na tej liście..?

Jest ich dosyć sporo, jest taka ksiązka „Struktura i Interpretacja Programów Komputerowych”, brzmi ciekawie, ale nie miałem okazji przeczytać, ale mam zamiar jakoś ją ściągnąć, ale jej chyba nie ma w wersji polskiej. To jest ciekawe, bo najwyżej oceniane ksiązki nie są dostępne w języku polskim. Dlaczego tak jest? Tutaj dalej powtarzają się te ksiązki. Jest też książka “Refactoring: Improving the Design of Existing Code”. Refactoring, czyli.. ostatnio napisałem na miniblogu, ze nie jest to zamiatanie śmieci z pod dużego dywanu pod klika małych i ta książka na ten temat mówi. Też chcę przyjrzeć się jej bliżej i polecam ją, bo dostała 81 punktów. Dostała też komentarze, które mówią, ze jest to bardzo ciekawa książka. Ostatni na jednym z for, pojawiła się taka dyskusja, czy książki informatyczne powinny być jak manual, czy powinny być ciekawe w czytaniu. Mi się wydaje, że ksiązki powinny być pisane ciekawym językiem, tak żeby można było fajnie je czytać i jeżeli chcę manual, to wchodzę np. na msdn’a albo na inne miejsce, gdzie mogę manuala sobie ściągnąć i przeczytać, ale nie w książce – książka nie nadaje się do tego, aby była manualem.

Właśnie dostaje jakieś smsy, wiec kończę nagrywanie i to by było na tyle w tym odcinku. Dobranoc.

Podcast w wersji dźwiękowej

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License