konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Tomasz M.:
Np. biorąc sobie robótki ręczne stąd... http://www.zlecenia.przez.net/
To już lepiej sie w Comarchu albo Asseco przyjąć za studencką stawkę.Tomek P. edytował(a) ten post dnia 19.05.11 o godzinie 12:05

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

To ja może powiem jak to było u mnie. Pracuję od 2 roku studiów.

Na początku zacząłem jako programista PHP z racji tego że klepałem jakieś tam stronki kiedyś. Była to amatorszczyzna ale był punkt zaczepienia. Pracowałem za śmieszne pieniądze ale nauczyłem się naprawdę wiele.Potem była zmiana pracy. Poważniejszy projekt poważniejsze pieniądze też PHP.

Najgorszym etapem w znalezieniu pracy dla mnie była zmiana technologii. Szukając pierwszej pracy w .NET wiele razy poległem, czemu się kompletnie nie dziwię. Bardzo pomogło mi tworzenie pracy inżynierskiej w technologii Silverlight, które stanowiło punkt podparcia mojej wiedzy, gdyż dotychczasowe doświadczenie, PHP etc. nic nie wnosiło do mojej wiedzy z .NET. Stąd zacząć doświadczenie zawodowe w .NET było ciężko.

Fakt jest taki, że bez doświadczenia zawodowego trzeba pracować za marne grosze, bo pracodawca więcej inwestuje w Ciebie niż z początku możesz sam wnieść.

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Za moich czasów na niektórych uczelniach funkcjonowało coś takiego jak "biura karier". Wiem, że PRLem zaleciało, ale to nie jest takie głupie ;) Warto było się tam zalogować, bowiem można tam było wyrwać fuchy właśnie takie na rozpoczęcie (umowa zlecenie, umowa o dzieło). Kasa, jak łatwo się domyślić, nie była z tego jakaś wielka, ale były jakieś pieniądze, a co najważniejsze, można było podłapać jakieś komercyjne zlecenie, które dawało duże doświadczenie i możliwość wpisania potem tego do CV (nie musisz wpisywać w CV ile na takim zleceniu zarobiłeś ;)).

Często małym firmom zależy na jak najtańszej robocie (pominę rozważania na temat sensowności takiego podejścia, to jest na oddzielny temat), nawet jeśli wykona ją niedoświadczony student i efekt końcowy nie będzie doskonały... Właśnie to jest szansa dla żółtodzibów.Adam Michalski edytował(a) ten post dnia 19.05.11 o godzinie 19:54

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Chciałem się podpiąć do tego wątku z trochę innym problem ale w sumie związanym ze zdobywaniem doświadczenia :)

Otóż czy znacie może jakieś serwisy z przykładowymi problemami/zadaniami coby poćwiczyć sobie pisanie programów do ich rozwiązywania ?

Ewentualnie czy ktoś mógłby zarzucić pomysły co mógłby stworzyć początkujący programista żeby podnieść swoje umiejętności ? Wiem, że najlepiej samemu coś wymyślić, ale im więcej różnych pomysłów i przykładów się uzbiera tym lepiej, wiadomo, że na wszystko samemu się nie wpadnie :)
Tomasz M.

Tomasz M. never go full
retard!

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Marcin W.:
Otóż czy znacie może jakieś serwisy z przykładowymi problemami/zadaniami coby poćwiczyć sobie pisanie programów do ich rozwiązywania ?

:p

http://projecteuler.net/

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Krzysztof Łukasiak:
2 lata doświadczenia - ale skąd je wziąc?

Dobrze zinterpretuj pytanie. Po studiach masz co najmniej 3 lata doświadczenia. Z reszta, jeśli ktoś tak określa swoje wymagania, to znaczy to tylko tyle, ze nie ma pojęcia o tym co robi.Jakub Wojt edytował(a) ten post dnia 19.05.11 o godzinie 23:35

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Marcin W.:
Chciałem się podpiąć do tego wątku z trochę innym problem ale w sumie związanym ze zdobywaniem doświadczenia :)

Otóż czy znacie może jakieś serwisy z przykładowymi problemami/zadaniami coby poćwiczyć sobie pisanie programów do ich rozwiązywania ?

Ewentualnie czy ktoś mógłby zarzucić pomysły co mógłby stworzyć początkujący programista żeby podnieść swoje umiejętności ? Wiem, że najlepiej samemu coś wymyślić, ale im więcej różnych pomysłów i przykładów się uzbiera tym lepiej, wiadomo, że na wszystko samemu się nie wpadnie :)

