...

View Full Version : Coding Language



MindTheGap
07-13-2007, 01:03 AM
Hello! I'm interested in programming, but I don't know which language to start with. My main goal is to create a program like a area finder of a rectangle and then move on to more complicated things. Any suggestions on what language I should learn?

Side note: Is it possible to create programs and make them downloadable on the web?

1212jtraceur
07-13-2007, 02:55 AM
I'm extremely knowledgeable about getting started programming. I started with Java. However, I've heard Python is a good one to start with.

Yes, you can make programs downloadable. You can either compile your source code to an executable file, or you can post the source, and let people compile it themselves.

brad211987
07-13-2007, 02:09 PM
I'm a fan of Ruby and Java myself. Both are object oriented languages, and have a lot to offer someone new to programming for guidance in the way of books, forums, online tutorials etc... Ruby is similar to python, and is probably what I would recommend to get started with, as it is very easy to move to more complicated problems with it. Java is great as well, it just takes a little bit more time to get used to the syntax.

jkim
08-01-2007, 10:52 AM
Java is not a good language to start with.

Java is an easy language to learn, but hard to master.
This is because most people who start with Java have no real understanding of how pointers, reference pointers, memory, etc work. They also do not have a solid understanding of what OO is.

A good language to start with is C: this is because this language REALLY teaches you memory management, if not anything else.

A good language to learn OO would be UML. Play around with Rational Rose a bit and read the UML spec sheet.

I would only advise a person to learn Java after they have completed both the above steps (can learn in literally 3 hours, if they've done their work solidly for the above 2 tasks).

oracleguy
08-01-2007, 04:24 PM
A good language to start with is C: this is because this language REALLY teaches you memory management, if not anything else.

A good language to learn OO would be UML. Play around with Rational Rose a bit and read the UML spec sheet.

Or you could just use C++ if you wanted to learn OOP and memory management. Plus then you get useful things like templates then.

jakbo
08-01-2007, 05:13 PM
definitely c++. if you can master c++, then all of the other languages are easy to learn.

Aradon
08-01-2007, 06:28 PM
definitely c++. if you can master c++, then all of the other languages are easy to learn.

That's not true at all. Lisp, for example, is a completely different can of worms then c++ and requires a different outlook in order to use it effectively.

No matter what language you start on, you want to start by learning the basics of the language, then more abstract concepts that you can use in other languages.

You can easily start in Java, despite what most people's think. The issue is that you also learn the concepts about what is going on behind Java as you're learning it. Books help in this aspect, as well as some online tutorials. If you do that while learning Java (which is what I did) then you'll be just as good as any person that starts with C++ if not better. Not to mention that Sun provides a great beginning programming guide in Java.

In the end, however, it doesn't matter what modern language you pick, as long as you commit yourself to learning about the language fully so that you can bridge it to other languages. Don't learn any language halfway and expect to use what you've learned in other languages.

jakbo
08-01-2007, 06:47 PM
That's not true at all. Lisp, for example, is a completely different can of worms then c++ and requires a different outlook in order to use it effectively.

No matter what language you start on, you want to start by learning the basics of the language, then more abstract concepts that you can use in other languages.

You can easily start in Java, despite what most people's think. The issue is that you also learn the concepts about what is going on behind Java as you're learning it. Books help in this aspect, as well as some online tutorials. If you do that while learning Java (which is what I did) then you'll be just as good as any person that starts with C++ if not better. Not to mention that Sun provides a great beginning programming guide in Java.

In the end, however, it doesn't matter what modern language you pick, as long as you commit yourself to learning about the language fully so that you can bridge it to other languages. Don't learn any language halfway and expect to use what you've learned in other languages.

what's a beginning programmer going to need lisp for? isn't lisp sort of confined to the realm of artificial intelligence? that's the impression i'm under, anyway.

Aradon
08-01-2007, 06:51 PM
what's a beginning programmer going to need lisp for? isn't lisp sort of confined to the realm of artificial intelligence? that's the impression i'm under, anyway.

Lisp's only confinement is that with which programmers give it.

There have been a few famous programs that have been written in Lisp. The first Yahoo Store was written completely in Lisp just to name one.

It just went the way of Ada. It is used by a small subgroup of people that will defend it to the end of the world despite it's flaws of use.

:)

jakbo
08-01-2007, 06:56 PM
Lisp's only confinement is that with which programmers give it.

There have been a few famous programs that have been written in Lisp. The first Yahoo Store was written completely in Lisp just to name one.

It just went the way of Ada. It is used by a small subgroup of people that will defend it to the end of the world despite it's flaws of use.

:)

interesting. are there any good tutorials out there i can teach myself lisp with? also, do i need any software in order to compile and execute my programs?

Spookster
08-01-2007, 07:29 PM
are there any good tutorials out there i can teach myself lisp with?

Don't do it. Run away. Run away while you still can.

TheShaner
08-01-2007, 08:57 PM
Don't do it. Run away. Run away while you still can.
Wise words indeed! I learned both LISP and PROLOG in college and then wondered whether I was in Wonderland or not.

