{"id":5,"date":"2007-10-25T23:35:00","date_gmt":"2007-10-25T21:35:00","guid":{"rendered":"http:\/\/bielamowicz.info\/blog\/?p=5"},"modified":"2018-07-04T20:58:10","modified_gmt":"2018-07-04T19:58:10","slug":"programista-doskonaly","status":"publish","type":"post","link":"http:\/\/bielamowicz.info\/index.php\/2007\/programista-doskonaly\/","title":{"rendered":"Programista doskona\u0142y"},"content":{"rendered":"<p><img decoding=\"async\" title=\"Pragmatyczny programista. Od czeladnika do mistrza\" src=\"http:\/\/bielamowicz.info\/images\/programistadoskonaly.jpg\" alt=\"Pragmatyczny programista. Od czeladnika do mistrza\" align=\"left\" border=\"2\" hspace=\"10\" vspace=\"10\" \/><\/p>\n<p>Pozornie ksi\u0105\u017cka ta nie zawiera wiele wiedzy. Napisana stylem nieomal poradnika psychologicznego, po g\u0142\u0119bszym wczytaniu zdradza g\u0142\u0119bok\u0105 wiedz\u0119 autor\u00f3w i znaczenie ich wskaz\u00f3wek. \u015awiat (a przynajmniej nasza bran\u017ca) by\u0142by du\u017co lepszy, gdyby ludzie cz\u0119\u015bciej stosowali si\u0119 do takich rad jak\u201eZamiast kiepskich usprawiedliwie\u0144, dostarcz rozwi\u0105za\u0144\u201d czy \u201eKosztowne narz\u0119dzia nie wytwarzaj\u0105 lepszego oprogramowania\u201d. By\u0107 mo\u017ce takie rady s\u0105 truizmami, jednak jak cz\u0119sto spotykamy si\u0119 z lud\u017ami, kt\u00f3rzy nie rozumiej\u0105 nawet podstawowych spraw?<!--more--><\/p>\n<p>Ksi\u0105\u017cka Hunta i Thomasa sk\u0142ada si\u0119 z rozdzia\u0142\u00f3w, z kt\u00f3rych ka\u017cdy sam w sobie jest opowie\u015bci\u0105 o pewnym aspekcie tworzenia oprogramowania. Tworzenia &#8211; autorzy bowiem, nieco wbrew tytu\u0142owi, nie ograniczaj\u0105 si\u0119 jedynie do samego \u201eklepania\u201d kodu, ale si\u0119gaj\u0105 do przygotowa\u0144 do rozpocz\u0119cia projektu, omawiaj\u0105 zagadnienia wsp\u00f3\u0142pracy w zespole, pisz\u0105 o testowaniu, rozwoju kariery czy wreszcie o wyborze technik i j\u0119zyk\u00f3w programowania, czyli aktywno\u015bciach zaliczanych do sfery projektowania.<\/p>\n<p>Ju\u017c od pierwszego rozdzia\u0142u autorzy wskazuj\u0105, czym powinien si\u0119 w \u017cyciu kierowa\u0107 profesjonalista tworz\u0105cy oprogramowanie. \u015awiadomo\u015b\u0107 entropii oprogramowania, zdolno\u015b\u0107 do komunikacji czy zrozumienie, \u017ce nie da si\u0119 napisa\u0107 idealnego programu, mog\u0105 si\u0119 wydawa\u0107 normalne, jednak wiele os\u00f3b ci\u0119\u017cko zdobywa t\u0105 wiedz\u0119&#8230; Profesjonalizm wynika z do\u015bwiadczenia, ale samo do\u015bwiadczenie bez regularnego uzupe\u0142niania wiedzy staje si\u0119 nic nie warte. \u201eKto nie idzie do przodu, ten si\u0119 cofa\u201d, cz\u0119sto m\u00f3wi\u0105 informatycy. Hunt i Thomas posuwaj\u0105 si\u0119 jeszcze dalej, por\u00f3wnuj\u0105c wiedz\u0119 posiadan\u0105 przez nas do portfela inwestycyjnego: mo\u017cna by\u0107 guru jednej technologii i liczy\u0107 na nag\u0142y wzrost zainteresowania rynku podobnie jak mo\u017cna inwestowa\u0107 w jedn\u0105, jedyn\u0105 firm\u0119 na gie\u0142dzie&#8230; Tylko czy nie jest to zbyt naiwne podej\u015bcie?<\/p>\n<p>Opr\u00f3cz filozoficznego wprowadzenia, autorzy nakazuj\u0105 si\u0119 nam zastanowi\u0107 nad konkretnymi problemami, takimi jak powt\u00f3rzenia w definicji informacji czy mo\u017cliwo\u015b\u0107 prostego odwr\u00f3cenia i przebudowania wprowadzonej kiedy\u015b do kodu zmiany. Jak zapanowa\u0107 nad rozjazdem specyfikacji bazy danych i jej aktualnego stanu? Jak wycofa\u0107 si\u0119 z b\u0142\u0119dnego modelu systemu i w szybki spos\u00f3b wprowadzi\u0107 poprawki? W jaki spos\u00f3b tworzy\u0107 aplikacje, kt\u00f3re nie oka\u017c\u0105 si\u0119 ca\u0142kowitymi niewypa\u0142ami na skutek niezrozumienia potrzeb u\u017cytkownik\u00f3w i kiedy u\u017cywa\u0107 do tego celu prototyp\u00f3w? Na te i inne problemy autorzy nie udzielaj\u0105 odpowiedzi wprost \u2013 lecz w przedziwny spos\u00f3b zmuszaj\u0105 czytelnika do znalezienia w\u0142asnej odpowiedzi.<\/p>\n<p>Czasami jednak autorzy decyduj\u0105 si\u0119 prowadzi\u0107 nas za r\u0119k\u0119 i sami rozwi\u0105zuj\u0105 stawiane przez siebie zagadki. Ma to miejsce na przyk\u0142ad przy omawianiu narz\u0119dzi informatycznych. Czego wymaga\u0107 winni\u015bmy od edytora, poza zwyk\u0142ymi funkcjami kopiowania i wklejania? Okazuje si\u0119, \u017ce wiele typowych czynno\u015bci podczas tworzenia oprogramowania mo\u017cna rozwi\u0105za\u0107 w prosty spos\u00f3b, za pomoc\u0105 ju\u017c posiadanych przez nas narz\u0119dzi. Jak? To ju\u017c wymaga przeczytania ksi\u0105\u017cki&#8230;<\/p>\n<p>Kiedy w ko\u0144cu nasz wspania\u0142y kod zaczyna dzia\u0142a\u0107, czasami co\u015b idzie \u017ale&#8230; C\u00f3\u017c pocz\u0105\u0107 z wyj\u0105tkiem, jak go obs\u0142u\u017cy\u0107, zamie\u015b\u0107 go pod dywan, a mo\u017ce nie obs\u0142u\u017cy\u0107 go wcale? Autorzy przeprowadzaj\u0105 bardzo ciekaw\u0105 dyskusj\u0119 tych problem\u00f3w, proponuj\u0105c rozwi\u0105zania z kt\u00f3rymi nie ka\u017cdy si\u0119 musi zgadza\u0107, ale warto aby ka\u017cdy nad nimi pomy\u015bla\u0142&#8230; Czasami b\u0142\u0105d jest wynikiem kiepskiej jako\u015bci kodu kt\u00f3ry nale\u017cy przerobi\u0107. Tu tak\u017ce mo\u017cemy si\u0119 spodziewa\u0107 dobrych rad. Rad, wynikaj\u0105cych z praktyki.<\/p>\n<p>Zako\u0144czenie ksi\u0105\u017cki to dyskusja na temat testowania i organizacji zespo\u0142\u00f3w projektowych. Nie jest to rozwa\u017canie bujaj\u0105cych w chmurach kierownik\u00f3w, ale prosta wiedza zarobiona poprzez obserwacj\u0119 zespo\u0142\u00f3w&#8230;<\/p>\n<p>Podsumowuj\u0105c: ksi\u0105\u017cka Hunta i Thomasa nie jest wszechstronnym podr\u0119cznikiem in\u017cyniera. To jedynie cykl rozwa\u017ca\u0144, kt\u00f3re nale\u017cy przeczyta\u0107 na spokojnie i si\u0119 nad nimi zastanowi\u0107. Zastanowi\u0107 i zrozumie\u0107. Dopiero wtedy mo\u017cna \u2013 na co licz\u0105 autorzy \u2013 sta\u0107 si\u0119 prawdziwym profesjonalist\u0105.<\/p>\n<p><strong>Andrew Hunt, Thomas David<\/strong>: <em>Pragmatyczny programista. Od czeladnika do mistrza<\/em>, Wydawnictwa Naukowo &#8211; Techniczne, Warszawa 2002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pozornie ksi\u0105\u017cka ta nie zawiera wiele wiedzy. Napisana stylem nieomal poradnika psychologicznego, po g\u0142\u0119bszym wczytaniu zdradza g\u0142\u0119bok\u0105 wiedz\u0119 autor\u00f3w i znaczenie ich wskaz\u00f3wek. \u015awiat (a przynajmniej nasza bran\u017ca) by\u0142by du\u017co lepszy, gdyby ludzie cz\u0119\u015bciej stosowali si\u0119 do takich rad jak\u201eZamiast kiepskich usprawiedliwie\u0144, dostarcz rozwi\u0105za\u0144\u201d czy \u201eKosztowne narz\u0119dzia nie wytwarzaj\u0105 lepszego oprogramowania\u201d. By\u0107 mo\u017ce takie rady &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/bielamowicz.info\/index.php\/2007\/programista-doskonaly\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Programista doskona\u0142y&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-informatyka"],"_links":{"self":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":2,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":193,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/5\/revisions\/193"}],"wp:attachment":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/categories?post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/tags?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}