Niektóre systemy audio pozwalają na podłączenie pod kompa po 232 albo USB, ostatnio BT. Oczywiście zakłada się że w tym celu klient zakupi gotowe oprogramowanie za kupę kasy. Jednak równolegle część producentów udostępnia jawnie protokoły komunikacyjne. Sam kiedyś koledze taki sterownik pod port szeregowy dla Marantza pisałem z ładną aplikacją okienkową. A jak masz fantazję zawsze możesz zrobić to jako aplikację WEB i to w SOA. Pole do popisu już masz.
Krzysztof Mierzejewski

Krzysztof Mierzejewski SharePoint
Consultant

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Marcin W.:
Chciałem się podpiąć do tego wątku z trochę innym problem ale w sumie związanym ze zdobywaniem doświadczenia :)

Otóż czy znacie może jakieś serwisy z przykładowymi problemami/zadaniami coby poćwiczyć sobie pisanie programów do ich rozwiązywania ?

Ewentualnie czy ktoś mógłby zarzucić pomysły co mógłby stworzyć początkujący programista żeby podnieść swoje umiejętności ? Wiem, że najlepiej samemu coś wymyślić, ale im więcej różnych pomysłów i przykładów się uzbiera tym lepiej, wiadomo, że na wszystko samemu się nie wpadnie :)

http://www.imaginecup.com/

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Marcin W.:
Chciałem się podpiąć do tego wątku z trochę innym problem ale w sumie związanym ze zdobywaniem doświadczenia :)

Otóż czy znacie może jakieś serwisy z przykładowymi problemami/zadaniami coby poćwiczyć sobie pisanie programów do ich rozwiązywania ?

Ewentualnie czy ktoś mógłby zarzucić pomysły co mógłby stworzyć początkujący programista żeby podnieść swoje umiejętności ? Wiem, że najlepiej samemu coś wymyślić, ale im więcej różnych pomysłów i przykładów się uzbiera tym lepiej, wiadomo, że na wszystko samemu się nie wpadnie :)


http://www.topcoder.com/tc

Chyba najlepszy serwis do sprawdzenia swojej umiejętności logicznego myślenia i tworzenia algorytmów.

Niestety większość "prawdziwych" problemów programista doświadcza przy pracy z realnymi produktami.

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Ostatnie zdanie w poście Dawida jest kwintesencją rzeczywistości :) Rozwiązuje się "rzeczywiste problemy w rozsądnym biznesowo" ("ASAPem" :]) czasie, w średnich technologiach (!), ze średnią wydajnością projektowanych rozwiązań.

Najlepiej chyba nie kombinować zbytnio, tylko na studiach uczyć się myślenia algorytmicznego (i mieć wrednego laboranta, który zmusi do tego), a na projekty zaliczeniowe z języków wysokiego poziomu wyszukiwać sobie zagadnienia rozproszone (sieciowe), z wielodostępem do serwisu i bazy i obowiązkowo - uprawieniami (tu można np. się wprawiać w programowaniu aspektowym). No i pisać OOP (wzorce!), dokumentując system UMLem, a nie "proceduralnie z klasami". Uczyć się także podejścia "klockowego". Często podejście typu "napisz klasy, a generowanie bazy zostaw frameworkowi ORM i nawet tam nie zaglądaj, zapomnij, że piszesz jakiekolwiek DDLe!" jest nie tylko wystarczające, ale i pożądane. Niestety, ze studiów często wynosi się paskudny zwyczaj myślenia, że ERD jest częścią OOP...

Możesz szukać pracy w małych firmach informatycznych, zaliczając potem produkt, który robisz, na studiach. Ja tak robiłem i wszyscy byli zadowoleni, tzn. ja i laborant, któremu mogłem coś ciekawego opowiedzieć :) Naprawdę nie wszędzie potrzeba tych 2 lat na początku. A jak nie znajdziesz jednak, to napisz kolejny (!) sklep internetowy. Albo hardkor - system rejestracji na zasoby, np. przewóz (samoloty, pkp). Zamodeluj to najpierw, a potem spróbuj napisać w MVC z użycie ORMa. To już da Ci wiele frajdy i roboty, o ile nie podejdziesz do tego "eee, to na razie za skomplikowane, to oleję" (w normalnej pracy tak się nie da). Już samo postawienie serwera, bazy danych, frameworka, skonfigurowanie uprawnień... A potem, podczas rozmowy kwalifikacyjnej - masz przynajmniej jakieś "portfolio".

