DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar

"Kuring terang yén kuring henteu terang nanaon" Socrates

Pikeun saha: pikeun jalma IT anu teu paduli ngeunaan sagala pamekar jeung hayang maénkeun kaulinan maranéhanana!

Tentang naon: ngeunaan kumaha carana ngamimitian nulis kaulinan dina C / C ++, lamun ujug-ujug butuh eta!

Naha anjeun kedah maca ieu: Pangembangan aplikasi sanés daérah kaahlian kuring, tapi kuring nyobian kode unggal minggu. Kusabab Abdi bogoh kaulinan!

Halo Nami abdi Andrey Grankin, Abdi DevOps di Luxoft. Ngembangkeun aplikasi henteu khusus kuring, tapi kuring nyobian kode unggal minggu. Kusabab Abdi bogoh kaulinan!

Industri kaulinan komputer ageung, dikabarkan langkung ageung tibatan industri pilem ayeuna. Kaulinan geus ditulis saprak subuh komputer, ngagunakeun, ku standar modern, métode ngembangkeun kompléks jeung dasar. Kana waktu, mesin kaulinan kalayan grafik geus diprogram, fisika, jeung sora mimiti muncul. Aranjeunna ngidinan Anjeun pikeun difokuskeun ngembangkeun kaulinan sorangan jeung teu salempang ngeunaan yayasan na. Tapi bareng jeung aranjeunna, kalawan mesin, pamekar "buka buta" na degradasi. Produksi kaulinan sorangan ditunda sabuk conveyor. Jeung kuantitas produk mimiti lumaku leuwih kualitas na.

Dina waktos anu sami, nalika maén kaulinan jalma sanés, urang terus dibatesan ku lokasi, plot, karakter, sareng mékanika kaulinan anu diciptakeun ku jalma sanés. Janten kuring sadar yén ...

... waktuna geus datang pikeun nyieun dunya kuring sorangan, tunduk ngan kuring. Dunya dimana Kami Rama, Putra, sareng Roh Suci!

Sarta kuring tulus yakin yén ku nulis mesin kaulinan sorangan jeung maén dina eta, Anjeun bakal tiasa nyandak kaluar sapatu anjeun, ngusap jandéla jeung ningkatkeun kabin anjeun, jadi programmer leuwih ngalaman tur lengkep.

Dina artikel ieu kuring baris coba ngabejaan ka maneh kumaha kuring mimiti nulis kaulinan leutik dina C / C ++, kumaha proses ngembangkeun éta, sarta dimana kuring manggihan waktu pikeun hobi di lingkungan sibuk. Éta subjektif sareng ngajelaskeun prosés ngamimitian individu. Materi ngeunaan kabodoan sareng iman, ngeunaan gambaran pribadi kuring ngeunaan dunya ayeuna. Kalayan kecap sanésna, "Administrasi henteu tanggung jawab pikeun otak pribadi anjeun!"

praktek

"Kaweruh tanpa prakték sia, prakték tanpa pangaweruh bahaya" Confucius

notebook abdi hirup abdi!


Janten, dina prakna, kuring tiasa nyebatkeun yén pikeun kuring sadayana dimimitian ku notepad. Henteu ngan ukur kuring nyerat tugas-tugas sapopoé di dinya, kuring ogé ngagambar, program, ngararancang bagan alur sareng ngarengsekeun masalah, kalebet matematika. Salawasna make notepad jeung nulis ukur dina pensil. Éta bersih, merenah sareng dipercaya, IMHO.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Abdi (geus ngeusi) notebook. Ieu naon manéhna kasampak kawas. Ieu ngandung tugas sapopoé, gagasan, gambar, diagram, solusi, pembukuan hideung, kode jeung saterusna

