Belajar Mandiri untuk Menjadi Software Developer
Bismillah,
Pada tulisan ini, saya ingin membagi links tutorial yang menurut saya sangat bermanfaat bagi seseorang yang ingin menjadi Software Develover secara Autodidak. Tidak mengesampingkan pentingnya kuliah di jurusan IT, namun semangat mempelajari ilmu pengetahuan yang tinggi, walaupun oleh seorang yang belajar Autodidak, bisa saja menghasilkan Software Developer (Programmer) yang handal.
- Linux
-
Ini adalah tutorial yang saya gunakan untuk belajar Command Line di Linux sekitar tahun 2005. Update terakhir tutorial ini sekitar tahun 1998, namun saya menilainya masih cukup relevan untuk di gunakan di tahun 2018, 20 (dua puluh) tahun kemudian.
-
Sangat bagus untuk mengenal dunia Linux dan Command Line nya.
-
Tutorial Favorite saya, sering saya praktek kan waktu dulu. Melatih kesabaran kita untuk compile kernel, compile ini dan itu sampai bisa booting linux mini nya. Toturial ini sangat berkesan bagi saya. Bahkan saking senang nya membuat distro mini ini, saya menulis kan catatan nya di sini dan di sini.
-
Ini satu hal yang sangat penting bagi seorang Software Developer, yaitu menguasai Vim, lho kok Vim? iya, Vim, karena bagi saya pribadi, tidak ada text editor yang lebih memadai untuk di gunakan di dunia Unix-like, semisal Vim. saya menyarankan untuk menggunakan “vimtutor” yang tersedia di distro-distro Linux yang ada, karena itu yang paling mudah menurut saya. Kuasai dulu Vim, sebelum belajar Bahasa Pemprograman.
-
Powerfull sekali untuk mengedit file text. Tuturial tambahan tentang linux command line bisa di lihat di sini
-
- Bahasa C
-
Bahasa C adalah Bahasa Pemprograman yang seyogyanya di kuasai oleh seorang Software Developer. Karena Bahasa ini merupakan pondasi dari sebagian Bahasa Pemprograman Tingkat tinggi lainnya. Pada tutorial ini, saya belajar dan praktek dasar-dasar Pemprograman Bahasa C
-
Pada tutorial Bahasa C ini, materi singkat dan padat, disertai contoh soal dan jawabannya. Sangat bermanfaat untuk latihan sejauh mana penguasaan terhadap materi yang ada.
-
- Bahasa Assembly
-
Programming from the Ground Up
Iya, betul, Bahasa Assembly. Setelah Belajar Bahasa C, kita putar balik ke bahasa yang lebih rendah, yaitu bahasa Assembly. Dengan belajar Bahasa ini, akan lebih mudah paham apa itu pointer di bahasa C dan hal lainnya. Sehingga, bisa mengulang kembali (revisit) materi bahasa C yang di rasa kurang paham, setelah belajar Bahasa Assembly.
-
- OpenBSD
-
OpenBSD Frequently Asked Questions
OpenBSD adalah salah satu sistem Unix-like (semisal Unix) yang focus pada security. OpenBSD ini banyak di gunakan sebagai Firewall untuk Infrastruktur Internet. Saya pribadi memilih OpenBSD sebagai server untuk aplikasi-aplikasi yang saya develop.
-
Kekuatan Utama OpenBSD adalah sebagai Firewall. Fitur penting yang tersedia di OpenBSD PF, kalau di setting dengan baik, diantaranya; mampu membendung Reverse telnet, anti DDOS, anti Sync attack. Saya menulis tentang PF ini di sini dan di sini. Adapun untuk PF versi OpenBSD 4.6 yang saat ini syntax nya sudah tidak berlaku lagi di OpenBSD terbaru bisa di lihat di sini.
-
- SQL
-
Postgresql adalah Database server yang saya pilih untuk Development dan Deployment Aplikasi yang saya bangun. Ini adalah Tutorial Dasar SQL. Saya belajar SQL dari sini.
-
Contoh-contoh Kesalahan Saat Menulis SQL
Menarik melihat trik-trik SQL yang bisa di manfaatkan untuk percepatan Query.
-
Fitur Window Functions ini sangat luar biasa. Saya menuliskan catatan saya di sini dan di sini.
-
Database Best Practices dan 20 Database Design Best Practices
Design Database dengan benar, agar menghasilkan aplikasi / Software yang handal
-
- PHP
-
Ini adalah Aplikasi Reporting Tool yang di bangun dengan PHP. Mudah di konfigurasi untuk terkoneksi dengan Postgresql. Aplikasi inilah yang saya gunakan sebagai Framework untuk laporan-laporan yang saya Query dari Database Postgresql.
-
- Python
-
Banyak tutorial Python tersedia di internet, tapi ini adalah tutorial resmi dari website python.org yang saya gunakan untuk mempelajari bahasa Python. Langsung ke sumber nya.
-
Latihan algoritma, mengasah skill dan mental problem solving, sangat bermanfaat. Bermanfaat untuk mengasah, sejauh mana pengetahuan kita terhadap suatu bahasa pemprograman. Saya biasa menyelesaikan nya dengan Bahasa Python. Coba selesaikan beberapa soal yang dianggap mudah antara nomor 1 sampai nomor 100. Kalau bisa menjawab 40 soal saja sudah bagus menurut saya.
-
Framework yang saya gunakan untuk membangun aplikasi-aplikasi berbasis Web. Silahkan di ikuti tutorialnya, mudah dan menarik. Pakai SQLite aja untuk latihan.
-
- Rekayasa Perangkat Lunak
-
Principles of user interface design dan Principles of User Interface Design
User Interface atau Interaksi Manusia Komputer harus di perhatikan dengan seksama Sehingga aplikasi yang baik adalah yang paling mudah di gunakan.
-
Unix Design Philosophy dan The Joel Test
Prinsip-prinsip dalam pembuatan software.
-
- Version Control System
-
CVS
cukup ketik “info cvs” di terminal, ikuti tutorialnya di situ. Saya menggunakan cvs ini untuk mengelola kode sumber saya yang terdapat data-data rahasia, semisal password dll, sehingga hanya tersimpan di cvs server saja. Ini sedikit catatan saya mengenai cvs di sini.
-
Software Developer sebaiknya kenal juga dengan git dan github. Saya menyimpan data-data yang tidak sensitif di Github. Tulisan saya tentang github bisa di lihat di sini.
-
- Networking
-
Understanding IP Addressing dan Linux Network Administrators Guide
Software Developer seyogyanya paham Subnetting, Routing, dan hal lainnya terkait TCP/IP
-
Sekian dari saya, link-link yang saya anggap bermanfaat untuk di pelajari bila berminat menjadi seorang Software Developer. Mungkin ada yang berbeda pendapat, bahwa list yang saya buat ini terlalu condong ke Unix-like Operating System. Namun, daftar ini adalah pendapat saya pribadi.
Kemudian, sebagai refensi tambahan, berikut links Lainnya: