The Best First Programming Language"<language> as a first programming language"
32 Replies - 2370 Views - Last Post: 01 May 2009 - 07:45 PM
#16
Re: The Best First Programming Language
Posted 27 April 2009 - 01:00 PM
I did actually learned that one as first, though when I learned C-based it was painful...
But Visual Basic is kidna good for beginners because... well, itīs syntax isnīt "a == b || (a + b++ - a%(&e))" etc... but it is more like "a Is b Or (a + (b + 1) - a Mod (&e))" - I mean ... more English and that way easier to learn.
VB6 was a pain too, though, because then I got to VB.NET - similar syntax in few parts, but other than that - more logic of the Developerīs site, not English and stuff...
So, I think VB... NET.
And, BTW, iPhone development is using obj-C... When I tried a "Hello World!" app, I was more like... "Hell world!"...
Its syntax is quite illogical for me still - take for example a simple object. Assume I have the class created already.
- In the definitions outside the functions, there is one syntax.
- In the functions - assigning a value to one member is another syntax...
- And finally when, for example, I want to DELETE it, ANOTHER syntax.
Like crazy.
This one is definitely not good for beginners...
So is PHP... a little, but someone has to get there, but he has to better learn C-syntax first...
#17
Re: The Best First Programming Language
Posted 27 April 2009 - 04:23 PM
#18
Re: The Best First Programming Language
Posted 27 April 2009 - 04:42 PM
#19
Re: The Best First Programming Language
Posted 27 April 2009 - 04:50 PM
#20
Re: The Best First Programming Language
Posted 28 April 2009 - 01:07 AM
mikeblas, on 27 Apr, 2009 - 03:42 PM, said:
It's not too bad of an idea if you're up to the task. It really makes you understand how the computer works.
The biggest problem for a beginner would be to understand where to start (I've found that there isn't that much as far as recent writings on Assembly goes.) So much of the information out there is way outdated when it comes to Assembly, but I guess there really haven't been tooooo many changes in x86 (that I really know of)
#21
Re: The Best First Programming Language
Posted 28 April 2009 - 01:10 AM
BlakeJustBlake, on 28 Apr, 2009 - 02:07 AM, said:
As the processors progress, there are added instructions, & sometimes added registers (as is the case with MMX on the PII). However, I would never suggest Assembly as a 1st language. It's great to learn after one understands the ropes of C/C++, because it really shows you the how & why (in my opinion) to make your programs more efficient, readable, & well commented. From my own experience the more I learn about Assembler, the better I become in C.
Plus, making linked libraries & combining the languages is always fun.
#22
Re: The Best First Programming Language
Posted 28 April 2009 - 01:17 AM
#23
Re: The Best First Programming Language
Posted 28 April 2009 - 06:53 AM
Java/C#
Python
Ruby
Lisp/Scheme etc
C/C++
the rest...
Java has all of the good stuff in my opnion:
JVM basically ensures what you write will work the same everywhere you run it. .
Strong typing.
Structured but clear syntax (which is close enough to C/C++ that you will understand what is going on when you see it).
Excellent online API.
Allows teaching of all of the principles of OOP.
Great unit testing facilities.
========================
Not C/C++ and here is why:
Inconsistent across different platforms. Code that compliles and works on my intel linux box might not compile or run as intended on my schools sparc solaris system or a cygwin system. That adds one more concern that you do not need to worry about when wrestling how to program.
Complexity of passing pointers, references, and values typically leave a noob who barely understand the difference of an object and a primitive staring blankly.
Multiple inheritance mucks the waters when you want to teach inheritance.
Memory management doesn't help teach the principles of writing a program in my opinion. Worrying about destructors and freeing pointers isn't as important as understand how to design the code embracing the principles.
=========================
Nothing against C++ but I have done intro to programming in Java then transfered school a school that does it in C++. I had no prior C programming so I was required to take it. We spend most of the class trying to clarify the things I listed rather than learning to write effective code. C++ should be reserved for someone that already understands the basics so you can focus on the true strengths of C++.
This post has been edited by SpeedisaVirus: 28 April 2009 - 06:55 AM
#24
Re: The Best First Programming Language
Posted 29 April 2009 - 12:55 AM
All depends on what you're looking to do, and what captures your interest I suppose. I have taken an intro to Java class, and I hated it, I got into my intro to C++ class and I love it, all depends on the person i suppose.
This post has been edited by IngeniousHax: 29 April 2009 - 12:58 AM
#25
Re: The Best First Programming Language
Posted 29 April 2009 - 06:16 AM
Perils of Javaschools
This post has been edited by SpeedisaVirus: 29 April 2009 - 06:17 AM
#26
Re: The Best First Programming Language
Posted 29 April 2009 - 08:10 AM
I recall this being a contentious article, when it was first posted 3+ years ago. While VB is hated by everyone else, Java get's it's share of haters, particularly from the C++ crowd.
A salient quote from the article:
Quote
If this were true, it would be a concern. The fact is, you can do the proofs and algorithms stuff just fine Java. These are needed for beginners, the rest is more advanced.
And the advanced is mostly possible. When the author says "lambda calculus" they mean Scheme (MIT snobbery), and I'd tend to disagree that it is required for languages and compliers. Strangely enough, there are a number of "compilers" written in Java (Jython, Scala, Clojure, etc.) You may not see an OS written in Java, but that's hardly an issue; you won't see an OS written in most languages.
#27
Re: The Best First Programming Language
Posted 30 April 2009 - 07:05 AM
SpeedisaVirus, on 28 Apr, 2009 - 05:53 AM, said:
BlakeJustBlake, on 28 Apr, 2009 - 12:07 AM, said:
BlakeJustBlake, on 28 Apr, 2009 - 12:07 AM, said:
I believe the first CS course should be about programming single-board machines in assembly. No graphics, maybe not even keyboards; just text terminals, LEDs and processors and some simple I/O. This reduces the OS to a minimum (or, even, nothing!) teaches students what's really happening without any abstractions in the way, and so on. They develop intuitive feels for how much memory is a little or a lot, how fast the machine really is, and so on.
Such courses can be taught on development kits that cost less than $100 with a minimum of disposable lab equipment per student.
I think that decrying a course because it's not modern is a bit of a bad argument. If the courses were being taught, authors would be writing books to fill the curricula because there would be a market for such books. Further, the bleeding edge of the practice has changed, but the core concepts really aren't any different. Does MMX really have a place in a beginning course?
Here are some recent x86 titles:
The 8088 and 8086 Microprocessors: Programming, Interfacing, Software, Hardware, and Applications, 2004. This is a common textbook with good examples and labs. They won't cover the MMX instructions, but I don't think those have much of a place in an introductory course.
Assembly Language Programming for Intel Processors Family, 2005. This includes 32-bit code, and is more comprehensive than the 8086/8088 book above. It's more appropriate for intro students who are going on to a degree rather than students who are getting some casual CS course requirements out of the way for another major or study focus.
Guide to Assembly Language Programming in Linux, 2005. This uses the NASM tools instead of GCC so it doesn't defeat the idea of using simpler tools. But it's got great coverage of the languages and concepts, and covers Linux installation as part of the setup--though that's probably irrelevant for use as course material.
For non-x86 titles:
Programming and Customizing the PIC Microcontroller, 2007. The PIC is one of the more common embedded controllers, at least in the hobbyist market. With an inexpensive dev kit and free tools, students can learn very simple hardware interfacing, do exciting and tangible products, and not trip over a huge operating system or an incredibly complicated tool chain, but still be exposed to the fundamental concepts which the intro course should be presenting.
Programming and Customizing the AVR Microcontroller, 2000. The Atmel parts are also very popular in the hobbyist market, and some would argue they have a better architecture. Again, the approach here is to use free tools with cheap development kits to do very simple hardware projects that produce a tangible and exciting result while learning how the processor architecture works, without being saddled by learning a huge OS or toolset.
Write Great Code: Volume 1: Understanding the Machine, 2005. This book is the first in a series about how computers really work. It's a great introduction into binary math, ASCII and Unicode encoding, and so on. Best of all, it explains why computers work this way. For each point it discusses in computer architecture, it reviews how that design came to be.
I'm at the point where I can't imagine hiring someone who doesn't know assembly at least well enough to debug code. When analyzing faults in released code, it's a necessary skill. Developers I know who aren't familiar with assembly language programming have flawed concepts of how the machine operates, and tend to make bad design decisions as a result.
This post has been edited by mikeblas: 30 April 2009 - 07:12 AM
#28
Re: The Best First Programming Language
Posted 30 April 2009 - 07:17 AM
#29
Re: The Best First Programming Language
Posted 30 April 2009 - 07:18 AM
#30
Re: The Best First Programming Language
Posted 01 May 2009 - 06:05 AM
|
|

New Topic/Question
Reply



MultiQuote






|