Dina tahap ieu, kuring junun ngalengkepan tilu proyék (ieu dina pamahaman kuring ngeunaan "completeness", sabab sagala produk bisa dimekarkeun rélatif endlessly).

  • Proyék 0: Ieu mangrupikeun pamandangan Demo Arsiték 3D anu ditulis dina C # nganggo mesin kaulinan Unity. Pikeun platform macOS sareng Windows.
  • Kaulinan 1: konsol game Oray Basajan (dipikawanoh ku dulur salaku "Oray") pikeun Windows. Ditulis dina C.
  • Kaulinan 2: konsol game Crazy tank (dipikawanoh ku dulur salaku "tank"), ditulis dina C ++ (ngagunakeun kelas) sarta ogé pikeun Windows.

Proyék 0. Arsiték Demo

  • Platform: Windows (Windows 7, 10), Mac OS (OS X El Capitan v. 10.11.6)
  • Язык: C#
  • Mesin kaulinan: persatuan
  • Inspirasi: Darrin Lile
  • Repository: GitHub

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
3D Adegan Arsiték Demo

Proyék munggaran dilaksanakeun teu di C / C ++, tapi dina C # ngagunakeun mesin kaulinan Unity. mesin ieu teu sakumaha nuntut on hardware salaku Engine teu nyata, sarta ogé seemed gampang masang sarta ngagunakeun. Kuring henteu nganggap mesin sanés.

Tujuan kuring di Unity sanés ngembangkeun kaulinan. Kuring hayang nyieun adegan 3D kalawan sababaraha karakter. Anjeunna, atawa rada manehna (kuring dimodelkeun gadis kuring dipikacinta ku =) kapaksa mindahkeun sarta berinteraksi sareng dunya sabudeureun anjeunna. Éta ngan ukur penting pikeun ngartos naon Unity, naon prosés pangwangunan sareng sabaraha usaha anu diperyogikeun pikeun nyiptakeun hiji hal. Ieu kumaha proyék Arsiték Demo dilahirkeun (ngaran ieu ampir invented out of nowhere). Programming, modeling, animasi, texturing nyandak kuring meureun dua bulan gawé sapopoé.

Kuring ngamimitian sareng pidéo tutorial dina YouTube ngeunaan nyiptakeun modél 3D Blénder. Blénder mangrupikeun alat gratis anu saé pikeun modél 3D (sareng seueur deui) anu henteu peryogi instalasi. Sareng di dieu aya kejutan anu ngantosan kuring ... Tétéla yén modél, animasi, tékstur mangrupikeun topik anu misah anu anjeun tiasa nyerat buku. Ieu hususna leres pikeun karakter. Pikeun model ramo, huntu, panon jeung bagian awak lianna, anjeun bakal merlukeun pangaweruh anatomi. Kumaha struktur otot raray? Kumaha jalma gerak? Kuring kungsi "nyelapkeun" tulang kana unggal panangan, suku, ramo, phalanges ramo!

Model tulang selangka sareng tulang tuas tambahan pikeun ngajantenkeun animasi katingali alami. Saatos palajaran sapertos kitu, anjeun sadar sabaraha padamelan anu dilakukeun ku panyipta film animasi ngan ukur nyiptakeun pidéo 30 detik. Tapi film 3D tahan sababaraha jam! Teras we ninggalkeun bioskop sareng nyarios sapertos kieu: "Éta kartun / pilem! Aranjeunna tiasa ngalakukeun anu langkung saé ... "Fools!

Sareng hiji deui ngeunaan program dina proyék ieu. Sapertos tétéla, bagian anu paling pikaresepeun pikeun kuring nyaéta matematika. Lamun ngajalankeun pamandangan (numbu ka Repository dina pedaran proyék), anjeun bakal aya bewara nu kaméra rotates sabudeureun karakter gadis dina lapisan a. Pikeun ngaprogram rotasi kaméra sapertos kitu, kuring kedah ngitung koordinat titik posisi dina bunderan (2D), teras dina sphere (3D). Hal lucu nyaeta kuring hated matematika di sakola tur terang eta kalawan C-minus. Sabagean, sigana, sabab di sakola aranjeunna ngan saukur teu ngajelaskeun ka anjeun kumaha sih math ieu dilarapkeun dina kahirupan. Tapi nalika anjeun obsessed sareng tujuan anjeun, impian anjeun, pikiran anjeun jelas sareng muka! Sareng anjeun mimiti nganggap tugas anu sesah salaku petualangan anu pikaresepeun. Teras anjeun mikir: "Nya, naha ahli matematika * karesep anjeun henteu tiasa nyarioskeun ka anjeun dimana rumus ieu tiasa diterapkeun?"

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Itungan rumus pikeun ngitung koordinat titik dina bunderan sareng bola (tina notebook kuring)

