Table of Content
Introduction
Apa sih beda nya programmer, software developer hingga software engineer?
Secara umum Coder, Programmer, Software Developer, Software Engineer itu semuanya sama! Intinya semuanya itu Ngoding!
“A computer programmer sometimes referred to as a software developer, a software engineer, a programmer, or more recently a coder, is a person who creates computer software” - Wikipedia “Computer Programmer”
Seorang programmer komputerkadang-kadang disebut sebagai software developer, software engineer, programmer atau bahkan akhir-akhir ini disebut coder. Seseorang yg membuat perangkat lunak komputer. -Wikipedia
Menurut saya ada hirarki di dunia programming. Berikut hirarki nya :
1.0 Coder
Kita awalnya seorang Coder. Coder adalah seseorang yg nulis kode. Menulis kode ini ngga peduli mau 1 baris atau ribuan baris, menggunakan bahasa pemrograman apapun, itu sama-sama nulis kode.
2.0 Programmer
Seorang programmer pasti coder. Programmer adalah orang yg bikin program.
“A computer program is a sequence of instruction in a programming language that a computer can execute and interpret” -Wikipedia
Sebuah program di komputer kita adalah serangkaian instruksi yg ditulis menggunakan bahasa pemrograman yg bisa dieksekusi atau di interpretasi. Klo aplikasi pasti di eksekusi, tapi kalau web itu di interpretasi.
Jika kamu pernah membuat aplikasi sederhana seperti membuat website, kalkulator, game itu sudah bisa dikatakan kita adalah programmer.
3.0 Software Developer
Seorang Software developer pasti programmer, dan coder.
“Software development is the process of planning, specifying, designing, programming, documenting, testing, bug, fixing, and maintaining application, framework, or other software components” - Wikipedia
Pengembangan perangkat lunak adalah proses dari perencanaan, penentuan, perancangan, pembuatan program, dokumentasi, perbaikan bug dan perawatan dari sebuah aplikasi, framework, atau software lain.
Programming termasuk salah satu dari proses pengembangan perangkat lunak.
Pengembangan perangkat lunak biasa kita kenal SDLC (Software Development Lifecycle)
Jika kamu membuat program tanpa dokumentasi itu namanya programmer, namun jika kamu menggunakan tahap SDLC ini kamu bisa disebut software developer.
4.0 Software Engineer
Seorang Software Engineer pasti software developer, programmer, dan coder. Software Engineer bisa kita sebut orang yg merekayasa perangkat lunak atau bisa kita sebut juga insinyur perangkat lunak.
“A Software Engineer ia a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software” -Wikipedia
Orang yg menerapkan prinsip prinsip rekayasa perangkat lunak pada saat merancang, mengembangkan, menguji, dan mengevaluasi perangkat lunak.
Sama seperti software developer, namun software engineering menerapkan prinsip-prinsip rekayasa perangkat lunak.
Contoh Prinsip-prinsip Software Engineering :
- Rigor and Formality : ketegasan dan formalitas. sebuah software harus ada ketegasan dan tidak boleh asal-asalan.
- Separation of Concerns : pemisahan kepentingan atau kebutuhan.
- Modularity & Abstraction : memecah program menjadi bagian kecil
- Anticipation of Change : software yg kita buat bisa mengantisipasi perubahan kedepannya.
- Generality
- Incremental Development
- Consistency
- KISS (Keep it Simple Stupid!) : gimana cara kita bikin program itu tidak terlalu rumit, sehingga program kita bisa dipahami oleh team kita.
- DRY (Don’t Repeat Yourself) : Jangan lakukan hal yg sama, tapi bisa kita abstaksiin menjadi sebuah modul.
- YAGNI (You Aren’t Going to Need It!) : mencari atau menentukan mana saja yg penting untuk aplikasi kita
- SOLID
- Single Responsibility Principle
- Open Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Ada hal-hal yg harus diterapkan diluar dari proses pembuatan perangkat lunaknya saja.
Fakta Dilapangan ? Bahwa Tergantung dengan perusahaan masing-masing. ini hanya gambaran umum nya saja! Definisi setiap perusahaan bisa tertukar-tukar.
Sumber : https://www.youtube.com/watch?v=L26eCxv_9LA&list=WL&index=1