Do świata algorytmiki wchodzi się w takich przypadkach raczej rzadko (o ile nie są to specjalistyczne zagadnienia numeryczne), a częściej trzeba sobie radzić np. z architekturą rozproszoną (kolejki komunikacji), wielodostępem z lockowaniem optymistycznym, zagadnieniami DDD (kompletnie inny świat, dla wprawnych w OOP), modularności i elastyczności rozwiązania (czyli dobra znajomość OOP). I to nieraz z dużą i świadomą rezygnacją z wydajności i szybkości, bo np. nie jest czynnikiem krytycznym w relacji do elastyczności. I to też wymaga cholernego myślenia i kreatywności. To nie znaczy, że jak ktoś nie siedzi godzinami nad grzebaniem w tablicach i indeksach, to nie jest "true". Choć tak się straszy studentów. Jest w tym trochę racji, bo być "algorytmicznym kretynem" to jednak ujma, która w dodatku w końcu się odbije czkawką, nawet składaczowi klocków. Nigdy nie wiesz, kiedy trzeba będzie jednak coś zoptymalizować w sposób bardziej wyrafinowany. Może położyć Cię głupi raport w SQL z "mocno relacyjnej" bazy danych, gdzie jeszcze między SELECT a FROM będzie sporo kodu... Nie będzie to co prawda "problem komiwojażera", ale spędzisz nad tym niejedną godzinę.

Jeśli umie się myśleć wzorcami, to brak klasycznych umiejętności algorytmicznych (to wbrew pozorom nie to samo :) ) staje się mniej dotkliwy. Zawsze można poświęcić trochę czasu za zaimplementowanie w krytycznych miejscach wzorca strategii i - zgodnie z regułą YAGNI - na chwilę obecną (tzn. dla bieżących zestawów danych, gdy np. są to jeszcze tysiące, a nie miliony rekordów) zaprogramować mało wyrafinowane, mało wydajne, ale działające zadowalająco rozwiązanie i wydać wersję (a zatem - zarabiać). Potem w razie potrzeby rozbudowuje się podpinając wydajniejszy algorytm, a nie ruszając poprzedniego. I tego warto się uczyć na studiach, mając czas, bo potem umie się szybciej rozwiązywać rzeczywiste problemy. Potem zawsze znajdziesz kogoś, kto Ci napisze dobry algorytm albo kupisz bibliotekę, a jak system nie będzie elastyczny, to nawet jej nie podepniesz bez rozwalenia jego połowy.

Reasumując - wszystko zależy od tego, z czym się zamierza związać w przyszłości. Jak blisko sprzętu i "cyferek", bo ma się zacięcie researchera, bądź chce się brać udział w tworzeniu wysokowydajnych, używanych potem przez miliony silników (renderujących, obliczeniowych, etc.), to zadania z algorytmiki na wysokim poziomie, ćwiczące nieustannie intuicję i mózg - a już niekoniecznie znajomość nowych technologii, bibliotek, wzorców. I wtedy może spróbuj siły w grach? Może w systemach data mining - rozpoznanie mowy, twarzy, optymalizacja pracy świateł na skrzyżowaniach, wykrywanie stresu po głosie albo mimice twarzy... Pewnie są takie firmy :) A nawet jak nie, to będziesz mieć kupę zabawy. A może uczelnia ma jakieś granty w tym kierunku?

Jak kogoś pociągają systemy klasy ERP, modelowanie zagadnień biznesowych (czyli "piekło codzienności"), to umiejętność błyskawicznego dopasowania narzędzi do potrzeb i stosowania sprawdzonych rozwiązań na zasadzie klocków, analityczny umysł i wgryzanie się w konkretną branżę. Obecnie można powoli zapomnieć, że będzie się już tylko "koderem", coraz częściej trzeba też znać się coś na branży, w której się programuje (chyba, że komuś wystarcza taka a nie inna pensja) - a na to trzeba mieć i czas i pojemną głowę. To zdobędziesz w dowolnej korporacji IT.Adrian Olszewski edytował(a) ten post dnia 20.05.11 o godzinie 16:28
Tomasz M.

Tomasz M. never go full
retard!

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Jeśli miałbym mieć swojego .net guru, to ja poproszę o pana Adriana ;]

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Zgadzam się :) Chociaż niestety nie rozumiem wszystkich pojęć i zagadnień przedstawionych przez Pana Adriana, ale na to jeszcze przyjdzie czas, w końcu jestem beginner :)

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Adrian Olszewski:
Jak kogoś pociągają systemy klasy ERP, modelowanie zagadnień biznesowych (czyli "piekło codzienności"), to umiejętność błyskawicznego dopasowania narzędzi do potrzeb i stosowania sprawdzonych rozwiązań na zasadzie klocków, analityczny umysł i wgryzanie się w konkretną branżę.

