Как да изберем език за програмиране и да избягаме от учебника за чистилището

Преди няколко седмици публикувах за моя опит, опитвайки се да науча JavaScript, C #, Python и други от Codecademy, Udemy и freeCodeCamp, заедно с бягството от учебното чистилище и всъщност напредък като разработчик.

Вземането на решение за език за програмиране може да бъде изключително предизвикателно и отнема много време, тъй като има десетки опции там, с много противоречива информация. В тази статия ще споделя някои опции, базирани на собствения ми опит да се науча да кодирам, с предложения за това как да избера език за програмиране, да избягам от учебното чистилище и да постигна напредък като разработчик.

Ето видео версия на тази публикация, ако предпочитате (11-минутно гледане):

Сценарий №1: Вие знаете какво искате да изградите

Често в статии като тези (или в инфографиката „Какъв език за кодиране трябва да науча?“, С която вероятно сте добре запознати) се иска да мислите критично за това, което искате да изградите, след като сте се научили да код.

Този подход е полезен, ако имате някаква представа за това какво искате да правите с език за програмиране, след като го научите, но не толкова, ако просто искате да се научите да кодирате , както беше моят опит. Ще разгледам и двата сценария в тази статия.

Ако все пак знаете в каква посока искате да поемете в кариерата си на кодиране, след като научите език за програмиране, най-вероятно ще ви е по-лесно да разберете кой език да научите първо. Ето няколко предложения в този случай.

Разработка отпред: JavaScript (и HTML / CSS)

Ако вече знаете, че искате да работите върху "предния край" на уебсайтове - което означава, всичко, което потребителят вижда, когато дойде на уебсайт - трябва да започнете пътуването си с кодиране с изучаване на JavaScript. Вероятно ще започнете с изучаването на HTML и CSS, които представляват основата на почти всеки уебсайт, и след това ще започнете да добавяте JavaScript за подобряване на функционалността и интерактивността на вашите сайтове.

JavaScript е доста повсеместен като език за програмиране и има по-лесна рампа от други езици от по-ниско ниво като C ++. Това е чудесна отправна точка, ако не знаете какво искате да научите ... но повече за това по-късно.

Разработка на заден край: Python, C # или JavaScript (и SQL)

Да приемем, че ви е по-интересно да научите за вътрешността на уебсайтовете, да управлявате „задния край“ и да опитате ръката си в администрирането на база данни. Тук имате много опции и най-ясният път е Python, който е подходящ за начинаещи език, който има зрели рамки (напр. Django и Flask) за разработване отзад.

Също така не можете да сбъркате с C #, който ще ви изложи на .NET екосистемата на Microsoft и език за програмиране, който, след като влезете в плевелите с него, е удоволствие, с който да работите. И ако мислите да отидете на "пълен стек" - което означава, че искате да направите разработка отпред и отзад - може да помислите за изучаване на JavaScript, който има по-млади, но високо ценени фреймворкове като Express и Koa. Това също ще улесни процеса на обучение, тъй като ще използвате един и същ език за кодиране на двата стека.

Който и език да изберете за разработка отзад, най-вероятно също ще приключите с добавянето на SQL към вашата кутия с инструменти за управление на база данни, така че поставете това на радара си.

Разработване на 2D игри: JavaScript или C #

Писал съм другаде за какъв двигател трябва да използвате, за да правите 2D игри, но тук е слабият.

Има много двигатели за 2D игри, много от които могат или не да отговарят на вашите фантазии като разработчик на игри и всеки със своите предимства, особености и крива на обучение. Някои от тях, като Game Maker Studio 2, например, използват свои собствени собствени езици за стартиране на скриптове, но всъщност бих препоръчал първо да научите JavaScript или C #, дори ако обмисляте да използвате друг двигател за игра в дългосрочен план .

С JavaScript можете да използвате рамки като Phaser, за да правите 2D игри или пълнофункционални двигатели като Construct 3 (който всъщност използва плъзгане и пускане с възможност за персонализирани скриптове). Ако решите вместо това да научите C #, ще работите с Unity 2D, или може би с MonoGame - но всъщност бих препоръчал да започнете с уроци без двигател (напр. .NET), за да се справите първо с езика.

Изучаването на JavaScript или C # ще ви даде основни познания за кодиране, от които се нуждаете, за да се справите с друг двигател на играта, като Game Maker, като същевременно ще ви предостави неща като програмиране на най-добрите практики и чиста организация на кода.

Разработка на 3D игри: C # или C ++

Има много опции за научаване на кодиране за разработване на 3D игри и бих ви предложил да започнете с C # или C ++. Всъщност, освен ако не сте супер технологичен разбиране или вече имате опит в програмирането, бих ви препоръчал да започнете с C # и да стигнете до C ++. Ще имате по-лесна крива на обучение и ще научите основни концепции за програмиране, без да се налага да се занимавате с неща като управление на паметта и код от по-ниско ниво.

