Learning Python


The steps to learn Python as I see it, are below:

1. Learn the basics:

2. Build on top the basics:

3. Strengthen, what you know:



Learning Python

Learning Objective C


Here are the steps that a beginner need to take in order to get a good grasp over Objective C.

The below worked for me. Should  work for anyone.

1. Learn the language, Objective C.

  • Complete the book ‘Programming in Objective C’ by ‘Stephan.G.Kochan’. Available here.
  • Watch the video series ‘Objective-C Essential Training’ by ‘Simon Allardice’ in ‘Lynda.com

2. Learn to create iOS applications using Objective C.


Learning Objective C

Concepts every senior iOS developer should know.


This is a summary of concepts, that every senior iOS developer should know (Not in the order of priority). Add “what to use, when” with every headers as you read.

Suggestions are welcome.

Different architecture patterns:

MVC, MVVM ,Clean Architecture ,Viper …

Different source control options:

Git, Subversion etc. Services like Github, GitLab ….

Different Dependency manager options:


Different Data store Options:

Coredata, realm, xml, file, SQlite, FMDB, SQLCipher …..

Different choices in programming methodology:

Functional Reactive Programming, Object Oriented Programming, Protocol Oriented Programming
Frameworks : Reactive Cococa, Reactive Swift, RxSwift, RxCocoa…

Different choices in solution implementation:

Native, Hybrid etc.
Frameworks : Angualar2, ReactNative, Xamarin, Cordova …..

Different options to assure code quality:

DI, Unit testing, Test Automation, TDD, BDD, Styleguide, clang-format (automated style guide)
Frameworks :  XCTest, iOS Snapshot Test Case, KIF (iOS Integration Testing Framework)…

Different process to assure quality:

Effective Code reviews
Tools : Crucible, Atlassian Stash, Differentials
Frameworks : ObjcLinte, SwiftLint ….

Different Options to send push notifications:

APNS, Firebase, Thirdparty Options like Urban Airship…

Different Options to track user behavior + analytics:

Google Analytics

Different Options to track report and analyze app crashes:

Crashlytics, Fabric ….

Different Options to distribute apps for prod and test:

Enterprise vs Consumer facing (Apple Appstore), Hockey …..

Different Options to deploy apps remotely:

MobileIron, Airwatch….

Different Options for CICD:

Travis, Jenkins …..

Different Options to track the project:

JIRA, Phabricator …..

Concepts every senior iOS developer should know.

Creating split zip archive in mac


In terminal, execute the command below:

zip -r -s 64 archive.zip FolderName/

Note that the default unit is in MB. As per your need, you can use k(KB),g(GB) or t(tb).

For unarchiving, you may need to use third party tools such as Keka or Unarchiver.


  1. http://www.addictivetips.com/mac-os/how-to-create-a-split-zipped-archive-from-mac-os-x-terminal/
  2. http://apple.stackexchange.com/questions/12371/how-can-i-compress-a-folder-into-multiple-zip-files
Creating split zip archive in mac