This document is made and maintained for helping software developers and students on Software Development Pakistan choosing a domain to work in and technologies to learn for it.
Software students and the recent graduates in Pakistan often realize it too late that in order to land a job in Software industry, they have to focus on at least one of the software domain. The reader of this document is expected to do more research on each domain on their own before settling for something. The criteria for interest should be personal interest and following the global trend. In case of doubt, please ask on the group.
Lets make this a complete comprehensive list of all the possible domains, PR's are more the welcome.
These domains are listed in No particular order.
Somewhat an emerging field in Pakistan but has a lot of potential for the future. You'll be working with rendering, designing, and engineering content on the web browsers. You'll be expected to know HTML, CSS, JavaScript and frontend frameworks like angular, react etc to begin with.
## Backend web development Everything related to building, maintaining, processing and monitoring web applications on the web server. You'll be expected to know some backend languages (NodeJs, PHP, Python, Java etc), databases (Relational/NoSQL), a bit of servers (reverse proxy, shell scripting etc).A combination of both of the above, however as the gap between frontend and backend are widening up, It is better to focus on one of the above, at least in the beginning.
Combines the software development and operations practices. In practice it means you'll be working on making things easier for software developers. You are expected to know cloud platforms ( Azure/ GoogleCloud/ AWS), build pipelines, docker containers, and a bit about microservices architecture, and web servers etc.
Android (Java/Kotlin), iPhone(swift/Xcode) and windows phone (C#) development. Great if you want to build apps but not as much in demand as web development.
The idea is to build the mobile application once which can be used in across devices/platform. Not as performant as native app development but works just fine for most use-cases. You are expected to know React Native/ Ionic / Xamarin etc for this. Easier to get into if you already know frontend web development (at least for React Native/ Ionic).
You are expected to know how to store, process, and aggregate massive amount of data in a scalable fashion. Some tools you should know are Spark/MapReduce, Kafka, Hive, NoSQL, distributed databases etc.
Data analysis tools, Machine learning algorithms, Deep learning. Good understanding of maths/stats. Quite an emerging field globally, without a strict definition of what is expected of you. Most startups go for a combination of data engineering + data science role with a good understanding of businesses.
- Azeem Akhter: Made the first version of the document. (8th July, 2018).