Staredit Network > Forums > Technology & Computers > Topic: Programming Recommendations
Programming Recommendations
Dec 7 2009, 1:56 am
By: omginbd  

Dec 7 2009, 1:56 am omginbd Post #1



So I've been wanting to learn to develop for quite awhile now, however I just recently came into some time that I can spend on learning to. I've started the basics of Java and C++, however I quickly lose interest because all the examples are console applications. Is all the console programming necessary? I mean, once you get down to it, how much of the console base programming is actually used? I guess my question is what is a good programming language that I can use to make graphic applications without sacrificing "customizability". I'm willing to spend a good deal of time to learn, however after seeing how long I have to learn console programming I start to wonder if it is really what I should learn. Also, I had been told that pretty much all languages are similar, apart from syntax and optimal functionality. How accurate is this? Because my eventual goal is to develop games for Apple or Nintendo, so I was wondering if I should start learning these specific languages, or just start learning C++ with the book that I have now?



None.

Dec 7 2009, 2:05 am scwizard Post #2



Computer Science 3rd year undergraudate here.
Quote
Is all the console programming necessary?
You gotta learn how to walk before you can run. That being said, if you want to figure out how to make your program spit out a GUI, then figure it out. Protip, your book doesn't tell you how.

Quote
I guess my question is what is a good programming language that I can use to make graphic applications without sacrificing "customizability".
All programming languages can make graphic applications. You can do anything in programming languages due to turing completeness etc.

Quote
Also, I had been told that pretty much all languages are similar
Someone is lying to you.

Quote
I mean, once you get down to it, how much of the console base programming is actually used?
It's not, the console is a form of IO. The underlying logic of that IO will prove useful later, but you'll be using other forms of IO.

I don't get why you consider it console programming. It's programming that outputs to the console.

-----

imo the best way to learn programming is to program something. What would be ideal here is a goal modest enough for you to work towards. My first application (.exe application, I messed around with web design before this) was mapkit, a thingy that allowed me to decompose and recompose starcraft maps. I still use it sometimes.

After that I tried to build on that in C++. That's where I learned the C++ the know today.



None.

Dec 7 2009, 2:09 am Biophysicist Post #3



If you try to write a complex GUI before you can write a simple console-based program, then you're fucking yourself over in the ass with an electrified spear.

In other words, learn console stuff or you'll never learn the GUI stuff.



None.

Dec 7 2009, 2:12 am Syphon Post #4



Quote from omginbd
Is all the console programming necessary?

In short, yes. The easiest way to learn how to solve different problem is writing small programs you can test instantly. Console applications are the easiest way to do this, and if you think you can just get automation on all the things you learn to do here once you jump into GUI programming, you'll never be a good programmer. You have to learn the math and logic behind everything. In fact, if you can, try learning to program somethings directly in ASM.

Quote
I'm willing to spend a good deal of time to learn, however after seeing how long I have to learn console programming I start to wonder if it is really what I should learn. Also, I had been told that pretty much all languages are similar, apart from syntax and optimal functionality. How accurate is this? Because my eventual goal is to develop games for Apple or Nintendo?

It takes 10,000 hours of practice in anything to become a master, and many languages are VERY different. The following are basic snippets of code in different languages.

Code
C

#include <stdio.h>

int main(void)
{
   printf("hello, world\n");
   return 0;
}

PHP

<?php

echo 'hello, world';

?>

APL

'hello, world'

Python

print "Hello, World!"

Perl

#!/usr/bin/perl
print "Hello, world!\n";

Ruby

puts "Hello World!"


As you can see, even the most basic forms of code can have some drastic changes between languages. There are many different types of languages, and you program differently in most of them. However, most share at least basic syntax with C, which is why it's generally recommended starting to program with C console applications.

To keep learning the basics of programming, stay with C++, or, if you have no need for everything but the kitchen sink, move down to C. If you have an interest in programming only very far from the metal, try Python or Lua.

Also,

1) Apple doesn't make games.
2) If you're trying to get into programming, just to develop games, with no interest in mathematics, get out, because you aren't going to be able to do anything worthwhile. You should be designing, not developing.



None.

Dec 7 2009, 2:27 am omginbd Post #5



Thanks for the quick responses guise!
Quote from Syphon
Quote from omginbd
Is all the console programming necessary?