"Piekło codzienności" to sól życia i biznesu. Ile można podniecać się "poczuciem kontroli" nad softwarem.Życie - to dopiero jest temat poza kontrolą :)

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

ORM jest dla tych, którzy nie znają SQLa... Powstają potem "super-wydajne" aplikacje co to mogą chodzić na każdym silniku bazodanowym, bo wszystko jest w ORMie napisane. Za długo już siedzę w tej branży, zeby wierzyć w takie bajeczki.

ORM jest fajny do prostej albo co najwyżej średnio-złożonej aplikacji webowej z jedną, średnio-obciążoną bazą danych.

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Nie wszczynajmy flamewarów na ten temat, bo te miały miejsce na tym (i nie tylko na tym) forum nie raz.

Znajdziesz tutaj dość osób, które na codzień mówią w SQLu nawet "dzień dobry", a korzystają z ORMa tam, gdzie nie potrzebują nic bardziej wyrafinowanego. Nie każda aplikacja jest klasy systemu bankowego i nie każda przetwarza gigabajty danych. A obiektowych baz danych jeszcze nie mamy tak dużo na rynku, by się przesiąść i pisać w pełni obiektowo.

Na tej samej zasadzie można powiedzieć, że w C# pisze ten, kto nie umie pisać w C++ bo nie ogarnia arytmetyki wskaźników i takiego pana Grębosza czytałby jak chińskie manuskrypty, "Ubuntu jest dla tych, co nie
umieją skonfigurować Debiana", a PHP jest dla tych, co nie ogarniają J2EE i ASP.NET.

Krzywdzące, jeśli używa się kwantyfikatora ogólnego, a Ty takiego użyłeś.

Bo ORM to tylko narzędzie. Można go użyć dobrze lub źle. Podobnie, jak VBA, w którym można naklepać makro i uważać się za programistę w biurze, ale które to jednak VBA jest bezcennym dodatkiem do Excela. Czy z racji tego nazwiemy VB.NET albo Delphi.NET językiem dla lamerów?

Każde narzędzie ma swoje zastosowania i to jest jedyna prawda, jaką uznaję, bo inaczej wchodzimy po prostu w religię. ORM wypełnia chwilowa pustkę, między RDBMS a OOP. Jest jakie jest, ale kwestią czasu jest kiedy ODBMSy będą równie popoularne, albo i popularniejsze. Na razie jednak są egzotyką, a programiści nie chcą myśleć już relacyjnie i pragną ścisłej typizacji na etapie pisania kodu (LINQ).

A wiem coś o tym... złożony system distance learningowy pisałem (z przymusu) na potrzeby uczelni przez 3 lata w graficznym języku Macromedia Authorware, przeznaczonym do robienia... prezentacji. A mój kolega z roku robił w tym symulator asma 8080, a drugi - symulator mikroprogramowanego sterowania. Dało się, ale były do tego lepsze narzędzia. Z drugiej strony - nie wziąłbym niczego innego do tworzenia zaj... prezentacji interaktywnych.


Obrazek

ORM jest fajny do prostej albo co najwyżej średnio-złożonej aplikacji webowej z jedną, średnio-obciążoną bazą danych.

I znaczna ilość potrzebnych na rynku aplikacji jest właśnie taka. I w niemałej ich liczbie ważniejszy jest koszt wykonania, niż różnice na poziomie 3-5 sekund w wykonaniu pracy.

Zaś do produkcji tych, które takie nie są, raczej nikt nie bierze osób, które nie potrafią wykonać planu zapytania, bo ryzykuje czymś więcej, niż tylko mailami ze skargami, że "system muli".

A jeśli bierze (a wiem, ze biorą, tak samo jak wiesz to Ty, bo odrobinę już w branży IT pracuję nie tylko jako devel) to projekt upada śmiercią naturalną, a darwinizm rynkowy ruleZ :)

Peace.

PS: co do dogmatyzmu - na grupie pośw. projektantom OOP pojęcie "relacyjny" ma zabarwienie wybitnie pejoratywne :)Adrian Olszewski edytował(a) ten post dnia 21.05.11 o godzinie 10:47

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Wszyscy piszecie o wydajności i o tym, że ORM jest dla średnich produktów nie wymagających wydajności, a ja poruszyłbym tutaj inną kwestię. Przy pewnych rozmiarów projektu skalowalność, łatwość zmian, łatwość rozwoju może przysparzać dużo problemów. Uważam, że obycie się z ORM, Frameworkami, w których zwykle zawartych wiele dobrych praktyk programistycznych może wyuczyć dobrych nawyków.

