Programowanie - w trosce o przyszłość

0

Witam,
w tym roku idę do czwartej klasy technikum i zaczynam zastanawiać się nad swoją przyszłością.

Języki programowania które znam to HTML, CSS, Framework jQuery, PHP, C++, Python. Po skończeniu projektu gry internetowej ze znajomym na pewno zagłębie się bardziej w Obiektówkę PHP, postaram się zajrzeć do Framework'a Zend, a także rozmyślałem nad Java Scripts. W czwartej klasie będę miał na pewno 4godziny programowania w Javie, więc i to zdążę załapać. Wiem, że 4 godziny tygodniowo to mało, więc już zacząłem grzebać w tym języku. Dodam, że być może pójdę na specjalizacje Programowanie Aplikacji Internetowych, gdzie będę miał do czynienia 12h/tyg z programowaniem w w/w językach.

Tak więc, chciałbym się dowiedzieć jaką drogę edukacji wybrać.

  1. Czy lepiej kuć PHP i Zend, Javę, a może Obiektowe C++?
  2. Jakich języków uczą na studiach (interesuje mnie SGGW) i w jakim stopniu je wykładają?
  3. Czy w czasie studiów uczniowie muszą wykonywać projekty? Jeżeli tak, to prosiłbym o podanie przykładu.
  4. Jeżeli już zdecyduje się na dany język programowania to jakie proste programy mogę pisać?
  5. Programistów jakich języków jest teraz niż na rynku? Czy łatwiej dostać pracę z C++ czy z Javą?
  6. Jeżeli się uda to w przyszłe wakacje będę chciał iść do jakiejś firmy jako praktykant - nawet za darmo. Uważacie, że to jest dobre wyjście aby zdobyć doświadczenie?

Wiem, jeżeli ktoś jest leniem i nie będzie nic robił poza szkołą, to nawet najwięksi geniusze nie wbiją mu nic do głowy.
Z góry dzięki za dyskusję.

0

Języki programowania które znam to HTML, CSS, Framework jQuery

To nie są języki programowania.

Java Scripts

A cóż to jest?

W czwartej klasie będę miał na pewno 4godziny programowania w Javie, więc i to zdążę załapać.

Java is to JavaScript as ham is to hamster.

0

Zapamiętam.

0
  1. Jakich języków uczą na studiach (interesuje mnie SGGW) i w jakim stopniu je wykładają?

I semestr: Wstęp do programowania w C# (za moich czasów w Pythonie), II semestr: Podstawy programowania strukturalnego w C oraz Algorytmy i struktury danych w C# (kiedyś Python),
III semestr: Programowanie obiektowe w C#, Architektura komputerów w Asmie x86, IV semestr: Wprowadzenie do teorii algorytmów w C#, Metody numeryczne w Matlabie, Inżynieria oprogramowania w C# i fakultety z Delphi oraz WWW (PHP)
Na piątym semestrze dwa fakultety z Javy i jeden obowiązkowy z C#.

Generalnie poziom jest bardzo niski i jeżeli nie umiesz programować to, 1. zdasz bez problemu, 2. dalej nie będziesz potrafić programować. Zaliczenie przedmiotu to z reguły małe prace domowe (których rozwiązanie polega na skopiowaniu kodu z forum roku i wklejenie do Moodle'a) i projekt (są na tyle podobne, a w przypadku np. programowania obiektowego wręcz identyczne, że to też kwestia skopiowania i zmiany nazw słów kluczowych albo zapłacenie stówki komuś bardziej ogarniętemu).
Nie patrz na uczelnię, ucz się sam. Inaczej się nie da, SGGW na pewno cię dodatkowo nie zmotywuje. Pomimo, że znam sporo osób z Informatyki na SGGW nie mogę powiedzieć by ta uczelnia dała cokolwiek, komukolwiek. Ci, którzy już pracują, zawdzięczają to tylko temu, że znaleźli sobie praktyki, na których siedzieli utopieni w książkach i podręcznikach, bo po raz pierwszy zderzyli się z prawdziwą informatyką (okazało się, że programista wcale nie rozwiązuje zawodowo całek).

Ciekawa sprawa z kolei była w przypadku mojej znajomej, która poszła na UKSW. Tam przez dwa lata klepali C i C++ z projektami do wykonania zamiast prac domowych i naprawdę mogę powiedzieć, że czegoś się nauczyła. Ale jak jest teraz to nie mam pojęcia.

3

Języki programowania które znam to HTML, CSS, Framework jQuery, PHP, C++, Python.

Jesteś pewien że je znasz ? Raczej tylko tak Ci się wydaje :)

0

