Saya pikir ini adalah tanda yang sangat positif dari keahlian Anda. Adalah jauh lebih umum bagi orang-orang yang mengalami kesulitan dalam mendesain desain 'lebih baik' dalam tim untuk sepenuhnya tidak mampu mengenali mengapa desain lain lebih baik.
Anda memiliki dua kekuatan yang luar biasa hebat (dan anehnya tidak biasa) untuk Anda:
- Anda mampu menilai desain Anda terhadap orang lain secara objektif
- Anda memiliki keinginan dan berusaha untuk membuat desain Anda optimal
Anda hanya beberapa tahun dan masih memiliki jalan panjang, tetapi dengan sikap ini Anda pasti akan sampai di sana, tapi jangan menyerah; kita semua berurusan dengan mental mundur seperti ini. Seringkali ketika saya mendapat kesempatan, saya suka memasang Prinsip Desain (TIDAK sama dengan pola desain) dan saya pikir ini adalah contoh sempurna dari mana mereka berguna. Pelajari dan praktikkan menerapkannya dalam desain Anda, Anda akan sebelum Anda tahu itu telah mengambil langkah maju dalam hal ini.
Pada akhirnya ingatlah, mendesain itu sulit. Kami berurusan dengan abstraksi tingkat tinggi yang kompleks setiap hari, untuk membuatnya dari udara tipis, membuatnya bekerja dengan baik, dan mudah digunakan oleh rekan kerja adalah tugas yang sangat sulit. Butuh latihan, selama bertahun - tahun .
Jadi, ingat dan ingat: ada banyak orang di luar sana yang tidak bisa menilai dua desain dan benar-benar mengenali satu lebih disukai daripada yang lain, seberapa baik menurut Anda mereka bergaul dalam menciptakan desain yang bagus?
Sunting:
'nother tip, setelah memahami prinsip-prinsip dan sedikit mempraktikkan aplikasi mereka, saya pikir ada permata lain dari pertanyaan lain di sini yang berbicara tentang nilai mempelajari berbagai bahasa yang memiliki tujuan dan aturan yang berbeda:
Idealnya, setiap programmer harus tahu bahasa dari masing-masing kelas. Apa yang bisa kamu pelajari:
- Bahasa mainstream yang diketik OOP statis: Java, C # (kebanyakan digunakan dalam perangkat lunak perusahaan) dan C ++ (pemrograman sistem dan aplikasi desktop yang kompleks)
- Bahasa OOP berbasis prototipe: Javascript (pemrograman sisi klien)
- Bahasa prosedural: C (perangkat lunak tertanam dan pemrograman sistem)
- Bahasa fungsional: Haskell, ML atau Lisp (bahasa fungsional baik untuk perangkat lunak yang sangat paralel).
Bahasa pemrograman logika (Prolog) mungkin tidak begitu berguna dalam industri, kebanyakan digunakan dalam penelitian di AI.
Ini akan membantu untuk memperluas berbagai ide yang muncul dalam pikiran ketika mencoba merancang solusi.