Hech kim bo'lmaganidek, men eng zo'r bo'lishni xohlayman ... - 1 qism

Ok, shuning uchun siz bu yerga dasturiy ta'minot muhandisligi haqida ko'proq bilishni xohlaysizmi yoki kodlash sohasida yangi odamsiz va qanday qadamlar qo'yishingiz kerakligini bilmoqchisiz, yoki ehtimol maktabda tajribangiz bor. yoki onlayn kurs, lekin ba'zi bir sintaksisni o'rganganingizdan so'ng, u erdan qayerga borishni bilmay qolasiz. Xo'sh, hamma xush kelibsiz.

Ushbu maqola mening tajribam va tushunishimga asoslanib katta dasturiy ta'minot ishlab chiqaruvchisi bo'lish uchun qanday to'g'ri qadamlarni ochib beradi, chunki men ishonamanki, har bir qadamni sindirishga harakat qilaman, deb o'ylayman, bu kuchli poydevor yaratish uchun eng muhim tanaffuslardir. kodlash dunyosiga kiring. Men boshqalarning ko'rgan eng keng tarqalgan xatolarini va hatto o'z xatolarimni ham ta'kidlab o'taman (⊙.⊙).

"Eng zo'r bo'lish sayohati bitta qadamdan boshlanadi, lekin hamma ham yuqori cho'qqiga chiqish uchun zarur bo'lgan barcha qadamlarni bosa olmaydi. Muvaffaqiyat uchun hech qanday yorliq yo'q, har bir qadam - bu to'plangan yangi tajriba, u bebaho va oson yo'lni topish uchun sotilmaydi. Yangi cho'qqilarni zabt etish uchun kurashish va uni saqlash kerak. Dasturchi u duch kelgan va hal qilingan muammolar sonini yaxshi biladi ”

Ushbu qo'llanma LONG dasturiy ta'minot muhandislik sayohati boshida talabalar uchun eng samarali bo'ladi, ammo umid qilamanki, bu boshqa odamlarga ham qimmatli ma'lumot beradi. Bu ularning birinchi yilida, ikkinchi yilida bo'ladimi yoki martabalarida davom etayotgan taqdirda ham.

Shoshilmasdan, birinchi qadamni birgalikda tashlaylik ...

Java - osonroq C ++

O'rta maktab yoki kollejda Java-da CS1 (Computer Science 1) va CS2 taklif qilinishi mumkin. Bu juda ko'p munozarali birinchi til, ko'p sonli sabablarga ko'ra, ammo men ishonamanki, bu shu bilan bog'liq. Kodni dunyoga olib kirish uchun sizning birinchi shlyuzingiz sifatida Java-ni o'rganish bu qanday qilib parvoz qilishni o'rganish uchun o'z inidan chiqarib yuborilgan qushga o'xshaydi yoki velosipedda birinchi marta mashq qilmasdan g'ildiraksiz o'tirish sizga zarar etkazishi kerak. Ammo keyinchalik, siz og'riqni erta boshlaganingiz uchun minnatdor bo'lasiz, chunki Java juda erta bosqichlarda sizga turli xil tushunchalarni tezda kiritadi va kiritadi.

  • Ob'ektlar, ibtidoiylar, qavslar va qavslar ham kvadrat, ham jingalak
  • Bu juda og'zaki va statik tipdagi mustahkam til
  • Qayta-qayta takrorlanadigan narsalarni yozasiz, ular yangi boshlanuvchilar uchun tezlikni oshirishga yordam beradi va String va int kabi ixcham kalit so'zlarni ishlatadi.

Men Charlz E. Kuk tomonidan "Blue Pelican" ni tavsiya qilaman, bu boshqa har qanday zerikarli uzoq va zerikarli Java darsligidan farqli o'laroq, informatika tarixi va uning maqsadi yoki mualliflari haqida uzoq ma'lumot berilgan va oddiy salom bilan to'g'ri keladi. oddiyroq mashqlar asosida quriladigan dunyo misoli.

O'zingiz nusxasini olmoqchimisiz? Bugun Amazon-dan qattiq diskni oling va bepul BlueJ IDE yordamida mashqlarni bajarishni boshlang

Kitobga havola: https://amzn.to/2Y0qzaO

BlueJ IDE-ga havola: https://www.bluej.org/

Java-ga qaytsangiz, Python-ga o'xshash oddiy tilni o'rganishdan ko'ra qiyinroq, ammo kelajakda Java-dan Python yoki JavaScript-ga o'xshash boshqa tilga o'tishda qiyinchiliklarga duch kelishni boshlaysiz. va Python-dan Java-ga o'tishda qiyinchiliklarga duchor bo'lganingizdan beri tushunib oling, bu sizning fikrlash jarayoningizni butunlay o'zgartirishingiz kerak bo'lgan darajada o'zgarishi juda qiyin.

