PDA

View Full Version : Programming for beginners



bradcarr
February 1st, 2008, 04:55 AM
I would like to learn some type of programming language and have no idea which one to start with. If some one could please recommend a good starter language, website for a newby.

Big thanks in advance

ubuntu27
February 1st, 2008, 05:02 AM
I am a beginner in Programming. Right now I am self-studying Phiton using some books I bought from Amazon.com

The following is the book I bought. It didn't disssapoint me. Highly recommended!

Core Python Programming (2nd Edition) (http://www.amazon.com/Core-Python-Programming-2nd/dp/0132269937/)

Learn to Program Using Python: (http://www.amazon.com/Learn-Program-Using-Python-Self-Starters/dp/0201709384/)


Also, browse the PROGRAMING FORUMS (http://ubuntuforums.org/forumdisplay.php?f=39). You will find many useful threads in there. :)

http://ubuntuforums.org/forumdisplay.php?f=39

PinkFloyd102489
February 1st, 2008, 05:31 AM
Ruby on Rails. :-P

LaRoza
February 1st, 2008, 05:45 AM
See the learn to program link in my sig.

LaRoza
February 1st, 2008, 05:46 AM
Ruby on Rails. :-P

That is not for beginners. That is a language with a framework.

geraldm
February 1st, 2008, 05:47 AM
a scripting language is recommended. There are three that are most recommended: perl, python and ruby. Any of those are good, powerful, and you can get started quickly (and also freely)
Of those, I like ruby the best.
tutorial:
http://en.wikibooks.org/wiki/Ruby_programming_language
home of ruby:
http://www.ruby-lang.org

python also has its own tutorial.

Gerald

LaRoza
February 1st, 2008, 05:49 AM
See the stickies, they will help a lot.

amingv
February 1st, 2008, 06:17 AM
Go for Python, if you don't learn how to use it you'll end up with a nice desktop calculator:grin:

To that one might add no compiling headaches, multi-platform, preinstalled in most linux distros, easy to learn and excellent documentation.

Here... (http://docs.python.org/tut/tut.html)

incubus
February 1st, 2008, 06:56 AM
Hello,

I was checking the sticky post for new programmers, and I saw the Wiki http://ubuntuprogramming.wikidot.com/languages. I'd like to mention that I added an entry for Haskell. Feel free to edit it, of course.

I suggest Python as well, as a first programming language. It has a fairly clean syntax, it has lots of libraries, so you can start doing interesting things right away, and many people here know it, so you can come and ask questions.

incubus

bradcarr
February 1st, 2008, 07:45 AM
Thanks for all the info everybody!

lnostdal
February 1st, 2008, 07:55 AM
yeah, i'd say go for Python .. it has the simplicity of a toy or "learning language", while having the expressive and flexible power of a academic type language - even still while maintaining a connection with the "real world" (#1) at the same time

so you get as much as possible of the coolness (Lisp/Haskell/Forth), the "usefullness" (C#/Java) and the "friendliness" (BASIC) .. all in one package -- Python

#1: the libraries -- connecting it to the "real" or outside world .. oh, and it is portable of course

pmasiar
February 1st, 2008, 02:36 PM
I would like to learn some type of programming language and have no idea which one to start with. If some one could please recommend a good starter language, website for a newby.

Your question was FAQ answered, we even had poll: Python won, in opinion of like 40+% is the best first language. See wiki in my sig for free tutorials and training tasks.

Meta-advice: If you want to be seen less as newbie, you should check stickies/FAQ first. read also "How To Ask Questions" in my sig.

Note to admins:

Just thinking aloud: Maybe it could help if stickies had FAQ in title, although I still doubt.

Maybe having "did you read stickies? Read them now" question right next to "New Post", or in the page after checking relevant titles, could prevent people from embarrasment of asking such FAQed questions?

cprofitt
February 1st, 2008, 03:10 PM
This is a book I have found useful... mostly because it focuses on the 'big picture' of programming over the minute details of a specific language. In short, it builds a foundation for programming.

Python Programming: An Introduction to Computer Science (Paperback) (http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1201874944&sr=1-1)

LaRoza
February 1st, 2008, 05:32 PM
Note to admins:

Just thinking aloud: Maybe it could help if stickies had FAQ in title, although I still doubt.

Maybe having "did you read stickies? Read them now" question right next to "New Post", or in the page after checking relevant titles, could prevent people from embarrasment of asking such FAQed questions?

Admins don't usually seem to post here, so I (a mod) am answering.

The FAQ is a sticky now.

An admin could do that, but would be unlikely too. The best I can think of is a sticky saying to read the stickies first. (Yes, too bad that wouldn't work)

pmasiar
February 1st, 2008, 05:51 PM
Maybe having "did you read stickies? Read them now" question right next to "New Post", or in the page after checking relevant titles, could prevent people from embarrasment of asking such FAQed questions?

An admin could do that, but would be unlikely too. The best I can think of is a sticky saying to read the stickies first. (Yes, too bad that wouldn't work)

Do you think that suggested change to page template would help solve the problem?
What will be better forum to suggest this change? I assume you know better other forums here, i waste too much time ere to have any time to go to other forums... :-)

Sorry about confusing mods and admins. Those divine creatures are close enough for me, a mere mortal. :-)

pmasiar
February 1st, 2008, 05:57 PM
This is a book I have found useful... mostly because it focuses on the 'big picture' of programming over the minute details of a specific language. In short, it builds a foundation for programming.

Python Programming: An Introduction to Computer Science (Paperback) (http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1201874944&sr=1-1)

Excellent choice for geeks. Zelle's Python book is used in MIT (http://public.wartburg.edu/trumpet/2007/04-03/python.html): "MIT started using his book a year ago as an alternative to Java for their introductory courses."

In my wiki I have free online tutorials which are little simpler. It is different if you don't have a teacher around to help you.

LaRoza
February 1st, 2008, 06:03 PM
Do you think that suggested change to page template would help solve the problem?
What will be better forum to suggest this change? I assume you know better other forums here, i waste too much time ere to have any time to go to other forums... :-)

Sorry about confusing mods and admins. Those divine creatures are close enough for me, a mere mortal. :-)

Forum Feeback and Help (http://ubuntuforums.org/forumdisplay.php?f=48) -- this is where you would ask. Yes, I wish there were a way to ensure the stickies where read and understood. During a discussion with me and a few others, I mentioned that moderators (I wasn't a mod then) should have tasers that they could use to shock people into compliance. Someone else said "RTFM == Remote Tasing From Moderators"

I have refered to mods as "lowly creatures" before. Also, I have compared admins to Yog-Sothoth and mods to Cthulhu.

rufius
February 1st, 2008, 06:11 PM
I'd suggest Pascal... very small set of syntax rules and quite fast :) Depends on how into it you are though... I think libraries are a bad way to go until you actually know how to construct those libraries. Otherwise you end up with a bunch of developers who only know how to use libraries and not write their own functions to solve problems... Thats my two cents though.

This is a good tutorial for pascal (not delphi/object pascal): here (http://taoyue.com)

Maybe that'll help :)

pmasiar
February 1st, 2008, 06:18 PM
Pascal (http://en.wikipedia.org/wiki/Pascal_%28programming_language%29) was good learning language back in 70ies and 80ies, but is 20 years older that Python, and it shows too.

Lster
February 1st, 2008, 06:37 PM
Pascal is good now. ;)

EDIT: The link is, as pojnted out, irrelevant.
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=fpascal&lang2=python

popch
February 1st, 2008, 07:12 PM
Pascal (http://en.wikipedia.org/wiki/Pascal_%28programming_language%29) was good learning language back in 70ies and 80ies, but is 20 years older that Python, and it shows too.


Pascal is good now.

Pascal still is an excellent language for learning. If you set your aspirations a bit higher, you might want to take a look at Modula II. It's a successor to Pascal, sort of.

LaRoza
February 1st, 2008, 07:16 PM
What language is good for beginners has a thread: http://ubuntuforums.org/showthread.php?t=528134

pmasiar
February 1st, 2008, 07:28 PM
Pascal still is an excellent language for learning. If you set your aspirations a bit higher, you might want to take a look at Modula II. It's a successor to Pascal, sort of.

I never argued that pascal is not good for learning. It is. And it is also much older than Python, with all the consequences. It might be good as first statically typed language, before C or Java (as less confusing). You are even free to recommend pascal as free language. I know Pascal, and it is not the language that I would recommend as first, that's all. IMHO, YMMV.

One possible way to pick a language, beyond looking at "hello world" program which tell a little, is to check
http://99-bottles-of-beer.net/ website and solutions for candidate language: Python (http://99-bottles-of-beer.net/language-python-808.html) vs Pascal (http://99-bottles-of-beer.net/language-pascal-1067.html).

Difference is not that big, Pascal **is** decent language - just not the best for the beginner IMHO

What annoys me when someone adds comment and misleading link to some performance table. Are we talking about "best language for a beginner" or "fastest language for some benchmark"? Are you off-topic? Intentionally misleading? Or just without clue? Or a troll liking to waste people's time?

Of course statically typed language will be faster. But if you want, you can compile Python too, to compare apples with apples and not oranges.

Lster
February 1st, 2008, 08:14 PM
What annoys me when someone adds comment and misleading link to some performance table. Are we talking about "best language for a beginner" or "fastest language for some benchmark"? Are you off-topic? Intentionally misleading? Or just without clue? Or a troll liking to waste people's time?


Sorry if you feal that was a troll-like post. I entirely agree Python is probably the most suitable language for learning. However your post seems to imply inferiority of Pascal to Python which I posted the link to highlight that this isn't necessarily the case.

My link was not supposed to argue in anyway that Pascal is best for learning and now looking back at your post I can see entirely what you meant. I think that you sentence was slightly ambiguous and that combined with my tiredness I missunderstood that you were referring to the learning of Pascal (as opposed to the merits of either language).

Sorry,
Lster

pmasiar
February 1st, 2008, 08:41 PM
OK I also apologize I associated you with the mountain dwellers who can think only in high elevations where cold air cools their brains - fans of Diskworld will get my drift :-)

Pascal is decent language and I liked it back in days when structured programming was the new thing. TurboPascal was the killer well into 90ies, when Borland Turbo IDE was what now Visual Studio is.

ghostdog74
February 2nd, 2008, 01:36 AM
I would like to learn some type of programming language and have no idea which one to start with. If some one could please recommend a good starter language, website for a newby.

Big thanks in advance

what you need is not so much of learning a particular language, but you should get yourself some reading materials that is language indepedent, and just teaches you about programming concepts such as memory management etc.

days_of_ruin
February 2nd, 2008, 04:54 PM
greenteapress.com.Free books!

DamagePlan
February 2nd, 2008, 10:56 PM
I recommend Python because its powerful due to so many modules being available and the language is well documented.

bradcarr
February 3rd, 2008, 06:08 AM
Thanks again!

rufius
February 4th, 2008, 04:15 PM
Pascal (http://en.wikipedia.org/wiki/Pascal_%28programming_language%29) was good learning language back in 70ies and 80ies, but is 20 years older that Python, and it shows too.

What makes it no good for learning now? I don't see the relevance. The point is to understand how a program works, not how to learn to pump out chunks of code with 20 library calls in 23 lines of code. If you learn what its like to do things without some of the perks of more modern languages, you appreciate what you get with python (or the like) more.

The focus today as opposed to 20 years ago is to learn how to play with API vs learning how to write your own API. You won't learn near as much just playing with API someone else wrote.

Lets not forget, in terms of simplicity of learning the actual syntax, the original pascal reference was only about 30 pages compared to C's 150 (roughly) pages, or C++'s twice that. Python's is probably around the same area. The language itself is simple to learn, its building on the concepts that'll get you.

Note: I'm only talking about Pascal, not any variant of Obj-Pascal or Delphi or the like.

pmasiar
February 4th, 2008, 06:09 PM
Rufius, you **so obviously** do not know Python, and likely Pascal, too. I did learned Pascal long time ago, did not used it for like 15 years, but let me respond from memory:
- Pascal has static types, Python has dynamic typing
- Pascal has no operator overloading, multiple inheritance and other OOP goodies
- Python has other features where Pascal does not even come close, like exceptions, dictionaries directly in language, list comprehension, generators and generator expressions, default and keyword parameters, dynamic evaluation, introspection
- and Python syntax is still about 60 pages of pocket format, about 1/4th of standard page (see Python Pocket Reference by O'Reilly), so it's "complexity" is still about half of the Pascal.

I cannot recall any feature of Pascal missing in Python (except static typing, but this is a bug, not a feature :-) )

No offense, but you are likely a blub programmer (http://www.paulgraham.com/avg.html) and don't appreciate Python features which are not present in a language you use now - is it Java? PHP?

popch
February 4th, 2008, 06:54 PM
(...)
- Pascal has static types, Python has dynamic typing
- Pascal has no operator overloading, multiple inheritance and other OOP goodies
- Python has other features where Pascal does not even come close, like exceptions, dictionaries directly in language, list comprehension, generators and generator expressions, default and keyword parameters, dynamic evaluation, introspection
- and Python syntax is still about 60 pages of pocket format, about 1/4th of standard page (see Python Pocket Reference by O'Reilly), so it's "complexity" is still about half of the Pascal.

I cannot recall any feature of Pascal missing in Python (except static typing, but this is a bug, not a feature :-) )

Actually, this thread is called 'Programming for beginners', presumably for a reason. It is not called 'Programming most suitable for Blurb programmers', no matter which variant of Blurb you prefer.

With that in mind, a structurally very simple language is better suited than one in which even the features have features. The reason for that is that the beginning programmer can learn and apply all of the language within reasonable time. The programmer can then see where the narrow feature set actually hinders the problem solving process and where it is just a matter of coding convenience (lazyness).

Strictly typing and absence of overloading is - for beginning programmers - a feature. One of the main differences between languages and computer programming languages lies in the strict definition of terms and concepts. Variables have to be spelled the same throughout the program, values have to be of the same type, lists of conditions must be exhaustive. You can not imply anything not explicitly implied by the programming language.

It is an advantage for the beginning programmer if the language is reasonably abstract while still maintaining a close relationship between number of statement and number of operations executed. The repertory of things you can express in Pascal is still quite close to the metal. Once you have a good grasp of algorithms you will comprehend quite easily the more powerful constructs offered by more powerful languages. Once you have done a list comprehension or a dictionary lookup the hard way (even if it did not even work properly) you will not have the smallest doubt about when to use those and when not. You also have a good grasp of the computing power required to execute your programm.

I find your statement concerning the relative complexities of Pascal and Python a bit puzzling. In Pascal, both the number of elements as well as the number of ways those elements can be combined to produce well formed programs is much smaller than in Python. Do you use another method to reckon complexity, and, if so, which one and why?

There are some 'features' missing in Pascal which a beginning programmer should learn about, and learn early. Strictly typed OOP would be a very useful thing, IMO. Others can be found and made points for. Also, it is not an overwhelming catastrophe if someone starts learning how to program with Python which is a very nice Blurb as well.

Still, to my mind Pascal is one of the best learning toos, provided you have some scripts or other guidance for the first steps of your learning experience.

pmasiar
February 4th, 2008, 07:54 PM
structurally very simple language is better suited than one in which even the features have features.

Python is very simple - all the features are well hidden until you need them. It is not Java. Which dynamically typed language you know, if any?

> Strictly typing and absence of overloading is - for beginning programmers - a feature.

Typing is really confusing for beginners, "duck typing" is "forgiving" and makes computer to figure it out. Of course it is good to learn strictly typed language - but later, not as first, IMHO.

> The repertory of things you can express in Pascal is still quite close to the metal.

I see contradiction in high-level programming ("reasonably abstract") which is "close to the metal". In Forth is is possible, but it is not a language for beginners - or even for average programmers. :-)

> Once you have done a list comprehension or a dictionary lookup the hard way

no thanks, why do it hard way for beginners? Let's do it easy way first, then learn about iterators. :-)

> You also have a good grasp of the computing power required to execute your programm.

Why bother beginner with the computing cost of statement? Why not just let computer figure it out?

> I find your statement concerning the relative complexities of Pascal and Python a bit puzzling. In Pascal, both the number of elements as well as the number of ways those elements can be combined to produce well formed programs is much smaller than in Python. Do you use another method to reckon complexity, and, if so, which one and why?

You mentioned that Pascal syntax has 60 pages. Python syntax is smaller with more features. You don't need to use them if you don't want to, they are "hidden".

> Strictly typed OOP would be a very useful thing, IMO.

yes, but IMO as second language.


Still, to my mind Pascal is one of the best learning toos, provided you have some scripts or other guidance for the first steps of your learning experience.

So we agree that Pascal is good second language, best statically typed language to learn. I agree, Pascal is IMHO better that C, C++, C# or Java. But it is not that widely used anymore, so student after learning programming in Python may want to learn "real" language which can be used on the job.

Also, Python has one killer feature entirely missing in compiled languages like Pascal: language shell. You can type in statements one at a time, create objects, and apply methods/functions. This allows student to learn and try language one line at a time, one feature at a time, without the need to write half-page stub code just to try one function call.

popch
February 4th, 2008, 08:48 PM
Python is very simple - all the features are well hidden until you need them. It is not Java.

Features hidden until needed are exactly the thing I do not recommend for a language for beginners, as I have stated in my post above. The main goal of the tools used for learning are not the same as for tools to be used in production environments.


Typing is really confusing for beginners, "duck typing" is "forgiving" and makes computer to figure it out. Of course it is good to learn strictly typed language - but later, not as first, IMHO.

Typing is not actually difficult to understand. What's difficult for many people to learn is the way information is represented within computer systems, and that the decision on the types to be used is sometimes difficult to arrive at.

We do not have to quibble about which lesson about programming has to be the first one. Representation of data and enforcement of proper representation and interpretation must be learned before someone can call herself or himself a programmer. Strict typing is a valuable tool to this end.

The Ariane rocket had to be exploded in mid-air because programmers did not agree on the type of one item of data passed between two modules.


I see contradiction in high-level programming ("reasonably abstract") which is "close to the metal". In Forth is is possible, but it is not a language for beginners - or even for average programmers..

No contradiction there. Pascal introduces a few very high level concepts. It also provides an orthogonal feature space. The implementation was done using a virtual computing architecture which was straight forward to implement. Remember that some of the first implementations of the 'IDE' ran in rather less than 64kB, if memory serves me right. In any event, I used UCSD Pascal on the Apple ][ computer.

What makes you say that Forth was not for average programmers? Is in your evaluation the 'average programmer' so poorly educated that this language is to be considered difficult?


Why bother beginner with the computing cost of statement? Why not just let computer figure it out?.

There are quite a few discussions in this forum and all over the places where computing is discussed. An impressive number of those discussions centers on the demand some software systems place on the hardware they are run on.

Why did not the computers figure out how to run the software provided reasonably fast in a reasonably small memory?

Fact is that in software any kind of reasonable efficiency is produced by computers to a relatively small part. A vastly larger part of that efficiency is gained or lost by programmer's skills.


You mentioned that Pascal syntax has 60 pages. Python syntax is smaller with more features.

It was not me, and the number of pages given was not 60.

Compare the original 'Programming in Pascal' with Python's syntax reference. Also compare how the Pascal text defines its terms while Python takes most of its terms as given.


But it is not that widely used anymore, so student after learning programming in Python may want to learn "real" language which can be used on the job.

Since learning how to program is about data, algorithms and such and not about the API at all, it does not matter greatly if you do not touch your first language ever again after having learned it.

Your mileage may vary, but I think I became reasonably proficient in programming after learning and extensively using my third language.


Also, Python has one killer feature entirely missing in compiled languages like Pascal: language shell. You can type in statements one at a time, create objects, and apply methods/functions. This allows student to learn and try language one line at a time, one feature at a time, without the need to write half-page stub code just to try one function call.

Such a feature is invaluable in learning the API of the language. Its use is rather limited when learning about data types, flow of control, boundary conditions and the development of algorithms, which are the basic staple of programming.

In that respect, I still prefer Smalltalk which is by the way a compiled language. I also greatly liked Forth (also compiled after a fashion) because you could do nearly everything interactively. In fact, any workspace environment beats command line environments most of the time.

pmasiar
February 4th, 2008, 09:14 PM
I do not plan to start another "why I love/hate Python" - we have that thread.

Sorry it was rufius who posted misinformed comparison of Pascal and Python, not you. He seems not to know Python at all - about you, I am not sure, even if I asked. :-/

I am not sure if you agree with rufius, or just disagree with me :-) Lot of people dislike me promoting Python, but I have to do it to keep my sanity while hacking on Java at work :-)

You obviously do not like Python. In my experience, beginners love it, especially if I show them what they need to do to make HelloWorld.java run. :-) IMHO, YMMV.

By design, and also according to my personal experience, Python can be the only general programming language which scientist need to learn and to solve most of her problems. You suggest requirement to learn more languages, I do not see the point, but lets agree to disagree. I am not going to try to reply on everu point I disagree, even if I could - I let reader to form opinion by own resaerch and experience.

If you want to discuss relative pro and con of Forth, that would be something completely different, of course - but in separate thread. You start it if you want :-)

popch
February 4th, 2008, 09:22 PM
... know Python at all - about you, I am not sure, even if I asked. :-/

You obviously do not like Python. (...) You suggest requirement to learn more languages, I do not see the point, but lets agree to disagree.(...)
If you want to discuss relative pro and con of Forth,

I have not had much experience with Python, but that's quite irrelevant since all my points centered on properties of the language which are readily visible after studying the language definition.

I do not see how you formed your opinion that I do not like Python. In fact, I do, as far as I can tell. But then, I like many things which I do not recommend for beginners. Take my motorcycle, for instance...

And I'd rather not take part in a discussion pro and contra Forth. Suffice it to say that I once wrote for my personal amusement a language which I called 'Neuf' (for 'Not Entirely Unlike Forth'). However, I discarded it after several months lest people became distracted by yet another programming language.

rufius
February 4th, 2008, 10:08 PM
I do not plan to start another "why I love/hate Python" - we have that thread.

Sorry it was rufius who posted misinformed comparison of Pascal and Python, not you. He seems not to know Python at all - about you, I am not sure, even if I asked. :-/

I am not sure if you agree with rufius, or just disagree with me :-) Lot of people dislike me promoting Python, but I have to do it to keep my sanity while hacking on Java at work :-)


