Teach me

A place to discuss the science of computers and programs, from algorithms to computability.

Formal proofs preferred.

Moderators: phlip, Moderators General, Prelates

User avatar
3.14159265...
Irrational (?)
Posts: 2413
Joined: Thu Jan 18, 2007 12:05 am UTC
Location: Ajax, Canada

Teach me

Postby 3.14159265... » Fri Jun 08, 2007 2:59 am UTC

I like Math. I like Physics.
Meow meow mix, please deliver -4d.

I know next to NOTHING about computers. Both my brothers are awsome at it, so I have a refrence.

How do I begin teaching myself? Sites are much more usefull than books.

I need to learn to be able to program a computer to make an input box, put in a number, the computer to do many itterations on it, have a display box, and display certain properties of say a 3000 itteration proccess. This is an example of what I would like.

Any ideas?
"The best times in life are the ones when you can genuinely add a "Bwa" to your "ha""- Chris Hastings

iw
Posts: 150
Joined: Tue Jan 30, 2007 3:58 am UTC

Postby iw » Fri Jun 08, 2007 5:19 am UTC

Quick Start method:

Step 1: Get a book on PHP, install PHP and Apache, then make a web app that does that.

Long Term method:

Step 1: Install Linux and learn how to use it.
Step 2: Install Python and walk through its tutorial.
Step 3: Install wxPython and walk through its tutorial.

Then, if you want to continue programming, there's a whole lot of other stuff to learn about; I recommend downloading Dr. Scheme and reading through SICP as the next step.

User avatar
ttyp9
Posts: 12
Joined: Wed Apr 04, 2007 10:56 am UTC
Location: Austin, TX
Contact:

Postby ttyp9 » Fri Jun 08, 2007 5:43 am UTC

iw wrote:Quick Start method:
Step 1: Get a book on PHP, install PHP and Apache, then make a web app that does that.

