Letni staż - Nokia Wrocław

Letni staż - Nokia Wrocław
NY
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Witam wszystkich!
Myślę, że nie ma co owijać w bawełnę i pisać przydługich wstępów. Temat mówi w zasadzie wszystko. Co prawda znalazłem, wątek o podobnej nazwie, ale nie został tam rozwiązany problem, który chcę poruszyć. Mam kilka pytań do osób, które w tym wakacyjnym stażu uczestniczyły. Nie będę ukrywał, że jestem początkujący w programowaniu (aktualnie drugi rok na PWr), uczę się mniej więcej od 1 klasy gimnazjum, zaczynałem od Pascala, potem aż do dziś C++. Niestety nie w ciągu tego czasu nie trafiłem na nikogo, kto byłby mnie w stanie naprowadzić na to co byłoby rzeczywiście przydatne, aż do ostatnich 3 miesięcy. Czuję że, faktycznie się w pewien sposób rozwinąłem.

      Napiszę po krótce co potrafię:
  • jestem w stanie sam zaprojektować (jeszcze pewnymi problemami, jeśli projekt jest bardziej złożony) klasę, znam podstawy dziedziczenia

  • obsługa biblioteki graficznej Allegro, początkująca znajomość kontenerów STL

  • obsługa plików txt i graficznych bmp

  • reszta czyli pętle, wskaźniki i inne elementarne struktury programowania proceduralnego

        Co planuję się do czerwca nauczyć:
    
  • listy,kontenery

  • jakaś dobra biblioteka graficzna, w stopniu podstawowym (OpenGL ?)

  • lepsze zaznajomienie się z algorytmami: sortowanie, potęgowanie binarne itd.

Pytanie do Was, czy to ma sens czy raczej polecacie naukę czegoś innego? Dostać się na staż Nokii to jedno z moich marzeń, zrobię bardzo wiele aby to osiągnąć, ale potrzebuję pomocnej rady. Dla tych co w tym stażu uczestniczyli. Jak on wygląda? Czy jest jakaś rozmowa kwalifikacyjna, jeśli tak to jak wygląda? Jakie problemy programistyczne się tam rozwiązuje?

Pozdrawiam

mychal
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Przedmonitorze Górne
2

Radziłbym odpuścić punkty:

  • jakaś dobra biblioteka graficzna, w stopniu podstawowym (OpenGL ?)
  • lepsze zaznajomienie się z algorytmami: sortowanie, potęgowanie binarne itd.

i skupić się na poznaniu biblioteki standardowej oraz aspektach związanych z testowaniem (jednostkowo - koniecznie, modułowo, E2E)


I fart u die.
CZ
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 dni
  • Postów:180
1

Olej OpenGLa i algorytmy. Zajmij się szlifowaniem pisania dobrego kodu. Ogarnij kiedy robić dziedziczenie, a kiedy kompozycję. Czysty Kod Roberta C. Martina przeczytaj na początek - zobaczysz gdzie się znajdujesz. Książka może się wydawać cięzka, ale jak czegoś nie zrozumeisz zupełnie to się nie przejmuj. Ważne, żebyś poznał fachowe terminy, abyś nie zginął. (pewnie będziesz do tego wracał).

Ddoatkowo polecam Head First design patterns (jest wersja polska, sam ją na PWr wypożyczałem :P). To jest do Javki, ale C++ jest podobny, więc się nada. Jak te dwie książki ogarniesz, To pozostają jeszcze typowe struktury danych używane w codziennym programowaniu - listy, vectory itp. Tylko nie ma sensu się zmóżdzać nad wszystkim po 2 miesiace. Lepiej weż się za jakis projekt, jakiś swój pomysł i spróbuj zakodzić to uzywając dobrych praktyk. Gwarantuje, że nie będzie łatwo :)

