Programowanie - od czego zacząć ?

fobos

Nowicjusz
Dołączył
29 Marzec 2011
Posty
3
Punkty reakcji
0
Witam, chciałbym się nauczyć programować(w dowolnym języku) i pytanie brzmi; Od czego zacząć?






peace out
 

ponury_murzyn

Przyjaźnie nastawiony do świata 22-latek ;)
Dołączył
10 Lipiec 2005
Posty
4 235
Punkty reakcji
53
Wiek
34
Miasto
Wrocław
od odpowiedzenia sobie na pytanie co chcesz robić?
1. chcesz robić programy użytkowe pod windowsa? w tym przypadku nie widzę powodów, żeby uczyć się jakiegokolwiek innego (niższego poziomu) języka poza C# i nauką ogólną platformy .net
2. zależy ci na mobilności? tu znowu .net ale również platforma Java, która mimo tego, że za nią nie przepadam jednak na komórkach i urządzeniach przenośnych wciąż jest bardzo popularna
3. programowanie urządzeń? chcesz robić sterowniki? assembler i w najlepszych wiatrach ansi-C
4. aplikacje webowe? ASP.NET, PHP, Django, Ruby on Rails + html+css oraz html5/flash/silverlight

jak zacząć się uczyć czegokolwiek? Postaraj się znaleźć pierwszy tutorial "Hello World" i jedziesz. no i przede wszystkim - opanuj podejście obiektowe.
 

kaszan88

Nowicjusz
Dołączył
23 Czerwiec 2008
Posty
338
Punkty reakcji
15
Wiek
35
Miasto
Zielona Góra
W szkołach uczą programowania od Pascala. Na studiach jeden z doktorów powiedział że brakuje mu na pierwszym semestrze nauki Pascala. (bo potem programujemy jak małpy :p) Ja zaczynałem od C i Pascala. Tak jak już wcześniej było napisane. Zależy czy to mają być języki strukturalne czy obiektowe.
Polecam zacząć od C potem przejść do C++ (który jest i strukturalny i obiektowy) no i na końcu przejść do obiektowych języków w których niewiele trzeba umieć jak Java i C# ;)
 

HrabiaVulpes

Nowicjusz
Dołączył
3 Kwiecień 2011
Posty
27
Punkty reakcji
2
Wiek
31
Miasto
Kraków
Ja osobiście popieram C lub Pascal do nauki i C++ do większych projektów. Ogólnie bardzo dobre są języki z rodziny C.

jak już wyliczył ci ponury_murzyn, wszystko zależy od tego, co właściwie chcesz programować.

@L:) większość programów pisze się pod Windows, co oznacza, że mają one działać w tym systemie. Wiele programów tak się pisze, gdyż Windows jest najpopularniejszym systemem.
 

kaszan88

Nowicjusz
Dołączył
23 Czerwiec 2008
Posty
338
Punkty reakcji
15
Wiek
35
Miasto
Zielona Góra
Windows nie jest najpopularniejszy!! :eek:h: Zależy jak do tego podchodzimy ;) Jak chodzi nam o komputery osobiste to może tak.. Ale masa urządzeń przenośnych, pomiarowych, dekodery, ogólnie systemy wbudowane(system komputerowy specjalnego przeznaczenia) opierają się na linuxie. To wszystko też trzeba oprogramować.

W temacie nie ma nic o tym czy to ma być programowanie komputerów osobistych czy wyspecjalizowanych urządzeń. Także windows wcale nie jest najpopularniejszy.
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
@L:) większość programów pisze się pod Windows, co oznacza, że mają one działać w tym systemie. Wiele programów tak się pisze, gdyż Windows jest najpopularniejszym systemem.
Nie rozumiesz. W świecie chmur, przenośnych programów, jeżeli nie ma takiej potrzeby, to głupotą jest pisać programy zintegrowane tylko z jedną platformą. Inna sprawa są np. gry - ale to temat rzeka.
Nie wiem co rozumiesz przez najpopularniejszy, ale pod względem serwerów wypada blado - tutaj rządza unixy i unixopodobne systemy. Programista powinien patrzyć na aspekt całej integracji, a nie z czego nie mający pojęcia o temacie użytkownik będzie korzystał.