Shunday qilib, agar siz Java-da ishlayotgan bo'lsangiz, yana nimaga tayyor ekanligingizni bilish uchun asosiy nazorat punktlari nimada? Qachon darajaga ko'tarilishni qaerdan bilasiz?

  1. Hamma 1-darajadan boshlanadi. Bu erda siz ibtidoiylar, dubllar, buqalar va strings kabi ibtidoiy narsalar to'g'risida bilib olasiz. Siz ekranda matnni chop etishingiz, tenglamalarni chop etishingiz, qo'shtirnoq ichiga kiritishingiz mumkin va aksincha, satrlar va raqamlarni bir-biriga bog'lab, shunchaki asosiy shovqinlarni hal qilishingiz mumkin. Bu erda mening maslahatim, Chick-Fill-A yoki (Bu erda sevimli restoran nomini kiriting) kalkulyatorini yaratib ko'ring, u erda siz chiroyli tabriklash ekranini chop etasiz, mijozlarga to'ldirilgan qiymatlar bo'yicha buyurtmalarni va jami soliqni ko'rsatasiz.
  2. 2-daraja - bu narsalar zavqlanadigan joy. Bu erda biz murakkabroq va shu bilan birga juda sodda dasturlarni amalga oshirish uchun foydalanuvchidan "ko'chadan", "loop" va "skaner" skriptlarini kiritamiz, masalan 8 savol beradigan Magic 8 Ball, foydalanuvchi kiritishini oladigan haqiqiy restoran kalkulyatori, oddiy asosiy savollarga javob berish uchun ko'chadan va kiritish usulidan foydalanadigan matnli o'yin. Bu hozirgi kungacha eng muhim darajalardan biridir, shuning uchun agar gaplar va ko'chadan haqiqatan ham qanchalik kuchli bo'lsa, tushunishga vaqt ajrating, chunki ular aynan o'sha erda informatika asoslari. Oh va uslublarni unutmasin, keyingi bosqichga o'tishdan oldin qanday usullar va ularni qanday ishlatishni bilib oling, bu sizning hayotingizni ancha osonlashtiradi.
  3. Menimcha, ko'pchilik kodlashga kirishadi, chunki ularning bir qismi keyingi katta dasturni yoki video o'yinni yoki qiziqarli va interfaol narsalarni qilishni xohlaydi. 3-darajani hisobga olib, bu maqsadga qaratilgan birinchi katta qadam bo'lib, unda asosiy mezon Hangman-ning matnga asoslangan versiyasini yaratishdir, hozirda u erdagi tajribali ishlab chiquvchilar uchun ham men har kim Ob'ektlardan tashqari Strings-dan foydalanmasdan sinab ko'rishlarini istayman. bu hech qanday Arrays yoki ArrayLists yoki String.split ("") degan ma'noni anglatadi. Ushbu bosqichning boshida optimallashtirish yoki kodning ishlashi xayolingizga ham kelmasligi kerak. Odamlar ko'radigan eng katta xatolardan biri bu Strings kuchini etarlicha baholamaslik va shunchaki ular qanchalik qadrli bo'lsa, Strings bilan hamma narsani halollik bilan bajarish mumkin, osmonning chegarasi. Ijodkor bo'ling, qutidan tashqarida o'ylang, shunchaki kod o'rniga qog'ozga fikrlaringizni yozing, har bir qadamni kichik va oddiy mantiqiy narsalarga ajratib oling, keyin kodlashga harakat qiling.
  4. Agar sizda bu bor bo'lsa, zo'r ish! O'zingizni orqangizga bog'lang yoki yaxshisi, lekin yuqoriga va pastga sakrab, xursandchilikda qichqiring, bu vaqtgacha yolg'iz askarlar uchun siz haqiqatan ham yaxshi ish qildingiz, ammo sayohat endi boshlandi. Hangmandan so'ng, endi Java-ning taqdim etadigan ma'lumotlar tuzilmalari, birinchi navbatda Arrays, ArrayLists, HashMaps, Sets, Stacks, Queues, LinkedLists va Daraxtlar haqida ma'lumot olish vaqti keldi. Albatta, barchasini birdaniga emas, 4-chi daraja Arrays va ArrayListlarni o'zlashtirish bilan bog'liq. Kichik oziq-ovqat do'koni simulyatsiyasini sinab ko'ring, bu erda siz xarid qilish kartangizdan narsalarni qo'shish yoki olib tashlash yoki almashtirish uchun turli xil buyruqlarni kiritishingiz mumkin.
  5. Endi siz massivlar va qatorlar sehrlarini bilib oldingiz, orqaga qayting va hangomani yaxshilang. Ehtimol, avval Sets haqida bilib oling va bu ba'zi narsalarni osonlashtirishi mumkin.
  6. Matnli fayllarni o'qish uchun Skanerlardan foydalanishni o'rganing, keyin har bir harf birinchi marta necha marta yozilganligini hisoblang, HINT: HASH MAPTIDAN FOYDALANING. Mobi Dik yoki Ikki shaharning ertaklari singari katta kitobga har bir harfning sonini chop eting, qancha vaqt ketishini kuzatib boring, bir oz vaqt talab qilinishi mumkin, ammo bu jarayonni tezlashtirish uchun optimallashtirish usullarini qidirib topishingiz mumkin. Agar sizning kodingiz bir necha soatni talab qilsa, siz noto'g'ri ish qilyapsiz.
  7. Steklar, navbatlar, bog'langan ro'yxatlar, daraxtlar - bu ma'lumotlar struktura sinfida o'rganadigan barcha narsalar, shuning uchun bu haqda juda tashvishlanmang, bu qiziqarli dastur yaratish uchun unchalik muhim emas. Bu erda siz API haqida, Maven haqida ma'lumot olishingizni istayman, ya'ni biron bir mazmunli narsa qilish uchun o'zingizning arizangizda boshqa birov yozgan kodni qanday ishlatishingiz haqida. Bu, shuningdek, Github-ning asoslarini o'rganish va to'xtatish uchun ajoyib vaqt, chunki siz undan umr bo'yi foydalanasiz. Foydalanuvchi interfeysi bilan ish stoli dasturlarini yaratish uchun Reddit-dan yangiliklar lentasini tortib oling yoki JavaFX-ga qarang.
  8. Har bir yangi dasturchi bajarishi kerak bo'lgan yana bir shart - bu o'yin yaratish. Endi men Call of Duty kabi bir narsa haqida gapirmayapman, hatto 3D haqida ham o'ylamayman. Avval oddiy 2D o'yini bilan birinchi bo'lib ekranda harakatlanish uchun sprite, keyin harakatlanish uchun dushmanlar qo'shilishi, raketalarni otish va oxir-oqibat Zelda, Mario yoki Pokemon kabi yonma-yon o'girish va platformerlarga o'tish. Buni Java-da qanday qilishni o'rganish uchun quyidagi sayt mutlaqo yaxshi joy bo'lib, men 2D o'yinlarini birinchi marta o'rganayotganda juda ko'p foydalanishni tavsiya etaman. Ularga asoslarni yerdan turib yoritadigan darslarga amal qilish juda oson. http://zetcode.com/tutorials/javagamestutorial/

