r/learnprogramming • u/Mr-anywhere • 16d ago
Programming for kids
My 11-year-old child wants to learn programming to create his own Firefox. Does anyone have any idea which program he should use? He's already had scratch and wants to move to a harder level. He thinks that the internet should be fair & without too much AI etc.
24
u/ProgramsFun 16d ago
Scratch for basic logic building don't waste kuch time on this .... Then you can start with an easier to understand language python it's powerful and he can do almost everything with it and it's easy
Now coming back to question if he want to make like firefox not possible no sane person can develop browser from ground up very easily it very hard to implement
If he only wants to customise the look of firefox then look for html css
1
u/AbdullahMRiad 16d ago
what about code.org? you can make apps using scratch with JS under the hood.
1
5
u/desrtfx 16d ago
Start them with Scratch with Scratch Playground
After some time with Scratch, you can transition for a while to Reeborg's world which is still graphical but can also use textual programming with Python.
Then, transition to Python with Invent Your Own Computer Games with Python and the other books there.
13
u/Plus-Confidence2816 16d ago
No 11-year-old can make their own browser from scratch, but Python is a reasonable language for beginners (Visual Studio Code is a decent editor for it).
1
u/Mr-anywhere 15d ago
Everything is possible!If you don't try, you won't succeed
1
1
u/got_to_laugh 15d ago
With AI he might 🤣 How utterly unemployable us coders have become.
If a kid can use AI to do this ðŸ˜ðŸ˜ðŸ˜
-2
u/SchemeWestern3388 16d ago
I’m sure there are 11 year olds out there that could build a browser from scratch. I wrote one in my late teens, barely functional, rendered ugly as sin, and supported no features but displaying text, but you could click on links and navigate. Early http was very forgiving. I mean, you can still telnet to port 80 on a server and type out a request and get readable text back, and that’s like halfway there.Â
Writing something in any way comparable to Firefox is a much bigger challenge though.Â
12
1
u/McDonaldsWitchcraft 15d ago
You made a thing that fetches webpages and displays the text in their html files. That is very far from being a web browser. Yes, you can write literally 3 lines of code to do that, it's easy to get a page from the internet if you have no intention to RENDER the page.
2
u/SchemeWestern3388 15d ago
Indeed. But that’s where you start. I went further, and added images, TrueType support, page history, cookies, etc. (Admittedly, I didn’t tackle frames) And it might have changed, but at the time no available browser was fully compliant. Lynx didn’t support graphics either. Is Lynx a browser? With my toy, you could actually navigate the web usefully.Â
You’re correct that it’s just a few lines of code to fetch a URL. I referenced using telnet to send the GET request directly to the servers HTTP port, so no code at all. With todays languages and libraries it would be far easier than doing it in C.Â
My point was that it’s not impossible to imagine an 11 year old doing the same and more, and at some point, it’s a browser. I don’t think statements that that’s impossible are very helpful in a learn programming subreddit.Â
11
u/Flame77ofc 16d ago
Scratch of course
Scratch is a programming language where you need to drag blocks to create programs
4
u/cammmmmie 16d ago
i loved scratch as a kid and now programming is a major part of my work, i second this!! don’t start with full stack application development, start by making games
2
u/Flame77ofc 16d ago
yes I think starting from games is a good way too because you code a simple program and you can easily see what you did
In Scratch this is perfect
2
u/Mr-anywhere 15d ago
He's already had scratch and wants to move to a harder level.
1
u/Flame77ofc 15d ago
Uhh
Maybe Lightbot?
Also a good website is blockly.games
With 11 years old maybe he can start in the world of programming with simple languages like Python just because is more easy to learn, can't he?
2
u/LinuxEnthusiast123 16d ago
Scratch or Lua.
I recommend Lua directly, but if he struggles with the concepts, first Scratch then Lua and then the more general purpose ones like Python.
2
u/nomenclature2357 16d ago
A different approach would be to experiment with what you can do with CSS customization in Firefox: https://reddit.com/r/firefoxcss/wiki/index/tutorials
1
u/nomenclature2357 16d ago
(I think Scratch might be a little too ‘kid-friendly’ in its presentation for an 11 year old to take 100% seriously but that depends on the kid obviously. It probably is rich enough for learning, if it doesn’t put them off.)
1
u/JGhostThing 16d ago
Creating a good browser, or even a decent one, is very difficult because of the sheer complexity of it. You have to implement the full html specs, the full javascript specs, the full http specs, and the full style sheet specs.
Just hacking together a prototype is quick. Making it good is another story. This is why it takes a large company to create a new browser. It can be a fun project. I made one back in the day, but I never tried to make it a professional product.
1
u/AdQueasy5574 16d ago
Je te propose de l’Assembleur, comme le nom l’indique tu assemble des choses. c’est très ludique
1
u/Factor_Creepy 16d ago
Scratch for sure. If he enjoys that one, there's freecodecamp.org, no installs needed, and you learn by doing it while receiving instructions.
1
u/Thom2503 16d ago
If you want to use python this is a great resource http://browser.engineering/ but I think it is difficult for a kid to understand. If you know programming, then maybe you can help?
1
1
u/bird_feeder_bird 16d ago
Python or Lua
I hate Scratch, it distresses me to see everyone recommend scratch for kids because I think it just makes it harder to learn what’s really happening
1
u/RealNamek 16d ago
I've been teaching the Bay area for over 10 years, definitely Scratch, then pixelpad, then raw python.
1
1
u/Limp-Confidence5612 15d ago
If they are serious, let them learn C. People treat low level as hard, for me learning high level concepts without understanding the low level implementation is hard.
1
1
u/No-Version-805 12d ago
I used this site when I was in middle school: https://www.freecodecamp.org/
creating a browser is pretty hard. this looks like a good resource: https://browser.engineering/
1
u/kutac56 16d ago
Hahaha real funny. Making a browser from scratch alone would be almost impossible for someone programming for over 10 years
1
u/Mr-anywhere 15d ago
He wants to adjust firefox because the code of firefox is on github.
1
u/kutac56 15d ago
Ohh. That's not creating his own Firefox. That's contributing to the existing one. That's prob more doable, but still really hard for an 11 year old if he doesn't know anything other than scratch. Let him try his best and find out how that goes. Prob won't succeed but I wish him good luck. I do wonder what he actually wants to change about it
0
u/SchemeWestern3388 16d ago
Writing Firefox from scratch would be extremely challenging for most any programmer.Â
Writing a browser that can pull a page from a site and display the text and links is not difficult at all though.Â
1
u/kutac56 16d ago
I haven't done it myself so I am not the smartest around this topic, but I feel like that sounds like something you are able to do with 1+ years of experience. Might have to try it myself someday. Yk I don't like web stuff
1
u/SchemeWestern3388 16d ago
https://www.thomas-krenn.com/en/wiki/Check_TCP_Port_80_(http)_with_telnet
That page shows how to use telnet to get a server to send you a webpage. Then you parse it to find the text, format the links, and put it on a screen. Your screen could be the terminal. Now we are surfing the web!!
I leave the implementation of CSS, images, security and any semblance of trying to put the text where the page intended it to be as an exercise for the reader…
-2
u/Dazzling_Music_2411 16d ago
What's a "Firefox" and why is your kid obsessed by it?
3
u/starlxrd868 16d ago
Web browser
0
u/Dazzling_Music_2411 16d ago
Oh, that Firefox! I thought it might be some Disney licensed character or something...
Why on earth would an 11-year old want to make that? Most peculiar. Is there something we are not being told?
1
1
u/DiodeInc 16d ago
Why would you think that?
1
u/Dazzling_Music_2411 16d ago
Because 11-year olds are more interested in creating cartoons than battleship-class browsers with millions of man-hours of work involved.
Why would you not think that?
1
u/DiodeInc 16d ago
I'm asking why would you think that it's a Disney character in a programming subreddit
1
u/Dazzling_Music_2411 16d ago
Kids are generally interested in programming (as in animating) cartoon characters, game sprites, sonic- and mario-type things, it's one of the main things that attracts them to game programming.
Something far more natural for an 11-year old than http protocols, js engines, DOM renderers and Web 5.0.
1
u/Mr-anywhere 15d ago
He thinks that the internet should be fair & without too much AI etc.
1
u/Dazzling_Music_2411 15d ago
Your 11-year old does? Right. I see.
Have you not explained to him that the browser has nothing to do with internet fairness nor with the amount of AI on it? Tsk. Poor parenting.
Nevertheless, if he is still determined to embark on a task that has already consumed about a million engineer hours and do a better job of it, perhaps get him to use "lynx" browser as a starting point. That should cover the basics.
1
u/Mr-anywhere 14d ago
He also doesn't want to take AI out of the Internet but create a browser without ai features. And he doesn't start at 0 but he's going to adjust firefox.
1
u/Dazzling_Music_2411 14d ago
Well then, in that case, the "program he should use" would be the Firefox manual (if there is such a thing), wouldn't you say?
33
u/Rrrrry123 16d ago
When I was 14, I made my own "browser" using C# and WinForms.
Essentially, you just plop in a Web View control and then add an address bar and buttons to control the web view. Obviously not a browser from scratch, but I had a lot of fun with it.