I wrócę do tego co napisałem wyżej - przede wszystkim algorytmy. Normalną rzeczą powinno być projektowanie oprogramownia w oderwaniu od komputera (np. na kartce) i dobrze ten nawyk sobie wypracowywać. Komputer to tylko narzędzie, do implementacji, testowania i wspomagania.
 

HrabiaVulpes

Nowicjusz
Dołączył
3 Kwiecień 2011
Posty
27
Punkty reakcji
2
Wiek
31
Miasto
Kraków
@L:) nie mówiłem o serwerach, tutaj oddać muszę ci rację - rządzą unixy. Trzeba też jednak przyznać, że początkujący użytkownicy komputerów osobistych wybierają Windows. Co do chmury zauważ, że ma ona jedną ważną słabość - bez internetu nie masz dostępu do danych. Gdybyśmy pisali jedynie aplikacje do chmury (do czego niebezpiecznie się zbliżamy), można by nas zwyciężyć odłączając internet. Może w zachodnich państwach byłoby to trudne, ale już w Polsce jest wiele miejsc, gdzie sieć nie sięga a telefonie komórkowe mają zbyt słaby sygnał.

@kaszan88 założyłem, że fobos chce zacząć od jakichś małych aplikacji na PC, jeśli jednak spojrzeć szerzej, to przecież nawet w pralce jest mały program, który nią steruje. Jeśli patrzeć na całą elektronikę, to komputery są w mniejszości względem innych urządzeń. W dzisiejszym świecie na każdym kroku znajdziesz urządzenia wymagające zaprogramowania.

Co zaś się tyczy algorytmów, jest to bardzo dobre rozwiązanie. Algorytm to praktycznie gotowy program, by działał wystarczy go zaimplementować w dowolnym języku.
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Trzeba też jednak przyznać, że początkujący użytkownicy komputerów osobistych wybierają Windows
To jest ich problem, nie programistów, o dziwo Ci drudzy czasami wspierają M$, co uważam za nieco chore.

Co do chmury zauważ, że ma ona jedną ważną słabość - bez internetu nie masz dostępu do danych.
Mówi się trudno. Dziś internet to standard, a nikt dla paru jednostek, które pewno nawet dużo zapłacić za to nie będą chciały nie będzie się uczył tego.
Dzisiaj mamy relacyjne bazy danych - jutro może być już NoSQL (bo dają niesamowite możliwości), kto zostanie w tyle, może tylko stracić.

Gdybyśmy pisali jedynie aplikacje do chmury (do czego niebezpiecznie się zbliżamy), można by nas zwyciężyć odłączając internet.
Dobra, a w obrębie firmy ? Też bez sensu stawiać coś na wszystkie kompy, skoro wystarczy na jeden (czy kilka połączonych) odpowiednio skonfigurowany(ch).

Może w zachodnich państwach byłoby to trudne, ale już w Polsce jest wiele miejsc, gdzie sieć nie sięga a telefonie komórkowe mają zbyt słaby sygnał.
To jest biznes. Dla idei mogę robić oprogramowanie open source i martwić się o nie - włożyć serce, mieć konkakt z ludźmi, prowadzić grupę dyskusyjną i pomagać ludziom. Czy w tym nie jest siła np. Linuxa i jego oprogramowania? System za darmo, dobre wsparcie od ludzi, oraz sporo fajnego oprogramowania (zazwyczaj również za darmo), brak problemów bezpieczeństwa, itd, ale ludzie nie chcą odrobiny wysiłku poświęcić by się nauczyc go, by poszperać w googlach. Skoro są tacy głupi i leniwi, niech dają sie oszukiwać marketingowi M$. Najbardziej to już żygam tymi, co mają nielegalnego Windowsa czy inne oprogramowanie - sam bym ich zamknął. A na linuxa za leniwy ? To płać na Maca ;] (sam sobie kiedyś kupię, parę problemów mniej będzie).