Във всеки случай вероятно ще приключите с обучението, но ако започнете с C #, можете да се забъркате с Unity 3D и след това да стигнете до C ++ с Unreal Engine 4.

Наука за данни / машинно обучение: Python

Въпреки че има възможности на други езици за изучаване на наука за данни / анализ и машинно обучение, в момента Python е златният стандарт за тази сфера на кодиране. Това е доста ясен език за учене и ще ви изложи на добри навици за програмиране и широко използвани рамки, така че не можете да сгрешите тук.

Сценарий №2: Не знаете какво искате да изградите

Съществува ясната възможност да сте прекарали дни, седмици или дори месеци в търсене на статии, видеоклипове, публикации в Reddit и въпроси за Stack Overflow, четейки за езици за програмиране, и все още нямате идея къде да инвестирате времето си, защото не знаете какво искате да изградите.

Бил съм там. Досадно е.

Моята препоръка към вас, колкото и грубо да изглежда, е просто да изберете един. Буквално всеки един от тях, дори ако не е посочен тук. Отидете да научите JavaScript. Или Python. Или Ръжда. Или Хаскел.

Добре, може би не Haskell. Но изберете нещо и се придържайте към него достатъчно дълго, за да научите основите и да видите дали има вероятност да използвате този език, за да изградите с него. И имайте предвид две неща, докато правите това:

  1. Задайте си ограничение във времето. Например „Ще взема следващите три месеца, за да науча JavaScript, използвайки уроци за freeCodeCamp“. Ако в края на този период почувствате, че напредвате и това ви е интересно, продължете! Ако не, може да е време да преразгледате избора си на език и да видите дали има нещо, което може да е по-подходящо за вас.
  2. Създайте нещо, което не е във вашите уроци. Това е решаваща стъпка във вашия растеж като разработчик. Ще го разгледам в следващия раздел.

Сценарий №3: Заседнали сте в урок за чистилището

Ако сте се оказали да правите урок след урок, на един и същи или различни уебсайтове, без никога да се чувствате като че ли напредвате, може да сте наистина разочаровани от опита да се научите да кодирате. Бил съм там и мога да помогна.

Първата стъпка е да прецените за какво са полезни уроците по програмиране и за какво не. Повечето онлайн уроци - особено тези, които ви позволяват да кодирате направо в браузъра - са отлични за това как да програмирате.

От друга страна, те не са добри за това да ви научат как да бъдете програмист.

Най-добрите уроци ще ви изложат на основни концепции за кодиране и ще изискват от вас да прилагате тези знания за решаване на пъзели и проекти. Те са прекрасни учебни инструменти, които, ако се използват извън техния обхват, могат да се превърнат в патерици, които ще задушат вашето обучение.

Програмист, например, не седи по цял ден и прави уроци. Програмист програмира и точно това трябва да направите, за да постигнете напредък, след като сте усвоили основите.

Най-добрият начин да постигнете напредък като разработчик е да изберете проект на избрания от вас език и да се заемете да го направите. Ако например изучавате JavaScript, може да изберете да създадете прост уебсайт с HTML / CSS и да добавите интерактивност с jQuery. Вероятно ще започнете, като създадете интегрирана среда за разработка, незабавно забравяйки как да направите нещо, което сте научили във вашите уроци, разочаровате се, насочете се към Google, намерете отговора и продължете. След това ще постигнете напредък, ще се забиете, ще търсите в Stack Overflow, ще се почешете по официалната документация, може би ще споделите кода си с някого и ще повторите целия процес

И ще правите точно това, което правят програмистите, когато изграждат нов проект.

И накрая, наистина не можете да сбъркате с избрания от вас език за програмиране, дори ако той не е в този списък. Ако накрая изберете един, научите основите, направите проект и решите, че не е за вас, този опит всъщност ще ви помогне в дългосрочен план. Информацията, която ще научите в процеса, ще бъде полезна, независимо от езика, който в крайна сметка използвате за вашите проекти.

Можеш да го направиш!

Ако харесате тази статия, моля, помислете за разглеждане на игрите и книгите ми, абониране за моя канал в YouTube или присъединяване към Entromancy Discord.

MS Farzan, Ph.D. е писал и работил за известни компании за видеоигри и редакционни уебсайтове като Electronic Arts, Perfect World Entertainment, Modus Games и MMORPG.com и е служил като мениджър на общността за игри като Dungeons & Dragons Neverwinter и Mass Effect: Andromeda . Той е креативен директор и водещ дизайнер на игри на Entromancy: A Cyberpunk Fantasy RPG и автор на The Nightpath Trilogy . Намерете MS Farzan в Twitter @sominator.