quicker:
use html and javascript.
no installation of any extra tools, compilers, runtimes, or interpreters needed. you have a browser, and a text editor (notepad++ for windows, bbedit for mac, or gVim for "nix is nice)

http://www.w3schools.com
is a nice beginner's site

User avatar
evilbeanfiend
Posts: 2650
Joined: Tue Mar 13, 2007 7:05 am UTC
Location: the old world

Postby evilbeanfiend » Fri Jun 08, 2007 9:13 am UTC

install either activetcl or activepython from activestate on whatever operating sytem you like - play about with it.

http://www.activestate.com/products/activetcl/
http://www.activestate.com/Products/activepython/
in ur beanz makin u eveel

User avatar
necroforest
Posts: 195
Joined: Tue Apr 10, 2007 3:46 pm UTC
Contact:

Postby necroforest » Fri Jun 08, 2007 12:48 pm UTC

Quicker: Open a DOS box and use DEBUG. Who needs browser dependency!



(Does Windows still come with debug?)

User avatar
3.14159265...
Irrational (?)
Posts: 2413
Joined: Thu Jan 18, 2007 12:05 am UTC
Location: Ajax, Canada

Postby 3.14159265... » Fri Jun 08, 2007 9:43 pm UTC

I had heard of python before as a good program for math programing, so that sounds like one I should go through?

I shall!
"The best times in life are the ones when you can genuinely add a "Bwa" to your "ha""- Chris Hastings

Scarblac
Posts: 43
Joined: Wed Feb 28, 2007 11:39 am UTC

Postby Scarblac » Fri Jun 08, 2007 10:44 pm UTC

3.14159265... wrote:I had heard of python before as a good program for math programing, so that sounds like one I should go through?

I shall!

Python is a quality programming language, it is powerful, it has some emphasis on being easy to learn, it's a great starting place.

There are a lot of tutorials out there for using Python to learn programming; the most recent link I came across was http://homepage.mac.com/s_lott/books/nonprog/htmlchunks/index.html, but that one may be a bit too thorough (but then, this is the xkcd forum :-)).

User avatar
adlaiff6
Posts: 274
Joined: Fri Nov 10, 2006 6:08 am UTC
Location: Wouldn't you rather know how fast I'm going?
Contact:

Postby adlaiff6 » Sat Jun 09, 2007 10:38 pm UTC

Yeah, python is a great first language. Just make sure you do all your programming in the command shell for a while and don't try to write one program all at once. It's usually easier when you start out to just play around with the shell for a bit and make small functions, and try to fit them together later to do what you want.
3.14159265... wrote:What about quantization? we DO live in a integer world?

crp wrote:oh, i thought you meant the entire funtion was f(n) = (-1)^n
i's like girls u crazy

User avatar
Earlz
Gets Obvious Implications
Posts: 785
Joined: Sat Jun 09, 2007 8:38 am UTC
Location: USA
Contact:

Postby Earlz » Sun Jun 10, 2007 12:40 am UTC

I would have to suggest some kind of basic, it's what I first began programming in..
Of course, you'll really want ot eventually get past basic, but I thought it was great for learning in...
I'd recommend eventually learning C(or C++) or PHP...I love both of them..

theres a new thing called lolcode, though I'm not sure it'd be of much use, it is pretty funny to look at!
My new blag(WIP, so yes it's still ugly..)
DEFIANCE!
Image
This is microtext. Zooming in digitally makes it worse. Get a magnifying glass.. works only on LCD

iw
Posts: 150
Joined: Tue Jan 30, 2007 3:58 am UTC

Postby iw » Sun Jun 10, 2007 5:06 am UTC

3.14159265... wrote:I had heard of python before as a good program for math programing, so that sounds like one I should go through?

I shall!

It all depends on what you're going for and what your time commitment to learning programming is. If you want to become a programmer, go the Python route. If you don't have a lot of time, go the PHP/Javascript route.

ZeroSum
Cooler than Jeff
Posts: 2903
Joined: Tue May 08, 2007 10:10 pm UTC

Postby ZeroSum » Sun Jun 10, 2007 1:45 pm UTC

necroforest wrote:(Does Windows still come with debug?)

Yes, it does. Know any good DEBUG tutorials? I wouldn't mind hacking some assembly, but I need a quick ref guide, especially for dealing with input/output.

Oh, if you just want to do Math/Physics processing, grab Maple and make some programs with that.

If you want to make a program, grab SharpDevelop and learn C# or grab Eclipse and learn Java.

If you want to test out some algorithms then Python/PHP should work for you.

Or, (this goes for everyone) try Water. It's fairly young and should be OpenSource deployed within the year. I use it at work (as the first commercial implementation of the language) and literally work with the creator of Water five days a week, too. It's designed to be a very free-form language allowing you full flexibility over the system. (You can redefine classes, methods during runtime. Variables are weakly typed but arguments can be strongly types. It lives to dynamically process information, being able to programmatically define... everything. Basically, you can do anything to anything in the system. It's interesting.

User avatar
bitwiseshiftleft
Posts: 295
Joined: Tue Jan 09, 2007 9:07 am UTC
Location: Stanford
Contact:

Postby bitwiseshiftleft » Mon Jun 11, 2007 12:52 am UTC

3.14159265... wrote:I had heard of python before as a good program for math programing, so that sounds like one I should go through?

I shall!


Yeah, and there's a great package called SAGE, which helps you program math in python.

User avatar
Drostie
Posts: 262
Joined: Fri Nov 03, 2006 6:17 am UTC

Postby Drostie » Mon Jun 11, 2007 3:20 pm UTC

I absolutely recommend JavaScript as a first language. (It was mine.)

I still use it today, in situations where I don't need a fully-functional programming language and want to be able to design and finish a GUI in ten minutes.

In fact, if *any* high-level programming language let you write a quick GUI in XML of some sort or another, I'd be all over that. I have even occasionally considered writing a program simply to convert an XML rendition of a wxPython GUI to the actual code required for such a GUI.

User avatar
mrcheesypants
Posts: 408
Joined: Tue Apr 24, 2007 10:59 pm UTC
Contact:

Postby mrcheesypants » Tue Jun 12, 2007 6:42 pm UTC

http://www.htdp.org

It's a book very similar to SCIP (the book used at MIT to teach incoming CS and EE majors) but it's easier to understand. It won't teach you a useful language (uses scheme, a LISP based programming language) but one of the least important variables to programming is the language.

Personally, my biggest regret in programming is learning C++ before reading this book.

User avatar
FiddleMath
Posts: 245
Joined: Wed Oct 11, 2006 7:46 am UTC
Location: Madison, WI
Contact:

Postby FiddleMath » Tue Jun 12, 2007 11:59 pm UTC

Drostie wrote:In fact, if *any* high-level programming language let you write a quick GUI in XML of some sort or another, I'd be all over that. I have even occasionally considered writing a program simply to convert an XML rendition of a wxPython GUI to the actual code required for such a GUI.


PythonCard does this, kinda sorta. Its data type is not XML, but files full of Python dictionaries; conversion from one to the other is probably trivial. It also involves a graphical GUI builder. However, PythonCard, as I recall, is quite good for easy things and remarkably bad for even moderately complicated things.

Besides, wouldn't XML make dynamic controls hard to manage?

User avatar
evilbeanfiend
Posts: 2650
Joined: Tue Mar 13, 2007 7:05 am UTC
Location: the old world

Postby evilbeanfiend » Wed Jun 13, 2007 9:30 am UTC

if you want simple & quick gui building i seriously recommend you look at tcl (even if you decide to go with python anyway)
in ur beanz makin u eveel

Nimblefinger
Posts: 58
Joined: Sun Jul 01, 2007 7:00 pm UTC
Location: Cambridge

Postby Nimblefinger » Wed Jul 11, 2007 5:54 pm UTC

I'm teaching myself to program in python now, only been doing it a week or so, though I have dabbled in VB before so I kinda know a bit about the underlying logic.

If you want to learn but have no real goals (or at least short term attainable goals), I would suggest looking at a few of the problems http://projecteuler.net , I have solved a few already and it enables you to tie in programming with maths logic.

Also highly recommend this site for python http://www.freenetpages.co.uk/hp/alan.gauld/ , I am working through that.

User avatar
QuantumTroll
Posts: 158
Joined: Fri Jun 08, 2007 12:00 am UTC

Postby QuantumTroll » Wed Jul 11, 2007 10:03 pm UTC

I'd like to add my name to the pile of Python supporters. There's a package called SciPy that lets you do science type stuff very easily. Kind of a specialized math library, complete with easy-to-use FFT's and everything. Thumbs up!

supemoy
Posts: 14
Joined: Sun Jul 15, 2007 7:38 pm UTC

I disagree with everyone

Postby supemoy » Sun Jul 15, 2007 9:53 pm UTC

*DELETED*
Last edited by supemoy on Sat May 12, 2018 12:43 pm UTC, edited 1 time in total.
So what if I'm shallow? At least I'm not ugly...

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Postby fortyseventeen » Tue Jul 17, 2007 4:02 am UTC

supemoy wrote:I disagree with almost everyone.

A lot of people recommend python as a first language, and I think that it is a horrible idea. Now don't get me wrong, I love py, it's easy, intuitive, and cross platform. But it bares no resemblance to any other language out there (except ruby (shudder)). I would recommend any statically typed C like language


Your bias against Ruby is disturbing, but beside the point...

Static types are often a barrier to entry, not to mention the fact that C-like languages almost always require a basic knowledge of computer architecture. It is true that one must learn C/C++/C# eventually to have a very useful knowledge of the field, but for an absolute beginner, the "typelessness" of languages like Python and Ruby greatly speeds the learning curve for core algorithmic concepts.

Also, in light of your delusion about Python's practicality, there are quite a number of similarly dynamic languages that are still in common use, including Smalltalk, Javascript, Perl, and PHP, although none are as intuitive as Python or Ruby.

If you use windows, download the free C# express IDE. It will help you create easy GUIs, and C# is a great language, and the express IDE comes bundled with a lot of libs. I'm not a microsoft fanboy, but C# is quite good and comes with an awesome free IDE and debugger.


C# is a fine language, but requires one to be comfortable in the world of C-like languages (keywords, macros, pointers (or if not pointers, then data vs. reference types)) before one can use it effectively. It also adds a good many semantically tricky constructs such as nullable types, accessors, and the paring of 'yield' with Iterators.

If your on linux, use Jedit (or eclipse once you get the hang of it, it's quit good) and try Java on for size. These are great statically typed C based languages, but they are garbage collected and OO. Once you master these languages picking up any other C like language is a snap.


Yes, so I would suggest a Java/C# (i.e. a garbage-collected static-typed language) as a second step after dynamic languages, in order to ease the transition to lower-level languages.


On the other hand, if one is going into Computer Engineering, the process should go in reverse: start with the transistor and work up. I tried to teach myself C at 10, and it was a frustrating, confusing experience. However, I was fortunate enough to have a father in the software industry, who was able to explain the basics of computer architecture and the organization of memory. I picked up from there, quickly climing the ladder of language abstraction, from C to BASIC to Java to Perl to Ruby (roughly), and because of that, I can now fully appreciate the beauty of a purely object-oriented language without losing sight of its roots.

This is a very rewarding process, but requires considerable dedication, and is probably too much for a casual programmer. Even most professional software engineers don't have a clue about how garbage collection works in their language of choice, why one algorithm performs better than another, or even the way an object's data is organized. This is not because they are inexperienced, but because that kind of depth of infomation isn't as important to most projects as semantics or maintainability.

Unfortunately, a surprisingly large number of programmers do not even have these notions. The problem is that they didn't start from either end of the spectrum of abstraction, but were rather injected into it somewhere in the middle. Many of my CS classmates that started with Java got caught in the mindless process of filling in interfaces and class definitions as if they were tax forms. This method of learning typically weeds out half of the student base by the Sophomore year.

Essentially, this shows that jumping into the middle of the pond with just your water wings makes for a humiliating swimming lesson. To avoid this, I need only refer you to the timeless Groucho Marx quote: "If you're not having fun, you're doing something wrong."
Quick, what's schfifty-five minus schfourteen-teen?

supemoy
Posts: 14
Joined: Sun Jul 15, 2007 7:38 pm UTC

Postby supemoy » Tue Jul 17, 2007 1:44 pm UTC

*DELETED*
Last edited by supemoy on Sat May 12, 2018 12:45 pm UTC, edited 1 time in total.
So what if I'm shallow? At least I'm not ugly...

supemoy
Posts: 14
Joined: Sun Jul 15, 2007 7:38 pm UTC

Postby supemoy » Tue Jul 17, 2007 2:02 pm UTC

*DELETED*
Last edited by supemoy on Sat May 12, 2018 12:44 pm UTC, edited 1 time in total.
So what if I'm shallow? At least I'm not ugly...

User avatar
evilbeanfiend
Posts: 2650
Joined: Tue Mar 13, 2007 7:05 am UTC
Location: the old world

Postby evilbeanfiend » Tue Jul 17, 2007 2:42 pm UTC

there is clearly a learning impedance going either from a dynamic language first -> static or the other way around and i don't believe there is a preference to either way, its just different. to be a really good programmer you want to master both (in fact id go as far to say you should learn as many languages as you can, and by learn i mean learn, not just know the syntax)
in ur beanz makin u eveel

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Postby fortyseventeen » Tue Jul 17, 2007 3:33 pm UTC

supemoy wrote:
fortyseventeen wrote:Also, in light of your delusion about Python's practicality, there are quite a number of similarly dynamic languages that are still in common use, including Smalltalk, Javascript, Perl, and PHP, although none are as intuitive as Python or Ruby.


Okay, let's not turn this thread into a language flame war.


That wasn't my intention, since we had already been there in this thread. I just wanted to clear any doubts that Python is the oddball as far as its paradigm. Sorry if it sounded like a challenge. :?

supemoy wrote:I just thought of the perfect metaphor. Learning a dynamic language first is like learning to text message before learning to type. In some ways it's easier and faster, but at the cost of leaving out important pieces. Ignorance of these pieces is detrimental to being a good coder.


Could you elaborate on these important pieces? I could understand if the language in question was JS, Perl, or PHP, since left and right, they seem to encourage the "just hack it" mentality, but the newer dynamic languages, Ruby especially, encourage a far more conscious mindset, which is that you should never have to repeat yourself. It can be particularly instructive to study the organization of the Ruby standard library, to see the depth of planning that went into it. The habits one could learn from a highly dynamic language such as that could, I think, be well applied to the realm of static types.
Last edited by fortyseventeen on Tue Jul 17, 2007 3:40 pm UTC, edited 1 time in total.
Quick, what's schfifty-five minus schfourteen-teen?

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Postby fortyseventeen » Tue Jul 17, 2007 3:38 pm UTC

evilbeanfiend wrote:there is clearly a learning impedance going either from a dynamic language first -> static or the other way around and i don't believe there is a preference to either way, its just different. to be a really good programmer you want to master both (in fact id go as far to say you should learn as many languages as you can, and by learn i mean learn, not just know the syntax)


That's essentially my point. My secondary point is that the top-down (dynamic -> static) approach teaches more of the abstract, scientific aspects of code first, which is probably more suited to a mathematician wishing to get into the world of CS.
Quick, what's schfifty-five minus schfourteen-teen?

iw
Posts: 150
Joined: Tue Jan 30, 2007 3:58 am UTC

Postby iw » Wed Jul 18, 2007 7:34 am UTC

fortyseventeen wrote:That's essentially my point. My secondary point is that the top-down (dynamic -> static) approach teaches more of the abstract, scientific aspects of code first, which is probably more suited to a mathematician wishing to get into the world of CS.
Which is exactly why I suggested it, because it sounds like this person wants to use programming languages to solve math problems, rather than become a programmer. That's why this situation (and therefore my advice) is different than the other thread where the guy is looking become a programmer.

I personally don't see why the static/dynamic debate is such a point of contention for everyone. I don't see that dynamic languages really hurt you as a programmer, not in the way that BASIC would ruin your thinking as a programmer. Python is basically pseudocode. It seems to me that the real difference between the two is how software engineering problems are approached - that is, when you have a large and complex software project, how do you ensure that all the parts go together? I think that's a matter of organization rather than a matter of forming bad habits.

I don't have any real evidence for this beyond the fact that I know many Very Good Programmers that use Python.

PS:
Most people will agree that JavaScript is a necessary evil and is less a language and more an albatros around the neck of website designers.
The consensus I've seen is that JavaScript evolved into a really awesome language - if only it wasn't chained to really shitty browser implementations.

supemoy
Posts: 14
Joined: Sun Jul 15, 2007 7:38 pm UTC

Postby supemoy » Thu Jul 19, 2007 12:55 am UTC

*DELETED*
Last edited by supemoy on Sat May 12, 2018 12:44 pm UTC, edited 1 time in total.
So what if I'm shallow? At least I'm not ugly...

zenten
Posts: 3799
Joined: Fri Jun 22, 2007 7:42 am UTC
Location: Ottawa, Canada

Postby zenten » Thu Jul 19, 2007 4:03 am UTC

I'm surprised no one mentioned Fortran *ducks*.

iw
Posts: 150
Joined: Tue Jan 30, 2007 3:58 am UTC

Postby iw » Thu Jul 19, 2007 5:37 am UTC

supemoy wrote:As far as Javascript and Ruby goes, I asked around the office (and beyond), and it looks like you guys are in the majority. Apparently everyone has been secretly in love with these languages for a while now. I find it strange that so many people could be so wrong.....
Generally, the view of those people is that the memory management stuff and such will be handled by the compiler because the computer is smart enough to figure all that stuff out for itself at a minimum of cost, allowing the developer to program faster and spend more time looking for actual bottlenecks.

I do agree, however, that a beginning programmer should get as much experience as they can in a language like C. However, I think that learning a language on the other end (like Scheme) is also important.

I have a feeling that your experiences with beginning programmers are matters of correlation, not causality: you have difficulty explaining difficult programming concepts to people who don't know what an "int" or "long" is because not knowing what an "int" or "long" is is an indication that they are complete beginners; however, there is nothing inherent in those concepts that make them necessary for understanding higher level things like classes or methods.

User avatar
djn
Posts: 610
Joined: Mon May 07, 2007 1:33 pm UTC
Location: Oslo, Norway

Postby djn » Thu Jul 19, 2007 9:56 am UTC

zenten wrote:I'm surprised no one mentioned Fortran *ducks*.


I had to learn some minimal fortran for a python course (we were making python module wrappers for fortran code), and it's sort of charming. I haven't looked at the newer versions, but I'm planning to check it out some day.

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Postby fortyseventeen » Thu Jul 19, 2007 11:26 pm UTC

supemoy wrote:Well I'm not trying to be argumentative, it's just that in my experience I have had the best luck teaching newcomers procedural, statically typed code. Then again everyone I have taught has had a strong background in computers to begin with, although they had never coded before.

...

I think it is best to learn about types and how things are laid out in memory before learning about fancy algorithms. This method of teaching has worked well for me in the past. I always had trouble trying to describe classes, objects, instantiation, iteration, etc. to people who do not know the difference between an int, a long, and a float.


Those with more background in a certain area will undoubtedly have more success trying to teach that specific area. As far as I can tell, you've had much experience in the world of C-like languages, so you are easily able to explain the concepts behind them. Similarly, there are feasable ways of teaching dynamic languages to newcomers, unsurprisingly discovered by those who are already very familiar with the languages.

As far as Javascript and Ruby goes, I asked around the office (and beyond), and it looks like you guys are in the majority. Apparently everyone has been secretly in love with these languages for a while now. I find it strange that so many people could be so wrong.....


Yes, and it's unlikely that so many could be...
Quick, what's schfifty-five minus schfourteen-teen?

EvanED
Posts: 4331
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Postby EvanED » Fri Jul 20, 2007 12:17 am UTC

fortyseventeen wrote:
As far as Javascript and Ruby goes, I asked around the office (and beyond), and it looks like you guys are in the majority. Apparently everyone has been secretly in love with these languages for a while now. I find it strange that so many people could be so wrong.....


Yes, and it's unlikely that so many could be...


Just out of curiosity, what operating system do you primarily use?

(I'm not trying to say that Windows is wrong per se... I use it almost all the time, and I like it. I'm more just trying to make a point. If you don't like that, then substitute "how many OS people would say that C is the 'right' language for operating systems".)

User avatar
FiddleMath
Posts: 245
Joined: Wed Oct 11, 2006 7:46 am UTC
Location: Madison, WI
Contact:

Re: I disagree with everyone

Postby FiddleMath » Fri Jul 20, 2007 8:06 am UTC

supemoy wrote:My company developed a proprietary (else I'd post a link) XML2GUI lib. Dynamic controls are a snap. ...


Not having done much web programming myself, I always associate XML with /storing/ data, not as part of a protocol between running processes. Suddenly, the excitement about XML makes a lot more sense. :)

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Postby fortyseventeen » Sat Jul 21, 2007 2:57 am UTC

EvanED wrote:
fortyseventeen wrote:Yes, and it's unlikely that so many could be...


Just out of curiosity, what operating system do you primarily use?

(I'm not trying to say that Windows is wrong per se... I use it almost all the time, and I like it. I'm more just trying to make a point. If you don't like that, then substitute "how many OS people would say that C is the 'right' language for operating systems".)


...thank you.

I had a similar second thought just after posting that (involving politics). I understand the tendency to be wary of trends that pick up so much steam in a short time, even if the occasional "wave" can be justified. Thus, my point there is irrelevant. Please ignore/ridicule it.

As for your question, I'm using a Mac that runs Ubuntu and XP on Parallels.
Quick, what's schfifty-five minus schfourteen-teen?

User avatar
Taejo
Posts: 60
Joined: Wed Oct 11, 2006 8:00 am UTC

Postby Taejo » Mon Jul 23, 2007 1:18 pm UTC

Drostie wrote:In fact, if *any* high-level programming language let you write a quick GUI in XML of some sort or another, I'd be all over that. I have even occasionally considered writing a program simply to convert an XML rendition of a wxPython GUI to the actual code required for such a GUI.


wxGlade is a GUI-drawing program for wxWidgets which generates XML (which can be loaded from C++, Python, ...) or alternatively source code in C++, Python, ... It is a quality tool. Python is probably the best language to use it with.

Glade does the same thing for GTK, but I haven't used it
Indiscreet Mathematics, a comic about maths

User avatar
Iori_Yagami
Posts: 606
Joined: Wed Oct 03, 2007 8:37 pm UTC

Re: Teach me

Postby Iori_Yagami » Fri Oct 26, 2007 8:21 am UTC

What happened to Delphi? Is it still the most popular among kids?
Or does it reflect only my country? Really, Pascal is the only language taught at secondary schools, if at all programming is taught, and not only Excel and Word.
They cannot defend themselves; they cannot run away. INSANITY is their only way of escape.

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Re: Teach me

Postby fortyseventeen » Fri Oct 26, 2007 4:07 pm UTC

If a high-level language is flexible enough, it should be easy to parse XML into a GUI if there isn't already a library for it. I'm not sure why you would want to format your GUIs as XML, though...in my opinion, it's a useful format for transferring language-independent data between two systems, as with XML-RPC or AJAX, but not so much as a human language. Using tools like wxGlade is a fair compromise, although I would personally prefer a GUI API tailored to my language, since I can often code my ideas in Ruby faster than I can draw or explain them, as I would with a visual GUI builder. I also get a direct interface to my widgets, since it's my own code.

As for Delphi, I don't think it's ever been too popular in the states, although Pascal is still the staple of "old-fashioned" CS teachers. (which is good. :))

EDIT: here's a thought. If you really want XML behind your GUIs, why not write a language-specific API that will translate GUI commands into XML? It would almost be what they call a 'domain-specific language', but without the syntax-on-top-of-a-syntax headtrip.
Quick, what's schfifty-five minus schfourteen-teen?

User avatar
Iori_Yagami
Posts: 606
Joined: Wed Oct 03, 2007 8:37 pm UTC

Re: Teach me

Postby Iori_Yagami » Fri Oct 26, 2007 5:23 pm UTC

The most important thing, which might seem obvious: 'You will never be able to stop learning in this field.' Think whether you really want it. The rate of failure is abysmal. At my Uni we had something like half-life of a year period - every year student count diminished by half because of dropping out. Mathematics is very useful for developing computation-oriented mind, but is not a guarantee of success. I just can't keep myself silent, so many failed. If it goes well, however, it is worth a lifetime work and hobby!
They cannot defend themselves; they cannot run away. INSANITY is their only way of escape.

Gyvulys624
Posts: 35
Joined: Tue Oct 16, 2007 9:49 pm UTC

Re: Teach me

Postby Gyvulys624 » Sat Oct 27, 2007 6:06 pm UTC

Last year I was interested in programming for a while. I installed python and found an amazing tutorial online. I spent at least a month reading the tutorial and doing stuff in python, over an hour each day. But, I soon lost all interest because I found no point in programming. How do I apply what I know? Maybe all I need is "homework assignments", like: Make a program that does this, and try to make it. I think the problem is I just got bored.

User avatar
fortyseventeen
Ask for a lame title, receive a lame title
Posts: 88
Joined: Fri Mar 02, 2007 3:41 am UTC
Location: SLC, UT, USA
Contact:

Re: Teach me

Postby fortyseventeen » Sat Oct 27, 2007 11:12 pm UTC

I understand the need for motivation. Try to come up with a relatively simple problem that you would like to see solved. It could be anything that crops up in your daily habits, or just a cool new idea. If you need 'assignments', there are hundreds dozens of Perl and Ruby Quizzes of the Week at http://perl.plover.com/qotw/ and http://rubyquiz.com. They vary in difficulty, so pick any that sound interesting/achievable to you. I haven't seen anything similar for Python (which worries me), but Ruby is so strikingly similar to Python that you should have no problems trying to solve anything at rubyquiz.com with either.

Iori_Yagami wrote:The rate of failure is abysmal. At my Uni we had something like half-life of a year period - every year student count diminished by half because of dropping out.


I noticed that at my university as well, and I'd like to know if it was the teaching method or something inherent in the field. It seemed to me that many of my classmates were discouraged by the complex syntax and sprawling libraries of Java and the dry, analytical atmosphere in which algorithms were presented. What languages are used in first year, and how are the classes organized?
Quick, what's schfifty-five minus schfourteen-teen?


Return to “Computer Science”

Who is online

Users browsing this forum: No registered users and 7 guests