Tag: software engineering

Entries for tag "software engineering", ordered from most recent. Entry count: 31.

Uwaga! Informacje na tej stronie mają ponad 3 lata. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Pages: > 1 2 3 4 >

11:10
Tue
19
Feb 2008

Stawianie realnych celów

Pasjonaci programowania gier często porywają się z motyką na słońce próbując napisać samemu kompletną grę - taką jak sobie wymarzyli, np. taką jak GTA albo WoW. Nawet jeśli mieliby potrzebną wiedzę i doświadczenie, oczywiste jest, że nie sposób tego dokończyć - to by wymagało wielu lat pracy. Szczególnie, jeśli nie ma motywacji w postaci pieniędzy ani szefa straszącego zwolnieniem, a na horyzoncie pojawią się często nowy, jeszcze lepszy pomysł.

Ja nie twierdzę, że to jest złe. W pewnym sensie to jest tak samo dobre, jak każde inne programowanie - robisz to co lubisz i zdobywasz doświadczenie. Jednak porzucanie coraz to nowego niedokończonego projektu może rodzić frustrację.

Dlatego może warto zacząć wyznaczać sobie realne cele. Zacząć od przyznania się przed samym sobą, że nie jesteś w stanie sam jeden napisać gry takiego kalibru, jak GTA czy WoW. Następnie pomyśleć, co mógłbyś napisać, żeby pozostając w kręgu swoich zainteresowań jednocześnie było możliwe dokończenie tego. To mogą być różne rzeczy. Jeśli chcesz zrobić dobry uczynek, napisz bibliotekę, którą inni programiści mogą wykorzystywać w swoim kodzie. Albo demo, które będzie się miło oglądało. Albo efekt wraz z kodem źródłowym i opisem, z którego inni będą się mogli czegoś nauczyć. Albo program narzędziowy, który przyda się innym programistom.

Oczywiście, punkt widzenia zależy od punktu siedzenia (a także od wieku i doświadczenia). Dlatego wcale nie twierdzę, że moje podejście jest jedynie słuszne. Myślę jednak, że ma pewną dużą zaletę - tworzy portfolio dla przyszłego pracodawcy. Pracodawcę interesuje podobno przede wszystkim "co umiesz", a zaraz potem "co możesz pakazać". Myślę, że w tym kontekście małe, ale ukończone i przydatne kawałki oprogramowania mają większą wartość, niż duże, ale tylko rozpoczęte gry.

Comments (0) | Tags: software engineering | Author: Adam Sawicki | Share

18:55
Mon
23
Jul 2007

Biblioteki - gotowe czy własne?

Wyczytałem wczoraj przy okazji w jednym z artykułów na GameDev.net, że potencjalnemu pracodawcy bardziej spodoba się, kiedy zobaczy, że programista w swojej amatorskiej produkcji skorzystał z gotowych bibliotek (co jakoby dowodzi jego umiejętności używania cudzego kodu i skupiania się na swoim celu), niż gdyby pisał wszystko samemu (co pokazuje jego umiejętności programistyczne). Ciekawa teoria. Brzmi całkiem logicznie.

Comments (0) | Tags: philosophy libraries software engineering | Author: Adam Sawicki | Share

17:54
Sat
21
Jul 2007

Filozofia #1

Kiedy człowiek ma dużo wolnego czasu, to za dużo myśli i przychodzą mu do głowy różne dziwne rzeczy. Dlatego to jest pierwsza cyklu notek filozoficznych. Wszystkich zdegustowanych czytelników mojego bloga przepraszam i obiecuję, że kiedyś mi to przejdzie :)

Myślałem sobie mianowicie o tym, jak wiele czasu potrzeba, by stworzyć cokolwiek - czy to będzie napisanie książki, zrobienie swetra na drutach czy napisanie jakiegokolwiek, małego nawet programu albo gry. Wielokrotnie więcej, niż wydawałoby się komuś niewtajemniczonemu albo początkującemu programiście. A czas mija nieubłaganie. Dlatego trzeba jak najstaranniej dobierać sobie zadania do wykonania - zarówno duże projekty, jak i te drobne sposoby na ich zrealizowanie.

Inna związana z tym sprawa to paradoks, że niejednokrotnie boimy się i nie możemy się zabrać za zrobienie czegoś, co w końcu zajmuje nam nie więcej niż 15 minut (np. zadana w szkole praca domowa), a innym razem angażujemy się w coś małego, co niespodziewanie zabiera wiele dni. Dlaczego tak jest? Moim zdaniem dlatego, że tym, czego podświadomie się boimy jest wysiłek, a to, co liczy się naprawdę to czas - dwie różne rzeczy.