Tutaj liczy się kasa. Wybacz, sam jestem idealistą, ale tutaj nie ma zmiłuj - albo jest się konsekwentnym, albo można mieć przez to kłopoty. Pipidówek nie będzie miał dostępu do neta ? Mówi się trudno, wystarczy że Kraków ma, on nam daje zyski, a koszty podłączenia Pipidówka nie byłyby na dzień dzisiejszy opłacalne, prosta filozofia.
 

ponury_murzyn

Przyjaźnie nastawiony do świata 22-latek ;)
Dołączył
10 Lipiec 2005
Posty
4 235
Punkty reakcji
53
Wiek
34
Miasto
Wrocław
L:) mam gdzieś twój sarkazm na temat technologii MS'a - co do serwerów prawda jest taka, że Microsoft nigdy nie uderzał w tę sferę, a teraz zaczął, bo sam wierzyć, że chmura to przyszłość. efekt? http://serwery.rx7.com.pl/index.php/serwery/windows-przoduje-na-rynku-serwerow/

Sam nie namawiam do tego, żeby nie uczyć się innych technologii, bo osobiście potrafię pisać w Java, C, C++, a jakby trzeba było to w PHP z pomocą googli też bym napisał złożoną aplikację. Co do rozpoczęcia algorytmiki jako startu? tak na poziomie podstawowym oczywiście trzeba potrafić wymyślać algorytmy - ale opracowywanie bardzo złożonych algorytmów to praca matematyków, a nie programistów (nie wiem czy pracujesz w tej branży, ale ja wiem po prostu, że duże korporacje wolą zatrudnić matematyka do wymyślania algorytmu niż kazać to robić programiście, który robi to często byle jak bo go terminy gonią).

Sam pracuję wykorzystując technologie MS'a i jestem z tego bardzo zadowolony. Nardzędzia do pracy są bardzo wygodne i łatwo znaleźć dużo informacji na ich temat, więc proszę Cię nie próbuj mi wmówić, że pisanie w technologiach MS'u jest takie "fe" - jest bardzo dobre, po prostu służy do zarabiania pieniędzy, a nie pisania dla siebie czy w czynie społecznym.
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Ale taka prawda, M$ to syf, firma która zbiła kasę i zrobiła sobie monopol za pomocą świetnego marketingu, nie produktów. Mam ten komfort, że mogę sobie dobierać programy pod własne potrzeby, czego niestety nie obeznani w temacie nie mają i nie bardzo widzę połączenie Programowanie+Windows. Linux jest pod tym względem dobry, że jest rozszerzalny, można skonfigurować pod siebie. A co jeśli potrzebujemy stabilnego środowiska pracy? Mamy MacOS X. Te dwa systemy mają największy potencjał, dalej bym się zastanowił nad FreeBSD, ale to już akurat inna bajka.

PHP? To relikt, przy takim Ruby czy Pythonie to śmieszny żart (najkrótszy żart informatyczny? Programista PHP ^^). C ? Dobra, niskopoziomowe, ale jak kogoś to rajcuje to wcale go nie trzeba przekonywać. C++ ciągle się świetnie trzyma, bo jest szybki i jak na razie nie widać zastępcy (mówiło się o D, ale jak widać nijak idzie on do przodu). Do Javy mam sentyment (serio, jak piję kawę to często kojarzy mi się z tym językiem i platformą ;p), ale dzisiaj pisząc coś nowego zdecydowanie bym wybrał Scale (super język, zamierzam go się nauczyć dobrze, bo ma cholerny potencjał, choć pewnie nie ma co liczyć na pracę w nim w najbliższym czasie, a na pewno już nie w Polsce - to dla pasjonatów ;D).
W społeczeństwie informacyjnym ponad techniczne sprawy powinno się kłaść spełnienie wymagań, stąd z rozwagą podchodziłbym do przytoczonych przez Ciebie języków.

