Jaki komputer do programowania?

Kilkukrotnie otrzymaliśmy od was pytania typu:

  • jaki komputer będzie najlepszy do programowania?
  • czy do programowania w Javie wystarczy mi komputer XYZ?
  • ile ramu i jaki procesor musi mieć komputer do programowania?

Podobnych pytań można mnożyć wiele, ale ogólną odpowiedź da się uwspólnić. W tym wpisie przedstawię ci mój punkt widzenia , opowiem o tym czego sam używałem i używam. Nie będą podawał konkretnych modeli, bo uważam, że to jest kwestia mocno indywidualna i może być związana choćby z sympatią wobec danej marki, zamiast tego skupię się raczej na parametrach oraz platformie.

Sprzęt

hardware

Pamięć RAM

Przy wyborze komputera do programowania warto wziąć pod uwagę swój obecny poziom zaawansowania, ale także spojrzeć nieco w przyszłość.

Na początku załóżmy, że chcesz się nauczyć programowania w Javie. Narzędzia, których będziesz używać to głównie:

  • Java Development Kit (środowisko Javy)
  • środowisko programistyczne (taki zaawansowany edytor kodu)
  • przeglądarka internetowa i kilka drobnych narzędzi (ale to dopiero po jakimś czasie)
  • narzędzia związane z zarządzeniem bazami danych (to też raczej nieco później)

Java ma raczej niewielkie minimalne wymagania sprzętowe. Wirtualną maszynę można uruchomić na komputerze z procesorem Pentium 2, 128MB ram i kilkuset MB pamięci na dysku twardym. Wymagania te spełniają nawet niektóre pralki i lodówki. To jakie są minimalne wymagania nie oznacza oczywiście, że będzie wystarczające do komfortowej pracy.

Zdecydowanie gorzej wygląda sprawa ze środowiskiem programistycznym, czyli np. Eclipse IDE, albo IntelliJ IDEA. Oba rozwiązania dają bardzo duże możliwości, ale także pochłaniają sporo zasobów. Założyłbym, że do komfortowej pracy powinniśmy dysponować co najmniej 1-2GB ramu. Jeżeli po jakimś czasie przejdziesz do tworzenia aplikacji webowych, to zakładaj, że do ich uruchomienia będzie potrzebne 500MB-1GB wolnej pamięci. Łącznie robi nam się ok 3GB ramu do w miarę komfortowej pracy przy aplikacjach średniej wielkości (na samym początku wystarczy ci połowa z tego). Jeżeli weźmiesz pod uwagę, że np. Chrome potrafi pożreć kilka GB ramu, spotify, dropbox i różne inne usługi, które będą prawdopodobnie uruchomione w tle także potrzebują trochę pamięci, to moim zdaniem w 2020 roku kupowanie komputera do programowania, który ma mniej niż 16GB pamięci ram nie ma sensu.

Aktualnie posiadam dwa komputery. Jeden ma 8GB pamięci (mały laptop do multimediów), a drugi ma 32GB. Na obu da się pracować, jednak czas potrzebny na uruchamianie programów na tym pierwszym jest kilkukrotnie dłuższy niż na drugim. Do programowania używam go wyłącznie awaryjnie, gdy drugi komputer został w biurze.

Kurs Java

Procesor

Do podstaw wystarczy ci procesor z 2 rdzeniami, ale warto rozważyć też opcję z większą ich ilością jeżeli budżet na to pozwala. Generalnie większa liczba rdzeni z niższym taktowaniem jest lepsza niż tylko 2 rdzenie z wysokim taktowaniem. Praca programisty często opiera się na korzystaniu z wielu narzędzi jednocześnie i tutaj wiele rdzeni sprawi, że wszystko będzie działało po prostu szybciej. Ja w słabszym komputerze mam dwurdzeniowego Intela i5-5257U, a w mocniejszym sześciordzeniowy Intel i7-8850H. Różnica w czasie uruchamiania programów i responsywności narzędzi jest ogromna. W przypadku niektórych zadań, np. kompilacji natywnych obrazów Javy, na lepszym procesorze uzyskuję czas wykonania zadania, który jest kilkunastokrotnie mniejszy. Zadania obciążające procesor w 100% są w pracy programisty raczej rzadkością. W większości przypadków procesor będzie obciążony przez długi czas, ale w niewielkim stopniu.