Jeżeli chcemy stworzyć duży wydajny produkt, nie oparty o żaden ze standardowych, ogólnodostępnych frameworków musimy posiadać bardzo doświadczonego architekta oprogramowania. To on musi zaprojektować aplikację tak, by była wydajna i dało się w niej coś pisać.

Nie raz widziałem kod, który był wydajny, sprytny itp. jednak gdy przyszło komuś nanieść jakieś zmiany w tej super wydajnej maszynie stworzonej przez nawiedzonego demona wydajności łzy się lały litrami.

konto usunięte

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Adrian bardzo dobrze to ują.
Od siebie dodam, że może idealną opcją byłaby jakaś praktyka?

http://www.google.com/jobs/students/us/internships/
http://www.facebook.com/careers/department.php?dept=in...
http://www.vmware.com/company/jobs/campus/
http://careers.microsoft.com/careers/en/us/collegeinte...
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Ja już się w tym temacie pogubiłem ;-)

moja firma aktualnie szuka pracowników, więc jeżeli jesteś skłonny przenieść się do Gdańska to daj znać - a co do firmy, to tworzenie aplikacji lub portowanie gier (na razie tylko dwie firma stworzyła sama) na smartphony, starsze telefony już raczej odeszły w zapomnienie ;-)

A jak dobrze pamiętam, to szukają Android Developer, chyba iPhone (ale głowy sobie uciąć nie dam) no i 3D Artist ;-)
doświadczeniem się nie przejmuj, mnie przyjęli jeszcze przed obroną pracy inż. bez kompletnie żadnego doświadczenia poza pisaniem dla pisania ;-)

No i mała uwaga, zostajesz raczej Developerem ogólnym, niż na konkretny język - ja zacząłem od C# + XNA a teraz zupełnie inna bajka, bardzo zupełnie ;-)
Sławomir Marcjański

Sławomir Marcjański Programista /
Ethical Hacker

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Piotr Rusoł:
Mi ostatnio przyszedł wariacki pomysł do głowy by w listach motywacyjnych wyzywać firmy na pojedynek. Oni wystawiają programistę i robimy zadanko na czas. Jak wygram to mnie zatrudniają jak przegram to zakładam papierową torbę na głowę z napisem cienias ;)

Próba porównania dwóch programistów jest bardzo śliska.
Wyobraź sobie że dana firma zajmuje się głównie tworzeniem aplikacji WindowsForms i raportów w kryształkach. No i teraz taki programista z tej firmy co siedzi tam lata, będzie obcykany w Formsach ale jak go posadzisz do SL albo ASP to wymięknie (nie wspominając o nawykach pochodzących z korzystania z jakiegoś frameworka). Skończyły się już czasy wszechwiedzy - zbyt wiele dzieje się na rynku dla jednej osoby by być wiecznie na bieżąco. Zdolność do uczenia się i otwarty umysł to się liczy.
Z drugiej strony dobry programista to nie tylko wiedza techniczna. Pewne cechy charakteru pomagają lub dyskwalifikują człowieka z pewnych środowisk (firma firmie nie równa, trzeba się umieć przystosować).

Temat: 2 lata doświadczenia - ale skąd je wziąc?

Sławomir Marcjański:
Piotr Rusoł:
Mi ostatnio przyszedł wariacki pomysł do głowy by w listach motywacyjnych wyzywać firmy na pojedynek. Oni wystawiają programistę i robimy zadanko na czas. Jak wygram to mnie zatrudniają jak przegram to zakładam papierową torbę na głowę z napisem cienias ;)

Próba porównania dwóch programistów jest bardzo śliska.
Wyobraź sobie że dana firma zajmuje się głównie tworzeniem aplikacji WindowsForms i raportów w kryształkach. No i teraz taki programista z tej firmy co siedzi tam lata, będzie obcykany w Formsach ale jak go posadzisz do SL albo ASP to wymięknie (nie wspominając o nawykach pochodzących z korzystania z jakiegoś frameworka). Skończyły się już czasy wszechwiedzy - zbyt wiele dzieje się na rynku dla jednej osoby by być wiecznie na bieżąco. Zdolność do uczenia się i otwarty umysł to się liczy.
Z drugiej strony dobry programista to nie tylko wiedza techniczna. Pewne cechy charakteru pomagają lub dyskwalifikują człowieka z pewnych środowisk (firma firmie nie równa, trzeba się umieć przystosować).

Wygląda na to, że nie jestem dobrym programistą ponieważ zdarza mi się dystansować do ważkich problemów tego świata a czasem nawet z nich zażartować.

Następna dyskusja:

Prosta stronka ale w .NET




Wyślij zaproszenie do