PDA

View Full Version : Basic skills for a computer hobbyist?




Caezar
Mar 2, 2008, 07:50 AM
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?



Cromulent
Mar 2, 2008, 09:09 AM
It depends what type of applications you want to develop. The skills you have listed would be great for a web developer.

kainjow
Mar 2, 2008, 10:04 AM
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
Mar 2, 2008, 12:54 PM
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
Mar 2, 2008, 01:09 PM
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
Mar 2, 2008, 01:36 PM
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
Mar 2, 2008, 03:05 PM
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.

AlmostThere
Mar 2, 2008, 04:05 PM
You should have enthusiasm, you will acquire frustration, try and learn patience :)