Bagaimana Anda mempelajari kerangka kerja standar / API / fungsionalitas bahasa? [Tutup]

14

Saya mengerti cara membuat kode. Saya tahu bagaimana menyiasati dasar-dasar bahasa yang saya gunakan secara teratur. Saya tahu cara menulis ekspresi reguler yang sedikit di atas dasar, saya dapat berbicara dengan basis data, saya dapat menerima input, mencetak, menangani file, dll. Saya kurang lebih yakin akan kemampuan dasar saya untuk mengeluarkan kode sumber untuk program yang cukup kompleks.

Masalah saya adalah saya tidak pernah merasa cukup. Saya merasa seperti saya hanya tahu sebagian kecil dari perpustakaan standar bahasa saya, dan bahwa sampai saya mengerti semuanya, setidaknya secara sepintas, saya tidak punya hak untuk mencoba mendapatkan pekerjaan dengan menggunakannya. Saya baru saja keluar dari perguruan tinggi (komunitas / junior / whathaveyou), dan teman-teman saya mendapatkan pekerjaan di industri, tetapi saya masih merasa seperti palsu atau masalah sulit dan bahwa saya hanya tidak cukup baik.

Apakah ada penanda yang layak untuk "Saya cukup tahu" yang dapat saya gunakan untuk meyakinkan diri sendiri bahwa saya dapat membuat kode? Haruskah saya mengambil fakta bahwa saya setidaknya mampu mengkodekan FizzBuzz sebagai indikator bahwa tidak apa-apa untuk melamar sesuatu? Bagaimana saya bisa belajar lebih banyak tentang pustaka, kerangka kerja, dan / atau API standar ini secara relatif mudah? Saya kode secara teratur, saya membaca buku, tetapi pengetahuan saya masih terasa sangat dangkal.

TOLONG!

Membuang
sumber
3
semakin Anda belajar, semakin Anda menyadari betapa sedikit yang Anda ketahui. +1 untuk pertanyaan yang sangat bagus.
devnull
Saya tidak yakin hal ini layak untuk dihafal. Lagi pula, Anda memiliki dokumentasi yang dapat dicari, IDE cerdas, dan sebagainya. Jauh lebih baik untuk menggunakan otak Anda untuk hal-hal penting, untuk pengetahuan mendasar, menjaga semua API yang tidak stabil di luar.
SK-logic
I feel like I only know a small portion of the standard library of my languagekalimat ini harus menjadi moto resmi C ++ .
ZJR

Jawaban:

8

Teman rekomendasi saya:

berhenti berpikir biner (0/1, tidak tahu / tahu, buta huruf / melek) dan mulai berpikir kabur (saya tahu sampai batas tertentu). Kita semua tahu sesuatu dan sampai batas tertentu. Pengetahuan adalah sebuah kontinum dan setiap orang ditempatkan di suatu tempat antara orang yang paling buta huruf dan yang paling berpengetahuan luas. Anda dapat melakukan pekerjaan itu, tetapi di tingkat Anda dan di bawah itu . Ini aturannya. Jangan takut. Jangan menunggu satu hari pun ketika Anda sudah mempelajari semua kerangka kerja Anda, dan IMHO hari itu tidak akan pernah datang. Bahkan pengembang 20 tahun pengalaman masih membaca untuk mempelajari hal-hal baru. Pemrograman bersifat sangat luas sehingga Anda tidak seharusnya (atau tidak bisa) mengambil semuanya.

Selami lingkungan kerja dan jangan takut. Kita semua memiliki hari-hari ketika kita tidak bisa melakukan sesuatu. Itu bukan kejahatan. Itu bagian dari pekerjaan kami. Anda tidak tahu, Anda belajar, Anda mencoba melakukan pekerjaan itu, dan Anda menyelesaikannya.

Saya pikir apa yang perlu Anda miliki sekarang, bukan lebih banyak pengetahuan. Sebaliknya, itu hanya kepercayaan diri.

