•  

    pokaż komentarz

    Szwagier ma firmę programistyczną i jak przychodzi do niego pipek świerzo po dyplomie mgr to mu mówi - proszę napisać program w C który na stdout wypisuje własny kod źródłowy. Wszyscy padają. Ale jeden taki pipek po polibudzie Wrocławskiej napisał na kartce. Szwagier się zdziwił ale spokojnie mówi - ma pan za duże kwalifikacje, wyp@$#??@aj (⌐ ͡■ ͜ʖ ͡■)

    •  

      pokaż komentarz

      Ale jeden taki pipek po polibudzie Wrocławskiej napisał na kartce.

      @nabzd: przypomina mi to zajęcia z programowania w assemblerze na kartce. A jednak na coś się to gówno przydaje xD

    •  

      pokaż komentarz

      @nabzd: nie kumam, w sęsie coś takiego ?

      #include <stdio.h>
      int main(void)
      {
      char c;
      FILE *file = fopen("./main.c","r");

      if (file) {
      while ((c = getc(file)) != EOF) {
      putchar(c);
      }
      fclose(file);
      }
      return 0;


      }
      czy jakiś haczyk w tym zadaniu jest ?

    •  

      pokaż komentarz

      @Neurotok: Aaa zapomniałem napisać. Nie można otwierać żadnych plików. Program ma sam z siebie napisać swój kod.

    •  

      pokaż komentarz

      @nabzd: to, że użyjesz wbudowanego makra to nie znaczy że nie otwierasz żadnych plików.

    •  

      pokaż komentarz

      @Neurotok: to zwykły trollling, nie da się czego takiego zakodzic.

    •  

      pokaż komentarz

      Komentarz usunięty przez autora

    •  

      pokaż komentarz

      Komentarz usunięty przez autora

    •  

      pokaż komentarz

      @superfist: Nie znasz się to sie zamknij ヽ( ͠°෴ °)ノ¯\_(ツ)_/¯(⌐ ͡■ ͜ʖ ͡■)

      Quine – program komputerowy, rodzaj metaprogramu, którego jedynym celem jest wypisanie własnego kodu źródłowego na wyjściu. Częstą zabawą programistów jest pisanie najkrótszych quine’ów w danym języku programowania.

      Należy zauważyć, że programy, które otwierają własny kod źródłowy i wypisują go na wyjściu (tak jak pierwszy przykład w języku BASIC poniżej), są uważane za nieuczciwe.

    •  

      pokaż komentarz

      @Neurotok: Raczej coś takiego:
      #include <stdio.h>
      #define X(x) x #x
      X(const char* a = "#include <stdio.h>\n#define X(x) x #x\nX(");
      X(const char* b = "int main() { printf(\"X(%s);};\\n%s\", d(), b); return 0; }\n"; const char* c =);
      X(const char* d() { printf("%s);\nX(%s);\n", a, c); return);};
      int main() { printf("X(%s);};\n%s", d(), b); return 0; }


      @superfist: Da się ( ͡° ͜ʖ ͡°)

    •  

      pokaż komentarz

      @RRRRR: Da się krócej ( ͡° ͜ʖ ͡°)
      main(a){printf(a="main(a){printf(a=%c%s%c,34,a,34);}",34,a,34);}

    •  

      pokaż komentarz

      @superfist: hm,jeśli pliku nie można otwierać,to może dump pamięci zrobić,po wczytaniu się pliku programu do pamięci :)

    •  

      pokaż komentarz

      poniżej
      @nabzd: Gdzie przykład?

      A swoją drogą. Dla mnie takie rzeczy były zawsze albo ciekawostkami albo narzędziami do masturbacji ego dla tych co lubią się popisywać i pokazywać, że są lepsi. Nie spodziewałbym się, żebym miał kiedykolwiek potrzebę do pisania takich programów, a pisanie w c pożegnałem chyba w 2010 roku.

    •  

      pokaż komentarz

      @nabzd: Opieranie rekrutacji na zadaniach których rozwiązanie można w 5 sekund wygooglować to głupota. Najlepsze są zadania w czasie których rekrutowany ma nieograniczony dostęp do internetu (oczywiście poza opcją pomoc przyjaciela). Ewentualnie zadanie przekrojowe/problemowe gdzie trzeba pokazać że rozumie się jakąś dziedzinę. Tu zazwyczaj nie ma jednego słusznego rozwiązania i można zobaczyć czy dana osoba ma pojęcie o tym czym ma się zajmować.

    •  

      pokaż komentarz

      #define X(x) x #x

      @RRRRR:
      Już na tej linijce się zawiesiłem.

    •  

      pokaż komentarz

      @push3k-pro: Przecież w C do dzisiaj się pisze i to wielkie rzeczy.

    •  

      pokaż komentarz

      @nabzd: Tak, ale moja ścieżka była taka, że pożegnałem c chyba w 2010 roku i właściwie c dużo wcześniej zaczął być używany tylko do szczególnych zastosowań, mikroklockach,osach itd, a i tak coraz bardziej wypierany jest, tam gdzie pojawia się na to miejsce.

      Nie wiem jak w wojsku, bo tam czesto i ada do tej pory robi, jak i fortran w bankowości.

    •  

      pokaż komentarz

      @push3k-pro: C nigdy nie zostanie wyparty, bo jest prosty, masz dostęp bezpośrednio do hardware i assemblera, i wiesz mniej więcej co ci zrobi z kodem kompilator.

    •  

      pokaż komentarz

      #define X(x) x #x

      @RRRRR:
      Już na tej linijce się zawiesiłem.


      @RandomowyMirek: Przyznaję, że trochę mało czytelne przez mieszanie dużego i małego x. Można równie dobrze zapisać np. tak:

      #define abc(xyz) xyz #xyz

      W C linijki zaczynające się od # to dyrektywy preprocesora, który przekształca tekst programu przed właściwą kompilacją.
      #define służy do definiowania makr zamieniających jeden tekst na inny.
      Makra mogą mieć parametry, które mogą być użyte w jego treści. Jeśli parametr makra zostanie poprzedzony # to zawartość tego parametru jest obejmowana w cudzysłowy a specjalne znaki są escapowane.

      np.
      #define abc(xyz) xyz #xyz
      abc(const char* x =);

      zostanie przekształcone do:
      const char* x = "const char* x =";
      czyli wygeneruje kod, w którym x wskazuje na napis: const char* x =
      a
      abc(const char* y = "int z = 5;");
      do
      const char* y = "int z = 5;" "const char* y = \"int z = 5;\""
      czyli y wskazuje na napis: int z = 5;const char* y = "int z = 5;"
      Znak \ służy do escapowania specjalnych znaków wewnątrz napisów, np. jeśli chcesz mieć napis zawierający cudzysłów to musisz użyć \" (w skompilowanym programie będzie w tym miejscu już sam znak cudzysłowu), np.
      "To \" jest cudzysłów"

      W C jeśli napiszesz dwa literały napisowe obok siebie bez żadnego operatora między nimi, np.
      "Ala" " ma " "kota"
      to zostaną połączone w jeden napis tak jakbyś napisał
      "Ala ma kota"

    •  

      pokaż komentarz

      C nigdy nie zostanie wyparty, bo jest prosty, masz dostęp bezpośrednio do hardware i assemblera, i wiesz mniej więcej co ci zrobi z kodem kompilator.

      @DizzyEgg: I jedyny? Bo widzę, że jak się da to np cpp działa albo jakaś modyfikacja dla danego urządzenia.

    •  

      pokaż komentarz

      Przecież w C do dzisiaj się pisze i to wielkie rzeczy.

      @nabzd: I jest to tragedia. Ten język (i C++ też, choć trochę mniej) jest już niestety przestarzały i skrajnie niebezpieczny, jestem niemal pewien, że przez jego użycie w dzisiejszych czasach giną wręcz ludzie.

      Niestety wszystko to z braku istnienia czegoś lepszego (przez istnienie rozumiem nie tylko język programowania, ale i wspierające go oprogramowanie, kompatybilność, wielkość ekosystemu oraz edukację programistów).

    •  

      pokaż komentarz

      jest już niestety przestarzały i skrajnie niebezpieczny, jestem niemal pewien, że przez jego użycie w dzisiejszych czasach giną wręcz ludzie.

      @Qwertylion: Wybacz, ale to bzdura kompletna. Wszystkie te bajery w językach wysokiego poziomu zajmują zbyt dużo czasu, C jest szybki i przejrzysty. Zaprogramuj jądro, mikroprocesor, czy inny system, gdzie masz tylko X bajtów wolnego miejsca w czymś wyżej niż C, no nie da się, albo da się ale efekty są mizerne.

    •  

      pokaż komentarz

      @DizzyEgg: Niestety, ale nie wiesz o czym mówisz. Większość gwarancji, które czynią języki bezpiecznymi da się zapewnić statycznie i w zdecydowanej większości wypadków bezkosztowo.

    •  

      pokaż komentarz

      @Qwertylion: Pracuję jako programista systemów wbudowanych w dziedzinie komunikacji radiowej (Pośrednio czasami działamy coś z FPGA i projektowaniem elektroniki) i powiem ci że akurat do tego C jest idealny. Nie da się ukryć że jest bez wad, ale jego zalety takie jak bezpośredni dostęp do wielu rzeczy w rdzeniu mikrokontrolera jest nieoceniony. Co do działań na wyższych poziomach to się nie odzywam, bo tylko trochę działałem w Pythonie i C++.

  •  

    pokaż komentarz

    Ciekawe kiedy banka IT peknie?

    Nie pęknie, bo nie ma żadnej bańki, co najwyżej dziwna wizja świata tych co nie mają pojęcia o branży. Zarobki nadal rosną - bo rozną na całym świecie - w branży IT potrzeba coraz więcej ludzi przez coraz większą automatyzacje i przechodzenie "papierowych" usług na wersje cyfrowe.

    Hindusi w większosci stawiali na ilość i cenę a nie jakość, więc zbudowali rynek taniej siły kodzącej dla klientów którzy kierują się wyłącznie ceną. Po prostu praca która wymaga czegoś więcej jest załatwiana gdzie indziej (m.in. u nas).

    A co do "spadku pensji" w IT, to nie ma na co liczyć - te mityczne 15k to dla firmy ledwie 4k USD czy 3,5k EUR. To są pieniądze za które nie zatrudnią dobrego programisty na zachodzie, a co dopiero mówić o konkretnych wyjadaczach.

    •  

      pokaż komentarz

      @poprostumort: prawda, coraz częsciej widzę zdalne oferty za 30k+, programista15k juz na nikim nie robi wrażenia :)
      Oczywiście nie dla juniorów po bootcampach a osób z 5+ letnim doświadczeniem

    •  

      pokaż komentarz

      Po prostu praca która wymaga czegoś więcej jest załatwiana gdzie indziej (m.in. u nas).

      @poprostumort: Przez chwilę nawet pomyślałem, że to może być tak na serio

    •  

      pokaż komentarz

      Nie pęknie, bo nie ma żadnej bańki, co najwyżej dziwna wizja świata tych co nie mają pojęcia o branży.

      @poprostumort: Święte słowa, bańska sugeruje jakieś wytworzone sztucznie zjawisko, a tutaj mamy po prostu do czynienia z gwałtownym wzrostem zapotrzebowania na konkretną usługę. Niby jak ta bańka ma pęknąć? Tysiące banków nagle postanowią, że nie potrzebują systemów płatności? Setki tysięcy sklepów zrezygnuje z witryn internetowych?

    •  

      pokaż komentarz

      @Herostrates94:

      Tysiące banków nagle postanowią, że nie potrzebują systemów płatności?
      Co to jest "system płatności"? I czemu trzeba to pisać tysiąc razy?

      Setki tysięcy sklepów zrezygnuje z witryn internetowych?
      Kiedyś każdy warzywniak miał własną stronę, teraz mają tylko fanpage na facebookiu.

      W bańce chodziło o to, że rynek pracy wchłaniał młodych.

    •  

      pokaż komentarz

      Co to jest "system płatności"? I czemu trzeba to pisać tysiąc razy?

      @terazpolskanow: Chodzi mi o corowe systemy bankowe: każdy bank ma swój mainframe odpowiedzialny za transakcje, pożyczki, lokaty. Istnieją "gotowe" systemy, które są potem wykorzystywane przez banki (Temenos stworzył np. system T24, wykorzystywany przez Nordeę czy mBank), ale te muszą być stale modyfikowane pod nowe produkty (które każdy bank rozwija przecież indywidualnie) i zmiany w prawie (jak RODO).

      Weźmy np. takie PSD2: parę lat temu Unia w tej dyrektywie nakazała, by każdy bank w Europie udostępnił API (umożliwiające inicjalizację płatności czy pobranie informacji o rachunku bankowym) zewnętrznym firmom fin-technowym, by te mogły korzystać z czegoś zgrabniejszego od żmudnego screen-scrappingu. Dla każdego banku to jakieś 2-3 lata pracy w 100 osobowym zespole (chyba że bank odwala fuszerkę, byle tylko było "compliance").

      Systemy bankowe, choć są często przestarzałe i nie korzystają z najnowszych bibliotek i technologii, cały czas ulegają zmianom - zmianom, które nierzadko wymagają od programistów pewnej wiedzy biznesowej (jak obsłużyć cut-off czy detale w stylu konwersji BBAN na IBAN).

      "Kiedyś każdy warzywniak miał własną stronę, teraz mają tylko fanpage na facebookiu. "

      No i teraz już nie ma, ale każdy sklep ciut większy od warzywniaka stronę ma.

      "W bańce chodziło o to, że rynek pracy wchłaniał młodych."

      Nie rozumiem, co ma jedno do drugiego? Jak duża aktywizacja młodych ludzi w danej dziedzinie gospodarki ma się do bańki?

  •  

    pokaż komentarz

    Wam (informatykom) się wydaje, że każdy kto uczy się kodować będzie zaraz chciał pracowac w IT i pisać aplikacje dla banków.

    Prawda jest taka, że programowanie to po pierwsze świetna zabawa i nawet zwykły pracownik biurowy czy produkcyjny wyższego szczebla powinien umiec napisać prostą aplikację w pythonie czy choćby vba bo to po prostu przyśpiesza pracę i ułatwia życie. Nie wspominająć, że roboty coraz bardziej wkraczają w nasze życie i porozumiewać się z nimi też będzie trzeba.

    Pewnie podobnie 500 - 600 lat temu narzekał nadworny skryba kiedy to szary lud uczył się pisać i czytać

    źródło: steve.jpeg

  •  

    pokaż komentarz

    Słuchając hinduskich tutoriali na Udemy można odnieść wrażenie, że jednak powinni zacząć od nauki mówienia :P