Intro to Coding/Programming

I want to learn this but don’t know where to start. What’s the introductory level (more or less) to this so that I can get started?

Don’t know if this would be any help, but I stumbled across:

Top 10 websites to learn coding (interactively) online

I’m not sure what that list means, when it says that Scratch (which incidentally was going to be my suggestion) is “not about programming”. You don’t type out the commands, true, but that’s an almost-irrelevant detail to programming itself. Of course, all of the major professional programming languages used typed-in commands, so you’re going to have to learn that eventually, but it’s much easier to learn that if you already know programming.

When I was a kid in the mid-80s my brother and I learned BASIC. It’s a good introduction to the idea of programming. It’s simple, for the most part it’s made up of normal words you already understand, and you can make the learning curve as slow and gradual or as steep as you want. A lot of “modern” coders love to shit on it, but it’s highly likely they all started on BASIC themselves.

I’ve bought three copies of this book and given as presents.

I have a copy for myself too. Very easy and practical beginning programming book.

The book uses Python. A good beginners language.

https://automatetheboringstuff.com

I bought my copies on Amazon

Moderator Action

While the OP can be answered factually, I think this thread will do better in IMHO where folks can give their opinions on the various options and can share personal experiences as well.

Moving thread from General Questions to In My Humble Opinion.

One important question is what is your eventual goal? Do you just want to be able to hack around with some code to do some stuff for yourself, or is this maybe something that you will use later in your career? Are you trying to hop into a career of Windows type programming eventually?

Python is taught in a lot of schools, but python experience is almost worthless if you want to become a typical Windows programmer (if there is such a thing). You need to steer towards the Visual Studio approach to things if you want to get into that, and something like hacking around with java script might be better to start with since it’s closer to the languages that the Windows folks usually use today.

BASIC was the way they taught beginners in the 70s and 80s, but I personally wouldn’t recommend it these days. BASIC teaches you procedural programming, and most folks prefer object oriented types of programming these days and frown on procedural stuff (one exception is embedded programming, which is part of my job, which is still very procedural, but that’s definitely a niche type of programming).

Here are a couple of articles you may find interesting. They discuss some of the more common beginner languages these days.

https://www.codementor.io/learn-programming/beginner-programming-language-job-salary-community

https://coderdojo.com/news/2015/03/20/top-5-programming-languages-for-beginners/

A lot of the recommendations are similar between these articles.

Programming/Coding is a giant bucket of possibilities.

As the last poster suggested, a lot depends on what you are wanting to do with it.

I started out as a programmer with BASIC and Pascal, but went the Database route and have not done much of the VB/VS stuff.

I do a lot of coding within the database architecture, but I would not really consider myself a coder any longer.

Today there are many different areas.

Apps for smart phones
Windows apps
Mac Apps
Web site design

The list goes on and on.

Are you wanting to do this for fun, for a job, could you narrow down your view?

In college I was a Computer Science major and I went for an interview for an internship and was asked “What did I want to do?”, I told the interviewer “I want to program.” He asked me to be more specific. At that time I had no idea of the myriad areas available, I just knew the generic “programming”.

Focusing your questions will help dramatically in the quality of answers that can be given.

Java is considered the standard in high schools - the new BASIC? Except it seems like it is moving to python unless you are on the AP path. I have also seen some completely worthless languages being used.

Javascript is used in web programming.

IMHO: the best language to start learning is ANSI-C. If you learn this then how to do objects are set for most programming tasks.

C has a special place in my heart as well, but I don’t know if it’s the best thing to suggest for beginners. There’s a lot of cognitive overhead with things like types and memory management that can really get in the way of “here’s how you make the computer do stuff.”

You do have to learn that stuff eventually, of course, but I think it’s better for people to get started in a high-level dynamic language so they can accomplish some basic things quickly, then start diving into the nuts and bolts if they’re still interested. Python, Javascript, and BASIC (whatever flavor of the month) are all good choices for that.