Znawca, co masz na myśli mówiąc zna? Jeżeli chodzi Ci o trzaskanie złożonych programów, które wymagają x lat doświadczenia to oczywiście - nie znam. Teraz przez wakacje nie miałem styczności z C++, ale przez rok przerobiłem dość sporo (w szkole i w domu). Klasy nie były mi obce. Co do pythona to tylko zajrzałem w niego, doszedłem do klas i napisałem sobie kilka prostych gier. HTML - podstawowa budowa szablonu + walidacja kodu w3c nie jest mi obca. Tak samo w PHP potrafię już niemało napisać, aczkolwiek muszę się jeszcze bardzo dużo nauczyć. Gdybym wszystko umiał to nie pisałbym na forum w takiej sprawie.

Wiadomo, że bez nauki nawet na najlepszych studiach nic nie osiągniesz. Tak było zawsze i będzie.

0

Pisząc, że "znasz C++" deklarujesz "Znam C++ i jestem w stanie napisać w nim praktycznie wszystko w pierdyliard różnych sposobów", a nie "Znam C++ i jestem w stanie coś-tam sklepać"...

1

Tak więc te języki co wyżej napisałem znam tak, że "mogę coś tam sklepać".

2

Czyli nie znasz, znajomość oznacza... znajomość. Ogarniasz całą mechanikę języka, znasz rozkład biblioteki standardowej, znasz właściwe danemu językowi rozwiązania i potrafisz je stosować w praktyce. Jeśli coś więcej potrafisz napisać w C++ to pewnie umiesz wytłumaczyć, czym jest "sequence point" i dlaczego ma takie znaczenie lub chociaż umiesz unikać niejasnych sytuacji z nim związanych. Jeśli znasz w jakimś stopniu Pythona to potrafisz wytłumaczyć działanie tego kodu:

import Queue
 
def coroutine(n):
    a = yield lambda: n + 1
    b = yield lambda: a + 1
    print "{} + 1 = {}".format(n, a)
    print "{} + 2 = {}".format(n, b)
 
tasks = Queue.Queue()
tasks.put((None, coroutine(67).send))
 
while not tasks.empty():
    producer, consumer = tasks.get()
    try:
        result = producer and producer()
        action = consumer(result)
    except StopIteration:
        print "task completed."
    else:
        tasks.put((action, consumer))

Wszystkie użyte tutaj mechanizmy są spotykane w poważniejszych bibliotekach i frameworkach.

No to kluczowe elementy mechaniki PHP? Czym różni się indeksowanie tablic i stringów (gdzie stosuje się dany zestaw zasad) oraz w którym miejscu (w których miejscach?) konwersje zachodzące przy kluczach tablicy są niezgodne ze stosowanymi w reszcie języka?

Odpowiedzi na te pytania możesz zachować dla siebie, nie piszę tego żeby być wrednym, po prostu musisz sobie uświadomić, że jeszcze bardzo wiele musisz się nauczyć, tak naprawdę poznanie jest dopiero przed Tobą.

0

"Wszystkie użyte tutaj mechanizmy są spotykane w poważniejszych bibliotekach i frameworkach. " -
nie powiem Ci co ten kod robi, gdyż jak pisałem - doszedłem do obiektów, napisałem kilka prostych gier i to cała przygoda z pythonem.

Rozumiem. Człowiek uczy się całe życia, a i tak umiera głupim. Leniem też nie jestem.

A więc po takim przepięknym wprowadzeniu możecie zająć się odpowiadaniem na wyżej zadane pytania?

5
hRs123 napisał(a):

doszedłem do obiektów

Nie żebym się czepiał, ale w Pythonie absolutnie wszystko jest obiektem...

1

Ja jeszcze nie studiowałem i trochę mi jeszcze do studiów brakuje, ale mniej więcej wiem jak jest na studiach od dobrego znajomego, piszę z nim programy i pomagam w programowaniu, jeśli tego potrzebuje, więc na te pytania jestem w stanie odpowiedzieć ;).

  1. Czy lepiej kuć PHP i Zend, Javę, a może Obiektowe C++?

To zależy na czym Ci zależy, nikt tego nie wymyśli. No i na pewno nie kuć ;). Jeśli interesuje Cię praca w jakieś firmie webowej to znacznie lepiej zainwestować czas w C# niż C++. Jeśli wolisz jednak gamedev to raczej wybór pada na C++ (tak ogólnie to w jakim sensie "Obiektowe C++"?)

  1. Jakich języków uczą na studiach (interesuje mnie SGGW) i w jakim stopniu je wykładają?

