It is currently Tue Dec 12, 2017 6:49 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 58 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Tue Jun 06, 2017 12:05 am 
Offline

Joined: Tue Feb 07, 2017 2:03 am
Posts: 262
The problem is, as you don't let know how to program, you don't yet understand how programming works ;)
C++ is not a forest language, its a very low level language. Asm is netrons, protons and electrons, C++ is organic chemistry, in order to do carpentry you first need to understand that you need 2 H and an O to make water, then you learn how to make Wood molecules then you learn how to put them together and add water to make it grow into a tree, then you cut it down, cut it, plane it, learn to mine ore, make steel and a nail, then you get to hammer it. At this point you might attempt a spice rack.
Also computers don't forgive, get something slightly wonky on your birdhouse, oh well its a little off, has a gap here, no biggie... 1 bit wrong on a computer could mean CRASH or worse still seemingly random behaviour.

Computers are illusions, its like the Matrix, there is no A key, there is just key number 26, and then it knows that key 26 = font number 64, and that each entry in a font is 8bytes, so it times 64*8, but then the font starts at 5000, so it looks up 5000+64*8, then it reads 8 numbers and copies them to the screen at 400. At no point did it understand that you have an A it can't comprehend A. Just as it won't know what a button is, or text, or a mouse, or keyboard... its all just a pile of abstraction we apply to numbers. And when you code you have to move a lot of numbers around.
Also computers have not changed in 50 years.. the computer you are typing on now is no different conceptually to a C64, it just faster a lot lot lot lot faster, but anything it can do a C64 can do too.

If you want to go down the Windows route I highly recommend any book written by Charles Petzold, his windows programming books are "the bible" when it comes to Windows, he has a very approachable style and talks about basic concepts and walks through things in great detail, so be warned his books tend to be 500 pages.
If you want something to get you a playground to play in with a high level language and the ability to get things moving, get a BBC Micro emulator, or a C64 or better yet a C128 emulator, they will boot into BASIC, and await your commands instantly and in the case of the 128 it will have SPRITE, DRAW-LINE and JOY and PLAY commands that will let you make music and move sprites and read joysticks, while you learn to input text and compare numbers etc. and there are pile of straight forward begin to code books here http://www.bombjack.org/commodore/books.htm
In that they will start with
1.) 10 PRINT "HELLO WORLD!"
then move on to
2.) 10 PRINT "WHAT IS YOUR NAME?":INPUT A$
20 PRINT "HELLO ",A$
which is the same thing as the c++ book, just a lot faster, on a much slower machine ;)


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 1:47 am 
Online
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1125
Location: Gothenburg, Sweden
Since the console really IS there, i see no problem using cout? I mean, you're most probably going to use it to output values to see if your code does what you expect it to, maybe write a few console-based tools.

oziphantom: is c++ considered a low level language these days? :shock:

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 2:59 am 
Offline

Joined: Tue Feb 07, 2017 2:03 am
Posts: 262
Manual Memory management, header and implementation files, having to know the difference between . and ->, c++ is a horror story you tell kids these days. I work with iOS devs, whom struggled with Obj-C and were flat out afraid of C++.I was actually running a "bug ninja" service, where they would hire me to fix their C++ code when they needed to mix it in ;) Compared to Python, Go,Swift, Ruby, JS, ReactJS, NodeJS whatever the new age mysticism is these days C++ is low level.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 4:36 am 
Offline
User avatar

Joined: Thu Sep 15, 2016 6:29 am
Posts: 455
Location: Denmark (PAL)
If you're looking relatively, C++ is low level compared to almost anything most professional programmers mess with today. But strictly speaking, C++ is of course, by definition, a high level language.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 5:36 am 
Offline
User avatar

Joined: Sun Nov 09, 2008 9:18 pm
Posts: 1013
Location: Pennsylvania, USA
Marscaleb wrote:
And THAT is what has been missing from programming lessons for the last twenty years. That is why people think "I want to make video games!" and then give up and drop out of their first class. These students don't get to build anything that they feel has meaning. They are taught how to do things they don't feel have purpose. And when right off the bat, you are trying to teach these kids to make programs that interface with a text-based console they probably didn't even know existed, then yes, you are failing in your teaching.