W 2020 roku celowałbym minimum w dwurdzeniowy procesor i5 z nowszych generacji lub odpowiednik od AMD, które wychodzi ostatnio na pozycję lidera jeżeli chodzi o wydajność i stosunek ceny do jakości. Taktowanie jest ciężko oszacować, ponieważ sporo procesorów pomimo niskiego taktowania wyjściowego potrafi znacznie przyspieszyć w trybie turbo boost.

Dysk

Tutaj zasada jest prosta. Do systemu operacyjnego, aplikacji i plików związanych z programowaniem potrzebujesz SSD. Dyski talerzowe możesz wykorzystywać np. do przechowywania multimediów lub backupów. Im szybszy dysk tym lepiej. Jeżeli dyski nvme są w Twoim budżecie, to na nich bym się skupił.

Ja w poprzednim komputerze miałem dysk 128GB (nvme) i w zupełności mi to wystarczało, bo wszystkie większe pliki trzymam na dysku zewnętrznym, do muzyki mam spotify, a do filmów i seriali Netflixa i podobne usługi. Jeśli grasz w gry, to sprawa się skomplikuje. W nowszym komputerze mam dysk SSD 512GB, przy czym chyba nie zdarzyło mi się, żebym miał zajęte więcej niż połowę miejsca. Dużo miejsca zajmują u mnie filmy do zmontowania, gdyby nie to, to zapewne nadal mieściłbym się na 128GB.

dysk

Karta graficzna i inne podzespoły

Nie mają większego znaczenia, no chyba że zamierzasz tworzyć gry.

Peryferia

keyboard

To na co często nie zwraca się uwagi to peryferia. Jako programista będziesz dużo pisać, więc zwróć uwagę na to żeby klawiatura była wygodna, tzn. klawisze miały odpowiedni profil i rozmiar oraz wygodny dla Ciebie skok. Zainwestuj także w dobrą mysz, nie ma nic bardziej irytującego niż przeskakujący kursor i zaznaczanie nie tego co chcemy. Ja przesiadając się z PC na MacBooka byłem przekonany, że nic nie zastąpi mi porządnej ergonomicznej myszy. Szybko się jednak okazało, że moja niechęć do touchpada była spowodowana tym, że w laptopach z którymi miałem wcześniej styczność nigdy nie działało to tak jak powinno. Od kiedy mam MacBooka używam wyłącznie touchpada i używanie gestów bardzo podniosło moja produktywność.

W przypadku klawiatury zwróciłbym też uwagę na to, czy jest ona podświetlana. Ułatwia to pisania nie tylko wtedy kiedy siedzimy w całkowitej ciemności. Dopóki nie miałem podświetlanej klawiatury to nie zdawałem sobie sprawy z tego jak bardzo jest to wygodne. Istotny jest też sam układ klawiatury. Ja preferuję wersję US z podłużnym enterem i długimi shiftami, ale niektórzy wolą układ UK.

Weź pod uwagę inne kryteria

Przy wyborze komputera musisz brać pod uwagę inne zastosowania. Jeżeli kupujesz komputer z myślą o studiach, to pewnie warto spojrzeć na to, żeby był on w miarę lekki i miał dobrą baterię, bo prawdopodobnie będziesz go zabierać na uczelnię. Jeżeli nie jest to dla Ciebie priorytet, ale np. grasz w gry, to oczywiście ważna będzie karta graficzna. Warto zamiast laptopa rozważyć w takiej sytuacji komputer stacjonarny.

Jeżeli masz już iPhona lub iPada, to w pierwszej kolejności warto zerknąć na jakiegoś Macbooka, który świetnie się z nim synchronizuje.

System Operacyjny

system operacyjny

System operacyjny to głównie kwestia preferencji, chyba że kupujesz Macbooka, to wtedy instalowanie na nim Windowsa jest po prostu bez sensu (no chyba, że do gier jako drugi system). Miałem okazję pracować na Windowsie, MacOS jak i Linuxie i poniżej znajdziesz moje krótkie przemyślenia.

Windows

Jest to zdecydowanie najpopularniejszy system, z którym styczność mają niemal wszyscy w Polsce. Wynika to z tego, że komputery z tym systemem są łatwo dostępne i w przystępnych cenach, ale także dlatego, że spotkamy się z nim np. na lekcjach informatyki, czy w pracowniach informatycznych na studiach. Jeżeli nie masz porównania z innymi systemami to niczego nie powinno Ci tutaj brakować i spokojnie możesz przy nim pozostać.

