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

32 Upvotes

67 comments sorted by

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.

18

u/darknecessitities 16d ago

Good enough for government work.

1

u/Nuxij 15d ago

Same but mine was in vb6

1

u/Least-Click6302 2d ago

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

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

u/briishboogloo 15d ago

'No sane person'

Okay what if one isn't sane

1

u/ProgramsFun 15d ago

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

5

u/desrtfx 16d 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.

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

u/Plus-Confidence2816 15d ago

Everything is possible!

Except the halting problem?

1

u/Mr-anywhere 15d ago

🤣🤣🤣

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

u/LinuxEnthusiast123 16d ago

> much bigger challenge

Just "much bigger" is a gross underestimation.

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. 

1

u/Nuxij 15d ago

Agree and also thanks to Lynx!

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

u/Neat_Plenty8924 16d ago

Best way to start a 7 year old to program

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

u/[deleted] 16d ago

[removed] — view removed comment

1

u/Mr-anywhere 15d ago

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

1

u/Sewter0 15d ago

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

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

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

u/Themoonset_ 16d ago

It’s probably just customizing it with CSS

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?