You **so obviously** entirely missed the point of my post. My agenda was not to put down python. I use python daily, and quite enjoy it, its by far and large one of my favorite languages to work in. I'd even venture to say that my job would be a lot harder without it.

My point that you **so obviously** missed was that beginners need to take the time to cut their teeth with a language that does next to nothing for them. Pascal is in that realm of languages, and if I read correctly popch was advocating the same.

You learn the hard stuff first, not ignore it because its "boring" and "uninteresting" and we can't create anything "cool". Anyone learning programming for that reason shouldn't bother, at all.

Because you can drive a car does not mean you understand a car. Likewise, because you can write python, does not mean you understand how it works. Beginners who wish to understand programming and become good programmers must first understand how we went from something like Pascal or C to something like Python.

Your promotion of python is understood as many like/love/adore it and its a great language, but please read someone's post for what it means and not what you want it to mean.

PS: I don't even know PHP and I hardly work in Java. I work in C, OCaml, and Python most of the day :)

pmasiar
February 4th, 2008, 10:08 PM
I am afraid that any further discussion will be like this (http://www.mindspring.com/~mfpatton/sketch.htm)

BTW this is one of the reasons what Python is so obviously wastly superior: can your language namesake, Blaise Pascal (http://en.wikipedia.org/wiki/Blaise_Pascal) do that? :-)

pmasiar
February 4th, 2008, 10:15 PM
My point that you **so obviously** missed was that beginners need to take the time to cut their teeth with a language that does next to nothing for them....

You learn the hard stuff first, not ignore it because its "boring" and "uninteresting" and we can't create anything "cool". Anyone learning programming for that reason shouldn't bother, at all.


I use car, cell phone, camera, electricity and zillion other things daily without bothering how they work at low level.

Even your idea does not make sense: so you suggest that before learning programming, user needs to learn nuclear plant design to make some electricity, organic chemistry to make polymers for keyboard, and ... some socket programming to understand internet, to download Python installer? LOL.

- Yes you contradict
- no I don't

see link in my previous post :-)

Many people use programming as way to solve problems, not to establish supremacy over others

rufius
February 4th, 2008, 10:23 PM
I use car, cell phone, camera, electricity and zillion other things daily without bothering how they work at low level.

Even your idea does not make sense: so you suggest that before learning programming, user needs to learn nuclear plant design to make some electricity, organic chemistry to make polymers for keyboard, and ... some socket programming to understand internet, to download Python installer? LOL.

- Yes you contradict
- no I don't

see link in my previous post :-)