Jeszcze inna kwestia to motywacja, która może wielokrotnie przyspieszyć robienie czegokolwiek. To jednak nie jest lekarstwo na wszystko - bo dlaczego firmy informatyczne nie zatrudnią po kilku młodych genialnych amatorów z motywacją zamiast armii tak niewydajnych w porównaniu z nimi programistów? O tym pisze Frederick Brooks w książce "Mityczny osobomiesiąc".

Comments (0) | Tags: philosophy software engineering | Author: Adam Sawicki | Share

13:38
Thu
28
Jun 2007

Projektowanie API

Projektowanie interfejsu biblioteki jest równie ważne, jak projektowanie interfejsu użytkownika programu. O tym drugim napisano całkiem sporo. Sam mam jedną książkę właśnie na ten temat. Co z tym pierwszym? Czy ktoś widział jakikolwiek tekst poświęcony projektowaniu dobrego API? Ja znam tylko jeden mały artykuł - Designing Qt-Style C++ APIs napisany "przy okazji" przez autorów biblioteki Qt.

Comments (1) | Tags: software engineering | Author: Adam Sawicki | Share

09:23
Sun
24
Jun 2007

Nowa teoria filozoficzna

Wymyśliłem wczoraj nową teorię filozoficzną :) Przypomniał mi się temat forum Jeśli nie kodzić... to co? i uświadomiłem sobie, że ludzi programujących można podzielić na 3 grupy zależnie od tego, kim byliby, gdyby nie było komputerów:

Może gdyby ludzie to rozumieli i każdy znał swoje miejsce na tym schemacie, skończyłyby się spory na temat tego, czym tak naprawdę jest informatyka i programowanie? :)

Comments (0) | Tags: philosophy software engineering | Author: Adam Sawicki | Share

08:58
Sat
02
Jun 2007

Dobra biblioteka, zła biblioteka

Chcę teraz napisać moduł do obsługi daty i czasu. Poszukując czegoś, na czym mógłbym się wzorować szczególnie dokładnie przejrzałem dokumentację i kod dwóch bibliotek - Boost.Date_Time oraz wxWidgets wxDateTime. Was też zachęcam do poświęcenia kilku chwil na próbę zrozumienia, jak te biblioteki wyglądają i ich porównania. Można tu naprawdę klarownie zobaczyć, jak powinien wyglądać, a przede wszystkim jak NIE powinien wyglądać interfejs dobrej biblioteki. Jedni głoszą, że "Mądrość i piękno bardzo rzadko idą w parze" (ten cytat jest mottem całego dzieła Meyersa "Effective C++"), inni znają takie pojęcie jak elegancja...

Comments (0) | Tags: libraries software engineering | Author: Adam Sawicki | Share

11:46
Mon
14
May 2007

Konwencja nazywania identyfikatorów

Istnieje kilka różnych sposobów nadawania nazw funkcjom, zmiennym, poleceniom, znacznikom i wszelkim identyfikatorom. Można je podzielić na:

Który z nich jest najlepszy, tego nie można jednoznacznie powiedzieć. Zamiast tego spróbuj pomyśleć, który jest najgorszy ;)

Comments (0) | Tags: philosophy software engineering | Author: Adam Sawicki | Share

22:31
Thu
03
May 2007

Accidental Complexity, Essential Complexity

Accidental Complexity i Essential Complexity to pojęcia, których użył Fred Brooks w swojej książce "Mityczny osobomiesiąc" oraz artykule "No Silver Bullet". Pisząc w skrócie, złożoność każdego programu jest sumą Accidental Complexity - nadmiernej złożoności, której da się uniknąć oraz Essential Complexity - złożoności która musi być, bo, jak mówią, jeśli program ma robić 30 rzeczy, to te 30 rzeczy trzeba zaprogramować.

Pomyślałem sobie dzisiaj, że tych dwóch pojęć, oprócz udowadniania dlaczego Srebrna Kula nie istnieje i nie może istnieć, możnaby też użyć do mierzenia jakości interfejsu API bibliotek (a może też podobnie interfejsu użytkownika programów?). Polegałoby to na tym, aby:

Comments (0) | Tags: philosophy software engineering | Author: Adam Sawicki | Share

Pages: > 1 2 3 4 >

STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2016 Adam Sawicki
Copyright © 2004-2016 Adam Sawicki