Jump to content

Completely New To Developing (0 experience)


Recommended Posts

So I'll try and keep this post brief, and I did search around but I don't think I found exactly what I was looking for.  So I've been using alfred for about 6 months now I think, and the functionality I've gotten out of workflows is life changing (exaggeration? maybe.)  So I wanted to start making my own workflows, and have toyed around with the basic stuff you can do with 0 coding knowledge.  But, I really really want to make my own workflows that can do 'exactly' what I want.  More so as a hobby to give me something to do in my free time, and also make my life easier a little bit in the process.  I was wondering:  What programming language is 'best'?  Is this purely subjective through and through, or is it more of a use A for A, B for B.  On top of that, how realistic is it to pick up programming in general?  Or how was it for you?  Last part is purely anecdotal obviously, but just curious!

Link to comment

We briefly discussed this very theme recently.


Some languages are geared towards certain tasks. As examples, Processing is geared towards making graphics and R is for statistical analysis. This doesn’t mean they can’t be used for other tasks or that other languages can’t do what these do; it means these are optimised for their tasks. “Optimised” might mean a whole lot of things, like having specific tweaks to make accomplishing goals easier and with less code, or make their code run faster.


Then you have general-purpose languages which are exactly what they sound like. To start with, you should pick up a general-purpose scripting language such as Ruby or Python. Those two are pretty sane languages with big communities. By “sane” I mean that most things make logical sense. Yes, there are languages that are inconsistent (insert PHP joke), which predictably leads to frustration. With Ruby, more than once I didn’t know how to do something, though “I wonder if it works this way” and it did. Having big communities means there are a ton of resources to learn from and get help, as well as a ton of already-made code that you can use. Finally, Ruby and Python come preinstalled with macOS, which lowers the barrier of entry significantly.


Scripting languages are easier to pick up because they do a lot of the heavy lifting. They want you to concern yourself with what you want to accomplish, not how. The computer operations themselves are abstracted from you. This comes with a sacrifice in speed but that’s a more than acceptable tradeoff, especially when you’re starting out.


Here’s the piece of advice I wish I’d gotten: don’t fret too much on which language to learn. They share a lot of concepts, and what you learn in one will easily translate to another. As you become proficient in the programming mode of thinking, you’ll find picking other languages becomes easier. Just start with something relatively popular so you’ll have a lot of resources to draw help from.


Finally, I’ll also say the often repeated advice “think of what you want to do and then try doing it” is rubbish. At this point in time you have no idea how simple or complex your idea is, and it’ll be easy to get discouraged. A good learning source will gradually show you what can be done, and you’ll start to see the possibilities from there.


Good luck!

Link to comment

Yes, I'd agree with all of this, especially the part about not worrying about the language.  Except this: don't start with AppleScript.  It's possibly the language I use most often for automating my Mac, but I think it would be to easy to get bogged down in its many quirks as a novice. My vote would be for python.  I learned it from an O'Reilly book but I'd say if you're serious spend the $29 for Learn python the hard way.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...