Ja z Windowsa korzystałem przez 12 lat. Jego głównym atutem jest bardzo duża dostępność oprogramowania, przyjazny interfejs użytkownika. Minusem było dla mnie to, że z czasem system zauważalnie zwalniał i co jakiś czas trzeba było go przeinstalować, na co marnowałem za każdym razem kilka godzin. Dla mnie to nigdy nie było jakimś wielkim atutem, ale niektórzy często używają komputera do gier, a wtedy Windows wydaje się jedynym sensownym wyborem. Z punktu widzenia programisty z jednej strony znajdziesz na Windowsa niemal wszystkie najważniejsze narzędzia, a z drugiej strony otrzymujemy konsolę, która jest mniej wygodna od tej z systemów unixowych, nie ma tutaj też menadżera pakietów, więc sporo rzeczy trzeba ręcznie pobierać z internetu, zamiast wpisać jedną komendę. Jeżeli masz np. zainstalowanych na komputerze kilka różnych wersji Javy, to przełączanie się między nimi też nie jest zbyt wygodne.

Windows to też najpopularniejszy system w korporacjach, gdzie zazwyczaj komputery dostarczane są w hurtowych ilościach i kwestie administracyjne i licencyjne są dosyć skomplikowane.

MacOS

Od kilku lat używam systemu MacOS. Z punktu widzenia programisty otrzymujemy tutaj dużo wygodniejszy terminal niż na Windowsie, możliwość instalowania oprogramowania korzystając z różnych menadżerów pakietów. System zarządzania oknami jest w moim odczuciu dużo wygodniejszy od tego na Windowsie, ale to być może kwestia indywidualna. Do tego system nastawiony jest na bezpieczeństwo, szyfrowanie danych, ma wygodną aplikację do robienia backupów i system zachęca do jej używania. Pracując na MacOS dużo łatwiej odnajdziesz się też w Linuxie, z którym będziesz mieć prawdopodobnie chociaż trochę styczności na serwerach.

Znajdziemy tutaj także wszystkie niezbędne narzędzia deweloperskie, sporo narzędzi konsolowych, których nie ma na Windowsie, ale z drugiej strony nie pogramy za bardzo w gry, a pakiet MS Office działa zauważalnie gorzej niż na Windowsie. Przesiadając się z Windowsa do niektórych rzeczy trzeba się też tutaj przyzwyczaić, przykładowo plików nie otwiera się Enterem, tylko dziwną kombinacją klawiszy, ale jest to wyłącznie kwestia przyzwyczajenia.

Dla mnie jednym z największych plusów komputerów Mac jest to, że po 5 latach od zakupu nie miałem potrzeby reinstalowania systemu. Wszystko działa tam niemal tak samo jak na początku. Dodatkowo praktycznie nie wyłączam komputera, a jedynie go usypiam. Otwieram klapę i po sekundzie komputer jest gotowy do pracy. Możliwe, że współczesne PC z Windowsem też już działają tak dobrze, niestety nie było mi dane tego doczekać.

MacOS to coś jak hybryda Linuxa z Windowsem i dodatkowo wygodną integracją z innymi urządzeniami Apple.

Kurs Java

Linux

Do Linuxa miałem dwa podejścia, bo zawsze mi się wydawało, że jest to taki system dla prawdziwych informatyków / programistów. Za pierwszym razem zainstalowałem Debiana, w którym od początku pojawiały się problemy z internetem, zewnętrznym ekranem, brakiem sterowników. Rozwiązaniem niektórych problemów było wklepywanie do terminala różnych komend znajdywanych na różnych forach, ale ostatecznie stwierdziłem, że jeżeli tak to ma wyglądać, to szkoda mojego czasu.

Drugie podejście to Linux Mint. Tutaj przygoda zaczęła się od tego, że system nie wykrywał mojej karty sieciowej, więc gdyby nie to, że miałem drugi komputer przy pomocy którego mogłem wyszukać rozwiązanie problemu w sieci i pobrać dodatkowe sterowniki, to komputera nie dałoby się za bardzo używać. Poza tym nieprzyjemnym początkiem było całkiem ok. Największym plusem był fakt, że komputer działał zauważalnie szybciej niż na Windowsie i generalnie każdemu kto ma nieco słabszy sprzęt polecam sprawdzić właśnie Minta.

