i need to learn how to program

jverne

Newbie
Joined
Aug 6, 2004
Messages
4,302
Reaction score
0
where should i start? which "program language" is newb friendly?

i'm thinking of VIsual Basic, since it's the only thing i know of besidec C, and sounds..well...basic?

any suggestions?

i feel so ashamed calling myself an "engineer" and not knowing how to program. :cheese:


thanks
 
Visual basic is easy to learn, but you'll develop bad habits from doing it.

Java's pretty newbie friendly, and is quite similar to C++, which is the ULTIMATE.

How do you plan to apply your programming knowledge?

-Angry Lawyer
 
Visual basic is easy to learn, but you'll develop bad habits from doing it.

Java's pretty newbie friendly, and is quite similar to C++, which is the ULTIMATE.

How do you plan to apply your programming knowledge?

-Angry Lawyer

bad habits? well...ok...i don't know what are you talking about?

Java you say? that's the tray icon on my desktop :p


i wish to make programs for calculating mechanics of solids, fluid mechanics, energy conversation, ballistics....that sort of stuff. small programs but useful.
i'm basically thinking of an interface for computer solving of equations.
and for some other stuff
 
Java's your best bet, then, but that's because I hate VB. Plus it's platform independant, and you can get free IDEs for Java, and apparently it's going to be the way forward in coding stuff.

-Angry Lawyer
 
Whitespace is the best starter-language D:

But seriously, I'd give Java a try. Once you get a hang of object oriented programming, Java is easy to pick up and the default JDK comes with a lot of classes so you won't have to use external libraries a lot.
 
where should i start? which "program language" is newb friendly?

i'm thinking of VIsual Basic, since it's the only thing i know of besidec C, and sounds..well...basic?

any suggestions?

i feel so ashamed calling myself an "engineer" and not knowing how to program. :cheese:


thanks

VB goes against the standard in many areas (syntax for example). It might be better to start with a more complex language for that reason, java is recommended.
 
C++ is more useful in the real world, but Java is my favorite language and its very easy to learn.

VB is very annoying, and I cannot stand it when people who are familiar with VB come to me and ask me how to program in Java "Why don't my goto statements work? What the hell is a 'class'?"

Ugh. VB is a bundle of compromises, not a very stable language.

Basically here's the rundown:
VB is a very..well...basic language. It's about as close to machine code you can get without get down to the nuts and bolts of the system. Its extremely system dependant, and extremely low level. Technically, anything you can do in Java or C++ you can do in VB, but it will require a ton of work. VB is fully linear code. Object orientation is basically unheard of in VB. VB also has alot of nasty statements like "goto" statements which encourage "spaghetti coding", that is, putting all your code in a big line with markers on each chunk that you want to run. This is extremely unreadable and if you go into any other language you will have a very hard time understanding things like methods (or functions for C++) and objects.

C++ is the standard industry language. It is very versatile, and can generally only be run on windows machines. It has object-orientation, but not as much as Java. It's very stable and very easy to expand. However, don't expect good documentation or support. Most of C++ high-level functions are 3rd party, or you have to code them yourself. C++ also requires garbage collection and reference/value distinctions. I find these things very annoying, but they are a major part of the language. C++ is very distributable, and if you begin coding in C++ now, you will have great experience for industry, and will easily be able to share your work with others.

Java is like the modern version of C++. It's mostly proprietary, so you'll be at the hands of Sun for just about everything. It can be run on any machine, and can even be run in applets from the internet. Unfortunately, this means if you want to distribute something, you have to make sure they have Java, and Virtual Machine installed (READ: very big, cumbersome programs). Java is extremely object-oriented. It took the idea of objects from C++ and basically put them on steroids. Everything you code in Java must be in a class. Members of a class are called objects. Objects can store data, contain methods that operate on that data, and create children. Children inherit everything from their parents. Other objects can simply implement a class without being a child of that class. Basically all of your programs have to fit this heirarchy in Java, which I find to be very helpful, but which people used to C++ and VB will hate.
 