To zależy od uczelni, chociażby na PK we wstępie do programowania uczą C, później jest ponoć Java, C++ itd. Wszystkiego po trochu, ale prawda jest taka, że wszystkiego to musisz nauczyć się sam. Stopień wykładania możesz ocenić sam, bo część uczelni z tego co wiem udostępnia wykłady przez Internet.

  1. Czy w czasie studiów uczniowie muszą wykonywać projekty? Jeżeli tak, to prosiłbym o podanie przykładu.

Ogólnie to też zależy od uczelni. Są takie, w których wykonać trzeba jakieś proste zadanie, w innych trochę większe projekty. Przykładów nie podam, bo znam tylko te co poprawiałem, więc były to tam jakieś algorytmy np. na silnię, czy jakieś proste "gierki".

  1. Programistów jakich języków jest teraz niż na rynku? Czy łatwiej dostać pracę z C++ czy z Javą?

Jest więcej, czy co jest teraz niż na rynku? Odpowiem na drugą część, to czy łatwiej zależy od umiejętności, ofert na pracuj.pl czy innych takich stronach jest więcej na Javę i C#, czy łatwiej dostać to kwestia danej osoby. Jedna pójdzie na pierwszą rekrutację i dostanie pracę w C#, a następna będzie pół roku chodziła od "okna do okna".

  1. Jeżeli się uda to w przyszłe wakacje będę chciał iść do jakiejś firmy jako praktykant - nawet za darmo. Uważacie, że to jest dobre wyjście aby zdobyć doświadczenie?

Praktyki są chyba zawsze dobrym wyjściem i są mile widziane przez pracodawców.

Edit: A że niż na rynku? To na to pytanie nie odpowiem, bo w tym środowisku nie przebywam ;). Ale na to nie ma co patrzyć, za kilka lat będzie niż innych niż w tej chwili. A ogólnie jak widać nie jest łatwo dobrze odpowiedzieć na te pytania, wszystko zależy od konkretnych zainteresowań i uczelni.

0

Rozumiem, ale właśnie o takie odpowiedzi mi chodziło.

Wiele firm poszukuje teraz programisty PHP + Zend/Symfony framework i chyba tą drogą chciałbym iść. Uważasz, że to dobra opcja?
Jak oceniacie Pythona + Django framework?

0

@hRs123 sporo jest ogłoszeń dla phpowców, ale większość z nich to jest praca za miskę ryżu, więc się zastanów.
Z Pythonem i Django jest podobnie jak z PHP, tzn niewiele się w tym pisze aplikacji biznesowych, a tam zwykle jest większa kasa.

0

A jaki język programowania może zapewnić godne wynagrodzenie?
I co w takim języku będzie się programować?

3
hRs123 napisał(a):

A jaki język programowania może zapewnić godne wynagrodzenie?

Każdy używany gdziekolwiek. Jeśli jesteś dobry, to otrzymujesz dobre wynagrodzenie.

0
Shalom napisał(a):

@hRs123 sporo jest ogłoszeń dla phpowców, ale większość z nich to jest praca za miskę ryżu, więc się zastanów.
Z Pythonem i Django jest podobnie jak z PHP, tzn niewiele się w tym pisze aplikacji biznesowych, a tam zwykle jest większa kasa.

Dla pythonowców rynek też wyląda tak źle?

0

Dla Pythonowców wygląda średnio bo jest bardzo mało ofert ;]

0

No właśnie jakoś takie "obiegowe" opinie mówią raczej, że pracy, aż tak bardzo mało nie jest, za to programistów pythona jest niewielu dzięki czemu pensje nie są takie małe (aczkolwiek chyba nigdy nie usłyszałem konkretnej kwoty:)). Ale to może tylko takie pogłoski jakich wiele:)

0

Najwięcej znajduje się ofert pracy przy Pythonie i Django... Dużo innych rzeczy można w Pythonie robić, ale taki jest biznes, że głównie serwisy w nim klepią :/ Dlatego też jak się chce w Python'ie robić coś ciekawszego, to najlepiej w ramach własnej działalności ;)

0

A moglibyście polecić mi jakąś dokumentację bądź książkę? Wolałbym oczywiście książkę po polsku.

1

http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie - darmowa, polska książka

http://docs.python.org/- oficjalna dokumentacja

http://www.python.rk.edu.pl/ - różne polskie kursy/tutoriale

http://www.linuxpl.org/teksty/python/intro.html - do starego python'a, ale niezłe :)

0

Ok, super! Dzięki wielkie :)

0

Obie oficjalne. Oczywiście po angielsku.

0

Na udacity.com kurs cs101, ucza pythona od podstaw na przykladzie tworzenia prostego web clawrera, jest tez wiecej kursow o pythonie tam

http://learnpythonthehardway.org/book/ calkime fajna ksiazka nastawiona na wyjasnienie podstaw

1 użytkowników online, w tym zalogowanych: 0, gości: 1