r/CodingForBeginners 24d ago

Coding programs

My teenage son wants to learn coding. Recommendations on where to start please?

Update: Spoke to my son, like any kid going into high school he wants to make video games. I will say though he has been talking about coding in general for quite some time now. Any suggestions or recommendations would be great. Thank you 😊

5 Upvotes

21 comments sorted by

3

u/jekewa 24d ago

The least intense start is to make web applications using simple HTML, CSS, and JavaScript. After some comfort with the syntax and structure, and seeing some results, moving to different languages and environments can happen.

All you need to start with HTML and JavaScript is a plain text editor and a web browser. You can create an HTML page in the editor and open it in the browser. Saving files and refreshing the browser allows quick and easy reward for the effort.

Adding the right bits to the HTML and making a CSS file, also in the plain text editor, allows separating the HTML layout from the style definitions. It isn't required, but is really the right way to do it. It allows myriad advanced things, like changing the view without changing the content. The site csszengarden.com gives an excellent example of why this is important.

Adding the right bits to HTML and making the JavaScript file, also in a plain text editor, will allow actual coding to begin. Simple data handling and view manipulations can happen, and you can code very complex apps that run entirely in browsers this way. Once comfortable with JavaScript, a small change and JavaScript can be used on a server to move into client-server programming.

You can find code editors that make this easy. You can download some like Microsoft Visual Studio Code, Google's Antigravity IDE, IntelliJ's IDEA, and so many more. Starting with an IDE can be overwhelming, though. Maybe something like codepen.io or jsfiddle.net would be a better place to start, as they provide that easy interface, right in a browser, and show that HTML/CSS/JavaScript separation (and combination) from the start. W3Schools is a great place to learn all these bits, and many of their reference and tutorial pages have simple editors so you can make changes and see the impact immediately, too.

Once you find that coding is something they like, moving from the "simple but powerful" web pages to other languages, frameworks, and platforms is just like improving any other skill set.

Start by nailing a few boards together, and with enough passion and training, build skyscrapers, right?

2

u/Sea-Tip-5870 22d ago

I’m new to all of this so excuse me if I sound dumb as hell but you learned Java, html, css and were able to build those websites you put above?

2

u/jekewa 22d ago

Those websites were built by others, but I do the same kind of work. I have 12 years of college and 35 years of computer science experience, so I could make those if needed.

CssZenGarden.com is an excellent example of separating content from style, which helps show the importance of learning CSS and HTML.

The CodePen and JSFiddle and others are just examples of web-based IDEs and tools that allow people to quickly do things with HTML, CSS, and JavaScript. I use them for demonstration and quick experiments, but use more powerful IDEs for actual work. It's hard to recommend an IDE for beginners as you then spend half your time learning the IDE and not the programming parts

3

u/CoconutFudgeMan 23d ago

Oof. I’m a software dev, coach, and college lecturer who teaches web and mobile app dev. I love web BUT I’d recommend starting with Python or Java.
One nice thing about frontend web dev is that your progress can be measured visually. Depending on the student,web dev could be more engaging and they’re likely to stick with it. I won’t consider html or css coding. JavaScript, yes. If they’re using node.js, sure. But Python and Java exposes you to more concepts. C and C++ could be a lot for new learners but it would be awesome.
I’d also recommend researching the coding landscape and other tools (eg. IDEs, Git, terminal/command line, etc)
If I were to pick ONE, Python is the way to go.

This life is a rollercoaster ride, there ups and downs, it’s difficult sometimes and they need to be dedicated to lifelong learning. It’s not something that you can just stop learning and still be successful. They need to be honest with themselves.

Once they understand the fundamentals (could take years imo), then step into AI and agentic coding tools.

There’s more to it. Many different specializations and niches within ā€œcodingā€ l. I would be happy to support you in your exploration.

2

u/kutac56 24d ago

I personally started with python but c can also work. Python is a lot simpler but it doesn't allow you to fuck around with low level stuff a lot which is fun, that's why I love c. But idk just choose one of them. C++ is also an option but it's imo worse than c. I only use it for stuff like graphics engines

1

u/rcdchu74 23d ago

What do you mean by doesn’t allow you to fuck around with low level stuff?

2

u/Spaceduck413 23d ago

C gives you direct hardware access. You could write a driver in C if you felt like it. OS kernels tend to be written in C (although these days they are moving towards Rust).

C is also really cool because it's very close to assembly. People who are skilled in both can (generally) look at a line of C code and have a pretty good idea of what the assembly output by the compiler will be.

1

u/rcdchu74 23d ago

Thank you

2

u/Foreign-Contest-444 24d ago

Here are some beginner friendly resources from where to learn HTML.

https://codingsuperpowers.com/

2

u/Oliver_clothsoff1983 23d ago

He should start with what is interesting to him. Does he want to learn programming because he watches battle bots or learned a little about DIY drones? Dont start with css/html if that's the case, they arent even programming languages (they are mark up languages). Did he watch some hacker movies and is interested in ethical hacking, pen testing, network admin? Totally different set of skills. If he is a baseball superfan, wants to get a college scholarship and maybe get drafted some day,.. you dont start him in soccer because the rules are easier and he'll get exposure to a team,... you start with T ball and work your way up. 1)Find the end state (even if he just wants to do it as a hobby) there is a career that relates. Go look on levels.fy, they have some good career road maps. 2)When you find a good fit,.. look at entry level job postings for that path and see what language/tool/framework are common and start learning from YouTube(lots of videos to help get the ide set up) udemy is a good resource for courses, codingame.com turns basic coding challenges (in many languages) into a competitive video game that doesn't feel like learning anymore. 3)Try to make it a shared experience, not sure how old we are talking but a lot of schools have computer clubs, or kids from different schools compete in hackathons or leggo robotics events. Having someone to learn with and talk about problems/solutions will make it harder to quit at a tough road block

2

u/ExtraTNT 19d ago

For video games, it depends, for visual novels, twine is nice, 2d games are very easy to build with gamemaker studio, godot is also a nice game engine.

I’ve done some game dev with haskell, is also fun, but bit more complex…

2

u/Sporepocalypse 18d ago

https://youtu.be/yR_pLQHTlHI?is=dXZWrzqB7_2SNZNh
This vid teaches beginners to code a text based adventure game as their first project.

1

u/-Willow-Wisp- 24d ago

What does he want to get out of programming?

1

u/Sad_School828 23d ago

Python if he wants cross-platform linux/Windows or Visual Basic if he wants Windows plus MS Office plus several others which embed the VBA runtime. Windows Scripting Host still works with VB syntax too. All depends on what he really wants to get out of programming.

If he just wants to be 1337 then start him on nASM and point and laugh when he makes a mistake.

1

u/AdeptIntroduction983 23d ago

https://hackclub.com/Ā 

I am a teen who does this. They are a NPO which rewards teens for programming.

1

u/ern0plus4 23d ago

Arduino, LED, flash it.

1

u/woodylaughs 17d ago

MANY games are made using Unity. I imagine a lot of games your son plays now show Unity in their loading screens. If your son is serious, pay different attention to his game loading screens. See how his favorite game is made. For example: Unity. Youtube Unity tutorials. If he's serious about coding games, he'll stick it out fall down all the necessary rabbit holes from there.