Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Caezar

macrumors 6502
Original poster
Hi,

I do not have any formal education in computer science, but I do enjoy writing small programs at work using VBA. I am also learning Python right now, but my knowledge of these tools is somewhat limited.

In your view, which skills should an aspiring amateur-developer acquire, in order to be able to start creating interesting applications? I was thinking of the following:
- Unix (to go beyond the basics of OS X)
- A scripting language (I chose Python, but it could have been Ruby, or VB & VBA in the Windows world)
- GUI (wxPython for instance)
- SQL
- HTML, CSS, XML
- Regular expressions

What else?
 

kainjow

Moderator emeritus
Jun 15, 2000
7,958
7
Python is a great language to start out in. There are lots of ways to write GUI-based applications with it. On OS X you can use the Cocoa-Python bindings that are now available natively in 10.5 and via third-party in 10.4. With that, you can write a lot of "interesting" applications, but it really depends on what kind of apps you want to write. If you're wanting to write games, than Python isn't the language to learn.
 

Catfish_Man

macrumors 68030
Sep 13, 2001
2,579
2
Portland, OR
Python is certainly a good choice if you're wanting to pick up programming. If you're looking for something a bit more immediately useful, either shell scripting (for automating tasks on your computer), or web stuff (html/css/js) could be better choices.

Regular expressions, while arcane and annoying, are useful almost everywhere.
 

vanmacguy

macrumors 6502a
Aug 13, 2007
586
0
Not where you live.
I found that for sheer usefulness, Perl to be the outright winner.

There are so many times that I've been able to whip up a Perl script to automate things that I can't honestly count (this was in my Windows days, I've no idea what Perl is like on the Mac).

My point I guess is that you should learn something that you, yourself, personally will use and save time with. To that end I might try applescript (and will one of these days).

Scripting languages *will* save you hours and hours of work. They're not as sexy as some killer web app, but I don't need sexy, I need more time back.

Just one guy's opinion.

Cheers.
 

yeroen

macrumors 6502a
Mar 8, 2007
944
2
Cambridge, MA
If you're learning Python, I'd also suggest picking up the Qt framework for cross-platform and GUI development. Qt has a python language binding, PyQt that enables you to make full use of the powerful and elegant Qt model without having to know C++. Qt is generally regarded as being superior to wxWidgets.
 

jb60606

macrumors 6502a
Jan 27, 2008
871
0
Chicago
Hi,

I do not have any formal education in computer science, but I do enjoy writing small programs at work using VBA. I am also learning Python right now, but my knowledge of these tools is somewhat limited.

In your view, which skills should an aspiring amateur-developer acquire, in order to be able to start creating interesting applications? I was thinking of the following:
- Unix (to go beyond the basics of OS X)
- A scripting language (I chose Python, but it could have been Ruby, or VB & VBA in the Windows world)
- GUI (wxPython for instance)
- SQL
- HTML, CSS, XML
- Regular expressions

What else?

Is UNIX a staple at your office? Perl would be pretty helpful and still a requirement for a lot of IT jobs if you plan on making a career out of it. Java is also a valuable tool.

I was in the same boat as you about 5yrs ago. Since then, I've learned the languages below, in the following order:

Shell (not really a "language" but incorporates some methods common among scripting/programming)
PHP + MySQL (great for a Web based front end)
Perl (powerful language and my personal favorite. There is a gigantic perl community as well)
JavaScript
Java
C# (It's not just for Windows)
C++

My office is a 3000+ node mixed Linux/Solaris/Windows shop, with heavy emphasis on *NIX. My responsibilities lay solely in our *NIX environment, but I learned Java/C#/C++ so I could supply GUIs/Interfaces for our Windows users, to our *NIX environment.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.