Ja z Linuxem mam aktualnie styczność jedynie na serwerach, gdzie mamy uruchomione różne aplikacje i tam sprawdza się świetnie. Na komputerze do pracy dyskwalifikuje go u mnie brak niektórych aplikacji, narzędzi do obróbki wideo, pakietu MS Office itp.

Ekran i monitory

monitor

Monitor jest jednym z kluczowych elementów, który pozwoli Ci na wygodną pracę jako programista. Jeżeli decydujesz się na laptopa to masz do wyboru kilka możliwości. Moim zdaniem minimum to:

  1. Laptop w rozmiarze minimum 15" i rozdzielczością minimum Full HD (1080p).
  2. Laptop w rozmiarze 15" lub mniejszy i z rozdzielczością mniejszą niż Full HD + zewnętrzny monitor.

W przypadku komputera stacjonarnego warto wybrać jeden większy monitor, np. 27", albo dwa mniejsze monitory, np. 23"-24". Osobiście nie polecam monitorów ultra wide, albo ekranów o przekątnych powyżej 30 cali, ponieważ wydaje mi się to nieergonomiczne i będzie wymagało kręcenia głową. Możliwe jednak, że to kwestia indywidualna. Niektórzy zwracają uwagę na to, żeby monitory miały funkcję pivotu, czyli żeby dało się je przekręcić o 90 stopni do pionu. Ja choć we wszystkich monitorach mam taką możliwość, to nigdy z tego nie korzystam. Wydaje mi się, że jest to dużo bardziej użyteczne np. w przypadku grafików niż u programistów. Ewentualnie jeżeli pracujesz na jakimś kodzie spaghetti, gdzie musisz na ekranie zmieścić na raz kilkaset wierszy, to może to być użyteczne.

Jeżeli dopiero zaczynasz naukę to wystarczy Ci jeden monitor lub po prostu ekran laptopa (choć wtedy polecam co najmniej 15"). Jeżeli jednak zasmakujesz dodatkowego ekranu, to nie ma już odwrotu :)

Ja zarówno w domu, jak i w biurze, oprócz ekranu laptopa wykorzystuję zewnętrzny monitor o przekątnej 27" i rozdzielczości QHD (2560x1440px). Pracuje mi się na nim wygodnie zarówno w połączeniu z laptopem 13" jak i 15". Ekranu laptopa używam najczęściej jako obszaru pomocniczego, np. do programu pocztowego, spotify, aplikacji do zarządzania zadaniami, kalendarza itp., a edytor kodu i przeglądarkę mam otwartą na dużym ekranie.

Miałem kiedyś laptopa w rozmiarze 17", ale z perspektywy czasu uważam, że dużo większe znaczenie ma balans pomiędzy rozmiarem ekranu i rozdzielczością, a nie sam rozmiar. Przykładowo wolałbym laptopa z ekranem 15" i rozdzielczością 4k niż 17" z FullHD.

laptop_i_monitor dwa_monitory

Podsumowanie

Celuj w komputer, który ma co najmniej 16GB pamięci ram, szybki dysk SSD i procesor z jak największą liczbą rdzeni, które niekoniecznie muszą mieć ogromne taktowanie. Zwróć też uwagę na to, żeby na ekranie zmieściło się jak najwięcej kodu, albo jeżeli zależy Ci na małym laptopie i mobilności, to dokup do niego zewnętrzny monitor.

W przypadku laptopa najlepiej wybrać się do sklepu, sprawdzić, czy klawiatura i gładzik są dla Ciebie wygodne, czy np. klawisze nie są za małe, albo mają niewygodny skok.

Wybór systemu operacyjnego najczęściej powiązany jest z wyborem komputera. Jeżeli kupisz PC, to do wyboru masz Windowsa i Linuxa - osobiście wybrałbym ten pierwszy system. W przypadku Maca polecam pozostać przy MacOS.

Do rozpoczęcia przygody z programowaniem najczęściej wystarcza każdy laptop na którym da się komfortowo przeglądać internet. Zamiast rozpoczynać naukę programowania od inwestycji w nowy komputer, polecam więc zacząć od sprawdzenia, czy aktualny sprzęt na pewno sobie nie poradzi. Możliwe, że na początku lepszą inwestycją niż nowy komputer okaże się np. dodatkowy monitor. Dzięki temu na jednym ekranie możesz mieć otwarty kurs, a na drugim równolegle zapisywać kod w środowisku programistycznym.

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.