Many people use programming as way to solve problems, not to establish supremacy over others

So you argue for users who don't understand how a hash table works? Or a binary tree? Or how about a min/max heap? Or how heap sort, quick sort, and merge sort work? Or how about matrix chain multiplication, dynamic programming, greedy algorithms, and linear programming (admittedly very hard), and graph algorithms?

I never argued to understand all underlying parts to a ridiculous level. I argued for understanding what those libraries are doing for the user. With python you can ignore most things, ask for a sort and be on with your day. Good for you, my point is learn how those sorts work, what Big-Oh notation is, how to implement heaps and use them to your advantage.

I understand that you'll have your hobbyist programmers who are just making some rinky-dink application. My opinion though is that any person who is really interested in programming ought to spend the time to appreciate what a language like python offers compared to what Pascal does.

By taking your stance, you're effectively bastardizing the entire field of computer science by promoting ignorant programmers without an understanding of their tools and how they work.

I think thats all I have to say about this now.

rufius
February 4th, 2008, 10:24 PM
I am afraid that any further discussion will be like this (http://www.mindspring.com/~mfpatton/sketch.htm)


You're probably right.

LaRoza
February 4th, 2008, 10:25 PM
Thanks for all the info everybody!

This is post 10.

It seems the question was solved on the first page.

I certainly hope bradcarr doesn't read the rest of this thread....

popch
February 4th, 2008, 10:26 PM
Now WILL BOTH OF YOU PLEASE BEHAVE.

This thread's topic is not all that difficult to understand. It also is not worth getting into heated arguments over it.

LaRoza
February 4th, 2008, 10:29 PM
Now WILL BOTH OF YOU PLEASE BEHAVE.

This thread's topic is not all that difficult to understand. It also is not worth getting into heated arguments over it.

What did I do?

popch
February 4th, 2008, 10:31 PM
What did I do?

You stood innocently by, if that's the verb I am looking for.

LaRoza
February 4th, 2008, 10:32 PM
You stood innocently by, if that's the verb I am looking for.

I thought by "both" you mean the two posters on this page, and I would venture to say the three of you behave...

staticvoid
February 4th, 2008, 10:34 PM
hm..

I'm learning JAVA, and it rocks. its all Object-Oriented Programming, which totally ROCKS. plus its a great first languange. :)

Sv

LaRoza
February 4th, 2008, 10:36 PM
hm..

I'm learning JAVA, and it rocks. its all Object-Oriented Programming, which totally ROCKS. plus its a great first languange. :)

Sv

Here we go again...

The whole question of what is the "best" first language and this forum's member's opinions is addressed in another thread and is in the stickies.

The OP's question was answered (by "read the stickies") and the OP was satisfied.

popch
February 4th, 2008, 10:36 PM
I thought by "both" you mean the two posters on this page, and I would venture to say the three of you behave...

I meant the two 'other' posters on the page before that, and you're quite right in any case. Sorry.

Wybiral
February 4th, 2008, 10:39 PM
I think all FOUR of you need to behave :)

