#main, 11 lipca 2016

By 11 July 2016 #main

W dzisiejszym #main wyni­ki ostat­niej anki­ety (oraz jej kon­tynu­ac­ja!), parę słów o twór­cy C++ i kole­jne newsy/ciekawostki ze świa­ta oraz ważną zapowiedź. Zachę­camy do lektury!

Uwa­ga! Z uwa­gi na sezon waka­cyjny a także inne obow­iąz­ki w tym cza­sie, do koń­ca wrześ­nia seria #main będzie się pojaw­iać z mniejszą częs­totli­woś­cią — raz na dwa tygod­nie, a nie jak wcześniej raz na tydzień. Mamy nadzieję, że zrozu­miesz, i że pomoże nam to uczynić blog jeszcze ciekawszym na przyszłość!

Cykl #main to punkt początkowy Waszego tygod­nia,  prasówka, w której zbier­amy ciekawe lin­ki, dzie­limy się infor­ma­c­ja­mi, a także podsyłamy pro­gramisty­czne zadanie. Mamy nadzieję, że w ten sposób umil­imy Wam poniedzi­ałkowy powrót do rzeczywistości ;)
Obrazek w nagłówku pochodzi z ser­wisu freepik.com

Podsumowanie ankiety z zeszłego tygodnia

wyniki ankiety.001

Fawory­tem anki­ety okaza­ły się serie związane z konkret­ny­mi pro­jek­ta­mi — w dzisiejszym #mainie kole­j­na związana z tym anki­eta — jakiego rodza­ju pro­jekt chci­ałabyś zobaczyć w najbliższym cza­sie opisany na kobietydokodu.pl ? Oczy­wiś­cie nie porzu­camy innych serii, ale w miarę możli­woś­ci postaramy się skupić na prefer­owanych opcjach ;)

Udział IntelliJ rośnie!

Przez dłu­gi czas w kwestii wyboru IDE do Javy panowała właś­ci­wie hege­mo­nia Eclipse — nie było to ide­alne środowisko, ale konkuren­ci byli jeszcze gor­si ;) Odkąd pojaw­ił się Intel­liJ IDEA obser­wu­je­my coraz więk­szą migrację i wyrówny­wanie się udzi­ału obu IDE — wg jed­nej z ostat­nich anki­et pro­por­c­ja ta wynosi już 48% dla Eclipse do 44% dla Intel­liJ! Na szczęś­cie konkurenc­ja ta ma wiele korzyś­ci — oba pro­duk­ty poprzez walkę o ‘udzi­ały’ sta­ją się lep­sze, bardziej uni­w­er­salne i przy­jaźniejsze dla użytkown­i­ka — oby tak dalej!

Wyni­ki anki­ety na blogu baeldung.com

Google prawdę Ci powie

Google odświeżyło stronę ‘my activ­i­ty’ — zna­jdziesz tam nie tylko infor­ma­c­je o swoich wyszuki­wa­ni­ach, ale też ogól­nie o Two­jej akty­wnoś­ci w sieci. Warto zerknąć, co Google o Tobie wie, i być może zas­tanow­ić się czy nie warto pomyśleć o więk­szej pry­wat­noś­ci na przyszłość.

Artykuł w ser­wisie techviral.com

Bezpłatne (legalne) ebooki i książki

Książ­ki nadal są i pewnie przez dłu­gi czas będą jed­nym z ważniejszych źródeł wiedzy i pomo­cy w nauce. Por­tal TradePub to sys­tem, w którym może­my otrzy­mać kom­pletne, pełnowartoś­ciowe pozy­c­je w zami­an za pozostaw­ie­nie swoich danych kon­tak­towych i infor­ma­cji o zatrud­nie­niu — dane te są uży­wane do statystyk ale także do prezen­towa­nia celowanych ofert. Mimo wszys­tko, nie jest to wyso­ka cena za dobrej jakoś­ci materiały!

Por­tal Trade Pub

O tym, jak wygląda studio i jak powstają gry

Nasze rodz­ime stu­dio CDPROJECT RED (twór­cy m.in. serii Wiedźmin) we współpra­cy z Jack­iem Gadzi­nowskim uchyliło rąb­ka tajem­ni­cy i pokaza­ło jak wyglą­da ich miejsce pra­cy, oraz przede wszys­tkim jak pow­sta­ją pop­u­larne na całym świecie gry. Oczy­wiś­cie jest to wideo pro­mo­cyjne firmy, ale świet­nie wyko­nane i przede wszys­tkim — ciekawe! Oby więcej takich!

Film przy­go­towany przez CDPROJECT RED

Odpowiedź na pytanie z zeszłego tygodnia

A pytal­iśmy o to: jak zapro­jek­towałabyś klasy do gry w warcaby?

Tego rodza­ju pytanie możesz trafić na rekru­tacji do więk­szych firm, i nie ma na nie jed­nej, poprawnej odpowiedzi (o ile rekruter się nie uprze na jakąś konkret­ną wer­sję, ale nie o tym mówimy…). Poniższy mod­el jest najprost­szą implementacją:

