Witam!
Otóż jestem w trakcie poszukiwania pracy na stanowisku Programista PHP/ Młodszy Programista PHP. Pracy szukam w Krakowie, moje jedyne doświadczenie to wykonywanie własnych projektów, nie pracowałem nigdzie wcześniej, ponieważ jestem świeżo po szkole. I tutaj pytanie, jakiej kwoty mogę zarządać od firmy z moim doświadczeniem? A w zasadzie jego brakiem. :( dodam, że pracy poszukuję w Krakowie.
- Rejestracja:ponad 11 lat
- Ostatnio:około 10 lat
- Postów:62

- Rejestracja:ponad 12 lat
- Ostatnio:ponad 9 lat
- Lokalizacja:Bieszczady
Kpisz czy o drogę pytasz ? " I tutaj pytanie, jakiej kwoty mogę zarządać od firmy z moim doświadczeniem" - skąd mam wiedziec jakie jest twoje doświadczenie ? bo skąd mam wiedzieć co pisałeś ? hello worldy czy porządne aplikacje. Pokaż konto na Gitcie/czym kolwiek innym - nie masz własnych projektów ? ciesz się za jakąkolwiek stawkę.
- Rejestracja:ponad 11 lat
- Ostatnio:około 17 godzin
- Postów:126
Jak stoisz ze znajomością OOP, wzorców projektowych (użycie w praktyce), TDD, BDD, jakiegoś znanego frameworka, git/svn, IDE, standardy PSR,bazy danych (sql i noSql), composer, linuxa?
To podepnę się tutaj.
Czy 3500 netto na umowę o pracę to będzie ok dla kogoś tylko po stażu + jakiś mniejszych projektach dla małych firm?
Moje umiejętności: oop, podstawowe wzorce(DI, MVC, Singleton, Fabryka), symfony2 w trakcie nauki, codeigniter dobrze, git, obsługa linuxa + zajawka na punkcie OOP.
- Rejestracja:ponad 11 lat
- Ostatnio:około 17 godzin
- Postów:126
NoWay napisał(a):
Podam linki do prezentacji moich dwóch projektów:
Pierwszy z nich (dość prosty, ale na nim uczyłem się podstaw podstaw):
Drugi (bardziej zaawansowany):
Pokaż fragmenty kodu tego bardziej zaawansowanego. Np to czym chciałbyś się pochwalić przed przyszłym pracodawcą.
- Rejestracja:ponad 11 lat
- Ostatnio:około 10 lat
- Postów:62
Powiedzmy, niech będzie to. Nie ma tutaj w sumie nic zaawansowanego, pierwszy plik odpowiada za wykrywanie kupujących na aukcjach allegro, dodawanie ich do bazy itp. a drugi wysyła klucze do użytkowników, którzy zapłacili za zakupy:
<?php
require 'config.php';
$response = mysql_query("SELECT * FROM users WHERE a_login!=''");
if( mysql_num_rows( $response ) > 0 )
{
$ver_key = $client->doQuerySysStatus( 3, $country_id, $webapi_key );
while( $index = mysql_fetch_assoc( $response ) )
{
$id = $index['id'];
$auctions = mysql_query("SELECT * FROM connect WHERE id='$id'");
if( mysql_num_rows( $auctions ) != 0 )
{
try
{
$index['a_password'] = base64_decode( $index['a_password'] );
$user = $client->doLogin( $index['a_login'], $index['a_password'], $country_id, $webapi_key, $ver_key['ver-key'] );
while( $auction = mysql_fetch_assoc( $auctions ) )
{
if( $auction['start'] == 0 )
$start = '';
else
$start = $auction['start'];
$tab = array();
$tab[0] = $auction['auction'];
$inf = $client->doGetPostBuyData( $user['session-handle-part'], $tab );
do{
if( isset( $buyers[99]->{'deal-event-id'} ) )
$start = $buyers[99]->{'deal-event-id'};
$buyers = $client->doGetSiteJournalDeals( $user['session-handle-part'], $start );
for( $b = 0; $b < count( $buyers ); $b++ )
{
echo '6, ';
$price = $auction['price'];
if( $tab[0] == $buyers[$b]->{'deal-item-id'} && $buyers[$b]->{'deal-event-type'} == 1 )
{
$buyer_id = $buyers[$b]->{'deal-buyer-id'};
for( $c = 0; $c < count( $inf[0]->{'users-post-buy-data'} ); $c++ )
{
if( $buyer_id == $inf[0]->{'users-post-buy-data'}[$c]->{'user-data'}->{'user-id'} )
{
$buyer_name = $inf[0]->{'users-post-buy-data'}[$c]->{'user-data'}->{'user-login'};
$email = $inf[0]->{'users-post-buy-data'}[$c]->{'user-data'}->{'user-email'};
}
}
$time = $buyers[$b]->{'deal-event-time'};
$id_act_buy = $buyers[$b]->{'deal-id'};
if ($buyers[$b]->{'deal-quantity'} >= 10)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 1;
if ($buyers[$b]->{'deal-quantity'} >= 20)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 2;
}
if ($buyers[$b]->{'deal-quantity'} >= 30)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 3;
}
if ($buyers[$b]->{'deal-quantity'} >= 40)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 4;
}
if ($buyers[$b]->{'deal-quantity'} >= 50)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 5;
}
if ($buyers[$b]->{'deal-quantity'} >= 60)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 6;
}
if ($buyers[$b]->{'deal-quantity'} >= 70)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 7;
}
if ($buyers[$b]->{'deal-quantity'} >= 80)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 8;
}
if ($buyers[$b]->{'deal-quantity'} >= 90)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 9;
}
if ($buyers[$b]->{'deal-quantity'} >= 100)
{
$buy_codes = $buyers[$b]->{'deal-quantity'} + 10;
}
}
else
{
$buy_codes = $buyers[$b]->{'deal-quantity'};
}
$database_name = $auction['database_name'];
mysql_query("INSERT INTO buyers VALUES ( '', '$id', '$buyer_id', '$buyer_name', '$email', '$time', '0', '$id_act_buy', '', '$tab[0]', '$buy_codes', '0', '$database_name', '$price', '0', '0', '0', '0' )");
}
if( $auction['auction'] == $buyers[$b]->{'deal-item-id'} && $buyers[$b]->{'deal-event-type'} == 4 )
{
$id_transaction = $buyers[$b]->{'deal-transaction-id'};
$time = $buyers[$b]->{'deal-event-time'};
$id_act_buy = $buyers[$b]->{'deal-id'};
mysql_query("UPDATE buyers SET state='1', id_transaction='$id_transaction', date_payment='$time' WHERE id_act_buy='$id_act_buy'");
$price = $price * $buyers[$b]->{'deal-quantity'};
$temp = $index['email'];
mysql_query("UPDATE users SET profit=profit+'$price' WHERE email='$temp'");
}
}
}while( count( $buyers ) == 100 );
if( isset( $buyers[count( $buyers ) - 1] ) )
{
$start = $buyers[count( $buyers ) - 1]->{'deal-event-id'};
$id_auction = $auction['auction'];
mysql_query("UPDATE connect SET start='$start' WHERE auction='$id_auction' AND id='$id'");
}
}
}
catch( Exception $error )
{
continue;
}
}
}
}
header( 'Location: cron_feedback.php' );
?>
<?php
require 'config.php';
$response = mysql_query("SELECT * FROM users WHERE a_login!='' AND ( kredyty!='0' || Premium='1' )");
if( mysql_num_rows( $response ) > 0 )
{
while( $index = mysql_fetch_assoc( $response ) )
{
$header = "From: ".$index['email']." \nContent-Type: text/html;charset=Windows-1250 \nContent-Transfer-Encoding: 8bit";
$id = $index['id'];
$buyers = mysql_query("SELECT * FROM buyers WHERE id='$id' AND state='1'");
while( $buyer = mysql_fetch_assoc( $buyers ) )
{
$name = $buyer['database_name'];
$limit = $buyer['buy_codes'] - $buyer['sent_codes'];
$codes = mysql_query("SELECT * FROM klucze WHERE nazwa='$name' AND klucz!='nazwa_tabeli' ORDER BY 'id' ASC LIMIT $limit");
for( $a = 1; $a <= $limit; $a++ )
{
if( $index['kredyty'] == 0 && $index['Premium'] == 0 )
{
break;
}
$code = mysql_fetch_assoc( $codes );
if( isset( $code['klucz'] ) )
{
$code_sent = $code['klucz'];//."\n\nJeśli kod jest nieprawidłowy skorzystaj z reklamacji klikając TUTAJ\nAutomatyczną dostawę zapewnia AlleMater.pl Najszybsza i najtańsza wysyłka kodów!";
if( mail( $buyer['email'], 'Witaj '.$buyer['buyer_name'].'! Właśnie otrzymałeś zakupiony kod od użytkownika '.$index['a_login'].'!', 'Oto link do naszej autorskiej gry: http://allsoftware.pl/Games/gra.exe oraz klucz:'.$code_sent, $header ) )
{
$id_registry = $buyer['id_registry'];
$time = time();
$code_sent = $code['klucz'];
mysql_query("INSERT INTO sent VALUES ( '$id_registry', '$code_sent', '$time' )");
mysql_query("DELETE FROM klucze WHERE klucz='$code_sent' AND nazwa='$name'");
mysql_query("UPDATE buyers SET sent_codes=sent_codes+1 WHERE id_registry='$id_registry'");
if( $index['kredyty'] != 0 && $index['Premium'] == 0 )
{
$email = $index['email'];
mysql_query("UPDATE users SET kredyty=kredyty-1 WHERE email='$email'");
$index['kredyty'] = $index['kredyty'] - 1;
}
}
else
{
echo 'Błąd w wysyłaniu maila';
}
}
else
{
break;
}
if( $a == $limit )
{
mysql_query("UPDATE buyers SET state='2' WHERE id_registry='$id_registry'");
}
}
}
}
}
?>