In short, yes. The easiest way to learn how to solve different problem is writing small programs you can test instantly. Console applications are the easiest way to do this, and if you think you can just get automation on all the things you learn to do here once you jump into GUI programming, you'll never be a good programmer. You have to learn the math and logic behind everything. In fact, if you can, try learning to program somethings directly in ASM.

Quote
I'm willing to spend a good deal of time to learn, however after seeing how long I have to learn console programming I start to wonder if it is really what I should learn. Also, I had been told that pretty much all languages are similar, apart from syntax and optimal functionality. How accurate is this? Because my eventual goal is to develop games for Apple or Nintendo?

It takes 10,000 hours of practice in anything to become a master, and many languages are VERY different. The following are basic snippets of code in different languages.

Code
C

#include <stdio.h>

int main(void)
{
   printf("hello, world\n");
   return 0;
}

PHP

<?php

echo 'hello, world';

?>

APL

'hello, world'

Python

print "Hello, World!"

Perl

#!/usr/bin/perl
print "Hello, world!\n";

Ruby

puts "Hello World!"


As you can see, even the most basic forms of code can have some drastic changes between languages. There are many different types of languages, and you program differently in most of them. However, most share at least basic syntax with C, which is why it's generally recommended starting to program with C console applications.

To keep learning the basics of programming, stay with C++, or, if you have no need for everything but the kitchen sink, move down to C. If you have an interest in programming only very far from the metal, try Python or Lua.

Also,

1) Apple doesn't make games.
2) If you're trying to get into programming, just to develop games, with no interest in mathematics, get out, because you aren't going to be able to do anything worthwhile. You should be designing, not developing.

I understand that it its necessary to learn "programs that output to the console", I guess my actual question is how long is it until I can do something that is worthwhile? I mean I see that all this allows you to test and tinker with functionality, but when can I combine this into something?

Also,
1) My bad, I mean develop to send in to Apple
2) Bad choice of words on my part. The math of it all is really interesting to me, and is one of the reasons I have an interest in this.

Quote from scwizard
Computer Science 3rd year undergraudate here.
Quote
Is all the console programming necessary?
You gotta learn how to walk before you can run. That being said, if you want to figure out how to make your program spit out a GUI, then figure it out. Protip, your book doesn't tell you how.

Can you recommend one that does?

Quote
Quote
I guess my question is what is a good programming language that I can use to make graphic applications without sacrificing "customizability".
All programming languages can make graphic applications. You can do anything in programming languages due to turing completeness etc.

I know this, but is there one that is more apt for GUI's?

Quote
Quote
Also, I had been told that pretty much all languages are similar
Someone is lying to you.

More details?

Quote
Quote
I mean, once you get down to it, how much of the console base programming is actually used?
It's not, the console is a form of IO. The underlying logic of that IO will prove useful later, but you'll be using other forms of IO.

I don't get why you consider it console programming. It's programming that outputs to the console.

Once again, my bad choice of words.

Quote
imo the best way to learn programming is to program something. What would be ideal here is a goal modest enough for you to work towards. My first application (.exe application, I messed around with web design before this) was mapkit, a thingy that allowed me to decompose and recompose starcraft maps. I still use it sometimes.

After that I tried to build on that in C++. That's where I learned the C++ the know today.

Did that have a GUI? or was it a console app?



None.

Dec 7 2009, 2:41 am Syphon Post #6



Quote
I understand that it its necessary to learn "programs that output to the console", I guess my actual question is how long is it until I can do something that is worthwhile? I mean I see that all this allows you to test and tinker with functionality, but when can I combine this into something?

10,000 hours of practice properly, less if you're a fast learner.



None.

Dec 7 2009, 2:50 am Biophysicist Post #7



Quote
I know this, but is there one that is more apt for GUI's?
If you want to just do graphical stuff, get a retarded language that hides all the important stuff from you.

Quote
I guess my actual question is how long is it until I can do something that is worthwhile?
Console programs can be very worthwhile. Look at NetHack.



None.

Dec 7 2009, 2:57 am omginbd Post #8



Quote
Quote from name:TassadarZeratul
Quote
I know this, but is there one that is more apt for GUI's?
If you want to just do graphical stuff, get a retarded language that hides all the important stuff from you.

That's exactly not what I'm looking for. :P

Quote
I guess my actual question is how long is it until I can do something that is worthwhile?
Console programs can be very worthwhile. Look at NetHack.