What did you think of Pico-8 ( see my post earlier in the thread)? I have high hopes that this, or a similar fantasy console may become the first "computer" anybody learns to program. So much ceremony and platform or language specific details can be dispensed with right off the bat, and you ONLY have to focus on programming concepts (and lua's relatively clean syntax). Just like many of us grew up on some form of BASIC. It seems to me this could immediately address your concern that students are presented with a lot of things they really don't care about when *just* trying to write their first programs. It cuts the crap.

*edit* Forgot to mention, they do seem to have an excellent forum and community built around their product, as well, which would address your OP subject.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 6:30 am 
Offline
User avatar

Joined: Wed Sep 21, 2016 8:55 am
Posts: 58
Location: Calgary.Alberta,Canada
Never heard of Pico-8 so took a look at the videos,GradualGames is is right that would be a great way to start programming.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 8:17 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2982
Location: Tampere, Finland
The $15 price tag of PICO-8 could be a significant deterrent for beginning programmers. There's a free (but not open source) alternative called TIC-80 at https://tic.computer/. Disclaimer: I have tried neither one.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 8:34 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1519
Location: Fukuoka, Japan
Well, you need to learn to walk before you can run :wink:

To show a windows on a screen is platform specific and requires to learn the intricacies of the API for the GUI of that platform and/or framework. When you start to learn programming you need to learn what are variables, functions, parameters, loops, memory management (pointers in in c) etc. Once you understand how to manage some data and understand some basic patterns then you can start to use a simple GUI framework to show a windows or something.

If a book is for beginner, for example c++, they won't talk about how to show a windows since it will be too specific for a platform and not c++ and will force the user of the book to get that platform. It may seems strange for a beginner but it make perfect since once you understand more about programming.

If I just want to learn how to use c++, as long there is some text output, you can learn on any platform. If you are on windows and want to use some UI framework then visual studio community edition in c#/vb is more than enough but you will need a book for that platform and won't learn about programming per se but programming for that UI framework.

So what is your goal? Learning to program or to learn a UI framework?

Programming has so many category of interest that asking a book for beginner can be quite vague actually! Beginner for what? Data processing/Big data/db? IOT devices? Windows/mac/linux/unix? win32/carbon? gtk+/wxwidgets or some other ui widget? shaders? opengl/directx/vulkan/metal? It can means many thing.

I guess on nesdev you can ask beginner question in the general forum and people with interest on the subject will be more than happy to help I think, once we clarify which beginner parts you are interested in.

So don't be shy, just ask!


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 8:47 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19335
Location: NE Indiana, USA (NTSC)
Banshaku wrote:
Well, you need to learn to walk before you can run :wink:

Unless you're Franklin D. Roosevelt. He ran for President of the United States after having polio that kept him from walking.

Banshaku wrote:
To show a windows on a screen is platform specific

What is the substantial difference among Qt for Windows, Qt for macOS, and Qt for GNU/Linux in this respect? Or among wxWidgets for Windows, wxWidgets for macOS, and wxWidgets for GNU/Linux?

Banshaku wrote:
Once you understand how to manage some data and understand some basic patterns then you can start to use a simple GUI framework to show a windows or something.

Unless an IDE has a graphical form designer with an option to generate empty event listeners for all the controls, and then the C++ tutorial has the user run code by typing it into the listeners. For example, a tutorial might have the user make an input field in the form designer, process input inside the field's change listener, and write output by setting the value of a text field in the same form. I've read a Visual Basic book structured like this.

Banshaku wrote:
So what is your goal? Learning to program or to learn a UI framework?

Both, round-robin. This means a little bit of programming, a little bit of a useful UI framework, a little bit of programming, a little bit of a useful UI framework, and repeat. C++ at console is the same way: a little bit of programming, a little bit of the <iostream> library, repeat.

Banshaku wrote:
Beginner for what? Data processing/Big data/db? IOT devices? Windows/mac/linux/unix? win32/carbon? gtk+/wxwidgets or some other ui widget?

Programming that appears meaningful to a beginner, which probably means programming of what looks like a "program" to a beginner, which probably means "gtk+/wxwidgets or some other ui widget".


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 9:02 am 
Offline
User avatar

Joined: Sun Nov 09, 2008 9:18 pm
Posts: 1013
Location: Pennsylvania, USA
thefox wrote:
The $15 price tag of PICO-8 could be a significant deterrent for beginning programmers. There's a free (but not open source) alternative called TIC-80 at https://tic.computer/. Disclaimer: I have tried neither one.


I keep hearing this from folks. Really? 15$? That's going to break the bank?

TIC-80 looks cool, I think it's still in active development. Pico-8 is the most developed fantasy console with an active community, so far. There's also the Pixel Vision 8 which purportedly can imitate various retro consoles, that one costs $ too and I haven't tried it either.

Anyway, it's easily worth the money for reproducing what many of us enjoyed in childhood. We're talking about eating at McDonald's like twice or something. Or a large pizza. That's cheap.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 9:18 am 
Offline
User avatar

Joined: Sun Nov 09, 2008 9:18 pm
Posts: 1013
Location: Pennsylvania, USA
Banshaku wrote:
Programming has so many category of interest that asking a book for beginner can be quite vague actually! Beginner for what? Data processing/Big data/db? IOT devices? Windows/mac/linux/unix? win32/carbon? gtk+/wxwidgets or some other ui widget? shaders? opengl/directx/vulkan/metal? It can means many thing.

That's why I kinda think most beginners would want to start with game coding of some kind (hence Pico 8 suggestion) Almost everybody enjoys games...the number of folks who are ONLY specifically interested in the abstract or algorithmic side of things is relatively small, and those folks will already know precisely what they want to do.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 9:25 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 263
Location: Central Illinois, USA
GradualGames wrote:
I keep hearing this from folks. Really? 15$? That's going to break the bank?


$15 is dirst cheap if it's something you know you want. But it's going to deter me from just playing with it to see if it's cool or not. There's a bunch of cool free "learn to code" platforms, seeing that I have to pay for this one made me shrug and move on to another.

$15 is also (depending on your family dynamics) not cheap if you're a 10 year old without much money of your own, which would deter them from just downloading it and playing with it.

So no, it's not going to break the bank. But it's (unfortunately) a hurdle that keeps people from trying it out. Some sort of trial/shareware model might help them a lot. Get people to realize it's cool first. After that, $15 is cheap.

_________________
My games: http://www.bitethechili.com


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 9:32 am 
Offline
User avatar

Joined: Sun Nov 09, 2008 9:18 pm
Posts: 1013
Location: Pennsylvania, USA
gauauu wrote:
GradualGames wrote:
I keep hearing this from folks. Really? 15$? That's going to break the bank?


$15 is dirst cheap if it's something you know you want. But it's going to deter me from just playing with it to see if it's cool or not. There's a bunch of cool free "learn to code" platforms, seeing that I have to pay for this one made me shrug and move on to another.

$15 is also (depending on your family dynamics) not cheap if you're a 10 year old without much money of your own, which would deter them from just downloading it and playing with it.

So no, it's not going to break the bank. But it's (unfortunately) a hurdle that keeps people from trying it out. Some sort of trial/shareware model might help them a lot. Get people to realize it's cool first. After that, $15 is cheap.


You can play all games others have uploaded for free online and see their code...that might be enough to say: "Hey, I'd love to make something like this, and I want to learn."

I mean c'mon, most of us (who were lucky enough to grow up on something like BASIC) had a parent who bought us or, we mowed lawns for a C64 or an Apple 2 or something. That was more expensive than 15$.

...We're still talking about eating one large pizza.


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 9:47 am 
Online
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1125
Location: Gothenburg, Sweden
I had the luck to have a mother who could get me a laid off 286 zenit laptop from her work, and a grandmother who taught me there's things like cobol and fortran which she used to do when she worked and that i should pick up basic. I had less luck going to a school which didn't provide an opportunity to learn these things on schedule.

Things are probably not that random any more at least in some parts of the world. But i try to advocate that every interested pupil should get a raspberry (or a pinebook when those become available) whenever there's an ear that would listen. I don't get why schools pay for windows licenses and fancy ipads when they could provide hardware that actually teaches something, for less. That should at least be an option.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Tue Jun 06, 2017 11:38 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19335
Location: NE Indiana, USA (NTSC)
GradualGames wrote:
...We're still talking about eating one large pizza.

And having a bank account.

A child has a 10 USD note and a 5 USD note.
Image
Image

He can take this cash to Pizza Hut and buy a pizza. How does he buy downloadable software with them?

In addition, commercial software is frustrating for someone who buys a copy of a program only for it to crash on startup.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 58 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: lazigamer and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group