Nie miałem na myśli tworzenie zaraz jakiś skomplikowanych alogorytmów - tutaj oczywiste jest, że matematyk się do tego nadaje, bo musi zbadać poprawność, zoptymalizować, a programiście zazwyczaj zwisają takie rzeczy (czyt. nie ma na to czasu). Mam tutaj na myśli jednak co innego - algorytmika wyrabia specyficzny tok myślenia. Co więcej, uważam że albo ktoś ma predyspozycje do myślenia algorytmicznego (podobnie matematycznego), albo ich nie ma, ale i tu i tu można (i powinno!) się je rozwijać, w pierwszym wypadku daje szerokie pole manewru, w drugim pozwala spokojnie wykonywać swoją pracę. Nie chodzi o to, by znać jakieś przekichane algorytmy - chodzi o to, by czytając je rozumieć i podobnymi schematami tworzyć swoje. Myślisz że ja pamiętam algorytmy sortowania, ich kod ? Nie, absolutnie. Ja je zrozumiałem i jak widziałem, że spokojnie potrafię przetworzyć odpowiednie schematy i wyobrazić sobie (wyobraźnia tutaj jest ogromnie ważna!) to szedłem dalej, a nie uczyłem się ich na pamięć. Nie rozumiałem czegoś - zakładka i wracałem potem. Jeżeli potrzebuję użyć sortowania, to zazwyczaj wystarczy mi wiedzieć w jakiej bibliotece się znajduje, i ewent. jakie są dostępne.

Widzisz, na przykładzie, inaczej jest, jeśli zrozumiem tam przez wstawianie, quicksort, przez kopcowanie, bąbelkowe, scalanie, zliczanie, kubełkowe czy pozycjne (coś mogłem pominąć, ale to nie jest ważne), szybko sobie potrafię wyobrazić jak działa, jak się zachowuje dla konkretnych danych wejściowych (dużych, małych) i wybrać odpowiedni, a inaczej jeżeli na ślepo pamiętam gdzie jest procedura sort() i jak ją użyć. Nie bardzo sobie wyobrażam kogoś, kto pisze programy zawodowo nie rozumiejąc takich pojęć jak rekurencja czy złożoność obliczeniowa, no chyba że klepacz PHP czy .NET ;]


Ale z jednym się z Tobą w 100% zgodzę - .NET to narzędzie do zarabiania pieniędzy. I zarabiaj ich jak najwięcej, czego Ci szczerze życzę. Klient niech płaci za niewiedzę, taki jest ten świat, ma problem ? płaci za jego rozwiązanie.
Ale widzisz, ja po za pieniądzem widzę inne cele rozwoju oprogramowania i dlatego tak ostro odnoszę się w stosunku do M$ (zamykanie kodu źródłowego to argument numer 1 - skoro płacisz za produkt, to dostajesz go działającego razem z kodem, z produktami M$ to tak jakby kupować samochód tylko dla kręcenia kierownicą, bez możliwości tunningu. Kod powinien być otwarty, a nie zaraz darmowy jak często ludzie odbierają tą idee).
 

HrabiaVulpes

Nowicjusz
Dołączył
3 Kwiecień 2011
Posty
27
Punkty reakcji
2
Wiek
31
Miasto
Kraków
PHP? To relikt, przy takim Ruby czy Pythonie to śmieszny żart (najkrótszy żart informatyczny? Programista PHP ^^). C ? Dobra, niskopoziomowe, ale jak kogoś to rajcuje to wcale go nie trzeba przekonywać. C++ ciągle się świetnie trzyma, bo jest szybki i jak na razie nie widać zastępcy (mówiło się o D, ale jak widać nijak idzie on do przodu). Do Javy mam sentyment (serio, jak piję kawę to często kojarzy mi się z tym językiem i platformą ;p), ale dzisiaj pisząc coś nowego zdecydowanie bym wybrał Scale (super język, zamierzam go się nauczyć dobrze, bo ma cholerny potencjał, choć pewnie nie ma co liczyć na pracę w nim w najbliższym czasie, a na pewno już nie w Polsce - to dla pasjonatów ;D).
W społeczeństwie informacyjnym ponad techniczne sprawy powinno się kłaść spełnienie wymagań, stąd z rozwagą podchodziłbym do przytoczonych przez Ciebie języków.