I didn't say it couldn't be in console, I just said it had to be worthwhile. Also, admittedly I didn't look at it for very long, but it seems like a crappy dungeon explorer.



None.

Dec 7 2009, 3:00 am Biophysicist Post #9



1) You contradict yourself. :P
2) NEVER call NetHack crappy.



None.

Dec 7 2009, 3:12 am omginbd Post #10



Quote from name:TassadarZeratul
1) You contradict yourself. :P
2) NEVER call NetHack crappy.


1. How so?
2. Lol sorry I didn't know it had a place close to your heart.



None.

Dec 7 2009, 3:13 am Biophysicist Post #11



1) You were implying that console programs can't be good, then said they can be.
2) NETHACK IS JUST PLAIN AWESOME EXCEPT FOR THE DYING



None.

Dec 7 2009, 3:17 am omginbd Post #12



Okay, I see your point but I mean most worthwhile things have a GUI, and no matter what you say, nethack is not a worthwhile thing. In fact, I'm wasting my time right now playing it. :bleh:



None.

Dec 7 2009, 3:28 am scwizard Post #13



Quote from omginbd
Quote from scwizard
Computer Science 3rd year undergraudate here.
Quote
Is all the console programming necessary?
You gotta learn how to walk before you can run. That being said, if you want to figure out how to make your program spit out a GUI, then figure it out. Protip, your book doesn't tell you how.

Can you recommend one that does?
You shouldn't need a book to learn how to use a GUI library/API. Compared to a programming language, a GUI library/API is a simple thing.

You should be able to understand how to get started with a GUI library/API well enough from the docs or from googling.

Here is some tutorials/documentation of different GUI libraries etc:
Java + Swing: http://java.sun.com/docs/books/tutorial/uiswing/
C + Win32 API: http://www.winprog.org/tutorial/
C++ + Win32 API ???: http://www.relisoft.com/win32/index.htm
Python + GTK: http://www.pygtk.org/downloads.html

If you desperately need a book, you can easily find a Java + Swing book. There's like a trillion java books out there. Waste of paper imo.

You might also be able to find a GTK book.

Quote from Syphon
Quote
I understand that it its necessary to learn "programs that output to the console", I guess my actual question is how long is it until I can do something that is worthwhile? I mean I see that all this allows you to test and tinker with functionality, but when can I combine this into something?

10,000 hours of practice properly, less if you're a fast learner.
He exaggerates. I can make no guarantees when it comes to hours, but it will be worth your time.

Post has been edited 4 time(s), last time on Dec 7 2009, 3:36 am by scwizard.



None.

Dec 7 2009, 3:40 am Jack Post #14

>be faceless void >mfw I have no face

C++ GUIs, using drag and drop WYSIWYG Visual c++, is easy. Then add some functionality in the code. Not too hard. But the stuff you learn for console apps is the same stuff you need for the code underlying GUIs. I personally started with GUIs quickly because I liek buttons, but it's up to you.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 7 2009, 3:42 am omginbd Post #15



Quote from scwizard
Quote from omginbd
Quote from scwizard
Computer Science 3rd year undergraudate here.
Quote
Is all the console programming necessary?
You gotta learn how to walk before you can run. That being said, if you want to figure out how to make your program spit out a GUI, then figure it out. Protip, your book doesn't tell you how.

Can you recommend one that does?
You shouldn't need a book to learn how to use a GUI library/API. Compared to a programming language, a GUI library/API is a simple thing.

You should be able to understand how to get started with a GUI library/API well enough from the docs or from googling.

Here is some tutorials/documentation of different GUI libraries etc:
Java + Swing: http://java.sun.com/docs/books/tutorial/uiswing/
C + Win32 API: http://www.winprog.org/tutorial/
C++ + Win32 API ???: http://www.relisoft.com/win32/index.htm
Python + GTK: http://www.pygtk.org/downloads.html

If you desperately need a book, you can easily find a Java + Swing book. There's like a trillion java books out there. Waste of paper imo.

You might also be able to find a GTK book.

Quote from Syphon
Quote
I understand that it its necessary to learn "programs that output to the console", I guess my actual question is how long is it until I can do something that is worthwhile? I mean I see that all this allows you to test and tinker with functionality, but when can I combine this into something?

