Android, Python, and Web Programming with HTML & PHP

(Part-2) - A Guide to Choosing Electives

Android, Python, and Web Programming with HTML & PHP

(Part-2) - A Guide to Choosing Electives

In Part-1, I talked about courses which require you to understand concepts and learn them so that you can get started with building actual stuff with them.

In this post, however, I am going to be talking about the courses in which you are going to freely experiment with the tools and you are definitely going to make something, say a simple app or a website during the course. These courses are more development focused and you must choose among these if you want to create something.

I have devoted a fair amount of my time developing Websites like this one, engineering Android apps and programming with Python for Machine Learning, and that is why I decided to give others an insight into all of these courses so that they can get some help in deciding what is the best option for them.

1. App Development for Android

Android is a mobile operating system developed by Google primarily for touchscreen mobile devices such as smartphones and tablets.

Android App Development

It is just another OS, what makes it so special?

Well, Android is so great because of the open source community, Android Open Source Project (AOSP), not even Google alone could have driven Android to the state it is in now. An active community of people contributing to make an operating system for mobile devices is what makes Android great, which lacks in other operating systems like iOS and Windows. The community of developers, programmers and enthusiasts bring to the table, a plethora of updates, bug fixes and improvements faster than the official manufacturer. Also, this is why Android courses are taught in colleges. You can learn to build apps and then start contributing to the community too, making it more secure and feature rich.

There is also a huge app store (3.3 million apps) for Android and most of the apps are free. People can develop more and more apps and publish them to the store because of this open nature of Android. Also Android has a large user base because much of the devices that run Android are cheaper than others. Some people mock it, but the back-end code and the underlying organization in Android are far much efficient than others and that is why Android is the most popular mobile OS with a whopping userbase of over 2 billion monthly active users. If you sit down and think about it, that is actually a phenomenal amount of users for a single piece of software.

Android leads the global market with 87.9 percent of market share. Sure developing apps and features for it is not a bad idea at all. You can start developing apps and get your hands dirty with the backend and the Linux kernel, then you can right away contribute to the development of Android. Or, you can develop Android apps for organizations and individuals and remain an Android developer, it surely pays off well.

Scope: Apps for businesses, apps for NGOs, freelance app developer, build your own apps, start contributing to the Android community, software for ChromeOS and other Android-powered devices.

Where you use it: Smartphones & Tablets, Smart TVs, Smart Watches - WearOS, Car Systems, IoT, Desktop Operating Systems - ChromeOS

Who else uses it: Every user of the devices listed above, companies and organizations with an Android app for their businesses or needs, ChromeOS, WearOS

Learn More:

  • Android Developers - Home
  • Reasons to Learn Android Development - Edureka
  • Android DevStories - YouTube

Be aware of the fact that Google has Officially announced Kotlin as its official language for Android. The Java support will soon be gone from the Android platform and Kotlin will take over completely. I am very sure that the course will use Java. Nonetheless, you can switch from Java to Kotlin, but it will be extra work that you have to put in yourself.

You will learn many concepts and techniques used in making android apps for potentially billions of people out there. You’ll be able to understand apps and functionalities as well as you will be able to create apps and come up with solutions to real-life problems that can be solved with it. Besides, you can build a ton of apps for yourself and showcase them as projects or publish them on the play store.

Expect a lot of programming, design as well as concepts throughout the semester, and beyond if you decide to develop apps further.


2. Programming with Python

Python is much simpler and leads to faster development, it is easy to learn and is the best programming languages for beginners, no doubt in that.

Python Python is the latest buzzword nowadays in the field of programming, you must have heard of it from someone. It is often mistakenly thought of as a new language but it is not. Python was first released in 1991. Python is different from other programming languages you learned till now, C and Java, as it is less strict in terms of syntax, and it has applications ranging from Machine Learning and Web Development to Scripting and Hacking.

Python is the way to go if you want to get started. But, if you already know any other programming language well, then my advice would be to skip learning Python. Sure, learning it will never hurt you, but you may not want to miss on the Web Development and Android Development. That being said, if you’ve already decided that you want to do, say, machine learning with Python, then you should definitely choose Python. But if you are still not sure of anything, allow me to explain further.

Advantages over other programming languages -

  • Easy to learn for beginners as the syntax is simpler
  • Increased readability of the code
  • Shorter code lengths as compared to other languages like Java and C++
  • Increasing hype and opportunities
  • Leading language for Machine Learning and Data Science
  • Best for writing small scripts
  • Django Framework, Flask Framework and a lot of libraries available to do different tasks

Disadvantages -

  • Python is interpreted, it runs code line by line, this makes it extremely slow and unsuitable for performance
  • Far from the hardware, its impossible to write efficient kernel code and other low latency programs in Python
  • Traditional programming barriers. Most of the most widely used programming standards and syntax were omitted by Python, see yourself,

FOR Loop in Python

for i in range(1,10):
    print i

For loop in C++

for(i = 1; i <= 10; i++)
{
cout << i;
}

No semicolons and a loose syntax, this will definitely make you care less about the syntax, but when you try and create Data Structures in it, you will find yourself searching on the internet for hours about syntax.

  • Userbase. Though Python is all the hype nowadays, and it has the potential to be an all-encompassing multipurpose language, it is not anywhere near. Much of the Web Development is on PHP and JavaScript, app development in native SDKs like Android Studio(Java/Kotlin) and Swift, Low latency software in C/C++ and Games are being made in C#. Right now, Python leads in the Machine Learning and Data Science fields only.
  • This is not actually the right time to switch to a new programming language if you are not clear with basic programming and Object-oriented concepts, do keep in mind that Data Structures too are very important, practice them with the programming language you currently know (most probably C or Java) and then learning a new programming language is only a matter of hours to get started with it. Learning more languages does not matter, problem-solving by programming is the skill you need to develop.