Kaulinan 1. oray basajan

  • Platform: Windows (diuji dina Windows 7, 10)
  • Язык: Jigana mah nulisna dina C murni
  • Mesin kaulinan: konsol Windows
  • Inspirasi: javidx9
  • Repository: GitHub

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Kaulinan oray basajan

A pamandangan 3D sanes kaulinan. Salaku tambahan, modél sareng ngahirupkeun objék 3D (khususna karakter) nyéépkeun waktos sareng sesah. Saatos maén sareng Unity, kuring sadar yén kuring kedah neraskeun, atanapi rada ngamimitian, tina dasarna. Hal basajan tur gancang, tapi dina waktos anu sareng global, ngartos pisan struktur kaulinan.

Naon basajan tur gancang? Leres, konsol sareng 2D. Leuwih tepat, malah konsol jeung simbul. Sakali deui kuring milarian inspirasi dina Internét (sacara umum, kuring nyangka Internét mangrupikeun penemuan anu paling revolusioner sareng bahaya dina abad ka-XNUMX). Kuring ngali up video ngeunaan programmer anu nyieun konsol Tetris. Sarta dina sasaruaan kaulinan na kuring mutuskeun nyieun "oray". Tina pidéo kuring diajar ngeunaan dua hal dasar - loop kaulinan (kalayan tilu fungsi dasar / bagian) sareng kaluaran kana panyangga.

Game loop bisa kasampak kawas kieu:

int main()
   {
      Setup();
      // a game loop
      while (!quit)
      {
          Input();
          Logic();
          Draw();
          Sleep(gameSpeed);  // game timing
      }
      return 0;
   }

Kode nampilkeun sakabéh fungsi utama () sakaligus. Jeung siklus kaulinan dimimitian sanggeus komentar luyu. Aya tilu fungsi dasar dina loop anu: Input (), logika (), Draw (). Kahiji, input data Input (utamana kadali keystrokes), lajeng ngolah data diasupkeun Logika, lajeng kaluaran ka layar - Draw. Jeung saterusna unggal pigura. Ieu kumaha animasi dijieun. Ieu kawas dina kartun. Ilaharna, ngolah data diasupkeun nyokot paling waktos na, sajauh I terang, nangtukeun laju pigura kaulinan. Tapi didieu fungsi Logika () executes pisan gancang. Kituna, anjeun kudu ngadalikeun laju pigura ngagunakeun fungsi Saré () kalawan parameter gameSpeed, nu nangtukeun speed ieu.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Daur kaulinan. Program "oray" dina notepad a

Upami anjeun ngembangkeun kaulinan konsol dumasar-karakter, anjeun moal tiasa ngaluarkeun data kana layar nganggo kaluaran aliran 'cout' biasa - éta laun pisan. Ku alatan éta, kaluaran kudu dikirim ka panyangga layar. Ieu leuwih gancang sarta game bakal ngajalankeun tanpa glitches. Jujur, kuring henteu ngartos naon panyangga layar sareng kumaha jalanna. Tapi kuring bakal masihan conto kode di dieu, sareng panginten aya anu tiasa netelakeun kaayaan dina koméntar.

Kéngingkeun panyangga layar (sapertos nyarios):

// create screen buffer for drawings
   HANDLE hConsole = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0,
 							   NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
   DWORD dwBytesWritten = 0;
   SetConsoleActiveScreenBuffer(hConsole);

Pintonan langsung tina string scoreLine (garis tampilan skor):

