Tips on developing simple software


I’m looking for a bit of advice about how to get into programming, possibly in Swift. I don’t have much experience with programming but I’ve totally fallen in love with Scrivener, and reading about how it was developed has inspired me to try and make a few pieces of simple desktop software I’ve been looking for, but have been unable to find. I’m hopefully starting a PhD at the end of the year, so they’re all utility type software that would really help me.

Anyway, my question is about how I should tackle the problem. I understand that reading books, trying tutorials and practicing the coding might help me along the way, but I’m just starting to realise that planning an algorithm is also an important step, and I’m wondering what else I’ve overlooked in the development - from knowing very little to hopefully being able to use it and maybe distributing it to others.

I realise this is a big question, but any bits of advice would be appreciated.

Cheers, D

Hi D,

well, for a start especially in Swift you should download both Xcode and the Swift eBooks from Apple. All of this is free.

Before you start with anything at all, I strongly recommend learning git! It is already installed on your Mac, and Xcode supports it. You might think about getting yourself an external repository on Github or Bitlocker.

With version control, you can hack away in the knowledge that you can always fall back on the versions you stored in git.

Regards, Joerg

Thanks Joerg, that’s great advice!

I’ve heard of Github before but didn’t really know what it was for, so I’ll have a closer look now and also look into Git. It seems like the best way to store early versions of the development…

I think before even looking at Git, install XCode for the sole purpose of getting access to Swift and then get a good book about Object Oriented Programming. That’s the basis of all modern software today and the most fundamental of all the ideas you need to grasp and even master if you want to develop some sort of serious software.

You can always use the RAD to do some stuff but you can’t really go far without OOP.

What you may wish to do is to get some books for beginners that are used in undergraduate programmes in computing. I am sure if you start browsing programmes from different universities and start looking at the first years of the studies you will get an idea from where to start.

Good luck with that. Software development is an exciting field…but it can sometimes give you a feeling that you have fried brain…:slight_smile:


My two cents.

I’d back up a little and learn Python first using a resource like

The barrier to entry is very low (it’s installed by default on your Mac). Feedback is instantaneous because programmes are interpreted not compiled. Learning it will teach you everything you need to know including object oriented programming. You can even use it to create simple GUI applications and simple graphical front ends to scripts.

For my own projects such as automation, developing writing utilities etc I exclusively use Python because it’s more portable and convenient than mucking around with platform exclusive libraries and compiled languages. I can use it on Linux, OS X and even iOS thanks to Pythonista and Editorial.

In my humble opinion the only time using a compiled language makes sense is when you:

1 Want to sell or distribute proprietary applications
2 Need bare metal performance or are targeting very low powered hardware

For everything else, using an interpreted language is better.

Thanks John and Chris!

I’ve been playing around on Xcode for about a month now and really like the interface, although there are quite a lot of tools, but I guess it’s not really necessary to know what everything does. So that’s why I decided on trying to learn Swift. It seems like quite a clean language compared to some others I’ve looked at, meaning that you don’t have too many rules with respect to syntax to worry about. So I thought it might be slightly more easy for a newbie, plus the object orientated bit makes things slightly easier in my mind.

I have to say that Apple’s Swift instruction book is quite technical, and I didn’t really get on with it, so I’m going to look for other books and tutorials.

Thanks for the Python advice. I’ve noticed that a lot of university courses teach their students python to begin with, so I’m guessing you’re right, it’s a good place start.

So I think my plan now is…

  1. Look into Python - for some basics on how to programme and use an OOP
  2. Continue playing with Xcode and learning a about Swift
  3. Learn how to work with Git and Github
  4. Try and get an idea of how I would visually like the programme to look - wireframe? pen and paper?
  5. Write out a basic plain language algorithm for what I want to do
  6. Try to translate the algorithm into the programming language - tricky one

I’m sure I’ve got a few more steps after that to get something that actually works and where I could save the info I input, but that should be good for now. Brain fried.

If I come across any great Python, Xcode, Swift etc learning resources I’ll try and share them here.

Cheers, D :smiley:

Sounds like a great plan. Good luck and have fun :smiley:

If your PhD is in a field other than computer science, it is very likely that you will be better off using off-the-shelf tools rather than writing your own.

If you want to do some programming because you think it’s an interesting and useful skill to have, that’s great. More power to you. But from a purely utilitarian perspective, your time and effort will be better spent on your own studies.