Choosing Major & School


Computer Science Major - Computer Programming

Aug 2018

There are many computer languages for different purposes. C and C++ remain the fastest to execute and are used by the gaming industry. On the other hand, in the web sites world, much of the web page design is done with the likes of JavaScript or PHP. (Note: HTML is a language used to describe to a browser how to display text and other objects in a browser window. It is not a programming language. )

Recently Python has been rapidly gaining a reputation as a general purpose code that is easy to learn, it’s freely available and one of the easier programming languages to learn compared, say, to C/C++. It has grown in popularity in recent years, initially for this simplicity but lately because it has been adopted by the big data community. It is likely to be around for a few years and not become a dead language any time soon. (There are plenty online courses such as from MOOCs to get you started.)

Ranking of the top programming languages (2018 IEEE spectrum) 

IEEE 2018 Top 10 Computing languages

Python has tightened its grip on the No. 1 spot. Last year it came out on top by just barely beating out C, with Python’s score of 100 to C’s 99.7. But this year, there’s a wider gap between first and second place, with C++ coming in at 98.4 for the No. 2 slot (last year, Java had come third with a score of 99.4, while this year its fallen to 4th place with a score of 97.5). C has fallen to third place, with a score of 98.2.

Looking at the Trending preset, designed to weight the metrics to emphasize languages that are growing quickly, we see that Google’s Go has risen from No. 7 to No. 5. But perhaps the biggest mover is Scala, rising from No. 15 to No. 8. Scala was created to be an improvement over Java, so perhaps Java’s drop in the default ranking owes something to the upward trend for Scala.

Surprisingly, ActionScript has eked out a small bump up in the rankings. Last year it came in dead last with a ranking of 0.0, so we were all set to eliminate it. However, it’s managed to come back into second-to-last place with a score of 1.6, while Forth, once a workhorse of the embedded world takes the goose eggs. I would be sad to see Forth go, as it’s one of my personal favorites, but if it comes in a zero again next year, it’ll be axed.

Back to the number one, why is Python continuing to gain programmer mindshare?

One reason is Python is now listed as an embedded language. Previously, writing for embedded applications tilted heavily toward compiled languages, to avoid the overhead of evaluating code on the fly on machines with limited processing power and memory. But while Moore’s Law may be fading, it’s not dead yet. Many modern microcontrollers now have more than enough power to host a Python interpreter. A nice aspect of using Python this way is that it is very handy in certain applications to play with attached hardware via an interactive prompt or dynamically reload scripts on the fly. Growing into a new domain can only help boost Python’s popularity.

Another reason for Python’s increasing popularity may be seen in R’s small decline. R peaked at No. 5 in 2016, dropped to No. 6 last year, and is now in seventh place. R is a language specialized for handling statistics and big data. As the interest in large data sets has increasingly turned to their applications in machine learning, the existence of high-quality Python libraries for both statistics and machine learning may be making flexible Python a more attractive jumping-off point than the more specialized R.

Sample Python codes: This program adds two numbers

num1 = 1.5

num2 = 6.3

# Add two numbers

sum = float(num1) + float(num2)

# Display the sum

print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))

Source: Programiz  (what this site offer) -

Programiz is to create tutorials that are simple to read, understand and emulate. They are a small team of passionate developers working to make programiz a reliable source of programming knowledge, focussing on battle-tested programming languages like C, C++, Python and R.  They make sure every concept is explained with easy to understand examples. 


Computer Programming jobs that in demand


Joel Lee May, 2017

Programming jobs may not be as prestigious or easy to land as they once were, but the industry is still booming with opportunity. If you want to start a career in programming, you are encouraged to go for it. Anyone who tells you it’s “too late” is either lying or out of touch.  However, not all CODING jobs are equal.

For example, a video game developers would not be paid the same as database engineers. Finding a good programming job is tough, so consider focusing on one of the following concentrations to improve your chances of success.

Be aware that Programming job titles are vague, “Software developer,” “software engineer,” “computer programmer,” and “application developer” can all point to the same job. Yet at the same time, one company’s “software developer” could be vastly different from the same title at another company.

