Acum, că bebelușul mare știe să citească, e tocilară și îi place matematica, ne-am gândit să îi oferim primele noțiuni introductive în programare.
Problema e că noi, nefiind niciunul în domeniu, nu știm cu ce să începem. Care e cel mai utilizat limbaj de programare? C++, C, Cobol? Ce e mai indicat pentru un începător de nivel zero? Ceva linkuri cu cărți de profil, EXCLUSIV în limba română?
Noi am căutat o carte de de inițiere în programare pentru copii, pe net oferta e ușor ambiguă, am cumpărat ceva fizic de la librăria Mihai Eminescu, dar mi se pare ușor puerilă.
So, ceva sfaturi inteligente?
eu nu-s programator, dar as invata-o inainte notiuni de sintaxa. asa ca as incepe cu w3. vede si rezultatele imediat, actiuni, culori, chestii. e posibil sa ma insel, dar sa ii explici unui copil functii, well…
s-ar putea sa fie mai receptiva decat crezi tu 🙂
Pentru un programator, sintaxa nu este importanta. Logica din spate te face programator, nu cunoasterea sintaxei.
Unii copii învață programare iar alții sunt omorâți de cruci.
stirileprotv.ro/stiri/socant/o-fetita-de-11-ani-din-brasov-a-murit-intr-un-cimitir-dupa-ce-o-cruce-a-cazut-peste-ea.html
Sa mearga pe C, C++, C# si Java.
BTW, cel mai utilizat acum e java. Dar asta inseamna ca sunt si multi programatori java, deci si multi indieni ce programeaza in java, ceea ce se traduce in salarii mai mici pentru programatori java.
Java e diferit de javascript?
dap. cam foarte diferit.
Da, Java e complet diferit fata de javascript (cred ca era totusi si o ironie la mijloc – ma gandesc ca ai mai vazut scripturi de javascript pana acum 🙂 ). Asta cu salarii mai mici pentru programatorii java e complet o aberatie, indienii sunt pe tot, dar degeaba daca lucreaza prost.
Da, n-au nici o legatura.
Hai man, C++ il recomanzi dusmanilor. Cat despre tradusul in salarii mici e total neadevarat. E complet irelevant limbajul in care scrii. La un interview serios gen google, apple nu intereseaza pe nimeni ce limbaj scrii. La google baietii folosesc la greu, Java, JS, Python. Crezi ca aia care folosesc Go la infrastructura sunt platiti mai bine decat aia pe Python in Tensorflow ?
Plus ca din ce apare in github JS ar fi mult mai folosit, irlevant ce se foloseste mult in organizatii inchise. octoverse.github.com
@Cetin. JavaScript nu are absolut nici o treaba cu Java. Eu iti recomand sa gasesti o metoda prin care sa testetzi daca ii place matematica aplicata in viata de zi cu zi eventual chiar in niste programe captivante pentru varsta ei, muult mai important decat orice. Daca incepeti sa aplicati chestii interesante eu zic sa scrieti cod in cel mai simplu limbaj. Eu nu stiu altul mai potrivit si simplu decat Python. Daca vrei sa inteleaga o paradigma solida incepeti cu Lisp. Nu o sa foloseasca limbajul nicioadata dar valorile cu care pleaca mai departe sunt foarte sanatoase.
Cum sa-i recomanzi man C++ unui copil ? Crezi ca Bjarne a glumit cand a spus asta: www-users.cs.york.ac.uk/~susan/joke/cpp.htm
Da, e diferit.
„Java e diferit de javascript?”
Da. In mare seamana intre ele, dar sunt totusi in categorii diferite. Cu Java se creeaza in general programe „clasice” (inclusiv app-uri pentru Android) sau applet-uri pentru pagini web. Cu Javascript se fac diverse script-uri pentru site-uri (exemplu: cand dai click pe thumbs up la un comentariu de pe site-ul tau, e un script JS care se ocupa de aceasta functionalitate) si este in stransa legatura cu HTML (layout-ul unei pagini web) si CSS (designul unei pagini web).
—
Key differences between Java and JavaScript:
– Java is an OOP programming language while Java Script is an OOP scripting language.
– Java creates applications that run in a virtual machine or browser while JavaScript code is run on a browser only.
– Java code needs to be compiled while JavaScript code are all in text.
– They require different plug-ins.
@George, venom
Babaeti, e ca la piata. Daca e oferta mai mare, pretul se duce in jos. Din moment ce te lovesti la tot pasul de developeri java, dar un developer C/C++ gasesti mai greu, e normal ca developerul de C/C++ sa fie platit mai bine. Serios.
Dar nu trebuie sa ma credeti pe cuvant, ia bagati un ochi aici:
tinyurl.com/m7rdqe2
vs
tinyurl.com/ll2atl7
@George
aberezi
Exact, d-aia sunt anunturi gen „Java developer”, ca nu intereseaza pe nimeni daca programezi in Java sau altceva. Uite, du-te la astia, spune-le ca nu stii Java, dar stii C/C++, sa vezi daca te angajeaza. Nu mai bine ne povestesti din nou de CEO de la AT&T?
Intre java si javascript ii diferenta cam ca intre orc si porc.
Babaieti, disputa voastra e ca certurile alea din copilarie cu „Brus Li il bate pe Vandam”, cand de fapt toata lumea stie ca Chuck Norris e unic. Java, .Net si alte balarii de astea sunt chestii mici, de romani, indieni, rusi si alte natii de mana a doua. Daca vreti programare adevarata invatati Ada, utilizat de toti mamutii gen EADS, Airbus si alte firme din industria aerospatiala si de aparare. Avantajele sunt numeroase, de la un program lejer fara deadline-uri stresante pana la un salariu care bate linuxistii la poponetz.
Dupa aia ar mai fi COBOL-ul, care e folosit in softuri pentru banci si are unicul avantaj de a fi un limbaj atat de vechi ca nu se mai face in scoli, deci tinerii nu prea il stiu, deci competitia e putina si are si artrita, deci nu prea mai poate tasta eficient.
Ada, COBOL si probabil si altele sunt folosite in aplicatii mari si vitale, care nu se pot schimba de la o zi la alta, inertia e mare. Acolo sunt banii adevarati.
@Sabotor
Dacă banii sunt criteriul după care te ghidezi atunci recomand călduros Ruby. Salariul e mai mare decât cel al unui programator C++, conform cu www.indeed.com/salaries/Ruby-Developer-Salaries. Să înveți și să folosești Ruby e incomparabil mai ușor decât C/C++.
@George
Ai dreptate parțial. Algoritmica e de bază la orice interviu. Asta nu înseamnă că experiența bogată pe un anumit limbaj/library/framework/OS nu e apreciată. Depinde pe ce job aplici, depinde de firma la care aplici. Chiar și la Google ești întrebat detalii tehnice destul de deep (de exemplu structuri de Linux kernel), nu doar algoritmică, în funcție de ce nivel de experiență ai și pe ce job aplici. Numele mari din industrie caută ingineri „T-shaped”, oameni care au atât experiență bogată (depth – bara verticală a literei T) cât și suficiente cunoștințe din arii conexe (breadth – bara orizontală a literei T – alte limbaje, alte tehnologii, alte paradigme, etc).
E caraghios să-i explici lui Sabotor cât de greșit e să recomande C++ dar tu să recomanzi Lisp. Păi Lisp e mindbending pentru majoritatea dezvoltatorilor și tu-l recomanzi unui kinder. Eu zic să-i recomanzi nițel Haskell și puțină teoria categoriilor, monade, functori, etc. Și puțină metaprogramare, că nu strică.
@Arhi
1. Java is to Javascript as car is to carpet. N-au treabă unul cu celălalt.
2. Joking aside, poți începe cu turtleacademy.com să învețe rapid (desenând) cum răspunde un computer la comenzi text, apoi www.scratchjr.org
Eu as zice C folosind operatiile de input/output din C++ (cin si cout). Se rezolva cu un „#include ” si un „using namespace std;”, chiar daca pe viitor va trebui sa se dezvete de el).
E pt prima data cand sunt de acord cu George, cum sa inveti un copi diferenta dintre int/double/string in C/C++ cand vrei sa afisezi ceva pe ecran?
Cum ii explici lui printf(„%d”, 10), in loc sa scrii frumos si logic: print 10? (in python 2.x)
Cat despre limbaje, conteaza limbajul dar nu atat de mult. Firma lui Joel Spolsky (unul din cei 2 fondatori stackoverflow) nu da 2 bani pe ce limbaj stii, aveau ca test sa rezolvi o problema de algoritmica de criptare (foarte misto) si sa trimiti mail cu raspunsul ei.
E adevarat ca daca vrei sa te angajezi kernel developer si tu stii doar Java, n-ai nicio sansa.
Se programeaza foarte mult in java si se cauta foarte mult in java, am prieteni pe toate limbajele in multe tari din Europa si US. Si cam toti au salariile foarte apropiate (eu sunt programator C/C++/python/C# de >10 ani). E vorba mai mult de cum negociezi si cat de important esti pentru companie, decat limbajul pe care il stii.
@Mihai in rare cazuri experienta pe framework e definitorie. Cand angajezi un om te uiti prima data la caracter apoi la mindset/algo si abia apoi conteaza frameworkul.
Gresesti la comparatia recomandarii lisp in prea multe feluri si nu ma bag la discutia asta. Eu i-as deschide copilului apetitul cu ceva simplu ca python dar urmatorul pas ar fi sa-i dau sa guste lisp. Esti tu institutionalizat deja si ai impresia ca multi paradigma Lisp ar fi ceva nenatural pentru o minte virgina. In Sillicon Valley cele mai multe scoli private predau Lisp ca prim limbaj.
@George
1. Eu am susținut că experiența cu o anumită tehnologie e apreciată. N-am susținut că e definitorie. Mai citește o dată ce-am scris.
2. Pe bune, așa-i în Silicon Valley? Școlile private predau Lisp ca prim limbaj? Copiilor de șapte ani? Că despre asta e vorba în propoziție: despre ce limbaj să învețe un copil de șapte ani.
Lisp chiar este mindbending. Explică-i unui dezvoltator care folosește limbaje imperative ce e aia lambda, currying, tail call optimization, ce-s alea S-expressions, homoiconicitate, etc. Pe urmă explică-i unui copil de șapte ani.
Logo este lisp facut exact pentru treaba asta: en.m.wikipedia.org/wiki/Logo_(programming_language)
Ghici ce, eu am recomandat Logo. Tu ai recomandat Lisp.
Logo e făcut special pentru copii, de-aia îi și învață cu „turtle graphics”.
Lisp nu e făcut special pentru copii.
Ori nu sesizezi diferența ori ești incapabil să admiți că ai recomandat ceva prea complex pentru un copil de șapte ani.
@Mihai
thanks, but no thanks. Eu am alta treaba in IT (din nefericire implica ceva cunostinte de Ruby, totusi).
@Tano
Pentru ca isi va insusi un anume mod de gandire, in loc sa inceapa cu un limbaj „usor”, nefolosit in mod normal, dar care-i va forma un cu totul si cu totul alt mod de gandire.
Insa pentru toate celelalte firme conteaza a naibii de mult daca esti java developer sau c/c++ developer
Nu gasesc unde ai recomandar tu Logo si te banuiesc ca nu ai scris nimic in Lisp, probabil esti genul care vede inperativul ca pe un fel de Meka. Insa Lisp e multi-paradigm si nu pur functional. Eu am invatat Lisp inaite de C. Astazi scriu cod in C, Swift, Erlang/Elixir, Scala, Python,ObjC, JS, Go, Verilog asta datorita Lispului si nu ma cac pe mine cum ca imerativul ar fi miezul din gogoasa cum il prezinti tu.
@George
1. Nu citești atent. Am recomandat în comentariul inițial turtleacademy.com. Ce este Turtle Academy? Uite ce scrie la ei pe site: „Turtle Academy makes it surprisingly easy to start creating amazing shapes using the LOGO language”. Fucking Logo, geniule.
2. Ai probleme de înțelegere. N-am scris că limbajele imperative (se scrie cu ‘m’, nu cu ‘n’, geniule) sunt miezul ci că Lisp e mindbending pentru majoritatea dezvoltatorilor. De ce? Pentru că majoritatea dezvoltatorilor lucrează în limbaje imperative și e greu să te adaptezi de la mindset imperativ la funcțional. Asta nu înseamnă că imperativ e mai bun și funcțional e mai puțin bun ci că e greu să treci de la un model conceptual la celălalt, geniule.
3. Poate n-ar fi stricat să înveți să citești și să înțelegi un text înainte să înveți Lisp, C, Swift, Scala și ce mai pretinzi că folosești. N-ai fost în stare să înțelegi constrângerile problemei de față (că un părinte care nu cunoaște programare dorește să-și ajute copilul de șapte ani să înceapă să programeze) și ai făcut o recomandare inadecvată. Și crezi că un showcase de limbaje validează într-un fel recomandarea ta: să pui un copil de șapte ani să învețe Lisp. Geniule.
4. Ceea ce presupui despre mine e irelevant în contextul discuției. Și din câte citesc, destul de departe de adevăr.
www.tynker.com/ ? sau www.code.org ?
foarte mișto amândouă, mulțumesc
Astea mi-au venit ca si rezultate pe google.. aveam unul in minte mult mai aplicat pentru copii.. cu animatii.. dar acum sunt blocat pe niste san miguel.. dimineata revin cu link.
www.codecademy.com/ – la fel un site bun si interactiv 🙂
Au parut o gramada de jucarii in directia asta. Cubetto e destul de popular (www.primotoys.com) dar ai de unde alge .
Asta mi se pare iarasi interesant avand in vedere ca nanotehnologia cam bate la usa:
snatoms.myshopify.com
code.org
sau cum sa ti faci un joc flappy bird in care nu mori in primele 5 secunde
La inceput as merge pe www.scratchjr.org/, dupa neaparat pe programare web 😀
Recomand si eu codecademy propus de venom. Foarte usor de invatat.
Legat de discutia de mai sus Java pare mai util momentan (cu mare accent pe momentan).
Wait, wait, am eu o recomandare din partea unui coleg: Code Combat. Este un joc care se pare ca este destul de fun pentru copii si instructiv pentru ca ii invata sa scrie cod, ca sa treci la urmatorul nivel sau sa faci diverse chestii in joc trebuie sa scrii cod efectiv. Nu l-am incercat inca, dar cel care mi-a spus de el il recomanda pentru a initia copii in scriere cod.
Eu as incepe cu scratch.mit.edu/ – dupa care m-as apuca de limbaje high level si m-as duce, in timp, spre low level. Python ar fi un urmator pas ok, dar cu siguranta m-as juca cu scratch o perioada.
Trei mii de puncte pentru Scratch. Am „predat” timp de un an de zile la copii de 9-10 ani. Practic le-am explicat în linii mari cam cum se construiesc jocurile și s-au descurcat singuri. La programare, decât să-ți dea cineva mură-n-gură explicații, e mult mai fain să descoperi tu singur principiile și să construiești singur ceva. Există un ONG din Marea Britanie care a și făcut materia pe vreo 2 semestre, iar voluntarii au tradus proiectele în diferite limbi, inclusiv română: projects.codeclubworld.org/ro-RO/index.html
Poți căuta cluburi prin București, e mult mai fain când se adună picii împreună și lucrează. Să vezi acolo brainstorming serios, că n-au nici o reținere și chiar vor să facă chestii.
+1 pentru Python. E un limbaj foarte util și relativ ușor de învățat. Nu chinuiți copiii (sau adulții) cu C++.
scratch pare a fi interesant. Si io cred ca e mai bine un limbaj pentru copii, care preda principiile. Dupa aia, toate limbajele folosesc aceleasi principii.
+1 pentru Scratch
-1 pt C & C++ sunt prea abstracte pentru varsta lor.
Si eu vreau sa incep sa-o invat pe fetita notiunile elementare, cum functioneaza un program, care sunt tipurile de date, structurile if/then/else, for/while loops, functii etc. Dupa, o sa incep cu algoritmi simpli, parcurgere de liste, sortare, filtrare. Acum sa vad si cat interes ii trezesc.
Scratch voiam sa sugerez si eu. Trebuie sa inteleaga intai conceptele din spate, dupa care ii va fi usor sa aleaga orice limbaj de programare vrea ea, daca va vrea.
Si votul meu merge la scratch.mit.edu/ .
Incearca sa o inveti algoritmica inainte de sintaxa de Java,C++, Python sau orice alt limbaj de programare.
Dar daca ma gandesc mai bine, poate ar trebui s-o indrumi spre o cariera de sysamin. Nu de alta, dar….
Trebuia să fie și asta în comentariu: tinyurl.com/lq6stlc
www.khanacademy.org e o platforma destul de interesanta, utila pentru înțelegerea diferitelor subiecte din științele fixe cel puțin. M-am uitat acum și are și programare. Ce și cat, asta nu știu să evalueze, deoarece și pentru mine este și a fost o nebuloasa informatica.
scratch.mit.edu e pt copii
Este f bun pentru start. Apoi poate continua cu Python.
Din ce am vazut, desi nu sunt programator, Java e la cea mai mare cautare momentan, cel putin in Romania.
– Java e diferit de Java Script, da, insa multe companii le cer pe amandoua de obicei. Java chior cred ca e bun pentru inceput, insa acum programatorii de Java folosesc tot felul de tehnologii: Spring, Hibernate, JSP, Netbeans, Rest API, Junit, Testng, JMS, JNDI, JDBC, framework-uri, librarii, in fine, un carnat intreg, nici eu nu le cunosc, cum am zis nu ma pricep. Colegii programatori sunt mai in masura sa-ti dea detalii mai multe.
– Cred ca si programarea aplicatiilor Android/IOS o sa se caute din ce in ce mai mult, insa vezi si tu aici cum e, sa nu dispara tehnologia pana ajunge fata sa castige bani din asa ceva, ia de exemplu Maemo, MeeGo, Palmos sau alte OS-uri de mobil care au murit intre timp sau au cautarea foarte mica.
– Cred ca ar merge starnit interesul cu niste tutoriale fun pentru copii: gen puzzle, culori, cantece, animatie gen am atins piciorul ursului ala zice „picior”, un joculet cu ceva care sare, o minge, ceva, sa construiasca o pagina web chioara unde sa-si puna ea poze, etc
– daca ai putea s-o convingi pe termen lung sa creeze singura programele, le poti face open source sau salva proiectele in github, mai tarziu va fi portofoliu alaturi de CV (asta daca nu creaza un soft si vine unul si cumpara softul cu tot cu drepturi, cu cateva milioane de dolari sau daca nu le uploadezi pe appstore si iei bani de pe urma utilizarii lor)
– Sintaxa e buna la inceput, insa e ca o limba straina, cred ca pana la urma conteaza ce vrei sa faci cu ea
Repet, aici vorbeste unul care nu stie nimic de programare, deci increderea in sfatul meu tinde spre zero 😀
App in Android sunt tot in Java facute. Odata ce invata un limbaj de programare, i se dezvolta logica si poate trece usor la alte limbaje, astfel incat sa se adapteze.
Frate, cu cv-urile și portofoliile și ce se caută…. Omul vrea să vadă dacă e copilul interesat, nu vrea s-o angajeze mâine…
#amin
Academia.inventeaza.ro
Încearcă ăsta: pythonturtle.org/
N-aș putea să recomand o resursă bună și serioasă de învățat pentru copii, dar în orice caz, Python e mult mai ușor de învățat ca și C/C++/Java și altele, sintaxa fiind foarte apropiată de pseudocod.
De citit: news.ycombinator.com/item?id=11213226
In plus, Pythonul e util si daca picii decid mai tarziu sa nu devina profesionisti in ale programatului.
Ai mei au inceput cu „Computer Coding for Kids”. Cartea incepe cu Scratch dupa care face trecerea la Python
pe viitor, n-ar fi rau sa dea o fuga si pe aici:
www.infoacademy.net/
Recomand Python. Este cel mai simplu de utilizat limbaj de programare pentru incepatori. Are o sintaxa foarte clara si se pot crea programe fara mari batai de cap. Dupa aia, C#, Java, Javascript, chiar si Pascal sau Delphi. C si C++ sunt mult mai dificile (au multe chichite) si nu sunt recomandate incepatorilor.
Mie ordinea normala mi se pare Python, C, C++ si dupa aia Java. Sunt chestii in Java care sunt mai usor de explicat daca ai facut C++ mai intai, iar in C++ iarasi sunt chestii mai usor de explicat daca ai invatat mai intai C.
De asemenea recomand www.codecademy.com/ si www.freecodecamp.com Au lectii interactive si totul este explicat clar.
Gasesti resurse pe www.codecademy.com.
Luati-o usurel cu Scratch mai întâi, să înveţe algoritmica şi conceptele de bază.
Si daca poti, cauta o locatie CoderDojo pe aproape. O sa-i placa.
Scratch si CoderDojo recomand si eu. Scratch e special pentru copii, e gandit sa fie usor si distractiv si sa obtina rapid rezultate si sa-i tina motivati, chestie pe care calcularea sirului Fibonacci in limbajele de adulti nu are cum sa o faca.
+1 pentru CoderDojo. E foarte fain pentru copii. Oamenii au si experiente in a explica copiilor.
La PC: scratch.mit.edu/
Dacă (mai) ai ipad: itunes.apple.com/us/app/cargo-bot/id519690804?mt=8
Java, C++? Pentru un copil de 6-7 ani? De ce nu … ASM?
Se incepe cu bazele programării, nu-i musai sa se înceapă cu chestii avansate în C sau Java. Și una din greșelile frecvente e că sunt puși copiii mai întâi să învețe un limbaj simplu (basic, pascal), dar care nu se prea pupa cu cele avansate. Iar copiilor le va fi mai greu apoi sa se obișnuiască cu altceva.
@Sabotor
Limbajul C devine avansat imediat ce învățăcelul ajunge la pointeri și alocări pe heap vs alocări pe stivă. Adică foarte repede, că fără pointeri și alocări de memorie C e la fel de folositor ca o scobitoare la mâncat ciorbă.
Nu cred că ai înțeles esența întrebării lui Arhi: un _copil_. Pe-un kinder nu-l motivezi cu „haide să-ți explice tati bazele programării” / „vino să-ți spun o poveste despre arhitectura von Neumann” / „am o surpriză pentru tine, o să afli mai multe despre tipurile de date și reprezentarea lor în memorie”. De-aia e folosit Scratch, de-aia e folosit Python. Că poți face chestii vizuale foarte ușor. Așa înveți conceptele de bază când ești copil, nu citind cărțile lui Knuth și arhitectura microprocesoarelor Intel x86.
Apropo, există learnpythonthehardway.org/book/ care e gratis. Oricine poate învăța Python folosind cartea asta. După aia, sky’s the limit.
E, cacat. La inceput o sa invete sa afiseze un Hello World, sa ia un input de la tastatura si sa afiseze inputul ala intr-o propozitie, chestii dinastea simple de tot. O sa ajunga la pointeri cand o fi cazul.
Nu mai considerati copii niste cretini. Au o minte foarte maleabila si care poate absorbi cantitati mari de informatii. Si da, o fi mai usor sa invete altceva, uite, basic e al naibii de usor de invatat. Dar le formeaza un mindset care mai tarziu, cand vor dori sa treaca la un limbaj de programare cu care chiar sa faca bani, le va fi o piedica.
Exact! Scrath, orice sa ii dezvolte partea de gandire logica, de intelegere a relationarii cu un calculator prin linii de cod.
Oamenii astia au baut gaz auzi mai @Sabotor. Are 7 ani!
Pt mine a fost simplu: in clasa a 6-a am avut noroc de o profa faina care ne-a prezentat Pascal si am desenat in el, am construit joculete simple. Stuff like that.
Ce crezi ca acum dupa 4 ani nu am putut sa apuc un C si un Java sau dupa inca 4 orice altceva?
Ba a fost super simplu: a, post sa scriu for’ul in alt fel, mare chestiie. What else?
Prima data sa inteleaga concepte „simple” pt noi cum ar fi un IF un FOR si cum construiesti cu ele minunatiile astea de jocuri.
Dupa voi invata teoretic, pe foaie 10 ani si dupa aia pune mana pe calculator. Comunistoida gandire zau.
It needs to be fun bai baieti.
Sa afisezi Hello World? Daaa o sa lesine de emotie. Sa nu cumva sa scrie „IF [key pressed] -> [left turn] BB-8 20 degrees”, un limbaj de asta super simplu pt copii si sa vada in 10 minute ca se misca ceva pentru ca ea l-a pus sa se miste.
Nu e vorba de cum crezi tu ca noi consideram copiii (cretini) – e vorba de construit pasiuni inainte sa il plictisesti. But mno, esti asa de sigur pe tine incat tot ce ma pot ruga este sa nu ajungi profesor, nici macar sef de echipa. You are all about fun. NOT
Suna ca si cum ai intrat in programare ca se castiga bine si cam atat.
Ar rade cei din Silicon Valley si cu curul sa incepem sa predam C sau Java la 7 ani. Toti se bombardeaza cu robotei programabili, cu chestii gen Little Bits littlebits.cc/ si voi aberati aici in sute de comentarii inutile.
Lumea vorbeste de ziua in care calculatoarele vor programa singure, ca noi sa avem un meta limbaj cu instructiuni generice. Lumea viseaza sa programeze cu componente refolosibile pe platforme diferite si voi va razboiti cu C si Java si care sunt salariile acum? Are 7 ani, voi chiar cititi articolele sau egoul e mai important.
@Mihai – Sunt de acord, sa incepem cu un von Neumann
Nu îi iei mai bine un calculator doar al ei ?
www.robofun.ro/index.php?route=checkout/cart
Mno…mersi pentru link-ul cu Scratch…pare chiar interesant pt. puradel.
As incepe cu Kernighan & Ritchie C Programming Language. E o carte draguta, cumva ca teza relativitatii a lui Einstein. Compilatoare/Dev mokka sant garla. Si-asa C++, C#, Java se bazeaza pe C la greu. Si merg/sant baza si la mainframes. Apoi dupa un an-doi o sa se duca singur/a unde ii place mai mult (C#/C++/Java?). Oricum, toate limbajele moderne de programare se bazeaza pe conceptele din C. Plus, tot ce tine de IoT/devices e bare-bones C++, aproape C curat.
Are 10 ani in plm, bine ca nu ii recomanzi sa invete assembly.
@DanC, noi vorbim de copii aici.
@Venom&Alex: Sorry guys, n-am stiut cati ani are copilu’.
Recomand si eu CoderDojo. 😉
Imi explici si mie ce se intampla la o sesiune de-asta de la CoderDojo?
Am vazut ca varsta copiilor este de la 8 in sus. Sunt diferentiate pe varsta activitatile? Se lucreaza in echipe?
Nu stiu cum e la voi in Bucuresti, dar la Timisoara e cam asa:
– sambata pe la 11 se aduna pruncii in una din locatii; (e preferat ca pruncul tău să aibă laptopul propriu, însa nu e musai, de obicei în locațiile CoderDojo au și ceva calculatoare)
– copii învață cel mai mult unul de la celălalt, ajutați și ghidați ușurel de un mentor;
– în fiecare locatie sunt 2-3 mentori, pentru categoriile majore de lucru (scratch, html, robotică, mobile apps, etc)
– o sesiune durează 2 ore, cu pauză de cam 10 minute
– jocurile sunt permise doar în pauză – până la urmă asta nu e sală de jocuri
– e gratuit
– o data pe lună e pizza-day, zi în care merge pruncul cu 10 lei în buzunar și cumpăra toți pizza și alte cele
– anual, prin iunie este o sesiune de proiecte în Dublin (la mama CoderDojo), unde dacă pruncul tău e bun, poate ajunge alături de alțe 8-10 echipe din România.
Și mai multe detalii găsești pe site
–
@gupi. Cu pruncii am înțeles, dar grupe pentru fetuși au?
Nu direct – au însă un program de recitare de cod pentru gravide
Sa traiesti!
Pot sugera un Arduino? În afară de faptul că învaţă uşor programare şi că e plin de resurse pe net, cred că va fi extaziată să vadă cum clipeşte un bec fiindcă ea l-a pus să facă asta.
E vorba de copii mici. Grafica aia frumos colorata ii atrage mai tare decat niste beculete. In plus, e greu – cel putin pentru mine, am incercat – sa explici unui pusti cum merge treaba daca pustiul nu are si niste notiuni de electronica sau macar de fizica de baza (curenti, tensiuni, etc.)
Asa cum au sugerat si altii: Scratch si Python 🙂
www.librarie.net/p/245484/curs-de-programare-pentru-copii-de-la-limbajele-scratch-si-python-la-conceperea-de-jocuri
Nu stiu ce varsta are, dar lucrand in domeniu si daca maine as vrea sa-mi invat copilul programare as merge cumva pe calea urmatoare:
1.As incerca sa parcurg cateva recomandarile de aici: blogs.msdn.microsoft.com/smallbasic/2016/12/09/microsoft-coding-for-kids/ . SmallBasic si Kodu sunt intersante din perspectiva unui copil, minecraft, nu stiu ce sa spun.
2.In paralel cu 1, as cumpara niste roboti lego mindstorm, in care sa se joace facand diverse chestii www.lego.com/en-us/mindstorms/learn-to-program .
3.Dupa ce intelege cat de cat concepte urmeaza trecerea mai abrupta la chestiile reale, adica sa aiba cumva o intelegere a structurilor repetitive, a blocurilor de cod, scopul variabilelor. Partea asta mi se pare cea mai critica si cred ca trebuie facuta dupa ce s-a plictisit de primele parti si vrea ceva mai antrenant.
4.As incepe sa invat si partea mai putin spectaculoasa si anume algoritmica, dar numai dupa ce a invatat la matematica conceptele, cel cel mai mare divizor comun, ciurul lui Eratostene etc.
5.Partea urmatoarea avansata colectii si liste si cum te joci cu ele, gen sortarea unei liste, gasirea minimului, cautarea binara si altele. Pentru asta recomand hackerrank.org .
6.Clase, functii cum aranjezi si refolosesti codul aici sunt o gramada de carti, head first design patterns e recomandarea mea de la oreilly.
Calea asta care am descris-o este ceva pe termen lung, daca vrea sa activeze in domeniu, insa pentru distractie, primele 2 vor merge de minune, iar pentru ceva minim necesar 3 si 4 ar fi indeajuns poate putin din 5.
O alta recomandare, pe care o am, este sa nu te blochezi pe un limbaj anume, important intr-o prima faza este prinderea conceptelor, ulterior tranzitia va fi un pic mai dificila la inceput, dar cu cat va lucra mai mult, nu va avea o problema cu limbajul ales.
Kahn Academy are cursuri gratuite pentru copii, dar sunt in engleza, germana, fracenza, spaniola, din pacate nu in romana. Totusi te poti inspira din cursurile lor pentru a pue la punct o structura. Sunt si cursuri de programare (coding) pentru copii in Bucuresti
Cred ca e prea mult sa chinui copiii cu limbaje de programare la varsta asta. Incepe cu notiuni de baza despre calculatoare – procesor, memorie, hdd, ce-s alea, cum functioneaza impreuna. Las-o sa se joace cu aplicatii simple – desen, texte sa se obisnuiasca cu lucrul cu fisiere, organizare, etc. Dupa care poti incepe cu algoritmi simpli, scheme logice pe hartie – start, do, if-then-else, stop. Abia dupa ce intelege asta te poti gandi la limbaje de programare.
Schemele logice pe hartie sunt moartea pasiunii.
Daca esti dispus sa cheltui ceva pentru initiere, un punct bun de plecare poate fi si un Mindstorms de la Lego shop.lego.com/en-US/LEGO-MINDSTORMS-EV3-31313
Cred ca e mai captivant sa construiesti ceva si apoi sa il programezi sa faca chestii. Ca programare ai varianta in care construiesti algoritmi legand blocuri cu drag and drop dar si varianta in care scrii cod.
Ma gandesc ca e mult mai intuitiv un mod prin care construiesti o masinuta si apoi faci un algoritm „daca senzorul detecteaza obstacol, vireaza la dreapta”.
Daca ai nevoie de mai multe detalii, cu mare drag.
Eu nu stiu cu din astea, dar pot sa il invat cu gagicile.
Bo$$… bebelușul ala mare e fetiță
Aici ? www.youtube.com/channel/UC1UCaXLd_IZXk84Q8AWRIDg
Scratch (scratch.mit.edu/) e cel mai potrivit pentru copii. Eu m-am jucat cu ai mei un pic si e foarte intuitiv. In plus nu instalezi nimic, totul e in browser.
Invata intai concepte de baza in programare dupa care trec la limbaje.
hourofcode.com/ro
Vei fi uimit cât de încântat poate fi un copil găsind soluții pe subiecte familiare lui.
Cati ani are pustoaica? Intreb pentru ca si a mea e clasa 1 si as vrea sa ma apuc de ceva cu ea.
Din punctul mei de vedere la inceput ar merge invatata un pic de algoritmica. Noi am inceput cu asa ceva:
blockly-games.appspot.com/
E fun si unele sunt un pic prea complicate pentru ei, dar de-asta suntem acolo ca sa-i ajutam.
Scratch, care ti-a fost recomandat mi se pare o solutie buna de inceput.
Daca incerci cu Arduino sa ne zici cum merge dupa cateva „ore”. Tare am impresia ca dupa ce-o sa se termine uimirea initiala cu „eu am facut asta”, o sa se cam plictiseasca de el, dar asa sunt eu pesimist, nu ma baga in seama.
Dintre limbajele de programare „adevarate” eu as incepe cu C sau Python, cu un plus pentru C.
7
Python zic
Nu stiu cat ajuta in acest moment invatarea unui limbaj strict de programare. Limbajele se invata relativ usor, cred ca mai intai ar trebui sa o inveti un pic de pseudocod si algoritmica. Trebuie sa vezi daca poate gandi ca un programator.
Pune-o spre exemplu sa desfaca in cat mai multi pasi operatiuni simple, ce le face zilnic. (Gen cum te incalti).
Ce gasesti pe net (codecademy w3s etc) sunt faine ca te invata limbajele, dar nu te invata gandirea, destructurarea logica…
Las si eu asta aici: www.codingame.com/start
Da, nu-i in romana, nu-i chiar de initiere si se trece foarte repede de la chestile simple la complex – ca si majoritatea celor postate de restul. E tare partea de animare a outputului si am reusit sa-l tin pe-al meu de 6 ani langa mine pana am scris un cod dornic sa vada rezultatului. Ma gandesc ca la varsta asta e ok sa inteleaga ca ce vede pe ecran, fie ca-i joc fie ca-i site, e facut de un om si nu-i ceva ce pur si simplu exista si sa stie ca la o adica poate fi el omu ala, evident, daca-i place.
Pentru copii, daca ai o tableta Apple la indemana, recomand asta: www.apple.com/swift/playgrounds/
Șefu’, nu îți bate capul cu ce limbaj. Alege unul cu care să înceapă să se joace și după vede ea. Eu am schimbat vreo trei, patru paradigme până acum. Încerc să spun că nu limbajul e cheia și că același lucru poate fi făcut în mai multe feluri. Important este să înceapă și să își modeleze/antreneze gândirea. Poți să îi iei un Raspberry Pi și să o lași să șurubărească și cu el. Asta va acoperii și partea hardware, pentru că niciodată nu se știe cam pe unde ajungi. Și poate îți automatizează tot prin casă :-).
P.S. @Sabotor. Java să moară!
Și eu as vrea să dispară Java, dar nu cred că avem norocul ăsta.
www.codingame.com/home
pe langa ce s-a mai scris, un alt site de resurse excelent e : www.theodinproject.com/ din pacate in engleza.
ca learning curve as recomanda cum au zis si altii scratch -> python apoi .net
Daca vrea ca dupa ce termina scoala generala sa mearga la un liceu de informatica, ti-as recomanda sa incepi cu C++, din cate stiu in majoritatea liceelor din tara se preda C++ sau Pascal.
Momentan eu zic sa te concentrezi pe partea de algoritmica, sa invete ideea din spate si dupa sa aleaga ce vrea ea.
E greu sa incepi direct cu C++ (adicatelea OOP). Nici adultii nu inteleg bine, daramite copiii. Si algoritmica mai degraba o sa indeparteze copiii de programare. Copilul e motivat mai degraba cand vede calculatorul facand ceva, obtine niste rezultate si simte ca il controleaza.
Orice, dar sa fie pe Linux. Se stie ca pe pe windows stau numai fraerii, adevaratii isi pun linux.
A picat la fix postarea asta. Presupun ca toate recomandarile de mai sus merg si pentur un adult care nu are notiuni de programare, dar care doreste sa invete, nu?
mai putin partea in care te mangaie Cetin pe crestet si iti spune „fata tatii”
Parerea mea, invata-l engleza, pentru ca apoi se va descurca singur sa isi caute tutoriale, exemple, sa caute solutii pe stackoverflow si asa mai departe. In programare, daca nu stii engleza, deca incepi cu un handicap. Cartile fizice nu le recomand pentru ca de la scriere pana la editare, traducere in romana, printare si aparitia pe raft sunt deja depasite.
Cred ca pentru inceput ar trebui familarizat copilul cu ceva algoritmi simpli apoi cu ceva instructiuni simple if , for, while. Eventual cu un compilator online dupa ce invata sa faca programare pe hartie.
Incearca sa explici unui copil rostul programarii pe hartie. Stiu studenti care aveau greutati in a intelege asa ceva.
Daca vrei sa o ajuti sa isi dea seama daca ii place sau daca va lucra in domeniu, nu incepe cu un limbaj.
Gandirea logica, analitica, e cheia. Chestiile micute o dezvolta acum, un pseudocod, ceva scheme si animatii.
Este vreme de invatat limbaj, treaba e sa poata gandi liber si sa desfaca probleme in altele mai mici.
Si cheia e sa faca lucruri atractive, practice, in care sa vada ce a facut si sa-i ofere incredere.
Nu incepe ca si la scoala direct cu algoritmi si cerinte bazate strict pe mate. Daca incepe asa, tre sa fie ‘native’ ca sa ii placa si nu devina frustrata de atata necunoscut.
Iti spune unul care pana la liceu nu stia ce e aia programare si am intrat direct in c++, cu un an de pseudocod. Cerinte numa de mate, nimic aplicat, nimic atractiv. Profesor nu tocmai inspirat. Asa am ajuns sa nu ma atraga deloc.
Acuma, la faculta, cand am dat de niste senzori, ceva automatizari si mai putina programare, consider ca am pierdut startul cu Cu’ din liceu si mi-am pierdut vremea. In momentul in care dai de ceva aplicat si care iti ofera mai multa libertate, se poate sa-ti placa.
ai mei au prins gustul programarii jucand joculetul asta: lightbot.com/flash.html
Ala mare merge la ceva club (DigitalKids) deja de un an (are 9 ani).
In primul an a facut scratch si acum a trecut pe code.org.
In principiu interfata ii asemanatoare cu scratch-ul dar se trece la chestii mai complicate.
Tu poti sa-i indrumi dar daca nu le place o sa urasca programarea si tot ce tine de ea…
Am un prieten, electronist , it-st, etc… foarte bun in domeniu lui.
L-am intrebat, „ce face fiu-to’ ?” – ce sa faca, chelner – asta i-a placut. S-a jucat o vreme cu hardware-ul dar pana la urma tot la restaurant a ajuns.
S-a mai discutat si aici 🙂 razvanbb.ro/ce-curs-de-programare-pentru-copii-imi-recomandati-nu-online/
scratch.mit.edu/
code.org/
S-a mai sugerat deja, dar plusez și eu: Python.
digitalkids.ro/, un proiect Asociatia Edusfera.
Nu am experienta directa cu ce se intampla pe acolo, dar o stiu pe cea care a fondat (www.facebook.com/tincuta.apateanu), care e o foarte buna profesionista si e orientata in mod deosebit spre cresterea numarului de fete/femei in IT. Au avut diverse campanii/proiecte in scoli strict pe asta, acum vad ca au largit spectrul pentru toti copiii.
poti incerca Small Basic de la Microsoft, e special pentru copii: smallbasic.com/.
Din punctul meu de vedere: HTML / CSS – culori, texte, interactiv – dupa care PHP + MySQL + diverse framework-uri de js.
Cu ocazia asta poate invata si Diana un pic de „IT”
Google Made With Code e un punct bun de plecare pentru a invata copiii programare www.madewithcode.com/projects/
C++, C. Poate si ceva HTML.
Dacă doreşti, te pot pune în contact cu cei care organizează cursurile şi competiţile Kids in Tech şi Hour of Code. Programele lor sunt special concepute pentru elevi şi liceeni şi cu siguranţă cea mică ar avea destul de multe lucruri de învăţat. 🙂
Cumpara o papusa
bâști.
Preferabil robot si o puneti sa o descompuna si sa invete singura algoritmii dupa care se misca
Am cateva sugestii:
1. nu invata copilul _un_ limbaj de programare. Ce invata acum s-ar putea sa fie obsolet maine. Ideal ar fi sa inceapa sa invete concepte – gen, sa inteleaga ce inseamna „i=i+1” (o sa radeti, dar 90% din `civili` nu inteleg chestia asta), sau pointeri (bine, asta mai tarziu un pic), threads, etc;
2. problema cu limbajele de genul c/c++/java e ca sunt oarecum seci, iar ca sa tot faca programe de adunare/scadere/whateva – o sa se plictiseasca. Ti-as sugera sa fie ceva mai intuitiv, ceva care sa ii ofere feedback imediat. Ar fi o idee buna sa incerci scratch de la MIT (scratch.mit.edu/);
3. Daca vezi ca ii place si ca se prinde de el/ea, poti duce chesti asta la urmatorul nivel:
+ www.makeblock.com/en – bazat arduino, e single-threaded – dar pentru un copil ar trebui sa fie suficient’
+ www.lego.com/en-us/mindstorms – asta e mai misto, dar e si mult mai scump. IMO, merge mai bine pentru un copil care chiar e pasionat de asa ceva;
4. Mai sunt diverse chestii la care te-ai putea uita aici:
+ www.robotshop.com/en/robotics-education.html
Eu am ajuns la 3.
my 2c.
Ah, si-nca ceva – ar fi ideal sa fie aproape de cineva care ii poate raspunde la intrebari.
Daca ar fi sa te iei dupa recomandarile unor baieti de pe aici, in 1 an deja ii poti face cont pe freelancer si va aduce bani in casa.
Limbajul de programare = 0 la varsta asta. Conteaza sa deprinda logica, sa inteleaga de ce daca face ‘x’ se intampla ‘y’. Foarte tare scratch. Recomand un arduino daca o va atrage prograrmarea si se va plictisi de scratch. E mult mai interesant sa vezi un motoras invartindindu-se sau led-uri aprizandu-se.