There's a fifth generation programming language called GML, used by Gamemaker. It's very, very newbish, but if you want to make something to perform mathmatical opperations then it should be just as capable as any other language. However, it might run slower or something, being a high-level (I think) language. It might (might) be easier to learn than Java, but I'd still do Java anyway, because it's more powerful.

And because GML's for n00bs, like. I'm mentioning it because it's the only language I know how to use :bonce:
 
where should i start? which "program language" is newb friendly?

In my opinion, you should start with either Java or C++, though it will be much easier to learn Java.

I suggest buying a programming book for Java beginners, and just go through and learn the basics. Most books are very good at introducing newbies to code, and in no time you'll be able to experiment and create things on your own.

Also, get an integrated development environment. Programming can be very discouraging for beginners because you have to do things like write in text editors, compile with a command line, and run with arguments from a command line, which is annoying and slow. Try a free development kit. I suggest JCreator, but Eclipse is also very popular. Integrated development environments give you useful error messages, are easy to write in, and make it easy to read code. They also provide nifty tools for including libraries, exporting, and running your code. JCreator has alot of neat templates which will aid you in the creation of things like interfaces, windows, and graphics.
 
There's a fifth generation programming language called GML, used by Gamemaker. It's very, very newbish, but if you want to make something to perform mathmatical opperations then it should be just as capable as any other language. However, it might run slower or something, being a high-level (I think) language. It might (might) be easier to learn than Java, but I'd still do Java anyway, because it's more powerful.

And because GML's for n00bs, like. I'm mentioning it because it's the only language I know how to use :bonce:

GML is more of a painful, high-level proprietary scripting language than a proper computer language. I would not suggest learning GML or Javascript or HTML or any of those languages first. They're easy to understand, but on many levels they are not at all like the more "professional" languages.
 
seems you all agree on java.

i know professional programs are the best once you get to know them...but i'm big noob in programing and i don't plan to program anything big for now.

i want to start of easy and slow. but since you say java is good to start and then easier to change to C, i'll take a look.

is java free or anything?
 
don't learn visual basic...i learned it and now i completely suck at java lol.

But my sucking at java is probably due to my laziness to study and practice programming..funny because my program is Computing and Networking LOL
 
HTMLTTPLOLCOPTER is a decent language to learn
 
seems you all agree on java.

i know professional programs are the best once you get to know them...but i'm big noob in programing and i don't plan to program anything big for now.

i want to start of easy and slow. but since you say java is good to start and then easier to change to C, i'll take a look.

is java free or anything?

No programming language is not free, however development enviroments and compilers may not be. Although you can almost always find a free alternative. For java I have used and liked: http://www.jgrasp.org/
 
Do not start with a managed langauge like C#, Java, or VB. Why? Because you wont really understand how those languages work without understanding a native language like C++. Then at some time you will have to learn a little C++, and it's a lot easier moving to an unmanaged -> managed language than the other way around.

Learn C++, do some console applications. Make a Tic-Tac-Toe game and stuff. Get use to understanding buffers and pointers. Understand why you have to declare a buffer for your strings, and then when you move to managed language like Java for instance, you will have an easier time understanding why you don't have to declare that buffer anymore and the trade off's that come with it.

I'm a big C# fan due to the fact that it has a few features over Java (POINTERS!!!! UNMANAGED MEMORY!!!!), while still staying cross-platform with open-source alternatives to the .NET framework (Mono).
 
learn C

it'll teach you good habits and everything you need to know to learn other languages.

Strong typing is for the weak minded.
 
Problem with C is that it's so redundant compared to C++, and it doesn't teach OOP.

-Angry Lawyer
 
I recommend C#. It's the newest incarnation from Microsoft and it's actually proving that it has great potential in the industry with wide spreading popularity.

It has the power of a language like C++, where you can get down to the low nitty gritty level if you want to, but it also has the ease of use and convenience of Java or Visual Basic. It's easy to dive right in and start making programs, and when you get more advanced you can do all the types of things lower language programs like C++ do if you really want to get into that sticky mess.

