CodeNewbie Community

loading...
Cover image for Where Does Everybody Begin Programming?

Where Does Everybody Begin Programming?

Matt C
・2 min read

I came across a question recently. In general it said,

I want to learn programming, BUT Where do I begin?

I thought back to teaching my grammar-school kids. The pre-teens and teens I saw craved deeper understanding of computers. I sent some to Scratch, and some children picked that up quickly.

Realistically, they did not pick it up right away. The children had tons of questions and problems, but they were not intimated so easily by it. To me this was key to learning.

Still, other students had found making web pages fun. Even 10-year-olds could build simple single web pages adding pictures, different colored print, etc. The message here was if 10 year-olds can do it, start there!

Start with HTML & CSS!?!

Even if you don't know anything about programming, HTML is not complicated. HTML concepts won't get you frustrated or overloaded right away. CSS has its moments but overall can be understood by teens. HTML & CSS are (IMHO) an excellent place to start. They are fundamental skills.

Everywhere I lived, there was usually a free coding meet-up. These groups were usually operated by self-taught coders turned teachers willing to share their know-how. I have seen Meet-up groups with people ages 12 to 60 YEARS-OLD. Meetup.com has loads of computer clubs.

Seek them out

Once in a while, I would find people say, 'You have to start with Javascript, C, Python or X'. To which I still say, you "gotts-ta" know some HTML and CSS. You won't be left behind. You can learn the HTML & CSS basics pretty quickly, THEN move on...

Try: ​freecodecamp.org

What? Don't like F.C.C.? Ok, find another site. There are tons. Just don't run out and spend 10K on a programming Bootcamp yet. Look around, watch Youtube, read dev.to or blogs, buy a book or two.

Then when you have more questions, come back and keep asking.

Discussion (21)

Collapse
perpetual_education profile image
perpetual.education

We feel like you have to start out even before HTML and really get down the point of it to begin with. Here's our thoughts on that:

Totally agree with HTML and CSS first though. Without it / you can't build a website. PHP, and Rails - JavaScript are all creating HTML in the end... so, you'd better know it! These bootcamps are setting people up for failure by teaching Bootstrap and React right out the gate.

Collapse
perpetual_education profile image
perpetual.education

Collapse
mccurcio profile image
Matt C Author

Hi PE,
I don't know if I understand. What would you start with before HTML?
What would you call the 'point of it'?
Could you clarify?

Collapse
perpetual_education profile image
perpetual.education • Edited

Hi, Matt. We see that you are a teacher! Thank you for your service!!!

So, - it's always a work in progress... but we suggest that our students read "Don't Make Me Think" - before learning any HTML. We also talk about human memory and explore how we break down information. It's mostly subconscious - but it's key: value pairs.

"One day I went to the store to buy salsa" is a piece of content.

If you were to describe this piece of content (to the computer), how would you do it?

We force the students to think as if they were a markup language designer. That leads to a bunch of funny ideas. Sometimes they make up something just like "markdown."

Eventually - they all come to the conclusion that you need a "start" and an "end" to describe something. That's the same with every language.

CONCEPT { // start
    // description 
} // end
Enter fullscreen mode Exit fullscreen mode

At that point / we're also talking about those key: value pairs.

dev.to/perpetual_edu/baby-talk-for...

ELEMENT
  - type = "paragraph"
  - content = "One day I went to the store..."
Enter fullscreen mode Exit fullscreen mode

HTML is a language that is easy to pickup (by design) but it's also easy to emulate and to memorize it's visual look. At it's core, it's the same as every other language. It just looks funny.

Node {
    element: "p",
    textContent: "One day I went to the store...",
    id: null,
    classes: ['calm-voice'],
    styles: [],
    dataset: {
        theme: "light",
    }
}
Enter fullscreen mode Exit fullscreen mode

So - it may not be the fastest way to getting someone to "just learn how to type HTML" - but by building empathy for the user with a book like "Don't Make Me Think" - and by forcing the student to imagine creating their own language: we seem to be able to power through CSS, PHP, and JavaScript/DOM - because they'll basically already know the foundations of those languages now.

That's what is working for us so far!

Thread Thread
mccurcio profile image
Matt C Author

Just looked up "Don't Make Me Think". I will have to look it over.
I like your idea on discussing coding. Do you Teach? or ...
Care to talk on Google Meet some time?

Thread Thread
perpetual_education profile image
perpetual.education

I swear I responded to this !! But I must not have hit send! Ivy noticed it and said "you'd better respond!" ha!

Yes. We teach. perpetual.education

You can book some time to talk about here! : )

Thread Thread
mccurcio profile image
Matt C Author

The next several weeks are (all of a sudden) up in the air.
I will keep you in mind and will let you know soon.
TY

Collapse
codeguppy profile image
CodeGuppy - FREE coding platform for kids & teens • Edited

Learning / teaching programming differs with age. Approaching programming at a young age is different than at an older age.

For young passionate coders you can use an online platform as a gentle introduction into programming. I recommend (although I may be biased) to give the free codeguppy platform a try!

Collapse
mccurcio profile image
Matt C Author

Wow, I checked out Codeguppy. Really colorful and interesting basic topics.
Are you affiliated with it somehow?

Collapse
codeguppy profile image
CodeGuppy - FREE coding platform for kids & teens

Yes - I built it.

Thread Thread
mccurcio profile image
Matt C Author

Nice work.

Collapse
nehamaity profile image
Neha Maity