// draw the score
   WriteConsoleOutputCharacter(hConsole, scoreLine, GAME_WIDTH, {2,3}, &dwBytesWritten);

Dina tiori, teu aya anu rumit dina kaulinan ieu; Jigana éta conto tingkat éntri anu saé. Kodeu ditulis dina hiji file sareng diformat dina sababaraha fungsi. Taya kelas, euweuh warisan. Anjeun tiasa ningali sadayana nyalira dina kode sumber kaulinan ku angkat ka gudang di GitHub.

kaulinan 2. Crazy tank

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Kaulinan Crazy tank

Nyitak karakter kana konsol sigana mangrupikeun hal pangbasajanna anjeun tiasa janten kaulinan. Tapi lajeng hiji kasulitan muncul: lambang boga jangkung béda jeung lebar (jangkungna leuwih gede ti lebar). Ku cara ieu, sagalana bakal kasampak kaluar tina proporsi, sarta pindah ka handap atawa ka luhur bakal muncul leuwih gancang ti pindah ka kénca atawa ka katuhu. Pangaruh ieu katingali pisan dina Snake (Game 1). "Tank" (Game 2) teu boga aral ieu, saprak kaluaran aya diatur ngaliwatan lukisan piksel layar kalawan kelir béda. Anjeun tiasa nyarios kuring nyerat renderer. Leres, ieu sakedik langkung pajeulit, sanaos langkung narik.

Pikeun kaulinan ieu, éta bakal cukup pikeun ngajelaskeun sistem kuring pikeun mintonkeun piksel dina layar. Kuring nganggap ieu bagian utama kaulinan. Jeung anjeun bisa datang nepi ka sagalana sejenna sorangan.

Janten, naon anu anjeun tingali dina layar ngan ukur sakumpulan sagi opat warna-warni anu gerak.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Susunan rectangles

Unggal sagi opat digambarkeun ku matriks dieusian ku angka. Ngomong-ngomong, kuring tiasa nyorot hiji nuansa anu pikaresepeun - sadaya matriks dina kaulinan diprogram salaku susunan hiji diménsi. Henteu dua diménsi, tapi hiji diménsi! Asép Sunandar Sunarya hiji diménsi langkung gampang sareng gancang dianggo.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Conto matriks tank kaulinan

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Répréséntasi tina matriks tank kaulinan salaku Asép Sunandar Sunarya hiji diménsi

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Hiji conto leuwih visual ngagambarkeun matrix salaku Asép Sunandar Sunarya hiji diménsi

Tapi aksés ka elemen Asép Sunandar Sunarya lumangsung dina loop ganda, saolah-olah éta lain Asép Sunandar Sunarya hiji diménsi, tapi hiji dua diménsi. Hal ieu dilakukeun sabab urang masih dianggo kalayan matrices.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Ngaliwatan susunan hiji diménsi dina loop ganda. Y - identifier baris, X - identifier kolom

Perhatikeun: tinimbang identifiers matrix dawam i, j, Kuring make identifiers x jeung y. Ku cara kieu, sigana kuring, éta langkung pikaresepeun pikeun panon sareng langkung kaharti ku uteuk. Salaku tambahan, notasi sapertos kitu ngamungkinkeun pikeun ngaproyeksikan matriks anu dianggo kana sumbu koordinat gambar dua diménsi.

Ayeuna ngeunaan piksel, warna sareng kaluaran layar. Fungsi StretchDIBits dipaké pikeun kaluaran (Header: windows.h; Library: gdi32.lib). Pungsi ieu, antara séjén, nampi ieu: alat dimana gambar dipintonkeun (dina hal kuring, éta konsol Windows), koordinat mimiti tampilan gambar, lebar / jangkungna, sarta gambar sorangan dina bentuk bitmap, digambarkeun ku Asép Sunandar Sunarya bait. Bitmap salaku Asép Sunandar Sunarya bait!

StretchDIBits() fungsi dina aksi:

