If I wanted to learn Programing

Hos238

n00b
Joined
Jul 17, 2009
Messages
33
If I wanted to learn how to program, what would I need tool wise?

There's a lot of languages out there, which one would be most applicable?
 
Different languages have different applications. You will get a 1000 different answers to this question, but as a base a good program to procure would be something like microsoft visual studio which can be used for many different things. I learned python first, then c and java together, and have been on c++ (almost 3 semesters) since then. I have used all different programs for each (from visual studio to dev to g++) and its all really about the language not the compiler. Are you a student of any sorts?
 
One size does not fit all. That's pretty much why there are so many different languages.
 
Ok, if I wanted to do programs for Windows Mobile for instance, or Android. what language/ languages would be more geared towards them?
 
or i guess the question is whats a good first language? that will ease me into others.
 
there are development platforms geared towards the devices. Usually java or c++ are supported in addition to others. main issue is that the programming language is about 1/3 of what you need to know to make applications. your best bet would be to download one of the platforms and go through the tutorials.
 
Ok, if I wanted to do programs for Windows Mobile for instance, or Android. what language/ languages would be more geared towards them?

WM7 = Silverlight programming - My opinion, this platform was dead even before it was (is) released.
WM6.5 and below: C or .NET Compact Framework (C#, VB) - C# is the easiest to develop for on this platform, but, honestly, I'd skip this... for all intents and purposes this is a dead mobile platform.
Android: Java SE is the baseline with a lot of Android specific mods. Also has Native kit if you desire.

Basically you have few major players:

1. Symbian - Full J2ME support, C++ support
2. Android - J2SE support, C++ support
3. Blackberry - Modified J2ME support, no native support
4. iPhone - Objective C is it.
5. Hundreds of millions of feature phones running J2ME.
6. BREW... meh.. meh meh meh... don't even want to think about BREW.

C++ or Java would be my choice for learning device development. Java is more widespread mind you as far as market share is concerned.
 
Last edited:
in terms of ubiquity, C++ is everywhere, but is also pretty well regarded as one of the uglier (all be it faster) languages out there. Java and python are both significantly more newb friendly. Neither has you chasing around after pointers that give memory access violations.

I started in C++ and a course called "electronic fundementals" (who'se follow up course is "Digital Systems Design" and "Hardware Architecture"). I have been programming with C++ ever since. Ive built a handful of apps in C#, Java, and have dibbled in the web development languages, but C++ is used so universally and is so powerful that its tough moving to java, even though Java is beautifully object oriented.

I like the route I took. Everything came together when I was on 2nd year programming courses and "Hardware architecture", everything. That combination of courses completely demistified the modern operating system for me. To a second or even third year programmer who'se never had to design a stack with not but nand gates, theres still and will always be something magical about the CPU.
 
To me, it seems like starting learning with a language like Java or C# is the best route. They make it easier for you to learn to solve problems and give you an elementary understanding of control structures and the different data types. From there, it may be wise to move to C++ and learn more about the programming process and some basic computer science.
 
If I wanted to learn how to program, what would I need tool wise?

There's a lot of languages out there, which one would be most applicable?

First off, why do you want to learn programming? For hobby? For profession? What problems do you want to solve?

What are you returning to school to learn?
To me, it seems like starting learning with a language like Java or C# is the best route. They make it easier for you to learn to solve problems and give you an elementary understanding of control structures and the different data types. From there, it may be wise to move to C++ and learn more about the programming process and some basic computer science.

From my experience so far, I disagree with drilling down. I've become so very much more comfortable programming after learning how the machine actually works, and building from there. Small steps. I think starting with Java (as I did) will leave a lot more questions than answers.
 
on the C++ IDE side if your not intrested in configuring anything i cant recomend visual studios 2010 express highly enough. download it, install it, run it, type in:

#include <iostream>
using namespace std;

int main ()
{
cout << "Hello world!" << endl;
system("PAUSE"); //epileptic black boxes ftl.
return 0;
}

... and finally bookmark cplusplus.com. Profit.

to the OP, its worth noting that for code this simple C#, C++, and C are practically the same language.
 
Last edited:
From my experience so far, I disagree with drilling down. I've become so very much more comfortable programming after learning how the machine actually works, and building from there. Small steps. I think starting with Java (as I did) will leave a lot more questions than answers.

I started off learning how computers work, and learning some basics of computer architecture, then tried picking up C++. I honestly never got anywhere until I gave up and eventually started over with C#.

I really don't feel as though I was able to benefit from starting with C++. A lot of people had told me 'learning to program well would have been a lot easier if I had started with C++ instead of <insert Visual Basic, Python, Perl, Java, or whatever else you can think of here>', so I tried their advice and started with C++, but to be honest, nothing really made sense. I didn't get why I should/had to do certain things until after I had learned some higher level languages and went back to learn C++ a second time.

I'll buy that starting with a high level language leaves a lot of questions (C# left me with a lot of wondering, despite not even being my first language), but those questions were a lot easier to answer than what I was left asking when I originally tried to start with C++.

The big bonus with starting with a language like C++ if you're successful, I'm sure, is that you learn to appreciate rather than take for granted all of the things high level languages do for you.
 
The big bonus with starting with a language like C++ if you're successful, I'm sure, is that you learn to appreciate rather than take for granted all of the things high level languages do for you.
The sad part is that I've been surrounded by fellow students shorting out by opting for Java over C++ because "C++ sucks and Java is easy."
 
I learned C++ first, that was my only "formal" training... the other languages were just self taught, but since I did have a base of C++ it helped make other languages seem less overwhelming.
 
If your in a windows environment I would probably start with visual studio 2010 express edition and C# as the programming language. Its as nice as Java but Java can be hard to compile and run if your just starting out because it doesn't compile a straight up exe that you double click on, its not that straight forward. As far as how to learn it, that depends on the person. I learn from reading books the best, but some people can learn just fine through website tutorials or im sure youtube has video tutorials on how to use C#. And C# can be used to develop applications for desktops, the web, mobile phones, xbox games, etc.

The thing is the programming language is only part of it, thats just syntax. Learning programming concepts and algorithms is the hard part.
 
The thing is the programming language is only part of it, thats just syntax. Learning programming concepts and algorithms is the hard part.

Which is why I'm a fan of starting with C then moving to C++.

It keeps the syntax the same and lets you learn sequential programming with a purely sequential language. Then once you understand sequential programming, it allows you to move into learning the OO paradigm using a familiar syntax as your basis.

It also forces you to learn to think of things in terms of how they're stored memory... which is not a bad thing to learn and something that Java coders seem to have no clue about. For example, we recently received an IDD proposal from a sub that proposed them sending serialized Java Int/Double/etc(including complex) classes across ethernet between wildly different OSes to various non-Java applications. That's the result of someone that has no clue how things are stored in memory; to the person writing that interface proposal an Int is an int except for some magic rules saying you have to use one sometimes and one another. They have no clue what the thing they're specifying looks like on the wire, and don't have a clue that it'd be important.

Anyways, I'm ranting. To get back on topic, I'm not a fan of starting with an OO language. Doing that forces you to try to learn two paradigms simultaniously which makes the task much more difficult.
 
It also forces you to learn to think of things in terms of how they're stored memory... which is not a bad thing to learn and something that Java coders seem to have no clue about. For example, we recently received an IDD proposal from a sub that proposed them sending serialized Java Int/Double/etc(including complex) classes across ethernet between wildly different OSes to various non-Java applications. That's the result of someone that has no clue how things are stored in memory; to the person writing that interface proposal an Int is an int except for some magic rules saying you have to use one sometimes and one another. They have no clue what the thing they're specifying looks like on the wire, and don't have a clue that it'd be important.

That made my chuckle. Thanks.

I fail to see how using web services, etc. is a result of not knowing how an object is stored in memory. Know why they don't know? Because they don't need to...
 
Personally, I'd say start with java and C at the same time. Java is an object orientated language and C isn't. By learning both of these very different languages at the same time you can, imo, easily distinguish what is concept and what is syntax. These are imo, very good and well used bases. Learning C++ is very easy when you have knowledge of the concepts from java, and knowledge of what the syntax will probably look like from C.

Take it with a grain of salt though, I'm still only a sophomore in college.

edit: Also, "hacking" online games is a great way to learn about memory and pointers.. <.<;
 
is programming something you are really interested in as a hobby/career or something you just want to learn to build some application?
 
is programming something you are really interested in as a hobby/career or something you just want to learn to build some application?

That's a good question, I'm taking all the formal programming courses and they get you started right off the bat with C and Java, and then work their way over to assembly, but the guy who inspired me to program got started in VB. What he can do with VB and how quickly he can do it is really astonishing.

If you just want to get started and not have to worry about any of this object oriented memory managing Interface Definition Documenting (IDD) fudge, Visual Basic might be where you want to start.
 
well also depending on what type of app he wants to make, trying to just "wing it" without first spending weeks-months-years building the necessary programming experience and skills can be impractical to say the least
 
I learned Java first, which wasn't too bad. Syntactically, it's not too tough. It's also a good introduction to objective programming (in my opinion). Plus, there's a LOT of free development tools (NetBeans, Eclipse, notepad) and a huge developer base for free tutorials.

I recently started picking up SQL and integrating SQL into my Java programs. Databases are a HUGE concept and I would encourage you to take advantage of learning it. SQL isn't too tough to learn, but difficult to master. If you can understand database concepts you will be invaluable in the tech world.
 
well also depending on what type of app he wants to make, trying to just "wing it" without first spending weeks-months-years building the necessary programming experience and skills can be impractical to say the least

Just keep on winging everything all the time. One day, you will realize that you've lost your wings and are now a pro. :)
 
Back
Top