 |
 |
new to programming
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Feb 2005
Status:
Offline
|
|
I would like to learn to write simple amplications, what would be the best way to learn? i assume that languages such as java, cocoa, c++ might offer the greatest scope but are they really suitable for a novice? Would i be better off learning principles in another language and then learning something else later? thanks
|
|
|
| |
|
|
|
 |
|
 |
|
Registered User
Join Date: Apr 2003
Location: The Internets
Status:
Offline
|
|
have you tried the search function? There are a dozen threads just like this with valuable input.
also, spiderwerx has come out with an ebook teaching you c programming on the mac.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Enthusiast
Join Date: Mar 2000
Status:
Offline
|
|
|
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Feb 2005
Status:
Offline
|
|
i had a look using the search function and came up with c1000 threads! the jist was learn c then move on to c++ etc, what i want to know is c easy-ish to learn in its own right and will it explain how things happen as a newbie looking at the code. Or would i be far better off learning java or basic or pascal? which would explain how ideas and concepts work best and which would give the greatest satisafaction to learn, does that make sense?
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
Originally posted by martinol:
i had a look using the search function and came up with c1000 threads! the jist was learn c then move on to c++ etc, what i want to know is c easy-ish to learn in its own right and will it explain how things happen as a newbie looking at the code. Or would i be far better off learning java or basic or pascal? which would explain how ideas and concepts work best and which would give the greatest satisafaction to learn, does that make sense?
My usual suggestion is to learn Java, and then switch to Objective-C/Cocoa (Objective-C is the language used most with Cocoa). Some people feel that C is a better starting place though. I wouldn't recommend C++. It's quite complex.
Books and classes are usually helpful, so use 'em if you get the chance.
|
|
|
| |
|
|
|
 |
|
 |
|
Forum Regular
Join Date: Jan 2001
Status:
Offline
|
|
Java is easy, and much is "built" in.
|
|
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Mar 2001
Location: Seattle, WA
Status:
Offline
|
|
Learn basic logic (if, for, while, etc) any language would do here (perl, php, c, java, etc). Then learn object oriented design. C++, Obj-C, Java, C# many many more are OO languages.
Start small and simple, string output "Hello World!", calculator type programs. Once you have a good handle on classes and such start thinking about frameworks and bigger apps. The internet is full of resources on programming you just need to dig a little.
It is a long hard journey, good luck and don't be afraid to ask for help.
|
|
The spirit of resistance to government is so valuable on certain occasions, that I wish it always to be kept alive.
- Thomas Jefferson, 1787
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Oct 2001
Location: Yokohama, Japan
Status:
Offline
|
|
This may sound stupid to the "real" programmers in here, but it's ridiculously easy to learn how to write a simple Bash script and then package it into an application with Platypus. You won't have nearly the power or flexibility of a true Cocoa or Carbon app, but depending on what you want to accomplish it might be enough.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Sep 2002
Status:
Offline
|
|
The only thing simple about bash scripting (and shell scripting in general) is screwing it up. I would specifically avoid trying to learn programming by using shell scripts.
|
|
|
| |
|
|
|
 |
|
 |
|
Forum Regular
Join Date: Nov 1999
Location: Tampa, Florida
Status:
Offline
|
|
I'm doing the same thing. I've been writing simple web apps (blog engine, web forum, poll generator) in perl and have a few ideas for some OS X applications.
I bought the book "Learn C on the Macintosh" from www.spiderworks.com and I really enjoy it. It is extremely well-written. From here I plan on getting into some object-oriented stuff and move on from there.
But try that book for starters. Its good.
-Finrock
|
Two atoms were talking one day. One atom said to the other "you know, I think I've lost some electrons." The other atom said "are you sure?" The atom said "yeah, I'm positive." www.thisoldpodcast.com
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
My main argument against learning C first is that when you switch to ObjC/C++/Java, not only are you learning a new language and API, you're learning a new mindset (OO vs. procedural). Other than that, I just tend to feel that low level stuff is best learned later. A top-down approach to learning, basically.
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Feb 2005
Status:
Offline
|
|
so assuming i start with java, and use a text editor, so far pico and console seems good enough for first steps. which IDE would be worth looking at later?
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
Originally posted by martinol:
so assuming i start with java, and use a text editor, so far pico and console seems good enough for first steps. which IDE would be worth looking at later?
I use SubEthaEdit for small stuff and Eclipse for larger stuff. Eclipse is quite the hog though.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Jul 2002
Status:
Offline
|
|
You can also use Xcode to do Java development, though I think most people find Eclipse to be superior, even if it is more resource heavy.
|
|
|
| |
|
|
|
 |