I just created this thread (http://codingforums.com/showthread.php?t=120349) to start some discussion and guidance for learning how to program.

-Shane

jakbo
08-01-2007, 10:50 PM
Don't do it. Run away. Run away while you still can.

lol. it's too late. :(

jkim
08-02-2007, 01:19 AM
You can easily start in Java, despite what most people's think. The issue is that you also learn the concepts about what is going on behind Java as you're learning it. Books help in this aspect, as well as some online tutorials. If you do that while learning Java (which is what I did) then you'll be just as good as any person that starts with C++ if not better.

I disagree.

You can't learn what goes behind the scenes with Java. You can study as much theory as you like, and you still won't have a clue.

C, or C++ for that matter, FORCES you to manage your memory well. If you don't; well... you're stuffed and your program falls apart.

Java is sooo easy and user friendly, that a half-brained nincompoop can get a program working. How good it is behind the scenes can only be judged by someone who has vast experience in both C/C++ and strong OO concepts.

As for a language (i.e. C++) teaching a person OO, I disagree again. Programming languages do not teach OO. Modelling languages (UML, OOML, etc) help teach OO. OO is a concept in the theoretical domain, and it's upto the programmer to interpret and apply it to his/her code.

In my 10 year career, I've yet to see 1 single competant Java programmer that started his programming study with the Java language.

Java is a bad starting language, because Java allows programs that are written bad to be run without a hitch.

Aradon
08-02-2007, 07:48 AM
I disagree.

You can't learn what goes behind the scenes with Java. You can study as much theory as you like, and you still won't have a clue.

C, or C++ for that matter, FORCES you to manage your memory well. If you don't; well... you're stuffed and your program falls apart.

Java is sooo easy and user friendly, that a half-brained nincompoop can get a program working. How good it is behind the scenes can only be judged by someone who has vast experience in both C/C++ and strong OO concepts.

As for a language (i.e. C++) teaching a person OO, I disagree again. Programming languages do not teach OO. Modelling languages (UML, OOML, etc) help teach OO. OO is a concept in the theoretical domain, and it's upto the programmer to interpret and apply it to his/her code.

In my 10 year career, I've yet to see 1 single competant Java programmer that started his programming study with the Java language.

Java is a bad starting language, because Java allows programs that are written bad to be run without a hitch.

I'll be honest. I'm unsure how to approach this correctly without going into something that is best served for PM discussion. I'm sorry for your bad experience with Java Programmers. Perhaps the people you've met people who have come from incomplete programs or have been sub-par programmers in general. However an experience of few is no need to generalize in such a way.

I'm unsure of why you seem to have such a hatred of this language as a beginning course. You claim that you can't study what goes on behind Java but this is a completely false statement. Java's memory management, reference/pointer use, and general behind the scenes action can indeed be studied. They do it in universities (which I might add are following a trend of moving to learning Java FIRST)

I mean, you said it yourself:


Java is an easy language to learn, but hard to master.


And I'd hate to break it to you, but C++ is the same way. Memory management, dangling references, messing with dynamic memory pointers, realizing you can go beyond your array, all things that come with mastering. But they aren't necessary to build a C++ program.

I teach basic C++ courses presently (and btw I started my programming career with Java) and I can tell you that there are people who can catch onto the language quick, but not master the concepts of the language.

In the end it's the Programmers, not the language that determine what occurs. So please don't feed us any elitism about how C and C++ is so great. There is no one language to rule them all. There is only situation and which language will work best.

I personally think that any programmer should learn both languages. I also think that it doesn't matter which language you start out with first. As long as you take the time to learn everything about the language as well as the abstract concepts surrounding the science (a term I use loosely) of programming, then it doesn't matter.

Granted learning assembly first may not give you everything you need. But it sure would be interesting once you got to the higher generation languages and learned how much easier things are now!

And to end this discussion for me, two fun quotes:

"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." Bjarne Stroustrup.

"Java: it's the language that spawned a thousand bad puns. Every computer corporation worth, well, beans, has come up with some Java-derived cliche, from the coffee genre (Latte, Cafe, Espresso, Java Beans, Joe) to Indonesian geography (Jakarta, Krakatoa)." - Unknown

jkim
08-06-2007, 09:08 AM
I'll be honest. ... . However an experience of few is no need to generalize in such a way.
I don't know about how many you define to be a "few", but with the variety of code I've seen over the years, I can safely stand behind my claim, and be certain that it's not "rash generalization". No offense, but maybe it's you who's generalizing yourself unto others and not vise versa?


I'm unsure ... learning Java FIRST)
Teaching it first at universities does not justify Java as a good starting language. Actually, it (sort of) proves exactly what I'm saying. I've helped many "junior schoolman" (romanized) / "hoo-bae" (kr) / "ho-kai?" (jp). Since 2000 - 2002 or so, I'd noticed a trend where the university had started to teach Java first, and a rather disturbing correlation between this tendancy and the quality of work that these people were producing.

Of course, this isn't the only data source that I'm making my claims from, since I've seen literally 1000s of files of code from various "Java programmers" throughout my career, but a 100% hit ratio is not something to just dismiss.


I mean, you said it yourself:

And I'd hate to break it to you, but C++ is the same way. Memory management, dangling references, messing with dynamic memory pointers, realizing you can go beyond your array, all things that come with mastering. But they aren't necessary to build a C++ program.
Nope. You are completely and utterly wrong here. And when I say learn: I mean learn to create something, not learn to just compile.

You see, man - in the pluralistic generalized sense - has generally a very minimalistic or lazy heuterist's behavioural pattern. There are exceptions, but on the by-and-large, man tend to be as lazy as can be. Why do you think man uses machines or cars or whatever else man has built? In order to be lazier than he was yesterday. How does this affect "learning with Java" vs "learning with C++"?

The people who are learning the language will learn the minimal amount that they can safely get away with: i.e. the minimal amount that they need to know to code up something spiffy.

People can "learn enough of Java" to code up a,... say... web deployed instant messaging program (applet or AJAX driven - either way very easy)... without having a clue about what goes behind the scene - I'd say a pretty smart guy can code one up on his 3rd day at a Sun Educational Center 5 day Java Programming course (SCJP course) in just a few hours. In C++? I very much doubt that they will be able to do it at all without a rather in-depth knowledge of the language. If you could explain to me how you'd teach your C++ students (assuming no prior programming knowledge) to write up a fully functional, if inefficient and messy, web deployed instant messaging program (probably ActiveX or C++ variant of AJAX driven) after 3 days of standard course work, then I am happy to retract my statement. Oh... and before you ask: no, the teacher was not very good, so it wasn't the quality of the teacher that was at play here.


In the end it's the Programmers, not the language that determine what occurs. So please don't feed us any elitism about how C and C++ is so great.
...
It's not elitism. I never said C and C++ are great. I rather hate them, since they are so tedious. HOWEVER, they are much better LEARNING languages for beginners/new programmers since they are forced to learn what goes on behind the scene to get anything remotely useful to work at all.

Seems to me that you are feeding "Java elitism" and making it out to be the be-all-end-all language. In your own words "different languages for different tasks" - and my claim was that C/C++ are best for the task at hand: learning.

TheShaner
08-06-2007, 05:01 PM
I disagree wholeheartedly with the both of you. I believe teaching C++ or Java to someone who's never done programming before is a big discourager. It's throwing too much info at someone at one time. You throw C++ on them and say it's better because they learn memory management, but damn, they don't even know how a program executes or how memory even works on a computer. It's like taking someone who's never worked on a car before and teaching them how to switch out an engine, but they don't even know how to jack up a car!

In this thread (http://codingforums.com/showthread.php?t=120349), I suggested a more "readable" language like True BASIC because a new programmer can make sense of the code much easier. It reads more like a human language and thus helps solidify concepts in someone's head. They don't have to worry about memory management and OO right away. When you teach kids how to read, do you give them Moby Dick? It has better vocabulary and proper grammar (for the most part). You learn how to construct more complex sentences. But the answer is no. If they don't know the word "help", why would you teach them the word "facilitate"? Teach the basics in an easier learning environment. This allows someone to easier associate the code with the concepts on a much more basic level.

Am I a programming expert? No and I will never claim to be. I graduated with a BS in Computer Science but my job hardly touches the higher languages, so my knowledge and expertise end there. However, I understand basic teaching principles and how people process information easier. You must teach fundamentals first before graduating to advanced concepts. It just doesn't make any sense to teach C++ and Java to someone who doesn't understand programming at all.

-Shane

jakbo
08-09-2007, 09:51 PM
There is a program called "Alice" that is free to download. It is meant to introduce students to computer science very gently. I've seen people using it and I've used it a little myself to see how it works. I'm very impressed with it. I wish I had been introduced to programming with it.

It's a 3D environment in which to place objects and have them do things (object methods) by dragging and dropping the objects and methods into the environment. I think it forces students to focus on the bigger picture (objects and their methods as well as procedural programming) without having to worry about syntax and other details that are picked up along the way.

Maybe starting with that is the way to to; I think it makes it more fun.

altie
08-17-2007, 05:38 PM
Don't do it. Run away. Run away while you still can.It seems to get this reaction a lot. Why?

brad211987
08-17-2007, 06:03 PM
Originally Posted by Spookster View Post
Don't do it. Run away. Run away while you still can.
It seems to get this reaction a lot. Why?

Ever seen Lisp code?

I personally like it, but it is scary at first if you are used to some of the more popular languages.

liorean
08-17-2007, 06:14 PM
It seems to get this reaction a lot. Why?Because LISP is in many ways different to other programming languages. It's a langauge with almost no syntax, so it looks weird if you come from ANY other programming language. Also, the difference between imperative languages like BASIC, C, Java etc. and LISP in the way you have to think about problems makes it hard for many to use the ideas from either language in the others.

I'd say the best starter language I've seen so far though is Python. Python has classical OOP, kinda like C++ or Java. Python also has pretty much every concept worth mentioning from LISP. And it also has the benefit that you don't have to learn about memory management until you actually need to.

Once you can program in Python, learning C/C++ memory management, or learning the LISP style of functional programming, should be much easier than if you begun with either of those. But that's only my private opinion.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum