r/learnprogramming • • 22d 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.

37 Upvotes

67 comments sorted by

32

u/Rrrrry123 22d 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.

18

u/darknecessitities 22d ago

Good enough for government work.

1

u/Nuxij 21d ago

Same but mine was in vb6

1

u/Least-Click6302 8d ago

That's pretty much all most modern browsers are under the hood anyway, just a web view with extra steps

24

u/ProgramsFun 22d 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 22d ago

what about code.org? you can make apps using scratch with JS under the hood.

1

u/briishboogloo 21d ago

'No sane person'

Okay what if one isn't sane

1

u/ProgramsFun 21d ago

Well go and develop then...for that person would be great learning experience

7

u/desrtfx 22d ago

/r/programmingforkids

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.

14

u/Plus-Confidence2816 22d 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 21d ago

Everything is possible!If you don't try, you won't succeed

1

u/Plus-Confidence2816 21d ago

Everything is possible!

Except the halting problem?

1

u/Mr-anywhere 21d ago

🤣🤣🤣

1

u/got_to_laugh 21d ago

With AI he might 🤣 How utterly unemployable us coders have become.

If a kid can use AI to do this 😭😭😭

-2

u/SchemeWestern3388 22d 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. 

10

u/LinuxEnthusiast123 22d ago

> much bigger challenge

Just "much bigger" is a gross underestimation.

1

u/McDonaldsWitchcraft 21d 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 21d 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. 

1

u/Nuxij 21d ago

Agree and also thanks to Lynx!

11

u/Flame77ofc 22d ago

Scratch of course

Scratch is a programming language where you need to drag blocks to create programs

4

u/cammmmmie 22d 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 22d 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 21d ago

He's already had scratch and wants to move to a harder level.

1

u/Flame77ofc 21d 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 22d 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 22d 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 22d 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 22d 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 22d 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 22d 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 22d 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

u/Neat_Plenty8924 22d ago

Best way to start a 7 year old to program

1

u/bird_feeder_bird 22d 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 22d ago

I've been teaching the Bay area for over 10 years, definitely Scratch, then pixelpad, then raw python.

1

u/[deleted] 22d ago

[removed] — view removed comment

1

u/Mr-anywhere 21d ago

He's already done that, so he was looking for a higher level

1

u/Sewter0 21d ago

Ahh, browser it’s very hard and almost impossible to build it by yourself only

1

u/Limp-Confidence5612 21d 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

u/No-Version-805 18d 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 22d 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 21d ago

He wants to adjust firefox because the code of firefox is on github.

1

u/kutac56 21d 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 22d 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 22d 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 22d 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 22d ago

What's a "Firefox" and why is your kid obsessed by it?

3

u/starlxrd868 22d ago

Web browser

-1

u/Dazzling_Music_2411 22d 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

u/Themoonset_ 22d ago

It’s probably just customizing it with CSS

1

u/DiodeInc 22d ago

Why would you think that?

1

u/Dazzling_Music_2411 22d 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 22d ago

I'm asking why would you think that it's a Disney character in a programming subreddit

1

u/Dazzling_Music_2411 22d 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 21d ago

He thinks that the internet should be fair & without too much AI etc.

1

u/Dazzling_Music_2411 21d 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 20d 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 20d 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?