|
 |
|
Grizzled Veteran
Join Date: Jun 2001
Status:
Offline
|
|
PHP is pretty nice to start with to learn basic logic flow and control. Can't say the same for variable types in PHP, but it's a rather friendly way to learn programming concepts.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Sep 2003
Location: Pittsburgh, Pennsylvania
Status:
Offline
|
|
Originally posted by martinol:
I would like to learn to write simple amplications, what would be the best way to learn? i assume that languages such as java, cocoa, c++ might offer the greatest scope but are they really suitable for a novice? Would i be better off learning principles in another language and then learning something else later? thanks
I think they're teaching Java in school now, but when I started to learn how to program it was in Turbo Pascal. I would actually recommend learning Pascal if you're truly interested in making yourself an excellent programmer. The reason is Pascal is a very strongly typed language, so you learn about data types, function, procedures, objects, all in a very strict environment. This will help you later on. The second thing is Pascal is not widely used, so you won't get lost in libraries, and gui stuff that you might if you start to dabble in Java.
Once you get the basics move to a different language, take your skills with you, learn the advantages of that new language, write some programs and do it all over again.
If you really want to grow as a programmer try out some languages that are not procedural at all, languages like Scheme, Lisp, or S/ML. When you program in languages like these it forces you to think a whole new way, and you learn how to approach problems better.
Best of luck, you're starting down a long road, which can be quite frustrating at times, but in the end very rewarding.
|
|
|
| |
|
|
|
 |
|
 |
|
Admin Emeritus 
Join Date: Oct 2000
Location: Boston, MA
Status:
Offline
|
|
Originally posted by martinol:
so assuming i start with java, and use a text editor, so far pico and console seems good enough for first steps. which IDE would be worth looking at later?
Eclipse, as mentioned above, is a pretty good environment. I've found that large modifications of code tend to run correctly the first time when I'm writing in Eclipse.
That said, I'm not a huge fan of Java. Personally, I learned to program with C and Perl and I feel like I learned just fine.
While Java is a nice abstraction of a language, I feel it strays too far from what's actually going on and doesn't provide enough of a benefit in doing so. C++ is just a hack of a language in my opinion, but is fairly convenient. I personally like Objective-C better than either of those, but choose whatever you feel the most comfortable with.
I suppose it all depends on your goals. If you just want to learn to program quickly so you can start hacking applications as soon as possible (a fine goal, at any rate), I'd recommend you pick up a guide on C and just learn that. You can easily transition to Objective-C and take as little or as much of the object oriented philosophy as you want.
If you want to have some sense of Computer Science and really understand the fundamentals of programming, I'd learn with Scheme. That's what's taught here in the introductory programming course, and there's a reason for that!
Here's our textbook available in full on the web... http://mitpress.mit.edu/sicp/full-text/book/book.html
|
|
"Against stupidity, the gods themselves contend in vain" (Schiller)
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Nov 2003
Location: SoCal
Status:
Offline
|
|
I think there a few details that were left out of this thread about learning how to program, which is the concept of strong typing (oops, Partisan did mention) and interpreted v. compiled languages. C/C++/Java are all strongly typed whereas Perl is not. IMHO it is far simpler to learn how to write code and learn control logic in Perl because of this.
Also, interpreted languages, like Perl, are almost always easier to learn because it alleviates the pain of compiling (and linking). It also ignores why you must use #include (preprocessor directives) in order to get almost anything done in C/C++. Classpathing headaches from Java can also be omitted. So, I think for a newb it would be easier to learn Perl, then learn how to use Perl packages, then OO Perl. You can get surprisingly alot accomplished at that point.
If you like coding, then it would be in your best interest to learn C/C++ and/or Java as those are where the jobs mostly are. Although the latter may be exported to India.
Why are we even speaking of IDEs at this point is beyond me. They will only serve to impede progress in the beginning by adding more variables for confusion. Don't get me wrong, IDEs (like IntelliJ) are great, but they should be reserved for use a little further down the road.
Perl comes with most unices and ActivePerl is great (if you must) for windoze.
disclaimer: this is just my opinion and I do not want to start a flame war about what language is superior for that is NOT the point of this thread
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Oct 2001
Location: San Diego, CA, USA
Status:
Offline
|
|
If we're throwing out languages, I'm quite fond of Ruby. It's simpler than any of the C family or Java and is much friendlier and more readable (in my opinion, obviously) than Perl without losing the strength. I started learning it recently because I wanted to try out Rails, and I'm very impressed with what a gentle learning curve it has (and yet how far up the curve eventually seems to go). And, of course, it comes right with OS X.
|
|
Chuck
___
"Instead of either 'multi-talented' or 'multitalented' use 'bisexual'."
|
| |
|
|
|
 |