Semoga berhasil

Saeed Neamati
sumber
Saya mendapatkan bahwa itu semua pengetahuan kabur dan beberapa JIT-Learning detail. Aku hanya tidak tahu bagaimana meyakinkan diriku sendiri bahwa aku bahkan memiliki pemahaman yang kabur tentang dasar-dasar. Saya khawatir saya kehilangan beberapa hal yang sangat penting sepenuhnya.
Throwaway
2

Saya percaya Anda mengajukan pertanyaan yang salah di sini, dan jika Anda akan mengizinkan saya sedikit psikologi yang tidak beralasan, saya pikir itu karena Anda terganggu oleh sedikit keraguan diri dan kepercayaan diri yang rendah.

Berhentilah membandingkan diri Anda secara luas dengan orang lain

Pertama-tama, Anda tidak dapat membandingkan diri Anda pada level luas dengan programmer lain. Bahkan bintang rock yang mungkin Anda temui saat ini kemungkinan memiliki masalah (kecerobohan, Namun Hal Lain yang Dapat Dilakukan, dan masalah sikap), jadi jangan khawatir tentang apakah Anda dibandingkan dengan mereka. Alih-alih, pendekatan Anda seharusnya untuk mendapatkan sebanyak mungkin mentor, mengumpulkan semua pengetahuan yang mungkin, dan menjadi lebih baik dengan mengawasi dan meniru ahli.

Belajar untuk belajar

Juga, pendekatan terbaik untuk menjadi programmer dan pembelajar yang lebih baik secara umum adalah tidak mempelajari hal-hal tertentu, atau memahami dengan memori. IMO, menghafal adalah bentuk pembelajaran terendah. Ini seperti sebuah program yang melewatkan langkah penting "pemrosesan" dari Input-> Process-> Output. Ajari diri Anda konsep-konsep seperti yang Anda sebutkan dalam pertanyaan Anda. Pemahaman yang luas tentang pemrograman adalah tempat Anda memberikan nilai paling banyak. Belajar bahasa baru dalam paradigma yang Anda kenal adalah cakewalk dibandingkan dengan belajar bagaimana memecahkan masalah.

Dan sekarang, untuk beberapa saran buruk dari seseorang hanya sedikit lebih tua dari Anda

Salah satu kesalahan terbesar yang saya buat ketika masih muda adalah bahwa saya membuat keputusan orang lain untuk mereka dengan mengasumsikan bahwa saya tidak cukup baik, dan bahwa waktu dan bakat saya tidak sepadan dengan waktu dan uang mereka. Saya terus-menerus menekankan kemampuan dan bakat saya, meskipun mungkin jarang pada saat itu. Ini adalah kesalahan besar.

Apa yang perlu Anda pahami adalah bahwa bahkan seorang programmer yang cukup layak pun tampaknya seperti seorang penyihir untuk rata-rata joe sehari-hari. Mereka mungkin membenci Anda, mereka mungkin muak selalu harus bertanya kepada seorang nerd lokal bagaimana menyalakan komputer mereka, tetapi karena mereka tidak memiliki wawasan dan pemahaman tentang apa yang Anda lakukan, tidak peduli seberapa sepele dan sesederhana apa pun itu menurut Anda, tidak mungkin ke mereka.

Orang-orang AKAN membayar Anda untuk waktu, bakat, dan energi Anda. Ada cukup banyak programmer yang benar-benar mengerikan di industri kami yang melakukan pembunuhan hanya karena mereka dapat duduk di kursi dan (bisa dibilang) menulis program dasar. Mainkan kartu Anda dengan mengembangkan rasa percaya diri melalui pencapaian, latih kemampuan berbicara dan bahasa tubuh Anda, terus kuasai keahlian Anda dengan selalu mencari hal-hal yang tidak Anda ketahui, dan berlari ke arah hal-hal itu untuk mencari lebih banyak pemahaman, dan akhirnya: berhenti meremehkan keterampilan yang telah Anda kembangkan.