// screen output for game field
   StretchDIBits(
               deviceContext,
               OFFSET_LEFT, OFFSET_TOP,
               PMATRIX_WIDTH, PMATRIX_HEIGHT,
               0, 0,
               PMATRIX_WIDTH, PMATRIX_HEIGHT,
               m_p_bitmapMemory, &bitmapInfo,
               DIB_RGB_COLORS,
               SRCCOPY
               );

Mémori dialokasikeun sateuacanna pikeun bitmap ieu nganggo fungsi VirtualAlloc (). Nyaéta, jumlah bait anu diperyogikeun ditangtayungan pikeun nyimpen inpormasi ngeunaan sadaya piksel, anu teras bakal dipidangkeun dina layar.

Nyieun bitmap m_p_bitmapMemory:

// create bitmap
   int bitmapMemorySize = (PMATRIX_WIDTH * PMATRIX_HEIGHT) * BYTES_PER_PIXEL;
   void* m_p_bitmapMemory = VirtualAlloc(0, bitmapMemorySize, MEM_COMMIT, PAGE_READWRITE);

Sacara kasar, bitmap diwangun ku kumpulan piksel. Unggal opat bait dina Asép Sunandar Sunarya mangrupa piksel RGB. Hiji bait per nilai warna beureum, hiji bait per nilai warna héjo (G), sarta hiji bait per nilai warna biru (B). Tambah aya hiji bait ditinggalkeun pikeun indentation. Tilu warna ieu - Beureum / Héjo / Biru (RGB) - dicampurkeun saling dina proporsi anu béda pikeun nyiptakeun warna piksel anu dihasilkeun.

Ayeuna, deui, unggal sagi opat, atawa objék kaulinan, digambarkeun ku matriks numerik. Sadaya objék kaulinan ieu disimpen dina kumpulan. Lajeng aranjeunna disimpen dina widang maén, ngabentuk hiji matrix numeris badag. Kuring pakait tiap angka dina matrix kalawan warna husus. Contona, angka 8 pakait jeung bulao, angka 9 jeung konéng, angka 10 jeung kulawu poék, jeung saterusna. Ku kituna, urang bisa disebutkeun yen urang boga matrix tina widang maén, dimana unggal angka warna a.

Ku kituna, urang boga matrix numerik tina sakabéh widang maén dina hiji sisi sarta bitmap pikeun mintonkeun gambar di sisi séjén. Sajauh ieu, bitmap "kosong" - éta henteu acan ngandung émbaran ngeunaan piksel tina warna nu dipikahoyong. Ieu ngandung harti yén lengkah panungtungan bakal populate bitmap kalawan informasi ngeunaan unggal piksel dumasar kana matrix numerik widang maén. Conto jelas ngeunaan transformasi sapertos kitu dina gambar di handap ieu.

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Conto ngeusian bitmap (matriks piksel) kalayan inpormasi dumasar kana matriks Digital lapangan maén (indéks warna henteu cocog sareng indéks dina kaulinan)

Kuring ogé bakal nampilkeun sapotong kode nyata tina kaulinan. Variabel colorIndex dina unggal iterasi loop ditugaskeun nilai (indéks warna) tina matriks numerik lapangan maén (mainDigitalMatrix). Variabel warna lajeng disetel ka warna sorangan dumasar kana indéks. Warna anu dihasilkeun lajeng dibagi kana babandingan beureum, héjo jeung biru (RGB). Sareng bareng sareng pixelPadding, inpormasi ieu ditulis kana piksel deui-deui, ngabentuk gambar warna dina bitmap.

Kode ngagunakeun pointers sarta operasi bitwise, nu bisa jadi hésé ngarti. Janten kuring mamatahan anjeun maca dimana waé sacara misah kumaha struktur sapertos kitu jalan.

Ngeusian bitmap ku inpormasi dumasar kana matriks numerik lapangan maén:

// set pixel map variables
   int colorIndex;
   COLORREF color;
   int pitch;
   uint8_t* p_row;
 
   // arrange pixels for game field
   pitch = PMATRIX_WIDTH * BYTES_PER_PIXEL;     // row size in bytes
   p_row = (uint8_t*)m_p_bitmapMemory;       //cast to uint8 for valid pointer arithmetic
   							(to add by 1 byte (8 bits) at a time)   
   for (int y = 0; y < PMATRIX_HEIGHT; ++y)
   {
       uint32_t* p_pixel = (uint32_t*)p_row;
       for (int x = 0; x < PMATRIX_WIDTH; ++x)
       {
           colorIndex = mainDigitalMatrix[y * PMATRIX_WIDTH + x];
           color = Utils::GetColor(colorIndex);
           uint8_t blue = GetBValue(color);
           uint8_t green = GetGValue(color);
           uint8_t red = GetRValue(color);
           uint8_t pixelPadding = 0;
 
           *p_pixel = ((pixelPadding << 24) | (red << 16) | (green << 8) | blue);
           ++p_pixel;
       }
       p_row += pitch;
   }

Nurutkeun kana métode ditétélakeun di luhur, dina kaulinan Crazy tank hiji gambar (pigura) kabentuk sarta dipintonkeun dina layar dina fungsi Draw (). Saatos ngadaptarkeun keystrokes dina Input () fungsi jeung processing saterusna maranéhanana dina Logika () fungsi, kabentuk gambar anyar (pigura). Leres, objék kaulinan tiasa gaduh posisi anu béda dina lapangan maén sareng, sasuai, digambar dina tempat anu béda. Ieu kumaha animasi (gerakan) kajadian.

Dina tiori (lamun kuring teu poho nanaon), ngartos loop kaulinan tina kaulinan munggaran ("Oray") jeung sistem pikeun mintonkeun piksel dina layar tina kaulinan kadua ("Tank") nyaéta sakabéh nu peryogi nulis naon wae. tina kaulinan 2D anjeun dina Windows. Sorana! 😉 Bagian-bagian anu sanés ngan ukur hiber.

Tangtu, kaulinan "tank" leuwih kompleks tinimbang "Oray". Kuring geus dipaké basa C ++, nyaeta, kuring digambarkeun objék kaulinan béda jeung kelas. Kuring dijieun kempelan sorangan - kode nu bisa ditempo dina headers / Box.h. Ku jalan kitu, koléksi paling dipikaresep gaduh bocor mémori. Dipaké pointers. Digarap kalawan memori. Kuring kudu nyebutkeun yén buku mantuan kuring pisan Dimimitian C ++ Ngaliwatan Game Programming. Ieu mimiti gede pikeun beginners dina C ++. Ieu leutik, metot sarta ogé diatur.

Butuh kira genep bulan pikeun ngembangkeun kaulinan ieu. Kuring nulis utamana salila dahar beurang sarta snacks jam gawé. Anjeunna diuk di dapur kantor, trampled dahareun jeung nulis kode. Atawa di dinner di imah. Janten kuring réngsé sareng "perang dapur" ieu. Sakumaha biasa, kuring aktip ngagunakeun notebook a, sarta sagala hal konseptual dilahirkeun di dinya.

Pikeun ngalengkepan bagian praktis, abdi bakal nyandak sababaraha scan tina notebook abdi. Pikeun nunjukkeun naon anu kuring nyerat, ngagambar, ngitung, ngarancang ...

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Ngarancang gambar tank. Jeung nangtukeun sabaraha piksel unggal tank kudu nempatan dina layar

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Itungan algoritma jeung rumus pikeun rotasi tank sabudeureun sumbu na

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Skéma koleksi kuring (anu aya bocor mémori, paling dipikaresep). Koléksi didamel dumasar kana jinis Daptar Patalina

DevOps C ++ jeung "perang dapur", atawa Kumaha kuring mimiti nulis kaulinan bari dahar
Sareng ieu mangrupikeun usaha anu sia-sia pikeun ngagantelkeun kecerdasan buatan pikeun kaulinan

Téori