Hozirgi kunda siz HighSchool yoki kollejda 1-2 yillik Java-ga o'xshash tajribani to'pladingiz. Bu deyarli etarli emas, lekin haqiqiy ish yoki hatto amaliyot uchun siz tashqi tizimlarga qanday ulanishni, qanday qilib REST API qo'ng'iroqlarini amalga oshirishni, UI bilan qandaydir darajada ishlashni va ma'lumotlar bazasiga yozishni o'qishni bilishingiz kerak. Siz qaerda ekanligingiz va bu erga qanday kelganligingiz bilan faxrlanishingiz kerak, lekin o'zingizni xushnud qilmang. Endi siz haqiqiy boshlang'ich bosqichidasiz. Eng yaxshi dasturiy ta'minot muhandisi sifatida eng yuqori pog'onaga ko'tarilish uchun qo'llanmaning bir qismi sifatida Java-ning tabiiy rivojlanishi Android App-ni ishlab chiqishni o'rganadi, chunki Android Java-da yozilgan. Bu erda siz o'rgangan asosiy mantiqiy ko'nikmalaringizdan foydalanishingiz va ularni UI-ga, ko'proq sensorlar va ma'lumotlarga, Internetga haqiqatan ham va bugungi kunda telefonning barcha imkoniyatlariga, shuningdek, o'zingizning ustritsangizga ulashingiz mumkin.

Bu mening eng yaxshi bo'lishi uchun ko'rsatmalarimning 1-qismi edi, 2-qismni ko'rib chiqing, u qanday qilib professional android dasturchisiga aylanishni boshlash uchun qanday qilib loyihalarni boshlash va API bilan ishlashni o'rganadi. Kelgusida JavaFX-dan foydalanib, Hangman-dan ish stoli dasturiga amaliy va real hayotni kodlash misollarini batafsil o'rganishga bag'ishlangan video-seriyalar bo'lishi mumkin yoki bo'lmasligi mumkin, ko'rishni xohlagan narsalaringiz va qanday integratsiyalar haqida izohlar qoldiring. istalgan amalga oshirildi, ehtimol Spotify bilan biron bir narsa bormi?