So the job title is not important, they all involve the general process as - gathering application requirements for the software, designing a solution, and implementing the specified features. On the other hand, it’s more meaningful to look at industries instead.


(this is more relevant in Hong Kong being one of the major financial centers of the world) - Financial systems are some of the most advanced in the world, complete with complex algorithms, statistical analyses, and tons of data to be processed every day. Speed and security are of utmost concern. It’s high-pressure work that can burn you out fast, but if you can keep up, smart programmers are always in high demand here.

Mobile Development

(whether the current mobile app craze may or may not have peaked, it is sure that mobile apps have a long future ahead of them and mobile app developers will be in demand for quite some time. The industry is far from mature, but it has definitely settled in. Here are some ways you can take advantage:

   Startups: First, joining a tech startup is risky. About half of all startups fail within the first five years. But if you’re young, single, ambitious, and persistent, it can be a dream worth chasing. Note that you don’t have to be a world-changing success like PayPal or Instagram. Even moderate success is still success.

   Games: Games also involve a lot of risk. You can pour months or years into a project, release it, and sell zero copies. A less risky route would be to work for an established mobile games company.

Web Development

Web development comprises a special niche in programming where the rules are unique. The languages, the architecture, the workflow, and the concepts tend to have little or no overlap with, say, business applications development or video game development. And more than any other coding industry, web developers tend to be freelancers.

Web developers can futher be divided into 3 types: front-end developers, back-end developers, and full-stack developers. Each type deploys its own languages and technologies.

   Front-end: A front-end developer takes the design of a website and brings it to life. Using languages like JavaScript, HTML, and CSS, you implement the functionality that makes a website interactive and operable. Such websites can be made from scratch or you can create and sell advanced themes for frameworks like WordPress.

   Back-end: A back-end developer deals with the actual logic and data of a website. Common languages and frameworks include PHP (Laravel), Python (Django), JavaScript (Node.js), and Ruby (on Rails).

   Full-stack: A full-stack developer handles both front-end and back-end. You take care if everything, make the website design come to life and implement the logic and data that keeps it persistent. It’s a lot of work, but full-stack developers are often in higher demand and tend to command higher wages.


(In the context of Hong Kong government, note that most of the computing jobs are outsourced) - Programmers are needed at all levels of government, for everything ranging from basic low ranking work to the design and maintenance of vast systems. If you have expertise in computer and network security, you can even aim for clearance-restricted positions. Government work in general tend to be not exciting.

Database Development

Any software solution that involves data likely uses databases for storing that data. A good database design (with good data analysis) is necessary to minimize complexity, optimize cost and performance. Basically it’ll make sure the data can be easily queried and accessed by any program that needs it.

Organizations with huge customer basis (for example, governments, banks, insurance, Telco, and now B2C commercial firms etc.) have massive databases. And because databases are so mission critical, dedicated database developers are often in high demand.

There are two major database types, mastering both would be ideal but not strictly necessary depending on your industry:

•    SQL — Pronounced “sequel,” these are the traditional kind of relational databases that have been used in computer programming for several decades. Whereas SQL is the language itself, multiple relational database management systems (RDBMS) exist. The most popular are MySQL, PostgreSQL, Microsoft SQL Server, and SQLite.

•    NoSQL — A non-relational database type that offers more flexibility, scalability, and speed of development at the expense of less built-in structure and integrity. You also lose the universal SQL method of querying databases. NoSQL is currently quite trendy in web and mobile development (thanks to MongoDB, Redis, and Cassandra), but SQL is still more popular and in higher demand overall.

Legacy Systems

(old systems that still run on aging machines such as IBM mainframe) - Technology is always advancing and most programmers focus on keeping up with new trends, but most long-running businesses operate on older technologies.

Two types of jobs exist in this realm: maintaining/expanding legacy systems or porting legacy systems to newer tech stacks.

Database wise they run database system such as DB2 (relational structure) and the much older IMS (hierarchical structure) and TOTAL (network structure)  

Remember, what’s modern today could be legacy tomorrow.