Yordania
sumber
2

"Aku cukup tahu" dan "Aku baik untuk pekerjaan ini" sangat berbeda.

IMO "Saya baik untuk pekerjaan ini" lebih dekat dengan "Saya tahu dasar-dasarnya, dan saya tahu - apa yang harus dipelajari / ke mana harus mencari / siapa yang bertanya / apa yang harus dibaca - untuk menyelesaikan tugas-tugas saya".

(Ini tidak berarti mereka akan mempekerjakan Anda jika Anda perlu 1-2 bulan untuk belajar misalnya: menulis / membaca dalam file XML. Saya harap Anda mengerti apa yang saya maksud.)

Juga, saya tidak berpikir programmer mana pun akan mengatakan "Saya cukup tahu." (mungkin "cukup untuk mendapatkan pekerjaan", "cukup untuk menjadi kaya", "cukup untuk ...", tetapi tidak "cukup." :))

EDIT: Ketika saya mengatakan "dasar" yang saya maksud

  1. Dasar-dasar pemrograman (bit, byte, variabel, fungsi, parameter, loop, kondisi, rekursi)
  2. Dasar-dasar bahasa pemrograman yang Anda gunakan untuk bekerja (cara menyusun program, cara men-debug suatu program; cara menggunakan IDE; 90% kata kunci dan tahu apa yang mereka lakukan, kapan harus digunakan, cara menggunakannya; variabel jenis; cara menggunakan hal-hal dari 1 dalam bahasa; perpustakaan paling berguna; penanganan kesalahan)
  3. "Hubungkan 1 dan 2 dengan darahmu" :)

(Mungkin Anda perlu menggunakan 2-3 bahasa di tempat kerja Anda)

Saya setuju dengan Saeed, terjun ke dalam pekerjaan, bekerja adalah cara terbaik untuk mempelajari berbagai hal, Anda bekerja dengan orang-orang yang tahu lebih banyak dari Anda, Anda belajar dari mereka, melihat bagaimana mereka bekerja, tetapi mereka mulai sama seperti Anda (atau mungkin mereka mulai dengan pengetahuan yang kurang dari yang Anda miliki sekarang).

e-MEE
sumber
Tidak butuh waktu sebulan bagi saya untuk membaca dan menulis file XML, meskipun saya masih berpikir mungkin butuh satu hari. Bisakah Anda menguraikan "dasar-dasar"? Ini sebenarnya adalah dorongan utama pertanyaan saya, karena saya tidak tahu bahwa saya tahu dasar-dasarnya. Saya pasti tahu beberapa dasar-dasarnya, tetapi saya benar-benar khawatir bahwa saya kehilangan beberapa celah yang sangat mendasar.
Throwaway
1

Anda memiliki sikap yang hebat! Salah satu faktor mendasar untuk menjadi sukses adalah jangan pernah berpuas diri. Tidak pernah menetap. Jangan pernah kompromi diri sendiri. Karena itu, sangat sulit untuk mengetahui bagaimana tepatnya melakukan itu (misalnya mengetahui 'praktik terbaik' untuk melakukan tugas X tidak sesederhana Googling karena setiap orang memiliki pendapat mereka sendiri).

Cara terbaik untuk mempelajari cara mengidentifikasi kode yang baik dan alasan di baliknya ( bagaimana dan mengapa ). Untuk ini, saya sarankan membaca blog dari para profesional terkemuka di bidang kami karena ini akan memaparkan Anda pada jenis pola pikir yang harus dicari. Berkontribusi pada proyek open-source juga merupakan salah satu cara untuk terjun ke ujung yang dalam, namun, ini akan memberi Anda kesempatan untuk belajar dari orang lain saat ini sedang berlangsung.

JK
sumber
Terima kasih. Saya pikir saya tidak menyadari betapa saya perlu mendengar pujian seperti itu.
Throwaway
0

