Fields of Programming

Nayonika Mohapatra
Coding Den
Published in
5 min readJun 5, 2018

The field of computer science is exceptionally vast and ever-expanding. It will take a lifetime to just fathom its depth, forget mastering all the diversified fields. However, it’s ‘programming’ which is ubiquitous in the various branches of computer science. Great minds such as Steve Jobs, Mark Zuckerberg, Jack Dorsey, Linus Torvalds- each well-known for their unique contribution –share the skill of ‘efficient programming’ in common. Programming offers a plethora of opportunities to kick-start your professional career. Now if you dabble in the art of coding (the other term for ‘programming’), yet the multitude of options confuses you, pore over the following article to find your niche in computer science.

1. Competitive programming

Overview

Competitive programming is a ‘mind sport’ usually held over the internet or a local network, involving participants (technically called ‘sport programmers’) trying to program the solutions for the logical/mathematical problems provided by the host. The judging criteria are- number of problems solved, time spent in writing the solutions, execution time, program size, quality of output produced, etc.

The problems generally belong to the following categories:

  • Number theory
  • Graph theory
  • Data structures
  • String analysis

Major competitions

(A) Short term competitions (lasting from 1–3 hours):

  • ACM-ICPC
  • Google Code Jam
  • Facebook Hacker Cup
  • Topcoder Open(TCO)
  • IOI
(Source: learnsteps.com)

(B) Long term competitions (last from a few days to few months):

  • CodeChef Long challenges
  • HackerRank week of code
  • ICFP Programming contest

Training resources

Some very popular internet resources dedicated to training in competitive programming are:-

  • HackerRank
  • Codeforces
  • Topcoder
  • CodeChef
  • HackerEarth

Career options

Participation in ACM-ICPC, high ratings/more stars in Codeforces/Topcoder etc. boost up your resume and help you grab a job in leading tech-companies such as Apple, Google, Adobe, to name a few.

P.S: Gennady Korotkevich-the highest rated programmer at CodeChef has got several job offers from Google and Yandex.

2. Open source software development

Overview

It is the process of developing open-source software (the software product available with its source code under an open source license to study, change and improve its design). Open source projects and initiatives encourage the principles of open exchange, collaborative participation and community-oriented development.

Contributing to open source projects involve creating new pull request, reporting a bug, documentation, answering the questions raised, besides writing codes.

(Source: opensourceforu.com)

Major competitions

  • Google Summer of Code(GSoC)
source:googleimages
  • Facebook Open Academy(FOA)
  • Outreachy

Training resources

You can try looking for appropriate open source projects listed in

  • Github
  • Bitbucket
  • SourceForge
  • OpenHatch
  • Google Open Source

Career options

Open source collaboration experience enhances your resume. It’s a great platform to get connected with established programmers and developers all round the world. You would definitely pride on working with a team of developers who fixed issues and built a tool that’s being used by thousands of people daily.

3. Web development

Overview

Web development is developing a website for the internet, mostly by writing markup and coding. One must have a good command over HTML, CSS, JavaScript, web 2.0 skills (e.g. Ajax) and server –side technologies (e.g. PHP, Ruby on Rails).

(Source: debugsolution.in)

Training resources

Freecodecamp.org, TreeHouse and W3Schools are the best online platforms to practice website design and web development.

Career options

The three specializations in web-dev are Front-end, back-end and full stack web-dev. Web-developers can earn either as freelancers or get hired by private and government sectors.

4. Application development

(Source: www.maven-infosoft.com/mobile-app-development)

Overview

It refers to creation of computer applications for use on mobile devices such as tablets, smart phones and smart watches.

Training resources

Java, python, objective c, swift, HTML5 are the most popular programming languages used by app-developers today.

Developer.android.com and video lectures (e.g. like the complete android bootcamp course) at udemy, udacity, etc. are reliable training resources. Simultaneously, try for some mini projects.

Career options

The demand for mobile-app development has tremendously increased in today’s IT sector. Worry not if you excel in this field because there’s a whole bunch of recruiters waiting out there for you!

5. Machine learning

Overview

(source:www.becominghuman.ai)

Machine learning is an application of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed. It focuses on the development of computer programs that can access data and use it to learn for themselves.

(Source: freepythontips.files.wordpress)

Training resources

Knowing SQL, statistics and python is a must. Explore python data manipulation libraries (e.g. ‘numpy’ and ‘pandas’), data visualization libraries (e.g. ‘Matpotlib’ and ‘seaborn’) and new complex algorithms. Follow blogs and articles on ML to stay updated.

Major competition

Kaggle

Career options

ML is the hottest trend today. You can pursue a research career in AI or become a ML implementation expert. The scope of an amazing career in ML is wide and diversified.

6. Data science

(source:google images)

Overview

Data science is a multidisciplinary blend of data inference, algorithm development and technology in order to solve analytically complex problems.

(Source: datajobs.com)

Training resources

Subscribe to online courses by udacity, coursera, etc. have a good command over statistics, maths, machine learning and databases.

Career options

Data scientists are much in demand by each industry- business, e-commerce, finance, government, social networking, healthcare and telecommunications. Other job titles related to data science and the average salary for each position is as follows:

(Source: www.cio.com)

7. Miscellaneous fields

Cyber-security, gaming, networking are some fields where coding skills are required along with other specific skills.

Hopefully the article helps you find your field of interest. The earlier you find, the better it is. With a perfect attitude to learn and practise, brace yourself for the best technical career. Happy coding!

--

--