I don't see the point in arguing, everyone knows that Python is better. O:)

pmasiar
February 4th, 2008, 10:46 PM
So you argue for users who don't understand how a hash table works? ...

... With python you can ignore most things, ask for a sort and be on with your day.

Exactly. Use hash and sort, you can learn how quicksort is implemented later, if you want.


I understand that you'll have your hobbyist programmers who are just making some rinky-dink application. My opinion though is that any person who is really interested in programming

Stop right there.

Why do you think all people have to be interested in programming? For most people, computer is a tool which helps them solve problem, so they can have a life.

I would not call a biologist who is massaging files with DNA patterns for BLAST a hobbyist making rinky-dink app. Your brain might explode if you know what she does about DNA of Drosophila. She just does not care how hash is implemented (all she needs to know is how it "works", API) - it is just a tool, an abstraction.


ought to spend the time to appreciate what a language like python offers compared to what Pascal does.

By taking your stance, you're effectively bastardizing the entire field of computer science by promoting ignorant programmers without an understanding of their tools and how they work.

By taking **your** stance you say, ie if someone does not understand how radio telescope works, should not even try to think about Big Bang. Astronomy is not "telescope science". If someone does not know how Two-phase commit (http://en.wikipedia.org/wiki/Two_phase_commit) works, is forbidden to use databases.

Computer is a tool, computer programmers (who you call "scientists") are skilled craftsmen creating tools (abstractions) for other people to use. Why would people bother to learn how your abstractions work? Should TV people require user certificate before you are allowed to turn on TV?

Different people need different tools. Beginner programmer (who may never learn O() notation) need different tool than someone who decided to hack on kernel, study algorithm design etc. Don't be so elitist - computer science is interesting, but is is not cornerstone of the universe - even if CompSci might be important for you.

Wybiral
February 4th, 2008, 11:03 PM
IMO learning the algorithms is the MOST important thing you can do. Learning low-level things like: hassling with static types, pushing / popping bits around, worrying about buffer overflows / internal string representation, etc, this stuff rarely matters from an algorithmic point of view. I'd rather be concerned with how I'm going to turn this operation from O(n) to O(log n) than be concerned with predeclaring variables as this or that type or trying to remember if I have a pointer to a pointer or just a pointer (wait, how many times should I dereference that again?). Clean, dynamic, languages like Ruby and Python allow you to do just that, forget about managing the tiny bits and details and learn to manage the BULK of your problem. It's more productive, efficient, and relevant (computer architecture changes more than the algorithms, how your data is represented at the lowest-level is irrelevant).

popch
February 4th, 2008, 11:08 PM
(...) For most people, computer is a tool which helps them solve problem, so they can have a life.

I would not call a biologist who is massaging files with DNA patterns for BLAST a hobbyist making rinky-dink app. Your brain might explode if you know what she does about DNA of Drosophila. She just does not care how hash work - it is just a tool, an abstraction.

(...) If someone does not know how Two-phase commit works, is forbidden to use databases.

Computer is a tool, computer programmers (who you call "scientists") are skilled craftsmen creating tools (abstractions) for other people to use. (...).

Please take the following as an expression of experience. If your experience differs, fine. If your perception differs, fine.

First, it makes a difference whether you are programming for fun, to support your own work (academical or otherwise), to support processes involving other people/oganisations or for a living.

I agree that the person cataloguing DNA data should be intellectually able to arrive at a reasonable data structure and at reasonable applications to do with that data whatever needs done.

If she does not learn about data representations and algorithms in time, arriving at the proper solution might become more costly (in terms of time and data errors) than otherwise.

I have met professionals of their respective trades which were sadly lacking in any kind of knowledge about IT while at the same time entrusting their carriers to computers. I also have met professionals and (middle level) managers who have written applications for their teams. Most of them did, in fact, not know about two phase commits.

While I do not think that every inhabitant of our planet must be conversant with every intricacy of software development, I also do not think it will do for someone who professionally depends on computers to 'just use' them without learning the first thing about them.

thornmastr
February 4th, 2008, 11:18 PM
This has become a perfect example of a thread that should have been closed and is still going on and on and on and on and on.

Perhaps a friendly intelligent moderator will end it now.

LaRoza
February 4th, 2008, 11:20 PM
This has become a perfect example of a thread that should have been closed and is still going on and on and on and on and on.

Perhaps a friendly intelligent moderator will end it now.

Yes, but I have posted in this thread, and it is usually not our policy to moderate threads we have posted in.

If someone would report it, and request it be closed, it will be done.

Report the first post of the thread, so no one is singled out.

ugm6hr
February 4th, 2008, 11:49 PM
I think this has run its course.

Closed.