"Malah perjalanan sarébu mil dimimitian ku léngkah munggaran" (Kabijaksanaan Cina Kuno)

Hayu urang ngalih tina prakték kana téori! Kumaha milarian waktos pikeun hobi anjeun?

  1. Nangtukeun naon anu anjeun pikahoyong (Aduh, ieu mangrupikeun bagian anu paling hese).
  2. Nyetél prioritas.
  3. Kurbankeun sadayana "tambahan" demi prioritas anu langkung luhur.
  4. Pindah ka tujuan unggal dinten.
  5. Ulah ngaharepkeun dua atawa tilu jam waktu luang méakkeun on hobi.

Di hiji sisi, anjeun kedah nangtukeun naon anu anjeun pikahoyong sareng prioritas. Di sisi anu sanésna, mungkin waé pikeun ngantunkeun sababaraha kagiatan/proyék anu ngadukung prioritas ieu. Dina basa sejen, anjeun bakal kudu kurban sagalana "tambahan". Kuring ngadéngé wae nu kudu aya maksimum tilu kagiatan utama dina kahirupan. Teras anjeun tiasa ngalakukeunana dina kualitas pangluhurna. Jeung proyék tambahan / arah ngan saukur bakal ngawitan overload. Tapi ieu sadayana sigana subjektif sareng individu.

Aya aturan emas tangtu: pernah boga 0% dinten! Kuring diajar ngeunaan eta dina artikel ku pamekar indie. Upami anjeun damel dina proyék, lakukeun unggal dinten. Jeung teu masalah sabaraha maneh ngalakukeun. Tulis hiji kecap atawa hiji baris kode, lalajo hiji video tutorial atawa palu hiji paku kana papan - ngan ngalakukeun hiji hal. Hal anu paling hese nyaéta ngamimitian. Sakali anjeun ngamimitian, Anjeun meureun bakal mungkas nepi ngalakukeun saeutik leuwih ti nu dipikahoyong. Ku cara ieu anjeun bakal terus-terusan ngaléngkah ka tujuan anjeun sareng, percanten ka kuring, gancang pisan. Barina ogé, halangan utama pikeun sagala hal nyaéta procrastination.

Jeung hal anu penting pikeun inget yen Anjeun teu kudu underestimate jeung malire bébas "sawdust" waktu 5, 10, 15 menit, antosan sababaraha badag "log" langgeng hiji atawa dua jam. Anjeun nangtung dina baris? Pikirkeun hal pikeun proyék anjeun. Naek eskalator? Tulis hiji hal dina notepad. Anjeun iinditan dina beus? Hebat, baca sababaraha artikel. Mangpaatkeun unggal kasempetan. Eureun ningali ucing sareng anjing di YouTube! Tong ngotoran otak!

Sareng hiji hal anu terakhir. Upami, saatos maca tulisan ieu, anjeun resep kana ideu nyiptakeun kaulinan tanpa nganggo mesin kaulinan, teras émut nami Casey Muratori. lalaki ieu boga website. Dina bagian "nonton -> EPISOD saméméhna" anjeun bakal mendakan pidéo pidéo gratis anu saé pikeun nyiptakeun kaulinan profésional ti mimiti. Dina lima Intro to C for Windows palajaran Anjeun meureun bakal diajar leuwih ti dina lima taun ulikan universitas (batur wrote ngeunaan ieu dina komentar dina video).

Casey ogé ngécéskeun yén ku ngamekarkeun mesin kaulinan sorangan, anjeun bakal boga pamahaman hadé tina sagala mesin aya. Dina dunya kerangka dimana sadayana nyobian ngajadikeun otomatis, anjeun diajar nyiptakeun tinimbang ngagunakeun. Anjeun ngarti pisan alam komputer. Sareng anjeun ogé bakal janten programmer anu langkung cerdas sareng dewasa - pro.

Wilujeng sumping di jalan anu anjeun pilih! Sareng hayu urang ngajantenkeun dunya langkung profésional.

Author: Embung Andrey, DevOps



sumber: www.habr.com