NY
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Dzięki bardzo za szybkie i pomocne odpowiedzi. Mam kilka pomysłów na dwa stosunku proste programy pisane obiektowo

  1. zadanie z robotem przemysłowym z Symfonii (rozdział o wskaźnikach) - przepisać w sposób obiektowy
  2. generator pseudolosowych liczb pierwszych, chociaż nie wiem czy to ma sens żeby pisać coś takiego
    Macie jakieś pomysły, które pozwoliłyby mi pogłówkować nad projektowaniem klas?
    Ostatnio udało mi się napisać maszynę szyfrującą Enigma, może nic wielkiego, chociaż uważam, że jest to jeden z niewielu programów, w których świetnie połączyłem klasy i funkcje globalne. Wydaje się, że wszystko dobrze współgra. Macie jakieś inne pomysły, bardziej złożone. Tak aby program miał więcej niż 200-300 linijek kodu?
CZ
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 dni
  • Postów:180
1

Jeśli ja miałbym doradzać, to unikałbym zadań typowo akademickich. Chyba, że to jakiś ciekawy problem, a ty masz genialne rozwiązanie :P. Lepiej zrobić apklikacje maksymalnie użytkową (skierowaną dla użytkownika końcowego). Jeśli w coś grasz, albo zajmujesz się czymś i przydałaby się automatyzacja danej czynności/procesu (np. jesteś analitykiem giełdowym (tak wiem, raczej nie jesteś)) i potrzebujesz prostą apkę bez zbędnych ficzerów, to jest świetny pomysł :P Może nawet osiągniesz komercyjny sukces :>. Ale najważniejsze, żebyś czuł, że to co robisz nie idzie do szuflady, a ma szanse się rozwinąć. Ostatecznie jako asa z rekawa możesz wyciągnąc swoją super-bajerancką apke napisaną w domu. Możesz tym zrobić niezłe wrażenie na rozmowie o pracę.

Tylko się tym nie zadręczaj, jeśli nie masz w tym momencie pomysłu to zrób cokolwiek. Ja mam skrzywienie w kierunku weba, więc słowo projekt kojarzy mi się z aplikacją biznesową skrojoną pod określonego użytkownika końcowego(najlepiej masowego). Także moje rady traktuj raczej z dystansem :].

edytowany 1x, ostatnio: członek zarządu
NY
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Wszyscy mówią o tego typu aplikacjach, ja niestety potrafię na razie pisać tylko dosowe programy okienkowe. Co doradzisz abym mógł z tym ruszyć do przodu bez ogarnięcia masy rzeczy zbędnych i z początku nie potrzebnych?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:4 minuty
  • Lokalizacja:Wrocław
1

Jeśli do Nokii, to zajmij się lepiej FFT albo jakimiś innymi algorytmami stosowanymi przy przetwarzaniu sygnałów.

xfin
Panie, FFT to tam nie uświadczy, jeśli nie trafi do komórki sprzętowców (ale tam raczej ludzie od C i ARMów siedzą).
somekind
Raczej czyni wielką różnicę...
0

Troche odkopię temat. W zeszłym tygodniu odbyły się testy, dostał ktoś juz może telefon z odpowiedzią dzis?

A1
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:1
0

Może ktoś opisać jak wyglądają takie testy/rozmowa? Za rok mam plan startować do Nokii i chętnie się dowiem czego mogę się spodziewać

JA
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:3
2

Test to (o ile dobrze pamiętam) 40 pytań wielokrotnego wyboru.
Były pytania o:

  • jaki będzie wynik i czy w ogóle zadziała dany fragment kodu (od prostych pętli po wyniki działania algorytmów z STL, większość pytań zawierało jakiś haczyk)
  • synchronizacja między wątkami (deadlock, mutexy itp)
  • rzutowania (static_cast, dynamic_cast, reinterpret_cast, const_cast)
  • kolejność wywoływań konstruktorów w niewielkiej hierarchii klas
  • jedno pytanie o optymalizację czasu kompilacji
  • smart pointers
  • co wprowadzało c++11
  • złożoność obliczeniowa podstawowych algorytmów