I agree that HTML and CSS are a great place to start. When I was 12 years old, I had fun playing around with the colors and format of a basic webpage. Demonstrating that power, especially to those who are younger will get them motivated. In high school, I joined FIRST Robotics. Seeing how the Java code that we worked on move various parts of the robot greatly contributed to my understanding. I subsequently was able to pick up Java and now it's the programming language I have the most experience with.

Starting with HTML and CSS and then tailoring your programming journey to your interests is a great way to begin.

Collapse
mccurcio profile image
Matt C Author

Is 'FIRST Robotics' a group OR did you join that before anything else?

Getting kids into computer is tough enough why start so difficult.

My other point (not really articulated here) is that spending time with HTML basics and CSS give you time to look around and see what you like.

Collapse
nehamaity profile image
Neha Maity • Edited

FIRST Robotics is an organization that has programs from K-12: firstinspires.org/ Seeing one way that programming could be applied helped my understanding. They have tailored programs for each age group. My high school had a FIRST Robotics club but many clubs that are a part of FIRST are independent from schools as well.

The summer between middle school and high school, I was put into a programming summer camp where I learned Python and I did not like it very much. FIRST Robotics was my first experience that was successful and members of all levels were involved. More experienced members helped out beginners. Now I'm brushing up on Python and like it much more.

I agree. With HTML and CSS, one can immediately see changes and results where as with other programming languages you need to work on more complex and advanced projects to get to that point.

Thread Thread
mccurcio profile image
Matt C Author

Thank you so much for the link.
It sounds like a great program. I would volunteer for the program in a heartbeat. ;)

Collapse
anitabe404 profile image
Anita Beauchamp

This is a really great question, and I'm struggling to give a simple answer. Personally, I don't like the "everyone should start with {x} programming language" advice because you can literally start with any language and be successful. Your success is more so a function of your current education level and your interests. When working with children, things like HTML and CSS are appealing because basic things like changing colors and fonts or adding simple animation really hooks kids.

When it comes to adults who have a high school education, you can almost start with any language. My first language was C and my second language was Java. I didn't try HTML/CSS until after I had already graduated from college. At the time, learning C was difficult, but I'm so grateful for it because it gave me a solid foundation in things that higher level languages tend to gloss over.

Ultimately, I guess my recommendation would be to expose people to different kinds of programming and let them get a sense of what they naturally gravitate towards. Some people really struggle with the command line. I, on the other hand, love it. You really don't know until you try.

Everyone is different and so there really isn't one way to begin. Rather, I'd ask "what do you want to build" or "what are you curious about" and from that choose a language that helps you do that. If a person doesn't have a preference, I'd start with Web Dev because there are so many free and low cost resources.

Collapse
mccurcio profile image
Matt C Author

Hi A,
Wow, A lot of good points here!

A. Your point on success being contingent on one's educational level is an excellent point. Funny, it makes perfect sense now that you say it, but it occurred to me only subconsciously before. I took a psych class once, and the jerk of prof. kept saying shite like "Past Success Is the Best Predictor of Future Success" and that pissed me off bc it seemed too rigid but had the ring of truth.

I don't know how many Meet-up web dev sessions I've been to and wondered how different things might be if some inner-city kid had better access to teachers and resources.

Since I have never taken C or Java, I can't say which is better over HTML/CSS. Not being a computer science student, I wonder what basic concepts I am missing. But I do believe that hitting kids (or adults? I don't know so much...) at the right time can make their little brains bend easily around all sorts of tricky topics.

But you are so right to say let kids or people gravitate to what they like.

Is this more of an aside or a discussion on education theory, don't know. ;)

Collapse
anitabe404 profile image
Anita Beauchamp

I get what your professor was trying to say, but I disagree with them. Mainly, past success is only a good predictor of future success if nothing changes (or only insignificant things change). Our world changes quite fast, and companies that were household names 20 years ago are forgotten today.

There's a lot that we can do to change outcomes for people. Your education level and interests guide how we can introduce you to programming. It only becomes a filter when we don't strengthen and increase the person's understanding. Although, it is difficult to compete with people who have a lot of/more experience with concepts you're unfamiliar with.

For me, there isn't a best programming language. Each language is a tool, and which tool you use depends on what you are trying to build. If you want to make a static web page, knowing C won't help you. HTML & CSS are the language of websites. If you want to program a microprocessor to perform a specific task, then knowing HTML & CSS won't get you far. There are some things that are common between languages, variables, arrays, dictionaries, looping, conditionals. Having a good understanding of these topics helps you pick up new languages faster.

HTML/CSS is often a gateway into software development and engineering because it's easier to make it fun. However, I think you could grab people's attention with other types of languages as well. C and Java hooked me just fine. πŸ˜‚

Collapse
holdenmad profile image
Holden

Completely agree. I also found The Odin Project extremely help for starting to read documentation, learning to use Command Line/Terminal, setting up an environment, etc. Those kinds of things aren't really covered in FreeCodeCamp. Both of them together are what really helped me start.

Collapse
anitabe404 profile image
Anita Beauchamp

Yes. I really like that The Odin Project encourages you to read documentation and create local environments. These are very important skills and what will ultimately be the difference between becoming a professional developer that can contribute to projects (on a team or for a company) vs someone who stays in the novice category.

Collapse
andrewbaisden profile image
Andrew Baisden

I started with teamtreehouse. These days I use Udemy most.