Programming for beginners

Technology, computers, sciences, mysteries and phenomena of all kinds, etc., etc. all here at The Loresraat!!

Moderator: Vraith

User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Programming for beginners

Post by Fist and Faith »

Is there a place/method/site/book any of you would recommend to begin learning programming? I know virtually nothing about it. I used to have a couple of sites (GeoCities, and my own domain just for fun once), so I know how html works. (Not that I remember it, since it's been years.). But I don't think that's really considered programming, and it's not what I'm after.

I know there are many languages. C is one I hear about a lot. But I've heard of others. C++ is different? Ruby? Java is also a language? But where and how the heck to begin?[/img]
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Post by Fist and Faith »

I went to highschool with this guy:
www.amazon.com/gp/product/0672337398?ie ... ttom_links
Be says Java is needed for Android and W3 is a good place to go to learn Java.
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

I should answer this.

When I was a kid, we learned BASIC as a way to start to get a feel for programming. I kind of wish it was still prevalent. Because an object-oriented language like Java has a really tough learning curve in that there are a lot of concepts you need to understand in order to even get started. BASIC is nice because it eliminates half of that overhead. You can learn about variables and data types and flow of control and subroutines, without having to understand classes and objects and overloading and container files.

So my recommendation, be it ever so out-dated, would be to pick up a free BASIC interpreter, like "Just Basic", and grab an online tutorial. Get comfortable with BASIC, then learn Java or whatever.

However, failing that, I would definitely recommend learning Java over learning C, C++, C#, and over learning a scripting language like python or perl. You can do everything you want for free. There's lots of support out there (examples, etc). And when you know Java you can (almost) write Android apps. (I am learning this now.)

This will entail editing files (with java code) and executing commands at the "command prompt" (to package and execute your code). This is really all you need, but it's a really primitive way to get things done.

Programming in java really entails getting something called an IDE (Interactive Development Environment). This lets you edit files, but the editor "knows java", and it highlights your syntax, and shows you your programming errors as you type. It also lets you launch your application in a debugger, so you can step through your code. Don't worry if this doesn't make sense yet, it will very soon. I like eclipse, but other people like NetBeans. These, too, are free.

If you were using C or C++, you'd need an IDE as well. BASIC -is- one, and you don't even realize you need it.

There are lots of bulletin boards around for asking beginner questions, and there are lots of on-line getting started guides. You shouldn't have a problem.

I haven't seen what W3 Schools has for learning java.
.
User avatar
ussusimiel
The Gap Into Spam
Posts: 5346
Joined: Tue May 31, 2011 12:34 am
Location: Waterford (milking cows), and sometimes still Dublin, Ireland

Post by ussusimiel »

I saw this before, but didn't want to add my two cents until someone with more experience and knowledge weighed in.

I've used W3 Schools as a resource for practising and checking what I've learned. Here's a link to their Java Introduction page. On it they also provide a link for some of the IDEs that wayfriend mentioned. There are plenty of forums for coders and developers (e.g. stackoverflow). I would advise joining at least one of these. The single best resource you will have as a coder is the Internet.

I agree with all of what wayfriend has to say because it fits very closely with my own experience of trying (and failing) to retrain as an app developer. Unless you have a background in coding (or have an exceptional aptitude for it) app development is far from easy.

Apart from the learning the actual language itself (I did some C#) you will also need to learn some (or all) of the following technologies: HTML5, CSS, Javascript, and SQL (which means understanding databases). To be comfortable using these technologies it is essential to have mastered the fundamentals of programming. wayfriend's suggestion of starting with BASIC is a very good one.

Also, languages like Jave, C++, C#, VB etc. are quite conceptual, and something like object-oriented programming is not picked up overnight. (Not to mention a software architectural pattern like MVC.) There's a reason that experienced developers are well paid, and also a reason why there are degree-level courses for computer programming. Conservatively, I would say that to become a competent app developer takes at least three years of full-time study.

That said, if it is something that you are doing out of interest with no other pressure on it, it can be fun putting the nuts and bolts of an app together. Getting the client-side looking good, testing and debugging the server-side. Once you get used to the IDE, there's a nice sense of satisfaction of opening it up and getting stuck into the inner workings of the app as you adjust and tailor it to do what you want. I only ever did a couple of very basic ones and didn't ever do a mobile version, but I still enjoyed it.

The best of luck with it, Fist, hope you make a mint! :-)

u.
Tho' all the maps of blood and flesh
Are posted on the door,
There's no one who has told us yet
What Boogie Street is for.
User avatar
Avatar
Immanentizing The Eschaton
Posts: 62038
Joined: Mon Aug 02, 2004 9:17 am
Location: Johannesburg, South Africa
Has thanked: 25 times
Been thanked: 32 times
Contact:

Post by Avatar »

I learned BASIC and then gave up, realising that keeping up with the tech would be a lifetime commitment. :D

Agree with WF about Java being the way to go. (There's demand for php coders as well, but Java is unfortunately probably the way of the future. :D )

--A
User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Post by Fist and Faith »

Indeed, wf, you are the one I most expected to answer. Heh. And thanks! I hadn't considered BASIC. And, just so you know the level I'm at, I have no idea what "object" means.

Yes, u, it's all for fun, and to have a better understanding of this extraordinarily important part of our lives. An IT job is likely not gonna happen. But Maybe I'll be able to motivate my kids in these areas, so they do more than simply play Minecraft.
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
User avatar
Hashi Lebwohl
The Gap Into Spam
Posts: 19576
Joined: Mon Jul 06, 2009 7:38 pm

Post by Hashi Lebwohl »

If I decide to pick up programming again, which I really should, I will do it the way I always do--get a book and learn it on my own.
The Tank is gone and now so am I.
User avatar
Vraith
The Gap Into Spam
Posts: 10623
Joined: Fri Nov 21, 2008 8:03 pm
Location: everywhere, all the time
Been thanked: 3 times

Post by Vraith »

Fist and Faith wrote: Yes, u, it's all for fun, and to have a better understanding of this extraordinarily important part of our lives

Oh, for fun...I thought it might be so you can have some understanding of our Robot Overlords.

Seriously, though---programming is one of those weird fields.
We're not very far away from the point where only the most extreme brains can understand it...one in several millions, and none of them will be able to get it all.
At the same time, anyone will be able to do it. Kinda. Like:
"Siri, write me an app."
"Ok, Dave, what would you like your app to do?"
"Oh, I don't know---terraform Venus?"
"I'm sorry, Dave, I have already written 1.6 million apps covering all aspects of that project. The first colonists will launch within the year.
The mining of the moons of Jupiter should become profitable in the near future. Would that be of interest to you?"
"That would be great! It's a beautiful planet!"
"Your app is ready, Dave. I have taken the liberty of naming it "Discovery One" in honor of a film concerning Jupiter."
[spoiler]Sig-man, Libtard, Stupid piece of shit. change your text color to brown. Mr. Reliable, bullshit-slinging liarFucker-user.[/spoiler]
the difference between evidence and sources: whether they come from the horse's mouth or a horse's ass.
"Most people are other people. Their thoughts are someone else's opinions, their lives a mimicry, their passions a quotation."
the hyperbole is a beauty...for we are then allowed to say a little more than the truth...and language is more efficient when it goes beyond reality than when it stops short of it.
User avatar
ussusimiel
The Gap Into Spam
Posts: 5346
Joined: Tue May 31, 2011 12:34 am
Location: Waterford (milking cows), and sometimes still Dublin, Ireland

Post by ussusimiel »

Fist and Faith wrote:Yes, u, it's all for fun, and to have a better understanding of this extraordinarily important part of our lives. An IT job is likely not gonna happen. But Maybe I'll be able to motivate my kids in these areas, so they do more than simply play Minecraft.
Then the effort will be very worthwhile, Fist. While I failed to become a coder or app developer I have become very computer literate and so, much more comfortable with the technology that, as you say, now surrounds us.

One of the things I came to understand from my efforts is the 'literacy' part of the phrase 'computer literacy'. It is very much like learning a new language. It involves effort and immersion to even get to grips with the basics. Learning how to code and develop an app is a really good way to go about this because it involves just about all the technologies that we engage with everytime we log onto the Internet.

HTML, browsers, reading and writing to databases, networks, errors, bugs, web design, the difference between an app and a brochure website, cloud computing are among the things that working on an app can force you to develop a basic understanding of. We can have a vague idea what some or most of these are without really ever understanding them, and so when something goes wrong still be completely at a loss.

Once you have had a real go at learning how to code, frustration level with computers drops significantly, as you come to understand that most problems are not caused by the computers themselves, but rather by human error or expectations. Once you set a computer or a piece of software up correctly it will work. Set it up incorrectly, or leave something out, and surprise, surprise! it doesn't work!

I was recently talking with one of my nieces (she's 16) and I asked her where she thought the Internet was. She hadn't a clue. I have been in a data centre so I've 'seen' the Internet and know that it is mostly a network of banks of servers. I was chuffed that at my age I understood the technology that surrounds us better than my very tech-adroit niece :lol:

Enjoy the journey!

u.
Tho' all the maps of blood and flesh
Are posted on the door,
There's no one who has told us yet
What Boogie Street is for.
User avatar
Creator
The Gap Into Spam
Posts: 4865
Joined: Wed Jun 16, 2004 3:51 am
Location: Oak Ridge, NC

Post by Creator »

I started programming when I was 12. :) I learned Fortran at Boston Latin School.

I started programming professionally at the Federal Reserve Bank of Boston at 16 in Fortran, and then went to Cobol and several other languages. In 2001 I enrolled myself in web development training for fun to learn how these new fangled web languages worked! These days, as a Chief Information Officer - my staff doesn't let me program! :P

While Java is very popular, these days Java is somewhat a "legacy" language. And it is VERY complex. Microsoft .NET is more popular (the below link shows job trends for languages. You can see, Java - as a standalone language - is quite below .NET)

www.indeed.com/jobtrends?q=Java%2C+.NET ... aScript&l=

If .NET is the environment, you sill need to know a "programming" language. For that, I would suggest the easiest to learn is Visual Basic (or ASP - a Microsoft web development language somewhat like PhP.)

You also need to know basic Web Development elements that would include HTML5 (the "language" that webpages are written in); JavaScript (a scripting language used within HTML5 that is related to, but quite different from Java. It provides a lot of the "effects" you can see on webpages); and Cascading Style Sheets (CSS), a technique to control formatting of webpages.

Lots of Microsoft tools are available for free for personal learning and personal application development.

https://www.visualstudio.com/en-us/prod ... ss-vs.aspx

Enjoy!
He/She who dies with the most toys wins! Wait a minute ... I can't die!!!
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

Fist and Faith wrote:Indeed, wf, you are the one I most expected to answer. Heh. And thanks! I hadn't considered BASIC. And, just so you know the level I'm at, I have no idea what "object" means.
That's what I expect, and I mentioned it to make that point. A lot of programming is about programming WELL. And modern languages are designed around programming well (e.g. "object oriented"), and thus you need a firm background in programming well just to use the languages. Which makes it hard for beginners. That's where BASIC comes in. It's a language with no barriers to entry.
Fist and Faith wrote:Yes, u, it's all for fun, and to have a better understanding of this extraordinarily important part of our lives. An IT job is likely not gonna happen. But Maybe I'll be able to motivate my kids in these areas, so they do more than simply play Minecraft.
People already talk about how every kid should learn to program. It will be some part of almost every profession. So I think your instincts are correct. And personally I think it's fun and extremely creative.
.
User avatar
StevieG
Andelanian
Posts: 7201
Joined: Wed Dec 12, 2007 10:47 pm
Location: Australia
Has thanked: 24 times
Been thanked: 26 times

Post by StevieG »

wayfriend wrote:And personally I think it's fun and extremely creative.
It's definitely fun, and creative, and frustrating as all hell, and so rewarding when it turns out well, and teaches patience and discipline, and attention to detail in the extreme! And it can bog you down and make you lose track of time if you're an "attention to detail" type of person.
Hugs and sh!t ~ lucimay

I think you're right ~ TheFallen
Image
User avatar
Avatar
Immanentizing The Eschaton
Posts: 62038
Joined: Mon Aug 02, 2004 9:17 am
Location: Johannesburg, South Africa
Has thanked: 25 times
Been thanked: 32 times
Contact:

Post by Avatar »

ussusimiel wrote:I was chuffed that at my age I understood the technology that surrounds us better than my very tech-adroit niece :lol:
Thing is, the rise of GUI's etc. have significantly lowered the barriers to entry. These days people know how to use tech, but they don't know how to work it, (or how it works) if you see the distinction.

--A
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

NPR wrote:Computer software coding bootcamps are grabbing headlines lately. Two or three months of intensive training in writing code or analyzing data and – boom – the twentysomething on the cover goes from waiting tables at $20,000 a year to code warrior glory at $100,000 a year. Crash courses in software coding – “bootcamps” – are springing up all over. [link]
Posting because it goes to the ubiquity of programming.
.
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

wayfriend wrote:So my recommendation, be it ever so out-dated, would be to pick up a free BASIC interpreter, like "Just Basic", and grab an online tutorial.
To [finally] complete this thought:

Basic BASIC is all plain text. Later languages like Visual Basic added an ability to create windows and dialogs, but that's not what beginners need. So don't go that way.

I would recommend QB64, out of all the free BASIC interpreters I looked at. Get it here:www.qb64.net/ [Go to Windows tab, download the .zip.]

"Just BASIC" also seems nice, although it lacks the classic look and feel of those DOS 2.0 days. Get it here: justbasic.com/

As far as tutorials go, QB64 has a fairly good one, not too long, not to brief. Go here: www.qb64.net/wiki/index.php/QB64_Tutorials

And finally, a real interesting article about BASIC: time.com/69316/basic/

Anyway, with this you should be writing programs in an hour.

(Makes me nostalgic, looking at all this stuff. Makes me want to dig up an old game I wrote in BASIC, "Necromancer Bunny".)
.
User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Post by Fist and Faith »

Awesome! Thank you! I looked at a tutorial on YouTube, and got freebasic and fbide. But he kept making mistakes in the video, so I was going to look elsewhere.

I'll probably be asking how to make things work. Fbide keeps saying "Not compiled. Do you want to compile?". Which I guess it's necessary. But I'd think there's a way to make it compile without asking every damned time.
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

Yeah ... originally BASIC wasn't compiled, it just ran. But the drawback was you could only run it from inside the BASIC interpreter.

Compiling creates a .exe file that you can run all by itself. You can give it to someone and they can run it and never know it's written in BASIC. (Assuming Windows here.) It's nice, but an extra step. You seem to understand it, so I guess it's a no-worry.

QB64 compiles BASIC as well, but you just have to press RUN and it seems to do it all with no muss.

Haven't tried freebasic yet. I wish QBasic was still around. If you notice, all the BASICs out there advertise how they are compatible with QBasic. The world misses it.

Yeah, post anything that stumps you, I'll try to answer.
.
User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Post by Fist and Faith »

Why can't Q still be around?

Okay, here's a question. How do I open a .bas file so that I can see what it does, as opposed to seeng the code? Justbasic has samples, but they're of no value if I don't know what they do. I figured I'd copy & paste it into qb64 and hit Run or F5. If that should work, it doesn't. Each one highlights one line or another, and says that name already exists. (Or something like that. Not at my computer ATM.)
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
User avatar
wayfriend
.
Posts: 20957
Joined: Wed Apr 21, 2004 12:34 am
Has thanked: 2 times
Been thanked: 6 times

Post by wayfriend »

Fist and Faith wrote:Why can't Q still be around?
It's so old that it's not compatible with Windows any more. Microsoft hasn't supported it for over a decade. You can run it if you have a program that emulates older versions of Windows.

QB64 is supposed to be a QBasic replacement for a 64-bit operating system. But I tried to run an old program in it last night, and didn't get too far. It's supposed to be compatible, but there are some snags.
Fist and Faith wrote:Okay, here's a question. How do I open a .bas file so that I can see what it does, as opposed to seeng the code?
If I understand what you mean, I think what you want to do is execute the program by right-clicking on it in File Explorer and choosing some option.

The BASIC software you installed may or my not support that.

You can configure Windows to "open" files with extension .bas with any program you wish to. Sometimes you can right-click and choose "open with". Sometimes you have to go to Control Panel > Default Programs > Associate a File Type. But in the end you can select fbc.exe and configure that as the program to open the .bas file.

(I believe fbc.exe is the freebasic compiler.)

This may or may not work. Now when you open the file it will execute "fbc <filename>.bas". Not sure if that will work.
Fist and Faith wrote:Justbasic has samples, but they're of no value if I don't know what they do. I figured I'd copy & paste it into qb64 and hit Run or F5. If that should work, it doesn't. Each one highlights one line or another, and says that name already exists. (Or something like that. Not at my computer ATM.)
Well, you probably need to compile and run them from fbIde for them to work. Then you will see what they do. They may not be compatible with QB64 tho. It sounds like they aren't.

In QB64, it will highlight a line where there is a programming error, and won't let you run if there is one. So that's what's going on. It's a good program in FreeBASIC, but a bad one in QB64.

Welcome to the world of COMPUTER STANDARDS!

There is a BASIC standard that describes exactly how BASIC programs should be made EVERYWHERE. But every BASIC product has it's own extensions and idiosyncracies. Some of them are shared with other products, some of them are unique to one product.

What it means is that a very simple BASIC program will run anywhere. But any kind of sophisticated program probably makes use of special features peculiar to a specific BASIC product.

The art of taking a program that works in one environment and changing it so that it will work in another environment - such as taking a program that works in FreeBASIC and making it work in QB64 - or a program that runs on Android and making it run on iPhone - is called "porting". And it's a full time job for many, many engineers.

Hope this is useful.
.
User avatar
Fist and Faith
Magister Vitae
Posts: 25450
Joined: Sun Dec 01, 2002 8:14 pm
Has thanked: 9 times
Been thanked: 57 times

Post by Fist and Faith »

Ridiculously useful. Thanks again. I'll try running them through fbide tonight. (Which I deleted, so have to get again. Heh). And, of course, I'll try to learn some code.
All lies and jest
Still a man hears what he wants to hear
And disregards the rest
-Paul Simon

Image
Post Reply

Return to “The Loresraat”