V1.2. Added info on hiring
Today I was asked:
Should I learn to code in Swift and what can I build?
Swift 1.0 (http://www.swift.org) was launched in 2014 by Apple and it is a multi platform programming language for iOS, macOS and Linux (but not Windows). Swift has gone through rapid changes recently and Swift 2.2.1 is the latest stable version. Swift 3.0 Preview 1.0 is about to launch and it breaks a number of coding standards set in Swift 1.0 and 2.0.
Should a beginner learn Swift? Yes if you only want to develop apps for iOS and macOS and ignore Windows and android platforms. Apple are releasing a learn to code in swift app in September that will make learning swift much easier http://www.apple.com/swift/playgrounds/
Previously apple recommended developers use the Objective C language to code and compile apps for iOS and macOS. Objective C has been in production since 1983 and is very complex (loads of squiggles, square brackets and legacy classes).
Most smartphones and tablets run Android, not because they are better but because they are cheaper (that’s my opinion). A top of the line iPhone 6S+ costs $1500 where a reasonable android phone will set you back about $130 to $400. I personally think Apple devices are faster, better and more secure but if you are developing you need to publish apps on android also. Apple devices are supported for a lot longer than Android devices ( Android support lifetime v Apple iOS ). Even the 5 year old iPad 2 is getting the iOS 10 software update in September.
If you wanted to native develop android apps you would need to learn Java in the https://developer.android.com/studio/index.html IDE. Be prepared to be confused as the Android Studio has a steep learning curve.
Ok so where do beginners start.
What Companies look for when hiring programmers
Jumping right into Swift, Java, Objective C or Lua may not be a good idea if a plain old website will do. It depends on what you want to develop before you start coding. All developers should be able to knock up a website and database before jumping into making mobile apps. PHP ( http://www.php.net ) and MySQL ( http://www.mysql.com ) are good options for beginners making websites.
http://www.udemy.com and http://www.w3schools.com/ is a great place to go to learn more about coding. If you want to see what the Pro’s are doing check out http://www.sitepoint.com are great places for learning WHAT you need to know fast.
But I really want to develop a mobile app.
Development platforms like the Corona SDK http://www.coronalabs.com are a great option for beginners as it is easy to pickup and is super fast and supports eye popping OpenGL animations and apps along with business apps. Corona allows you to code in a programming language called Lua ( https://www.coronalabs.com/learn-lua ) and compile your app to the iOS/Android/macOS or Windows desktops. How cool is that.
Corona wraps a common interface (API https://docs.coronalabs.com/API/index.html) over each platforms API so you code calls the corona API and when you compile your app the platforms native API methods are called.
Corona has great guides and support pages:
https://docs.coronalabs.com/guide/programming/index.html – Getting Started
https://coronalabs.com/blog – Keep up to date with Corona and read guides on many topics.
https://coronalabs.com/resources – Corona Resources.
https://www.youtube.com/user/CoronaGeek – Weekly Corona video podcast.
https://forum.coronalabs.com – Talk to hundreds of Corona developers and ask questions.
https://docs.coronalabs.com/api/index.html – Corona API
What tools do you need
- A Mac Computer with a retina display.
- Sublime text Editor https://www.sublimetext.com/3 (and Sublime to Corona Plugin https://coronalabs.com/products/editor/ )
- Source Version Software http://www.zenaware.com/cornerstone
- A good code snippets saving app http://snippets.me/
- Patience and drive.
Knowing what you want to develop will narrow down the technologies you need to learn.
- If you want to make websites learn HTML and PHP.
- If you want to build business apps inside corporations learn Visual Studio.NET
- If you want to make mobile apps fast learn Corona.
- If you want to make advanced iOS apps learn Swift
- If you want to make advanced Android apps learn Android Studio
- If you want to make online database learn MySQL
Check out my guides here on:
..and many more free guides here.
Still reading? Check out the beginner guides on Sitepoint.