Wymienione przez ciebie języki znam, szczególnie lubię Pythona. Wciąż jednak nie popieram twojej idealizacji chmury. Co do Microsoftu, mogę ci przyznać częściową rację. Chcę jednak zauważyć, że ich zasadniczą siłą nie jest wcale marketing. Microsoft jako pierwszy dostarczył prosty system dla laików, którzy nie zamierzają się zastanawiaj jak co działa i dzięki temu nabił tyle kasy. Tak samo jest z Google - jako pierwsze dostarczyło prostą, intuicyjną i dobrze działającą wyszukiwarkę, a następnie wykorzystało ją jako własną przestrzeń na reklamy.

Chciałbym też zauważyć, że gdy wspomniałem o tym, iż chmura nie działa tam, gdzie brak internetu, usłyszałem od ciebie logiczną pochwałę tego, że wszystko musi być opłacalne. Jak to się ma do Microsoftu? Przecież nieopłacalne byłoby dla nich udostępnienie kodu Windowsa - użytkownicy zaczęliby robić jego nowe, lepsze wersje i rozprowadzaliby je za darmo.

Wracając do języków programowania zauważ, że PHP jest popularny i jego interpreter można znaleźć na każdym serwerze. Tej "wszechobecności" brak u Pythona i wielu innych języków.
Mówisz tak, jakby niskopoziomowe języki były złe. Tymczasem często im niższy poziom języka, tym szybciej wykonuje się napisany w nim kod. Dziś ludziom jak nigdy zależy na czasie (taka niecierpliwa rasa ludzka).
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Wymienione przez ciebie języki znam, szczególnie lubię Pythona. Wciąż jednak nie popieram twojej idealizacji chmury.
To nie jest idealizacja. To tylko odpowiedź na temat popytu na rynku oraz trendów w IT.

Chcę jednak zauważyć, że ich zasadniczą siłą nie jest wcale marketing. Microsoft jako pierwszy dostarczył prosty system dla laików, którzy nie zamierzają się zastanawiaj jak co działa i dzięki temu nabił tyle kasy.
A Apple ?
To pytanie, bo z nie wiem jak wyglądały ich systemy przed 2000r, choć słyszałem dobre opinie o FUNKCJONALNOŚCI (nie wiem jak ma się to do obsługi)

Chciałbym też zauważyć, że gdy wspomniałem o tym, iż chmura nie działa tam, gdzie brak internetu, usłyszałem od ciebie logiczną pochwałę tego, że wszystko musi być opłacalne. Jak to się ma do Microsoftu? Przecież nieopłacalne byłoby dla nich udostępnienie kodu Windowsa - użytkownicy zaczęliby robić jego nowe, lepsze wersje i rozprowadzaliby je za darmo.
Przecież mają patent na system chyba ? ;]
Po za tym licencja - kod tylko do użytku osobistego, bez możliwości zmiany i rozpowszechniania, kupujesz system to wyrażasz na nią zgodę. Z tego co się orientuję na alogorytmy również są patenty. Na pewno by wbrew prawu powstawały systemy - ale pokazywałyby one niedoskonałości systemu, po za tym fajni systemu by również przy nim pracowali, firma by tylko na tym skorzystała. Oczywiście jest to absolutnie niemożliwe, bo cały marketing firmy by padł - dzisiaj ludzie się włamią, narobią szkody, pójdzie w świat opinia że jest tam parę "niegroźnych niedociągnięć" i ludzie wierzą - a na hakerów instalują antywirusy i firewalle. Wyobraź sobie, że nagle kod jest otwarty, nagle odkryte zostaje dziesiątki, setki błędów, zostają one owszem i naprawiane, ale jak brzmi w reklamie - "Dziurawy system, źle oceniany przez "eksperów" i jeszcze drogi na dodatek!".,,

Wracając do języków programowania zauważ, że PHP jest popularny i jego interpreter można znaleźć na każdym serwerze. Tej "wszechobecności" brak u Pythona i wielu innych języków.
PHP w zamyśle powstał do pisania lekkich skryptów po stronie serwera, nie do budowania aplikacji internetowych. Jest, bo w PHP gimnazjalista może nawet klepać kod. Ale to nie jest wyznacznik, i dla Pythona i dla Rubyego spokojnie hosting znajdziesz.