I love the type safety in C#. It lets you catch most of your problems during compile time(the program simply won't compile if you leave out tiny little syntax mistakes, which is brilliant and you don't have to locate these things thinking they're some bug in the logic).

I'm still learning the language, but so far from what I've learned and experienced, it's a spectacular language and easy to learn. And you can use your knowledge to eventually progress and backtrack if you wanted to into other languages such as C++ which are still more popular when it comes to game design and stuff.

Oh... another thing about C#(and I'm not entirely sure about this) and the other .net languages... is that your programs don't even have to be registered into the system's registry to run and operate. You can bypass that whole aspect altogether if you want.
 
Do not start with a managed langauge like C#, Java, or VB. Why? Because you wont really understand how those languages work without understanding a native language like C++. Then at some time you will have to learn a little C++, and it's a lot easier moving to an unmanaged -> managed language than the other way around.

Learn C++, do some console applications. Make a Tic-Tac-Toe game and stuff. Get use to understanding buffers and pointers. Understand why you have to declare a buffer for your strings, and then when you move to managed language like Java for instance, you will have an easier time understanding why you don't have to declare that buffer anymore and the trade off's that come with it.

I'm a big C# fan due to the fact that it has a few features over Java (POINTERS!!!! UNMANAGED MEMORY!!!!), while still staying cross-platform with open-source alternatives to the .NET framework (Mono).

I'm pretty sure the latest version of java has both pointers and unmanaged memory. I know I've used both features before.

Maybe I was just using something I coded myself...