Where you use it:

  • Instagram, Mozilla Firefox, LinkedIn, YouTube, Google Search, Quora, Reddit, and BitTorrent.

Who else uses it:

  • Data Scientists and Data Analysts use computation libraries with Python like matplotlib, numpy, OpenCV, and Tensorflow.
  • Instagram, Mozilla Firefox, LinkedIn, NASA’s Website. They all use Django, a web framework written in Python.
  • YouTube, Google Search, Quora, Reddit, BitTorrent. They all use Python.
  • The list is really huge. See it here.

Learn More:

  • Advantages and Disadvantages of Python - Quora
  • Advantages and Disadvantages of Python - Medium

This course will be all about making you familiar with programming in Python. You will be implementing the very same programs that you did in the previous semesters like palindrome check, prime year check, etc…

After this course, you will be capable of programming in another language and you can move into the fields of Machine Learning or Data Science with Python, or you can build your own scripts and programs in Python.


3. Web Programming with PHP & HTML

Web Development

The thought process that must have gone behind in the minds of the course creators was to include one front-end language (HTML) and one back-end one (PHP).

Front-end: Part of a website visible to the user and it makes up the front layout, view, design, and visible structural elements of a website. Just the User Interface (UI).

Back-end: Part of a website not-visible to the user and it makes up the back functionality of a website. Ex - When you submit a form, your data gets saved onto a server (another computer), or a login system where you put in your username and password and when you press sign-in button, you are authenticated to use the site’s services.

Two Aspects

Suppose you have to create a front-part of a website, basically the design. For that, you need to use a language with which you can insert elements and they get displayed on the pages, like HTML (Hyper Text Markup Language) which is the standard language for creating web pages and web applications. Using that will create only the User Interface, that is fine if you want to only allow reading of the webpage. Think of it as pages in a book.

If you want to implement dynamic features, such that the user is able to interact with the system using the Web page as a medium, then you use a different kind of language. Languages which can generate, delete, and modify the contents of the webpage as well as of the web server. Like the login system takes data like username and password and checks in the database for a match, if it matches, the result is a webpage where the user is shown signed-in. As you can see, this is more powerful than HTML and allows us to create immersive and feature rich websites having dynamic functionalities like forms, login, and other advance API integrations. Think of it as an eBook, it still has pages but it can do much more than just a book, you can highlight text and modify text too.

PHP is the most widely used back-end (server-side scripting) language in the world. It can interact with back portions of the websites and you can make changes to databases, run other scripts, or even change front-end.

What worries me is the growing popularity if JavaScript as an “everything web” language.

There are primarily three languages for front-end design and development of a website -

  • HTML - For designing layout of web pages.
  • CSS - For adding styles to the elements created by HTML like color, perspective, resizing, and borders.
  • JavaScript - For adding behavior to those elements, like changing color when clicked, animations, and actions such as self-reload.

In the back-end languages like Java and PHP ruled. But then JavaScript was used to program the logic for back-end and it turned out great. JavaScript can handle the back-end tasks of communication between the database and the browser. With Ryan Dahl founding Node.js back in 2009, it is the fastest growing JavaScript backend framework today, if you have not heard of it, you live under a rock.

And then there are Progressive Web Apps, websites that look same on small screen (mobile) devices as they look on a desktop computer, much like this website, and they are fluidic and error-free, responsive and great to look, feel and use. Who doesn’t love a website like this, Twitter and Gmail too are examples of PWAs.

  • Almost all of the back-end developers working with web apps choose Node.js as their back-end framework. It is fast, flexible, and uses JavaScript which is already used in front-end so it is easy to work with.
  • PHP still leads with almost 83.5 percent of the total websites.
  • The amount of jobs and internships available for Node.js is also increasing day by day, but PHP still leads in that thanks to its large user base.
  • Developers often dislike PHP because of the security issues associated with it and PHP is by design not at all a secure framework. You have to be very careful in writing code or else the security of the database is compromised, be sure you use mysqli() or PDO.

Despite all these changes in the scenario, this course will expose you to the web development, both front-end with HTML and back-end with PHP, and you will be able to make websites and apps. Once you are done with the basics you can choose your path, to stick with PHP or to move to JavaScript back-end. It is a great start to learning web development.

Where you use it:

  • HTML - Everywhere on the internet.
  • PHP - Google, Facebook, and Wikipedia.

Who else uses it: Wikipedia, Facebook, and many more websites.

Learn More:

  • Node.js vs. PHP - netguru
  • Node.Js Vs PHP : Battle of Supremacy & survival - codeburst.io
  • PHP vs. Node.js: An epic battle for developer mind share - InfoWorld
  • Web apps are only getting better - The Verge

Web Development is the only technology that has the highest number of internships and jobs available. If you want to create web apps and websites, and get a job or two, get started with HTML and PHP.

Expect a lot of programming and design too. HTML is just a markup language, it is NOT a programming language, on the other hand, PHP requires a good amount of programming knowledge as well as skills.

Choose Wisely

Read the first part here as it contains insights on other Elective Courses like Cloud Computing, IoT, and Wireless Communications and Mobile Computing.

Want to talk? Just drop me a mail and I’ll be happy to talk to you.