One criterion might be to ensure your enthusiasm grows, rather than wanes. Look at sample pieces of code in the languages you’re considering and ask yourself
Which language(s) look like they’d be fun to write code in?

Call me a pervert, but I used to write much of my code in machine languages because I liked machine code. Machine languages have a crisp simple deterministic nature. (I ended up loving C and writing in it whenever possible becuase it has this same good quality.) But others feel differently. You might prefer instead the beauty of a language like Prolog. Or SQL might appeal. Or whatever.

By contrast with simple deterministic languages, some languages seem abstruse or ambiguous; indeed some languages almost seem to pride themselves for their ambiguity!

However what I’m calling “ambiguity” might be viewed in a better light. The main thing is, especially as a beginner, to Choose a Language that You’ll Enjoy.
(Worry about selling your services later — once you’re a happy competent programmer you’ll find it relatively easy to learn a 2nd or 3rd language.)

I teach an Introduction to Programming class at a community college, and the second half of the semester will be using this book (starting next week). I hope it goes well! Half of the students are in Computer Science/Programming, and half are in Network Administration. With the Automate the Boring Stuff book, I’m hoping I’m giving them a reason to use the language after the class ends. So, find the reason you want to learn programming and see if this book can answer your needs.

The first half of the semester was taught using Scratch, so students can get used to the ideas of loops, if-statements, variables and procedures, without having to memorize lots of convoluted syntax (that’s what the Python part of the course is for!) They do a project for their midterm, and some really get into it, even the non-programming students.

We then use MIT App Inventor 2 to create an Android app. The format and layout is very similar to Scratch, but provides lots of functionality in concise parts. If you’d like to create an Android app, take a look at this. I told students that what we did today in two hours is equivalent to 12 weeks in my normal Android I class.

If creating a smartphone app is appealing, but you’re in the Apple camp, look at the Swift Playgrounds, which is similar to the MIT App Inventor in that there’s very little typing. I haven’t played with it much, but it looks like a game that teaches programming (in Swift) and suitable for kids. However, never let “kids” or books with “for idiots” in their title turn you away from using these resources.

The toughest thing, is to find someone who teaches what you want to learn, in a way that is compatible with how you take in information.

For me, it’s important to know WHY I’m supposed to do things. So when I tried to learn programming, I had to look a long time, to find a writer/teacher who explained things the right way.

Jesse Liberty was my solution. I suggest you scan a number of different books about it first, to find someone who writes the way you think. It helps a ton.

I got started with and intro to C class in college but had difficulty with it. But I still want to learn what to do with it because I love computers. Although to be honest I wish I knew more about them, I just love working with technology

Do it in Haskell. Everyone else is trying to deceive you.

I’m trying to folllow this but there is a lot of technology terms that I don’t really understand.

Are you learning to eventually get a job or are you learning to learn?
If the former, it might pay to find a cheap community college class. That gives you something to show an employer besides the claim you taught yourself a language.
I used to get a lot of resumes, and Python was by far the most popular language on them. I did a lot of Perl but I just taught myself some Python to use a good Python module for a project. Another advantage of Python is that it is free - not just the interpreter, but also lots of tutorials and books are free on the web.
One more datapoint - I went to the programming section of my local Half Price Books. There were lots of Perl books, and Java books, and Javascript books - but no Python books. Looks like everyone is keeping them.

I started on machine language. Machine language, not assembler. And I still shit on it. Didn’t Dijkstra say that BASIC was a disease?

Ah - not quite

[QUOTE=Prof. Dijkstra]

I think of the company advertising “Thought Processors” or the college pretending that learning BASIC suffices or at least helps, whereas the teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery.
[/QUOTE]

Alas I no longer have the issue of SIGPLAN Notices where he trashes crappy languages.

It’s honestly a bit of both. Ive always wanted to learn how and make a career out of it, working with technology, computers mostly.

It seems so arcane so that’s why I want to know

One of my professors in graduate school said that machine language made him understand programming.