I jedno pytanie otwarte "Jak zapobiegać wyciekom pamięci?" (miejsca było 2 linijki więc dało się tylko lekko ruszyć temat)

No i bez znajomości angielskiego wiele się nie napisze bo test był właśnie w tym języku.

Test rozwiązywałem ponad 2 tygodnie temu, więc sporo pozapominałem. Rozmowę mam w najbliższy wtorek więc postaram się napisać jak to wygląda.

0

I jak poszła rozmowa?

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
1

I jedno pytanie otwarte "Jak zapobiegać wyciekom pamięci?" (miejsca było 2 linijki więc dało się tylko lekko ruszyć temat)

Ech, jak ja nie lubię takich głupich pytań... odpowiedź: pisać kod prawidłowy.

;-)

spartanPAGE
Zmieści się w 2 linijkach? Zmieści.
fasadin
mozna napisac tez zeby napisac poprawnie garbage collectora albo uzywac RAII.
JA
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:3
1
Azarien napisał(a):

I jedno pytanie otwarte "Jak zapobiegać wyciekom pamięci?" (miejsca było 2 linijki więc dało się tylko lekko ruszyć temat)

Ech, jak ja nie lubię takich głupich pytań... odpowiedź: pisać kod prawidłowy.

;-)

Używać RAII było dokładnie tym co chcieli usłyszeć.

Na początku była dość luźna rozmowa po angielsku.
Później miałem do napisania kod na tablicy:

  • mam obraz zapisany w tablicy dwuwymiarowej, musiałem obrócić go o 90 stopni (trzeba było także zaproponować testy do tego)
  • singleton współdzielony pomiędzy wątki
    I jeszcze rozmawialiśmy:
  • jak działa singleton
  • różnice pomiędzy alokowaniem pamięci na stosie i na stercie
  • wycieki pamięci
  • testach jednostkowych
  • testowaniu ogólnie
  • czy znam jakieś języki skryptowe
  • o komendach w linuxie (czy znam komendę która wyszuka linię zawierającą określone wyrażenie w dowolnym pliku tekstowym w katalogu)
  • czy znam wyrażenia regularne
  • co to jest wirtualne dziedziczenie
  • dlaczego w ogóle deklarujemy destruktor jako wirtualny

No i 10 dni później dostałem telefon, że mnie przyjęli :)

edytowany 1x, ostatnio: jakubg
DI
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 8 lat
  • Postów:38
0

Komuś udało się dostać na te praktyki?

0

Też chciałbym zapytać o to, czy się podostawaliście na letnie praktyki - od jakiegoś czasu nie dostaję odpowiedzi od Nokii i zastanawiam się, czy każdy tak ma.

0
poq napisał(a):

Też chciałbym zapytać o to, czy się podostawaliście na letnie praktyki - od jakiegoś czasu nie dostaję odpowiedzi od Nokii i zastanawiam się, czy każdy tak ma.

Jeśli po rozmowie dostałeś telefon, że się dostałeś, to powinieneś dostać kilka maili z informacjami co dalej (zaproszenie na podpisanie umowy, informacje na temat pierwszego dnia itp). Jeśli nikt się nie odezwał po rozmowie, to raczej nie mam dobrych wieści.

0

Dzięki za odpowiedź. Sądziłem że dość nieźle wypadłem podczas rozmowy, więc postanowiłem jeszcze raz się przypomnieć - no i ostatecznie do mnie zadzwonili. Okazało się, że byłem na liście rezerwowej (z jakiegoś powodu studentów po pierwszym roku studiów biorą tylko w ostateczności). No i w końcu się faktycznie nie dostałem, bo brak miejsc.

0

Hej, dostał ktoś z Was info odnośnie testów na tegoroczne praktyki w C++?

0

A czy dostał ktoś info odnośnie testów Java??

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)