10,000 hours of practice properly, less if you're a fast learner.
He exaggerates. I can make no guarantees when it comes to hours, but it will be worth your time.

What's with the question marks?

Also, from what I can tell, java and android are relatively similar, if not the same, so how would I go about learning about that?



None.

Dec 7 2009, 3:42 am scwizard Post #16



Quote from name:zany_001
C++ GUIs, using drag and drop WYSIWYG Visual c++, is easy. Then add some functionality in the code. Not too hard. But the stuff you learn for console apps is the same stuff you need for the code underlying GUIs. I personally started with GUIs quickly because I liek buttons, but it's up to you.
Oh yeah, I forgot about WYSIWYG type stuff.

I'm personally biased against that sort of thing, and I would recommend against it from learning, since it hides a lot of stuff from you that you'll need to learn eventually (if you're interested in making games).

EDIT: Ignore the question marks.

Quote from omginbd
Also, from what I can tell, java and android are relatively similar, if not the same, so how would I go about learning about that?
1. Learn some Java.
2. Learn how to use Swing in java.
3. Write stuff for the android operating system using it's weird version of java or whatever.



None.

Dec 7 2009, 3:50 am omginbd Post #17



Quote from scwizard
Quote from name:zany_001
C++ GUIs, using drag and drop WYSIWYG Visual c++, is easy. Then add some functionality in the code. Not too hard. But the stuff you learn for console apps is the same stuff you need for the code underlying GUIs. I personally started with GUIs quickly because I liek buttons, but it's up to you.
Oh yeah, I forgot about WYSIWYG type stuff.

I'm personally biased against that sort of thing, and I would recommend against it from learning, since it hides a lot of stuff from you that you'll need to learn eventually (if you're interested in making games).

EDIT: Ignore the question marks.

Quote from omginbd
Also, from what I can tell, java and android are relatively similar, if not the same, so how would I go about learning about that?
1. Learn some Java.
2. Learn how to use Swing in java.
3. Write stuff for the android operating system using it's weird version of java or whatever.


Yeah, I don't like WYSIWYG crap. Working on some java/swing now. I can just use eclipse right? Also, I have a friend that insists that C# is the optimal programming language. However, I have yet to see a single person recommend it. Whai?



None.

Dec 7 2009, 3:54 am Jack Post #18

>be faceless void >mfw I have no face

C# is slower than c++, basically. It's nice for making games, especially for 360 compatibility.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 7 2009, 3:55 am omginbd Post #19



Quote from name:zany_001
C# is slower than c++, basically. It's nice for making games, especially for 360 compatibility.
Slower? How?



None.

Dec 7 2009, 4:02 am Jack Post #20

>be faceless void >mfw I have no face

Quote from omginbd
Quote from name:zany_001
C# is slower than c++, basically. It's nice for making games, especially for 360 compatibility.
Slower? How?
It runs slower. I forget why, google it. Also, scratch the bit about being good for games. It's easier to make games but the games are slower.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:19 pm]
Vrael -- IM GONNA MANUFACTURE SOME SPORTBALL EQUIPMENT WHERE THE SUN DONT SHINE BOY
[01:35 am]
Ultraviolet -- Vrael
Vrael shouted: NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
Gonna put deez sportballs in your mouth
[2024-5-01. : 1:24 pm]
Vrael -- NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
[2024-4-30. : 5:08 pm]
Oh_Man -- https://youtu.be/lGxUOgfmUCQ
[2024-4-30. : 7:43 am]
NudeRaider -- Vrael
Vrael shouted: if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
Yeah I'm not a big fan of Westernhagen either, Fanta vier much better! But they didn't drop the lyrics that fit the situation. Farty: Ich bin wieder hier; nobody: in meinem Revier; Me: war nie wirklich weg
[2024-4-29. : 6:36 pm]
RIVE -- Nah, I'm still on Orange Box.
[2024-4-29. : 4:36 pm]
Oh_Man -- anyone play Outside the Box yet? it was a fun time
[2024-4-29. : 12:52 pm]
Vrael -- if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
[2024-4-29. : 11:17 am]
Zycorax -- :wob:
[2024-4-27. : 9:38 pm]
NudeRaider -- Ultraviolet
Ultraviolet shouted: NudeRaider sing it brother
trust me, you don't wanna hear that. I defer that to the pros.
Please log in to shout.


Members Online: Roy