Mówisz tak, jakby niskopoziomowe języki były złe. Tymczasem często im niższy poziom języka, tym szybciej wykonuje się napisany w nim kod. Dziś ludziom jak nigdy zależy na czasie (taka niecierpliwa rasa ludzka).
Oczywiście masz rację, a ja tak wcale nie mówię - czasami lepiej kodować C niż w Asemblerze (kwestia gustów^^). Dlatego wypada się zastanowić, co chce się robić. Kasa jest z biznesu, z aplikacji dla ludzi, tutaj trzeba działający produkt dostarczyć możliwie jak najszybciej, byle działał odpowiednio - pisząc to w C byłby koszmar.
Ale jeżeli potrzebujesz funkcjonalność X, to zamiast projektować na dosyć niskim poziomie kod, lepiej napisać test dla X, potem kod, zrefaktorować i dostarczyć. Za wolny ? W porządku, dopiero wtedy optymalizujemy. Weź pod uwagę, że teraz większość poważnie obliczeniowych programów lepiej wykonać na wyspecjalizowanych do tego serwerach i dostarczyć wynik do przeglądarki - bo tak na prawdę o wynik chodzi w tym wypadku.
 

Gressil

®
Administrator
Dołączył
17 Kwiecień 2009
Posty
6 075
Punkty reakcji
561
Krótkie przypomnienie: autor tematu pyta o to od czego warto zacząć przygodę z programowanie a nie o to czy technologia MS jest godna uwagi z punktu widzenia programisty.
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Krótkie przypomnienie: autor tematu pyta o to od czego warto zacząć przygodę z programowanie a nie o to czy technologia MS jest godna uwagi z punktu widzenia programisty.
Wbrew (Twoim) pozorom dyskusja jest na temat, bo taki wybór pozwala użytkownikowi wybrać ścieżkę w stronę technologii mu pasujących. Ja neguję sens brania produktów M$, oraz starszych technologii na rzecz nowszych, inni wypowiadają swoje zdanie na ten temat.
 

Gressil

®
Administrator
Dołączył
17 Kwiecień 2009
Posty
6 075
Punkty reakcji
561
L8:) wiem i rozumiem. Nie napisałem, że jest nie na temat. Po prostu był kiedyś podobny temat i skończył się offtopem. Stąd mój poprzedni post. Wolę zapobiegać niż leczyć ;)
 

ponury_murzyn

Przyjaźnie nastawiony do świata 22-latek ;)
Dołączył
10 Lipiec 2005
Posty
4 235
Punkty reakcji
53
Wiek
34
Miasto
Wrocław
L8:) wiem i rozumiem. Nie napisałem, że jest nie na temat. Po prostu był kiedyś podobny temat i skończył się offtopem. Stąd mój poprzedni post. Wolę zapobiegać niż leczyć ;)

tamten temat wyciąłeś z innego i treraz temat c# vs Java wygląda żałośnie gdy nie ma całej dyskusji.

L:) dużo mądrych rzeczy napisaleś w ostatnim poście kierowanym do mnie, jednak źle pewne rzeczy ubierasz w słowa stąd problem w komunikacji między nami. whateva.
Z mojej strony podsumowanie: tak dla mnie oprogramowanie to chleb, cukier, paliwo, rachunki za mieszkanie czy wyjście do kina z dziewczyną, a nie tylko pasja. Potrzebuję pieniędzy i dlatego trzymam się MS'a, bo on jak najbardziej je zapewnia.

Co do php i tworzenia wielkich aplikacji - taki kombajn jak facebook stoi na PHPie - i jakoś nie czułem, żeby zawodził, a wchodzę średnio co dwie godziny. Aczkolwiek też uważam, że PHP umiera i powinno umrzeć.
 

Gressil

®
Administrator
Dołączył
17 Kwiecień 2009
Posty
6 075
Punkty reakcji
561
tamten temat wyciąłeś z innego i treraz temat c# vs Java wygląda żałośnie gdy nie ma całej dyskusji.

Mogłem wyrzucić wszystkie posty nie na temat i dać wam ostrzeżenia.
 
Do góry