- Rejestracja:ponad 10 lat
- Ostatnio:prawie 2 lata
- Postów:2500
Używaj PDO do obsługi bazy danych:
http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059
- Rejestracja:ponad 11 lat
- Ostatnio:około 17 godzin
- Postów:126
Ok, kod jest strukturalny, zagmatwany podatny na wiele błędów. If ifem pogania, brak transakcji, logika leży.
catch( Exception $error )
{
continue;
}
Może wypadałoby zalogować błąd?
Pomijając ułomność API allegro, samą obsługę w/w mechanizmów w twoim kodzie to parę porządnych metod. Idź na studia, zaczep się do jakiegoś projektu open source, bo na razie nie łapiesz się nawet jako Młodszy programista, a tymbardziej Programista PHP. Zrób z 2 - 3 porządne projekty i startuj gdzieś lub aplikuj na bezpłatne praktyki. Dlaczego na bezpłatne? - na dzień dzisiejszy twój kod kompletnie nie nadaje się na produkcję i po prostu będziesz musiał dużo się oduczyć jak i nauczyć żeby zacząć pisać coś co będzie można używać.
NoWay napisał(a):
I tutaj pytanie, jakiej kwoty mogę zarządać od firmy z moim doświadczeniem?
Biorąc pod uwagę twój kod - 0 zł. Na razie nie myśl o sprzedawaniu swoich skillów bo ich po prostu nie ma. I musisz się wziąć do porządnej pracy.
Parę pozycji na początek:
http://helion.pl/ksiazki/php-obiekty-wzorce-narzedzia-wydanie-iii-matt-zandstra,phpob3.htm
http://helion.pl/ksiazki/czysty-kod-podrecznik-dobrego-programisty-robert-c-martin,czykod.htm
http://helion.pl/ksiazki/tdd-sztuka-tworzenia-dobrego-kodu-kent-beck,tddszt.htm

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
@NoWay ten kod to na poważnie? o_O
- jeden wielki blok kodu
- podatność na SQL injection w każdym zapytaniu!
- magic numbers
- echo zamiast logera
- z 10 poziomów zagłębienia o_O
- drabinki ifów
Czy gdybym pokazał ci ten kod (a ty byś go nie znał) to potrafiłbyś w ciągu 10 sekund powiedzieć co on robi? Nie? To znaczy że jest źle napisany.

- Rejestracja:około 22 lata
- Ostatnio:ponad 8 lat
- Lokalizacja:Kielce
Są 3 fajne narzędzia którymi polecam przejechać Ci ten Twój kod. Powiedzą Ci jak bardzo jest zły tak kompletnie obiektywnie i statycznie ;)
Pierwszy to PHP Code Sniffer (https://github.com/squizlabs/PHP_CodeSniffer) - Pokrzyczy za styl kodowania i parę nieudolności
Następny to PHP Mess Detector (http://phpmd.org/) - Pokrzyczy o wszystkie faile. Te których @Shalom nie wymienił bo robił podwójny facepalm też ;)
Kolejny - PHP Copy-Paste Detector (https://github.com/sebastianbergmann/phpcpd) powie Ci jak bardzo się mijasz z zasadą KISS
Tak w ogóle - IDE powinno Ci pokazywać warningi związane z kodem. Włącz je. To bardzo pomoże Ci w przyszłości jeśli zaczniesz pracować ;)