Saya pikir sebagian besar dari kita berada dalam situasi itu di beberapa titik cepat atau lambat dalam karier kita. Dan setiap kali Anda mengambil bahasa baru, semuanya dimulai dari awal lagi. Jadi nasihat pertama dari saya adalah: Jangan putus asa, Anda tidak sendirian. Dan: Anda mungkin lebih baik daripada yang Anda pikirkan, jika hanya karena fakta bahwa Anda merefleksikan diri. Ingat pepatah lama: Orang-orang bodoh berlarian ke tempat malaikat takut melangkah.

Saat ini sebagian besar bahasa memiliki perpustakaan standar yang terlalu besar untuk diketahui oleh setiap individu. Tambahkan kerangka kerja dan API di atas, dan Anda tidak mungkin mengetahui semuanya. Yang terbaik yang dapat Anda lakukan adalah mengetahui dasar-dasarnya dan kemudian mencari tahu di mana mencari tahu lebih banyak. Semakin baik dengan pengalaman, jadi saran terbaik mungkin: pergi dan gunakan barang-barang!

Tidak ada satu pun penanda "layak". Itu semua tergantung lingkungan. Apa yang cukup sempurna untuk satu perusahaan / proyek, mungkin merupakan jalan keluar untuk yang lain. Jika Anda benar-benar dapat melakukan apa yang Anda katakan Anda bisa, saya akan mengelompokkan Anda junior yang lebih baik dan Anda tidak akan kesulitan menemukan pekerjaan yang layak.

wolfgangsz
sumber
[Salin / Tempel dari komentar saya pada komentar @ e-MEE di atas] Saya tidak perlu waktu satu bulan untuk membaca dan menulis file XML, meskipun saya masih berpikir mungkin perlu saya sehari. Bisakah Anda menguraikan "dasar-dasar"? Ini sebenarnya adalah dorongan utama pertanyaan saya, karena saya tidak tahu bahwa saya tahu dasar-dasarnya. Saya pasti tahu beberapa dasar-dasarnya, tetapi saya benar-benar khawatir bahwa saya kehilangan beberapa celah yang sangat mendasar.
Throwaway
0

Berdasarkan dari apa yang Anda tulis dalam pertanyaan Anda, Anda sebenarnya dapat membuat kode, dan Anda bersedia untuk meningkatkan keterampilan dan pengetahuan Anda.

Setiap orang, dalam setiap pekerjaan, harus memulai sedikit, sebagai pemula, dan kemudian tumbuh dengan pengalaman.

Seberapa cepat pertumbuhan Anda tergantung pada Anda, semua orang tumbuh dengan kecepatan yang berbeda, satu-satunya hal yang penting adalah Anda tidak meminta terlalu banyak dari diri Anda sekarang.

Jika sesuatu yang Anda rasa belum Anda pahami, jangan khawatir. Segera Anda akan bisa mendapatkan gambarnya.

Anda mungkin ingin mulai bekerja di industri sesegera mungkin. Karena Anda sudah dapat kode, Anda sudah dapat mulai bekerja. Ini karena teori tidak cukup baik, Anda perlu latihan, dan masalah dunia nyata untuk dipecahkan.

Mengenai masalah pengetahuan kode perpustakaan Anda, itu akan datang dengan waktu, selama Anda terus mempelajarinya, membaca dokumentasi dan berlatih menggunakannya. Situs seperti ini juga sangat berguna dan Anda akan belajar lebih cepat jika Anda aktif bertanya dan menjawab pertanyaan terkait.

Saran pribadi: jika Anda benar-benar ingin menonjol dari banyak orang yang melakukan kode spageti, menyebut diri mereka programmer, pelajari praktik terbaik. Tidak masalah bahasa atau perpustakaan yang Anda pelajari atau kodekan, pelajari praktik terbaik. Ini akan menghemat banyak waktu, bug, gangguan, sakit kepala, dan akan membantu Anda merasakan programmer yang lebih baik.

Jose Faeti
sumber