chekcers_simpleW tym wari­an­cie mamy klasę, która reprezen­tu­je pio­nek oraz taką, która reprezen­tu­je grę. Plan­sza jest tutaj reprezen­towana jako tabli­ca 8x8, a pola są reprezen­towane liczbą (np. w pier­wszym rzędzie pola mają numery 1–8, w drugim 9–16 itd — jeśli takie pytanie padło pod­czas rekru­tacji, warto powiedzieć jak numeru­jesz pola, żeby nie było wąt­pli­woś­ci). Klasa gry ma dwie metody — jed­ną do porusza­nia pio­nka­mi, drugą do sprawdzenia czy gra się już zakończyła. Pio­nek ma jed­ną metodę, która pozwala uczynić z niego ‘króla’.

Ta imple­men­tac­ja ma jed­nak kil­ka prob­lemów: teo­re­ty­cznie ten sam obiekt pio­nka może się zna­j­dować na kilku polach w tabl­i­cy (imple­men­tac­ja musi pil­nować, żeby tak się nie stało), reprezen­tac­ja tabli­cowa nie jest też najwyda­jniejsza w zakre­sie pamięci.

Alter­naty­wnym pode­jś­ciem jest prze­chowywanie pozy­cji pio­nków w postaci zbioru (imple­men­tac­ja Set w Javie, alter­naty­wnie mapy pozy­c­ja -> pio­nek), gdzie pozy­cję pio­nka prze­chowu­je­my w obiek­cie typu Piece­Po­si­tion. W tym wypad­ku metody by się nie zmieniły.

Jeszcze innym pode­jś­ciem jest prze­niesie­nie pozy­cji do klasy Piece — w tym wypad­ku meto­da move­Piece może zostać prze­nie­siona także do tej klasy (ale nie musi), może­my też mieć metodę move­Piece w głównej klasie gry (odpowiada­jącą za sprawdze­nie czy ruch jest możli­wy, czy pio­nek nie bije, czy nie zamienia się w króla itp), która wywołu­je metodę move­To w klasie Piece (ta meto­da jedynie zmieni­ała­by zapisaną pozy­c­je pionka).

W każdej z opcji potrzeb­ne są oczy­wiś­cie dodatkowe metody pomoc­nicze, które poz­wolą nam sprawdz­ić czy pio­nek może zostać prze­sunię­ty na dane pole, czy nie bije innego pio­nka, jaki jest obec­ny wynik, usuwa­ją­cy ‘zbity’ pio­nek z plan­szy itp.

Jeśli tego rodza­ju pytanie trafi Ci się na rekru­tacji, pamię­taj że każ­da opc­ja jest praw­idłowa, o ile speł­nia warun­ki narzu­cone przez rekrutera (może on zas­trzec, że rozwiązanie np. ‘nie może uży­wać tablic’).

Jak można tworzyć beany w Springu?

Oczy­wiś­cie zachę­camy do samodziel­nego odpowiedzenia na pytanie. Za tydzień nasza odpowiedź.

Więcej pytań tech­nicznych z poprzed­nich mainów wraz z linka­mi do odpowiedzi zna­jdziesz tutaj! 

Bjarne Stroustrup

Język C++ być może nie każdy zna, ale na pewno o nim słyszał bądź kiedyś widzi­ał. Był on dość przeło­mowy jeśli chodzi o pode­jś­cie do tworzenia aplikacji — pod­czas gdy język C był pro­jek­towany i rozwi­jany ‘równole­gle’ do sprzę­tu i urządzeń, w języku C++ górę wzięło pode­jś­cie biz­ne­sowe do tworzenia aplikacji, obiek­towość itp. Sam język jest dziełem jed­nego człowieka — Bjar­na Stroustrup.

Bjarne pochodzi z Danii, gdzie uzyskał tytuł mag­is­tra, po czym obronił dok­torat na uni­w­er­syte­cie Cam­bridge w 1979 roku. Pod­czas pra­cy dok­torskiej korzys­tał z C, na pod­staw­ie którego stworzył (jak sam to nazwał) “C z klasa­mi”. Była to pod­stawa do języ­ka C++, który stał się stan­dar­d­em w branży na długie lata (nadal nim jest w niek­tórych zas­tosowa­ni­ach). Bjarne jest odpowiedzial­ny za pier­wszą specy­fikację, określe­nie i definic­je kry­ter­iów, które C++ musi­ał speł­ni­ać, pier­wszą imple­men­tację oraz doprowadze­nie do włączenia rozsz­erzeń w poczet języ­ka przez komitet standaryza­cyjny C++. Stworzył także podręcznik/dokumentację “The C++ Pro­gram­ming reference”.

W późniejszych lat­ach kierował m.in. dzi­ałem roz­wo­ju pro­jek­tów wielkoskalowych w labo­la­to­ri­um AT&T Bell, uczest­niczył także w pra­cach orga­ni­za­cji IEEE. Posi­a­da tytuł pro­fe­so­ra oraz tytuły hon­orowe kilku uni­w­er­sytetów. Aktu­al­nie kieru­je dzi­ałem tech­nicznym w banku Mor­gan Stan­ley oraz gościn­nie udziela wykładów na Uni­w­er­syte­cie Columbia.

Not­ka biograficz­na w Wikipedii
Pry­wat­na strona

Pytanie na ten tydzień

Jakiego typu pro­jekt chci­ałabyś zobaczyć na kobietydokodu.pl jako kole­jną ser­ię?
  • Add your answer

* seria oczy­wiś­cie będzie kon­tyn­uowana i dokońc­zona — nieste­ty na tą chwilę mamy duże prob­le­my z wol­nym cza­sem, przez co sku­pi­amy się na innych seriach