igalic
We've recently released a free course on programming fundamentals with Swift. It's meant as a prep course if you want to learn iOS development but have no programming experience.
I know most people here won't need programming fundamentals, but I'd appreciate any feedback. What do you think of the material and structure of the course? Presentation?
The reason I decided to make this course was when I looked at other materials for learning iOS development, they fell into one of the two categories:
1. Targeted at programmers, or at least people with some prior programming experience. This is cool if you do have programming experience, but problematic for beginners.
2. Targeted at beginners, but completely unrealistic. Things like we will teach you to become an iOS developer in 4 weeks, no coding experience required, etc. They mostly just fiddle around Interface Builder and glance over a few programming topics but leave you confused and unable to build anything on your own.
So this is meant to help the situation. I strongly believe you need to understand programming basics first before going into details of a technology, and there isn't that much material on that topic. The stuff that is out there is mostly for Python or JavaScript, which is cool if you want to go into web development. But for iOS apps, you then need to switch languages while you are still struggling with basics, which just makes it harder and more confusing.
The link above is for the youtube playlist for the course, but you can get access to it through our website as well, and to also get the source code:
Don't get me wrong; I develop primarily for iOS and some Android, and don't even think about installing Windows, much less developing for it. But consider this:
If you want to develop for iOS, you need a Mac (which still sits at only 14% in US, less in the rest of the world; so chances are you need to buy at least a $600 machine), you need the developer subscription at $99, you need at least last year's operating system (Apple drops support for older versions rather quickly), and at least one device to test on. It also uses Objective-C, which you haven't used before unless you developed for Apple hardware.
If you want to develop for Android, everything looks free at first sight, but you'll also need a developer subscription and if you're serious about supporting your app, you'll need at least several different devices (this easily trumps the price of a Mac), because Android emulators are horrible.
There are more examples like this; recently Sony announced PSVita SDK, but for some inexplicable reason it uses Mono/C#, isn't compatible with Visual Studio, etc. It's even worse with traditional console SDKs.
The point is, although it's great to be able to choose the tools/platforms you use and have it all for free (web development anyone?), those companies want you tied into their ecosystem, and besides it's just not worth it going out of their way to please a minority of developers complaining about a number of random reasons.
You choose whether to develop for a platform or not of course, but if I were Microsoft and your main gripe was having to upgrade to Win8, I'd just not care.