|
 |
|
Admin Emeritus 
Join Date: Oct 2000
Location: Boston, MA
Status:
Offline
|
|
Originally posted by si_lance:
So, I think for a newb it would be easier to learn Perl, then learn how to use Perl packages, then OO Perl. You can get surprisingly alot accomplished at that point.
...
disclaimer: this is just my opinion and I do not want to start a flame war about what language is superior for that is NOT the point of this thread
I understand that you're trying not to start a flame war, but learning Perl as a first language is crippling at best, and damaging at worst. You learn all the wrong habits by learning Perl: it's a language that strongly encourages hacks and bad habits.
|
|
"Against stupidity, the gods themselves contend in vain" (Schiller)
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Nov 2003
Location: SoCal
Status:
Offline
|
|
Originally posted by parallax:
I understand that you're trying not to start a flame war, but learning Perl as a first language is crippling at best, and damaging at worst. You learn all the wrong habits by learning Perl: it's a language that strongly encourages hacks and bad habits.
I think pretty much any language can be poorly coded with cryptic variable naming conventions, unnecessary recursion, and undocumented logic. In Perl, one can "use strict" which will help force variable declarations. Perl can be written clearly if guidelines are used as with any programming language. I think Perl has gotten a bad wrap because of these hackers that like to show off and see how few (unreadable) lines they can code in.
As a side note, I hope I don't start a tangent, but that logic is slippery slope. It's kind of like saying owning a gun leads to killing and bad habits. If you use it correctly to begin with, it's as safe as any other tool.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Sep 2002
Status:
Offline
|
|
I think pretty much any language can be poorly coded with cryptic variable naming conventions, unnecessary recursion, and undocumented logic
True, but PERL is particularly good (or rather, bad) at encouraging that. As the "BUGS" section says "The -w switch is not mandatory."
|
|
|
| |
|
|
|
 |
|
 |
|
Junior Member
Join Date: Mar 2002
Status:
Offline
|
|
Originally posted by Partisan01:
I think they're teaching Java in school now, but when I started to learn how to program it was in Turbo Pascal. I would actually recommend learning Pascal if you're truly interested in making yourself an excellent programmer. The reason is Pascal is a very strongly typed language, so you learn about data types, function, procedures, objects, all in a very strict environment. This will help you later on. The second thing is Pascal is not widely used, so you won't get lost in libraries, and gui stuff that you might if you start to dabble in Java.
I have to agree here - Pascal or Modula2 is a great place to start, but it will be nearly impossable because most schools seem to have moved to Java.
Next to Pascal, I would start with C. It is not the easiest language to get up and running on, but it is the basis for almost all other languages out there and everything you learn is directly usefull in other languages.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Nov 2003
Location: SoCal
Status:
Offline
|
|
Originally posted by v8q:
I would start with C. It is not the easiest language to get up and running on, but it is the basis for almost all other languages out there and everything you learn is directly usefull in other languages.
I'm sorry but C is not the basis for almost all the other langs, there are few branches off the C line.
http://www.levenez.com/lang/history.html
I'm not saying it's a bad language to learn though. Just the stating the facts.
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Oct 2001
Location: San Diego, CA, USA
Status:
Offline
|
|
Smalltalk is an offshoot of Simula and...Lisp? That's kind of an odd hierarchy.
At any rate, most popular languages are based at least to some degree on C, even by that chart. Java, Python, Perl, C++, JavaScript and pretty much every popular language on there that doesn't predate C has it as an ancestor.
(Last edited by Chuckit; Mar 16, 2005 at 04:51 PM.
)
|
|
Chuck
___
"Instead of either 'multi-talented' or 'multitalented' use 'bisexual'."
|
| |
|
|
|
 |
 |
|
 |
|
|
|
|
|

|
|
 |
Forum Rules
|
 |
 |
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
 |
 |
 |
 |
|
 |
|