Dalam pengembangan aplikasi basis web maka kita akan mengenal bahasa pemrograman client side dan server side. Bahasa pemrograman client side adalah jenis bahasa pemrograman yang bekerja pada sisi client, dimana proses penerjemahan kode program dilakukan oleh web browser yang sebaiknya sudah tersertifikasi oleh world wide web consortium(W3C). Karena seringkali tampilan halaman web sedikit berbeda antara satu dengan yang lainnya karena tiap browser mempunyai web engine atau library masing-masing dalam menterjemahkan kode program. Berikut ini beberapa jenis bahasa pemrograman yang dikategorikan bahasa pemrograman client side, diantaranya:
- HTML
- CSS
* CSS Architecture (BEM, SUITCSS, OOCSS, SMACSS, Systematic CSS)
* CSS Preproocessors (SASS, LESS, Stylus, PostCSS)
* CSS Framework (Bootstrap, Materialize CSS, Bulma, Semantic UI, Foundation. Untuk aplikasi dengan javascript: Reactstrap, Material UI, Tailwind CSS, Chakra UI) - JavaScript
* Library (jQuery, React, D3=Data-Driven Document, Underscore and Lodash, Glimmer)
* Framework (Angular [RxJS, NgRx], Vue [VueX], Ember, Aurelia, React->Redux, React->Flux, React->Mobx])
* Tool Task Runners (Gulp, Grunt, NPM)
* Tool Testing (Jest, Mocha, Jasmine, React-testing-library, Cypress, Enzyme)
* Module Bundlers (Webpack, Rollup, Parcel)
* Type Checkers (TypeScript)
* Server Side Rendering (React->Next.js, React->After.js, Angular->Universal, Vue->Nuxt.js)
* GraphQL (Apollo, Relay Modern)
* Static site generators (Next.js, GatsbyJS, Nuxt.js, Vuepress, Jekyll, Hugo, Gridsome)
* Mobile Applications (React Native, NativeScript, Flutter, Ionic)
* Desktop Applications (Electron)
* Ajax
* JSON - XML
Sedangkan bahasa pemrograman server side adalah jenis bahasa pemrograman yang bekerja pada server dalam proses penterjemahan kode programnya yang kemudian hasilnya oleh web server dikirim ke client dalam format dokumen html. Berikut ini beberapa bahasa pemrograman server side, yaitu:
- PHP
* Package Manager (Composer)
* Debuger/Profiler (xDebug, xHProf, New Relic, Blockfire)
* Testing (PHPUnit, phpspec, Codeception, Mockery)
* Framework (Laravel, CodeIgniter, Yii, Zend, Symfony) - NodeJs (Menggunakan bahasa pemrograman JavaScript)
* Package Manager (Yarn, NPM)
* Testing (Mocha, Jest, Jasmine, Chai, Should Js)
* Framework (Express, Hapi, Koa, Sails Js) - ASP
- Python
* Package Manager (Pip)
* Testing (Unittest/pyUnit, py.test, doctest, nose)
* Framework Sync (Django, Flask, Pyramid)
* Async (aiohttp, gevent, Tornado, Sonic) - Ruby
* Package Manager (RubyGems)
* Testing (Rspec)
* Framework (Ruby on Rails) - Perl
- Rush
- Go (Golang)
- Java
- C#
- SQL
* Relational Databases (MySql, MariaDB, PostgreSQL, Oracle, MS SQL, SQLite)
* NoSql Databases (MongoDB, RethinkDB, CouchDB, DynamoDB)
Mengingat begitu banyaknya bahasa pemrograman web baik client side ataupun server side, bila tidak memungkinkan dipelajari atau dikuasi semuanya maka dari pengalaman saya ada beberapa bahasa pemrograman yang harus dipelajari dan dikuasi, diantaranya:
HTML, CSS, JavaScript Basic, Framework CSS (Bootstrap, Materialize CSS atau Tailwind CSS), jQuery, React JS, Angular JS, Vue JS, Ajax, JSON, XML, PHP Native, Framework PHP Laravel atau CodeIgniter, NodeJs, Express JS, MySql atau MariaDB, MongoDB, Java, React Native, Flutter, Ionic, Electron.
Jika masih terlalu banyak coba untuk mempelajari paket dasar pemrograman yaitu HTML, CSS, JavaScript Basic, jQuery, Bootstrap, ajax, JSON, XML, PHP dan MySql. Kemudian lanjutkan dengan Framework PHP Laravel atau CodeIgniter, ajax, json, xml, MySql atau MariaDB, AngularJS atau VueJS atau React JS. Selanjutnya pelajari dan kuasai membuat aplikasi dengan NodeJs, Express Js, MariaDB atau MongoDB.
Sementara untuk pengembangan aplikasi mobile bisa mempelajari React Native, Java, Flutter atau Ionic. Dan untuk aplikasi desktop bisa mempelajari Java atau Electron.