actually yes, yes I was :(
 
Netbeans is the best IDE for Java, seriously.
JCreator is much simpler for beginners.

And if you don't wan't to learn Java, why not try C#? There's a free IDE for .NET called SharpIDE.

I'm pretty sure the latest version of java has both pointers and unmanaged memory. I know I've used both features before.
Java's a bit paranoid about messy code...
 
I recommend C#. It's the newest incarnation from Microsoft and it's actually proving that it has great potential in the industry with wide spreading popularity.
I think the only reason C# really has taken off is the fact that, for the first time, Microsoft is not locking other developers out. C# is an open standard language. There are multiple open source .net byte code compilers and runtime compilers out there for .NET and C#. You have alternatives to Microsofts .NET Framework. Like the cross-platform Mono (which can even translate between Java and .NET byte-code (and compile together), allowing you to write a program in two languages. Usefuless = ?. Awesomeness = !!!!).

Oh... another thing about C#(and I'm not entirely sure about this) and the other .net languages... is that your programs don't even have to be registered into the system's registry to run and operate. You can bypass that whole aspect altogether if you want.
Thats not specific to .NET or any language. Many applications utilize the registry to store various pieces of data and add themselves to the installed menu.
 
What about actionscript. I got some basic programming lessons at college. The teacher chose actionscript. He did tell us actionscript is a lot more forgiving then other languages, we also couldn't use some of the shortcuts in actionscript for our project which was to make a 2 shooter game.

Also jverne do you know the theory behind programming, before we had programming we had to learn history of computer development and write the structure of a program to solve a particular question on paper. It made it a lot easier to understand and find out yourself how to tackle obstacles.
 
Thats not specific to .NET or any language. Many applications utilize the registry to store various pieces of data and add themselves to the installed menu.

Ahhh ok.
 
Do not start with a managed langauge like C#, Java, or VB. Why? Because you wont really understand how those languages work without understanding a native language like C++. Then at some time you will have to learn a little C++, and it's a lot easier moving to an unmanaged -> managed language than the other way around.

Learn C++, do some console applications. Make a Tic-Tac-Toe game and stuff. Get use to understanding buffers and pointers. Understand why you have to declare a buffer for your strings, and then when you move to managed language like Java for instance, you will have an easier time understanding why you don't have to declare that buffer anymore and the trade off's that come with it.

I'm a big C# fan due to the fact that it has a few features over Java (POINTERS!!!! UNMANAGED MEMORY!!!!), while still staying cross-platform with open-source alternatives to the .NET framework (Mono).

hmm...now i'm confused. C++ sounds really scary. all i did from programing is from uni doing some stupid classes i don't remember anymore, and the other time was when i used, i think it was hot mouse, to cheat a "Vote for the prettiest cat" contest my GF was in. :angel:

oh and i've seen visual basic...looked like some kind of visual type thing.

honestly i don't know if i'll ever need the uber programing skills, for now i just want to make some simple, effective, visual programs. where you type in some parameters or draw a picture and something gets done.

i'm not planning to make games, complex programs and stuff like that.
what i have in mind now is something like Microsoft's "Solver" in Excel.
i find that a really useful little program, for doing bisection.

i don't know how much work would take to do something like that, but in my view it's really cool...putting some equations, some constraints and run.

that's what i'd like to do for the time being.
 
C++ sounds really scary.
Trust me, it's not. I went from adding numbers to a game of tic-tac-toe with a (rudimentary) AI in just a year. It's very simple and intuitive.

But I still think you should go with C# or Java because it's the way of the future.
 
Trust me, it's not. I went from adding numbers to a game of tic-tac-toe with a (rudimentary) AI in just a year. It's very simple and intuitive.

But I still think you should go with C# or Java because it's the way of the future.

ok...what about C#...is that "free" (as in that it comes with microsoft office, or that type of stuff).
 
JCreator is much simpler for beginners.

And if you don't wan't to learn Java, why not try C#? There's a free IDE for .NET called SharpIDE.


Java's a bit paranoid about messy code...

Wait a minute, I think I've got this mixed up.

Are pointers like the pointers used in Linked Lists and Trees, or are they like goto statements? If they're like the ones used in lists and trees, why bother, when all you have to do is make a static reference variable? If they're like goto statements then...all I can say is...*barf*. No spaghetti code for me, thank you.

Is unmanaged memory what the garbage collector is designed to do in Java? As in, it deletes unneeded objects and variables to prevent memory leaks?

If that's the case, I am really glad Java doesn't have unmanaged memory. It's one of the best features of Java, in my opinion.
 
I think pointers have to do with memory management. I can't really explain it because I don't know anything about it.


But... I still recommend a language like C#. I tried with C++ in the past, and failed miserably trying to get my head wrapped around it. With C#, the learning process has been so much easier, and expert programmers have even told me that it's easy to go from knowing a language like C# and delving deeper into how lower level languages like C++ work if you really wanted to.
 
ok...what about C#...is that "free" (as in that it comes with microsoft office, or that type of stuff).
Note that to understand what you are doing you should brush up on OOP concepts - just ask a programmer to explain abstraction, encapsulation, data hiding, polymorphism and inheritance.

If you're only looking to crunch numbers and solve equations, C++ is simple and powerful enough, and you can learn the basics within hours.

But Java and C# have classes that allow you to make GUIs and games within days or weeks. In fact, in Java it's easier to work graphically than with a console (you have to create your own buffered stream reader). Also, you won't have to constantly check for memory leaks and other things you might miss. It really reduces the workload.

There are many free textbooks for every language, you just have to sift through pages of google search results.

Free IDEs:-

Java:
NetBeans
JCreator

C#:
SharpIDE
 
Java:
NetBeans
JCreator

C#:
SharpIDE

You forgot arguably the best free C# IDE available... Microsoft's own C# Visual Studio Express. I love it!

Anyways. Some books I recommend for C# are

Programming C#: Building .NET Applications with C# http://www.amazon.com/Programming-C-Building-NET-Applications/dp/0596006993

Programming C# http://www.amazon.com/Programming-C...bs_sr_1?ie=UTF8&s=books&qid=1200691007&sr=1-1

Learning C# 2005: Get Started with C# 2.0 and .NET Programming http://www.amazon.com/Learning-C-20...=sr_1_3?ie=UTF8&s=books&qid=1200691051&sr=1-3

I think the last two are by the same author. And I think he has a new book out actually.
 
Back
Top