logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Którego języka programowania nauczę się najszybciej ?

04 Lut 2010 20:12 7144 32
  • #1 7643941
    Konto nie istnieje
    Konto nie istnieje  
  • #2 7644582
    leon1313
    Poziom 15  
    BASCOM (QBASIC) chyba najprostszy . Płatny.
    C z bibliotekami AVR - coś dla smakoszy...
    Assembler- tylko dla orłów znających temat.

    IMO nie ma co biadolić tylko zabrać się za programowanie. Reszta wyjdzie w praniu.
  • #3 7644657
    grysek
    Poziom 19  
    Assembler raczej odpada, bo żeby go opanować to miesiąc raczej nie wystarczy. Żeby sie szybko nauczyć to chyba Bascom najlepszy
  • #4 7644674
    Dr.Vee
    VIP Zasłużony dla elektroda
    Może drabinkowy? http://cq.cx/ladder.pl
    Inne pomysły takie jak Bascom, C czy Asembler na pewno poddadzą Ci inni użytkownicy.

    Pozdrawiam,
    Dr.Vee
  • #5 7644684
    m.bartczak
    Poziom 16  
    Ale jeżeli nigdy z programowaniem nie miałeś do czynienia, to C też może być sensowne... C przy okazji czytelniejsze (moim zdaniem).
  • #6 7644805
    polimorf
    Poziom 13  
    Jest tylko jedna sensowna opcja - C.
  • #7 7644924
    M. S.
    Poziom 34  
    Wszystko zależy z czym się zetknąłeś. Jeśli kiedyś pisałeś na ZX Spectrum lub podobnym i tak zakończyłeś, to najszybciej będzie w Bascomie. Jak liznąłeś C to w C.
    Jak nic nie robiłeś to:
    Bascom w 3 tygodnie
    C w 3 miesiące
    Asm w 3 lata (lub 33 lata dla opornych :D )

    Ja, mając pojęcie o Basicu na Atari (z przed kilkudziesięciu lat), łyknąłem Bascoma w 3 dni i tak mi zostało, pomimo że pisałem też ze 100% skutkiem w C (kiedy okazało się,że program w Bascomie był o kilka bajtów za duży), a nawet w asm dla tinki 15, której inaczej ruszyć nie szło. Na moje potrzeby program w Bascomie napiszę najszybciej (z uruchomieniem oczywiście), a po latach mogę do niego wrócić i szybko sobie wszystko przypomnieć.

    Każdy ma swoje wady i zalety. Im więcej wad dla człowieka, tym mniej wad dla uC i odwrotnie. Wybór należy do ciebie.
  • #8 7645282
    Konto nie istnieje
    Konto nie istnieje  
  • #9 7647638
    Dr.Vee
    VIP Zasłużony dla elektroda
    LDmicro generuje kod wyjściowy (binarny) na dany procesor, ale jaka jest jakość kodu to nie wiem. Być może ma wbudowany interpreter sterowany tablicami i generuje tablice, a być może generuje kod bezpośrednio. Trzeba by to sprawdzić :)

    Możesz też wygenerować program w C, który sobie skompilujesz samemu.

    Pozdrawiam,
    Dr.Vee
  • #10 7648034
    m.bartczak
    Poziom 16  
    Jeśli chodzi o LDMicro na AVR - to nawet sam autor twierdzi że kod jest 'daleki od optymalnego'...
  • #11 7648402
    Logan
    Poziom 30  
    Jak jesteś kumaty i masz dobrą książkę to Bascoma możesz nauczyć się chyba w tydzień..
  • #12 7649017
    alarmowanie
    Poziom 10  
    Ja także polecam bascoma jeżeli chodzi o czas nauki lecz pod względem przydatności polecam C :)
  • #13 7649608
    janbernat
    Poziom 38  
    "Elektronikę i automatykę znam 35lat a programowanie odkładałem na zaś..."
    Prawda.
    " Bascoma możesz nauczyć się chyba w tydzień.."
    Tyż prawda.
    A nauczyć się programowania- w dowolnym języku- to do końca życia.
    I też za krótko.
  • #14 7651379
    kordirko
    Poziom 22  
    janbernat napisał:

    A nauczyć się programowania- w dowolnym języku- to do końca życia.
    I też za krótko.

    E tam, jak się posiedzi nad tym dzień w dzień po 16 godzin (włączając soboty niedziele i święta),
    to zaczynając z zerową wiedzą jest realna szansa zrobienia takiego projektu w miesiąc.
    Potem wziąć 2 tygodnie wolnego na odespanie.
    A jak się ma przypadkowo żonę/rodzinę, to wycenić ciut wyżej ten projekt
    żeby mieć na ewentualne koszty rozwodu i adowkata.
  • #15 7701022
    leon1313
    Poziom 15  
    Nie ma co się zrażać do uC, kup (pożycz) książkę M.Wiazania o programowaniu AVR w Bascom i powoli cos napiszesz. A my pomożemy w razie problemów. Masz już jakiś zestaw startowy, czy planujesz sam zrobić od początku?
  • #16 8376347
    Konto nie istnieje
    Konto nie istnieje  
  • #17 8393109
    pawewlS_21
    Poziom 10  
    Najlepiej nauczyć się języka C bo później można wykorzystywać w innych dziedzinach programowania nie tylko uP.Asembler raczej niepraktyczny w dzisiejszych czasach, kiedy pamięci są stosunkowo duże za małe pieniądze dlatego też jak kompilator C dorzuci trochę kodu nadmiarowego to nic się nie stanie.
  • #18 8393138
    bartek_korzeniak
    Poziom 14  
    Co do wiekszosci wypowiedzi powiem: TRUE

    Dodam tylko tyle
    Jesli ma to byc jedyny lub jeden z niewielu projektow ktore wykonasz BASCOM wystarczy

    Jesli zamierzasz sie tym jeszcze w przyszlosci zajmowac postaw na jezyk nizszego poziomu (C). Troszke wiecej sie pomeczysz a otrzymujesz w zaiman potezniejsze narzedzie (powiedzmy szczerze ze miedzy BC a C jest krok milowy jesli chodzi o wydajnosc kodu oraz jego objetosc)

    Jesli jestes hardkorem co ASM
  • #19 8393162
    McMonster
    Poziom 32  
    Niekoniecznie "hardkorem", jak dzisiaj sobie złożyłem i napisałem dla zabawy prosty termometr elektroniczny na ATmega48, multipleksowanych wyświetlaczach 7-segmentowych i czujniku LM35 (timery, ADC, przerwania), spojrzałem w kod, to z "wysokopoziomowych" rzeczy miałem trzy zmienne modyfikowane w sumie w czterech miejscach, kilka #define, jedną instrukcję switch i... to tyle. Prawie cały kod to tylko operacje na rejestrach w main() i dwóch blokach obsługi przerwań i się zastanawiam, czy nie wykorzystać tego jako okazji do nauczenia się asemblera AVR i po prostu przepisać.

    Fakt, że ja akurat pisałem trochę w asemblerze kiedyś, a dla ludzi bez wcześniejszego kontaktu z nim przejście z języków wysokopoziomowych przestawienie się może być bolesne, co w większości przypadków nie jest warte zachodu, ale za to jaka frajda z pełnej kontroli nad scalakiem. :)
  • #20 8393427
    koodpl
    Poziom 12  
    C ma jeszcze jedną dużą przewagę nad innymi językami - prawie na każdy mikrokontroler masz kompilator. Jeżeli pewnego dnia AVR nie będzie wystarczać to bez problemu, zachowując większość wiedzy możesz zacząć szybko pisać na AVR32, ARM, MSP430 czy cokolwiek innego. Więc dużo zależy od tego jakie masz perspektywy. Jeżeli to pojedynczy projekt to BASCOM starczy, jeżeli planujesz mieć więc kontaktu z mikrokontrolerami to wybierz C.
  • #21 8393626
    aut18
    Poziom 12  
    Jeżeli masz tyle doświadczeń i PLC w zanadrzu, to BASCOM u Ciebie to 1 dzień, korzystając z przykładów.
    Gdy coś więcej robiłeś na ZX81 to ASM jest podobny, można go opanować i polubić!
    Od początku edukacji zamierzam biegle używać C, ale do dziś to temat na jutro. Zawsze stwierdzam, że w ASM zrobię to szybciej, niż nauka C, i jakoś to schodzi.
    Teraz od 3 miesięcy zgłębiam PSoC/Cypress i też w ich ASM, mimo, że procek jest zbyt uniwersalny; to co w AVR jest domyślne, to tam sobie trzeba zażyczyć!
    Tu by się przydał C (postanowienia jak z odchudzaniem i nałogami - od jutra).
    Pozdrawiam
    Krzysztof
  • #22 8393776
    Electix
    Poziom 21  
    Pozwolicie Panowie że i ja dodam coś od siebie. :)
    Z programowaniem miałem już styczność w podstawówce i tam pisaliśmy w LOGO na komputerkach ELWRO :P
    W technikum i na początku studiów uczyłem się PASCALA i języka MATLAB.
    Gdy w połowie studiów przyszedł przedmiot podstawy techniki mikroprocesorowej, przyszło mi pisać w ASM (MCS'51). W międzyczasie zainteresowałem się AVR i jako start wybrałem BASCOM. Teraz programuję w C AVR jak i ARM.
    I powiem tak. Poznanie wielu języków ma tą zaletę że uczy myślenia "programistycznego". Wymienione wcześniej LOGO czy PASCAL prawie nie mają zastosowania praktycznego. To były języki stworzone bardziej do nauki programowania oraz prezentacji algorytmów (PASCAL pod tym względem jest bardzo przejrzysty). Jeżeli chodzi o BASCOM to faktycznie, programy pisałem już po kilku godzinach styczności z tym językiem... Ale bardzo szybko też się wkurzałem na ograniczenia tego języka. Po pierwsze w dużym tempie zapełniał FLASH mikrokontrolera, a bardziej złożone algorytmy, wymagały wielu "kombinacji" jeżeli chodzi o kodowanie, co zwiększało też ilość linijek programu. Traciła na tym bardzo przejrzystość programu. Do C zabierałem się od dłuższego czasu, ale przerażała mnie jego składnia, kod wydawał się bardzo zagmatwany i mało zrozumiały na pierwszy rzut oka. Ale w końcu zabrałem się do lektury o tym języku i od prazu próbowałem pisać programy. Efektem jest to że w tym momencie nie wyobrażam sobie stosować inny język. C jest fantastyczny, a gdy pozna się tajniki jego składni, zaczyna być też przejrzysty.
    Spodobał mi się bardzo z kilku powodów:
    Nie trudno jest (wbrew pozorom) opanować podstawowe instrukcje i filozofie ich działania. Nie trzeba też znać niuansów żeby zacząć pisać proste programy.
    Jest bardzo elastyczny i daje programiście wolną rękę przy kodowaniu. Przy okazji jest "bardzo blisko sprzętu" czyli programista mimo wszystko musi mieć pojęcie o działaniu układu który oprogramowuje. Jest tak bardzo popularnym językiem że w internecie można znaleźć wiele bibliotek z funkcjami obsługi przeróżnych układów, mikrokontrolerów... co oznacza że po krótkim zapoznaniu z daną biblioteką i jej zastosowaniu można pisać programy jak w BASCOMIE.
    Kolejną cechą jest fakt że umiejąc pisać w C np na AVR, po zapoznaniu ze sprzętem można szybko zacząć pisać na ARM, czy dowolny inny rdzeń. C jest też bardzo popularnym i praktycznym językiem programowania PC. Po jego poznaniu już jest się tylko o krok od poznania C++ który też powoli zaczyna być stosowany do programowania "mocniejszych" mikrokontrolerów.
    Jednym słowem, polecam gorąco C i nie trzeba sie go bać. :) Do nauki polecam
    tą książkę
    Jest bardzo dobrze napisana i bardzo uniwersalna.
    A do rozwiązywania konkretnych już problemów polecam niniejsze forum i to forum.
    Powodzenia w wyborze :)
  • #23 8394037
    utak3r
    Poziom 25  
    Nauka C nie jest wcale taka straszna, jak niejeden ją opisuje (zwłaszcza ci, którzy owej nauki wcale nie podjęli...). Aby zacząć pisać proste programy sterujące wyjściami na podstawie stanu wejść, wystarczą Ci dwa-trzy dni - serio. A potem, w miarę dalszego zgłębiania tematu - i to wcale, wbrew pozorom, nie tajników samego C w sobie, a właśnie problematyki programowania układów - dojdziesz i do bardziej skomplikowanych programów sterujących.
    Reasumując, zachęcam do sięgnięcia po C.
  • #24 8394687
    Nawigator
    Poziom 33  
    Polecam Ci C i darmową wersję Codevision (do 3kB kodu) na początek.

    http://www.hpinfotech.ro/html/download.htm

    Atmel popierał zawsze ten kompilator.
    Łatwo mozna w nim generowac obsługę poszczegolnych podzespolów procesora i podglądać kod wynikowy w asemblerze.
    Dużo przykładów w sieci.

    Ale na początek musisz trochę pobawić się programatorem.
    Mruganie dioda LED, kwarc, fusebity i te sprawy.
    Zainstaluj Studio Atmela bo i tak Ci sie przyda a asemblera musisz prędzej czy później podstawy opanować.

    N.
  • #25 8406727
    slaweko
    Poziom 2  
    Widzę, że koledzy polecają przede wszystkim C.

    Może to i dobrze jeżeli:
    -zamierzasz zawodowo programować mikrokontrolery/mikroprocesory
    -masz dużo czasu i chęci na naukę a wbrew temu co piszą niektórzy
    dobra znajomość C wymaga czasu i praktyki, dużej praktyki.
    Poznanie samej składni języka to 10% wszystkiego.
    -zamierzasz pisać duże, skomplikowane programy wymagające dużej szybkości
    działania (i tu dobrze poznać ASM).

    Natomiast jeżeli:
    -zamierzasz okazyjnie lub amatorsko użyć mikrokontrolera
    bez wnikania i tracenia (tak tracenia!) czasu na poznawanie tajników
    budowy i działania procesora, to wybierz "coś" szybszego do nauki
    -nie zamierzasz zawodowo (min. 8 godz. dziennie) programować, wybierz "coś" innego
    -Twój czas jest cenny i wolisz go poświęcić na zarobkowanie/wypoczynek/picie piwa itp. wybierz "coś" prostszego
    -jest Ci obojętne jakiego użyjesz mikrokontrolera, byle robił to czego od niego wymagasz,
    wybierz "coś" popularnego, łatwego do kupienia i taniego.
    W warunkach polskich w grę wchodzi (moim zdaniem) rodzina AVR i narzędzia do niej.

    "Coś" - to środowisko/kompilator - czego szybko się nauczysz. Może to być BASCOM. Jest mnóstwo książek i przykładów.
    Może to być Vamgraf o którym piszesz. Sam go używam mimo, że biegle znam C. A wybrałem go właśnie ze względu na brak czasu i chęci poznawania "tajników" mikroprocesorów a także znużenie samym C - zwłaszcza, że na co dzień używam kompilatorów o większych możliwościach.
    Może to być jakieś inne narzędzie ale radzę Ci nie zaczynać od C. Unikniesz wielu przykrości.

    Mam jeszcze dwie uwagi.
    -Widzę, że ostatnio w programowaniu mikrokontrolerów przez amatorów, modny jest język C, a przynajmniej tak można sądzić po lekturze dwóch czasopism dla elektroników oraz tego co się dzieje na elektrodzie.
    Mało kto zwraca uwagę, że język C jest językiem TRUDNYM.
    Pozwala na konstrukcje które bez problemu przejdą przez kompilację i będą
    "działać" ale niekoniecznie będą robić to czego się programista spodziewał.
    Kiedyś był konkurs na najbardziej nieczytelne i zawiłe programiki w C.
    Tak jak pisałem wcześniej, poznanie składni to 10% wszystkiego co trzeba wiedzieć
    o C a może jeszcze mniej. Same wskaźniki potrafią "wykończyć" niejednego programistę a zwłaszcza początkującego.
    Prostsze sprawy też nie są łatwe co widać po postach jakie są słane na forum.

    -Wydaje mi się, że to forum elektrody jest używane głównie przez amatorów
    lub okazyjnych programistów. Zawodowy programista raczej tu nie będzie pytał
    o sprawy o których powinien wiedzieć lub które może znaleźć w dokumentacji.
    Sądzę tak po rodzaju problemów poruszanych na forum, są dyskwalifikujące dla
    zawodowego programisty.
    Co innego amatorzy/hobbyści lub okazyjni twórcy programów.
    Dlatego zawsze dziwią mnie odpowiedzi w stylu: naucz się ASM, najlepszy jest C
    bo użyjesz go na innych procesorach itp. Tego typu rady dla amatorów oznaczają
    mnóstwo problemów i stratę czasu bez gwarancji na powodzenie.
    A przecież są inne, prostsze narzędzia choćby BASCOM, Vamgraf czy Parsic itp.
    "Ale zajmują dużo miejsca we flashu i nie są przenośne". No i co z tego?
    Liczy się efekt a nie narzędzie jakiego użyto.
    Zwłaszcza przy dzisiejszych malejących cenach procesorów.

    Pozdrawiam.
  • #26 8407498
    nsvinc
    Poziom 35  
    Cytat:
    Wydaje mi się, że to forum elektrody jest używane głównie przez amatorów lub okazyjnych programistów
    .

    ..Bullshit. Jesli wszyscy byliby tutaj dorywczymi lub poczatkujacymi
    programistami, to kto by pomagał w rozwiązywaniu problemów?
    "pomagał głuchy ślepemu".
    Racz zauwazyc, ze na tym forum wypowiadają się ludzie, którzy pracują
    już w zawodzie związanym z elektroniką/programowaniem x lat,
    niektorych poznalem wlasnie przez to forum. Dla nich banalne są tematy,
    które dla początkującego są kosmosem.
    Dla przykładu - ja mam doświadczenie z roznymi BASICami i jego
    mutacjami, pascalem, asmami na różne rdzenie i oczywiscie C. I ja tez
    mogę doradzić autorowi tematu, zeby nauczył się ANSI C.

    Cytat:
    Same wskaźniki potrafią "wykończyć" niejednego programistę a zwłaszcza początkującego.

    Same wskazniki jeszcze nikogo nie wykończyły. Wykańczają się programiści,
    którzy nie potrafią ich prawidłowo użyć, a mimo to używają. Poszukaj
    sobie topiców o wskaźnikach, min. potyczki mojej i Kolegi tmf, a
    poziom wtedy określ sam...

    Cytat:
    A przecież są inne, prostsze narzędzia choćby BASCOM, Vamgraf czy Parsic itp.
    "Ale zajmują dużo miejsca we flashu i nie są przenośne". No i co z tego?

    To już wiem dlaczego 95% przykładowego oprogramowania na STM32 są
    napisane korzystając z durnej biblioteki "firmware library". Bo nie można
    ustawić bitu w rejestrze, nie, trzeba inicjalizować milion zmiennych
    w jakiejś dzikiej strukturze, i wywoływać funkcje nad którymi nie ma
    najmniejszej kontroli.
    Bezsens do kwadratu.

    Cytat:
    Mało kto zwraca uwagę, że język C jest językiem TRUDNYM.

    Od kiedy...? C jest prostszy niż bascom!! Dlatego, bo w C nie
    musisz pamiętać "cholera, w jakiej kolejności podawało się zmienne do funkcji i2csend", i nie kopiesz przez tony opisów do funkcji bibliotecznych. Skoro wszystko napisałeś sam, to przecież pamiętasz co napisałeś!
    Ja prawie nie korzystam nawet z standardowych bibliotek C, bo takie strcpy czy atoi i jego odmiany wole napisać sam. W asmie, i dopasowane
    do potrzeb programu (np. natywna obsługa parsowania liczb z bufora kołowego)

    Cytat:
    Może to być Vamgraf o którym piszesz. Sam go używam mimo, że biegle znam C. A wybrałem go właśnie ze względu na brak czasu i chęci poznawania "tajników" mikroprocesorów

    Piszesz kody na procesor bez zapoznania się z architekturą, rdzeniem, peryferiami? Ekhem...
  • #27 8407518
    gaskoin
    Poziom 38  
    nsvinc napisał:

    Piszesz kody na procesor bez zapoznania się z architekturą, rdzeniem, peryferiami? Ekhem...


    z tym niestety na forum spotkałem się już niejednokrotnie. Ludzie chcą, żeby działało, ale na cholere komu wiedza jak i po co to działa.
  • #28 8407530
    utak3r
    Poziom 25  
    Ogólnie rzecz biorąc, to zadawanie tego pytania na jakimkolwiek forum to pomyłka ;) Efekty widzisz sam.
    Początkujący powiedzą Ci, że Basic czy jakiś Pascal albo inne, zaawansowani programiści powiedzą Ci że C, C++ i asembler.

    Może tak: zadaj sobie pytanie, ile chcesz tych programów napisać? Dodatkowo spróbuj ocenić poziom skomplikowania programu, który będziesz pisał. Prawda jest taka, że im trudniejszy program do napisania i większe problemy - tym łatwiej rozwiązać je przy pomocy C. A bajek o wskaźnikach nie słuchaj, one po pierwsze są proste, jeśli ktoś pojmie ich istotę, a po drugie, są solą C i stanowią największą przewagę nad wszystkimi innymi językami programowania.
  • #29 8407576
    nsvinc
    Poziom 35  
    utak3r napisał:
    A bajek o wskaźnikach nie słuchaj, one po pierwsze są proste, jeśli ktoś pojmie ich istotę, a po drugie, są solą C i stanowią największą przewagę nad wszystkimi innymi językami programowania.

    Aż ocieka prawdą :] Czym by był C bez poczciwych, milutkich
    wskaźniczków?...

    gaskoin napisał:
    z tym niestety na forum spotkałem się już niejednokrotnie. Ludzie chcą, żeby działało, ale na cholere komu wiedza jak i po co to działa.

    I przez właśnie takie przypadki niektórzy myślą, że na tym forum nie ma
    zawodowców.

    hehe, znowu jest wojna :D
  • #30 8407671
    utak3r
    Poziom 25  
    nsvinc napisał:
    Aż ocieka prawdą :] Czym by był C bez poczciwych, milutkich
    wskaźniczków?...


    Wystarczy wziąć dowolny program i sprawdzić, co by się stało, gdyby trzeba było wyrzucić z niego wskaźniki :P


    nsvinc napisał:
    hehe, znowu jest wojna :D


    No i o tym właśnie pisałem :) To nie ma sensu, każdy poleci coś innego, kierując się tymi samymi argumentami :)
REKLAMA