Как да науча няколко езика за програмиране?


Отговор 1:

Ако можете да програмирате един език, трябва да можете да програмирате друг с много малко работа, просто вземете алтернативните конвенции, като например използването на скоби, скоби и полу-колони, както и знак (или не) или CR / LF. Ключовото е да се съсредоточите върху общите неща и да избягвате нещо твърде специфично за езика, освен ако не е от съществено значение.

Обектно ориентираният език обаче може да бъде нов начин на мислене на структурен програмист без опит в OO, но все пак е основно същите умения. Ключът е да се помни, че OO се отнася до капсулиране и абстракция. Първо определете вашите концепции и необходимите данни за всяка концепция - това е основата на всеки клас. След това дефинирайте какво трябва да можете да правите с всяка концепция и как те трябва да си взаимодействат, да идентифицирате необходимите ви методи (т.е. функции), след което ги кодирайте, за да изградите вашите класове. След това можете да създадете приложение, използвайки класовете, без да се съобразявате какво става вътре в тях. (За добър обектно ориентиран дизайн бих препоръчал да разгледате Унифициран език за моделиране, който е стандартен начин за идентифициране на концепции и техните взаимодействия и в крайна сметка да направите звук обектно ориентиран дизайн. Това е поредица от стандартни схематични модели, фокусирани върху различни аспекти на дизайн, а не език в технически смисъл.)


Отговор 2:

Бих казал, че грешно тълкувате какво е да знаете как да кодирате. Сигурен съм, че не си тъп, просто още не го „разбираш“, което е напълно нормално.

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

Не знам къде минават всички пътища в Австралия, но ако ми дадете място, вероятно мога да стигна до там, използвайки карти, моя TomTom и общ инстинкт (т.е. знам, че това място е край брега, така че ще главата по този начин). Не е въпрос да знаеш всичко, а въпрос на това да знаеш как да го оправиш, когато трябва.

След като разберете тази концепция в Python, ще откриете, че изучаването на друг език е 100 пъти по-лесно, отколкото бихте искали.


Отговор 3:

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

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


Отговор 4:

Бих казал, че грешно тълкувате какво е да знаете как да кодирате. Сигурен съм, че не си тъп, просто още не го „разбираш“, което е напълно нормално.

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

Не знам къде минават всички пътища в Австралия, но ако ми дадете място, вероятно мога да стигна до там, използвайки карти, моя TomTom и общ инстинкт (т.е. знам, че това място е край брега, така че ще главата по този начин). Не е въпрос да знаеш всичко, а въпрос на това да знаеш как да го оправиш, когато трябва.

След като разберете тази концепция в Python, ще откриете, че изучаването на друг език е 100 пъти по-лесно, отколкото бихте искали.


Отговор 5:

Знам седем езика за кодиране. първо се научите как да мислите като кодер, когато подхождате към проблем, към това се отнася Стив Джобс, когато каза, че всички трябва да се научат да кодират, защото това ви учи как да мислите. Започвате да виждате как да гледате на света като поредица от вложени цикли, селектори на регистър, променливи и последователности. Постигането на тази перспектива ще ви позволи да се задълбочите във всеки кодиращ език или CMS.

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

В днешно време можете да рендерирате в движение и синтактичните грешки едва ли са неуспех. плавността идва от употреба - това е толкова просто. практикувайте да правите все повече и повече и вашата текучество ще се покаже като резултат.


Отговор 6:

Първият го прави далеч по-лесен. След като добре познаете Python, основите - контролен поток, контури, рекурсия, функции за повикване и т.н. са от второ естество. Преминаване към C и основните неща са само няколко незначителни промени в синтаксиса (макар че напредналите неща изискват известно обучение, указатели и други). Комбинирайте двете - C за синтаксиса, Python за OOP - и почти вече знаете основите на C ++. Научете всичко това и Java не е нищо ново.

Изучаването на вашите стандартни императивни езици със синтаксис, подобен на С (така че повечето от тези, които използваме днес) е като изучаването на няколко диалекта на един и същ език: те се различават в детайлите, но в общи линии са едни и същи. Всеки (който знам) се бори с този първи език и бриз през останалите (с изключение на напредналите части).

В началото се борих с Python, но сега (след около година и половина) разбирам солидно (според мен) на Python и C, мога да напиша работен код в Go, D, Rust и JavaScript и може повече или по-малко разбират Haskell, Java, C ++, bash и Dart.

Обърнете внимание, че хората имат много повече затруднения при преминаването между парадигми, следователно и репутацията на функционалното програмиране за трудност. Не е по-трудно, просто различен начин на правене на нещата; Представям си, че някой, чийто първи език е Haskell, би имал малки трудности при преминаване в това поле, но потенциално би се борил при преминаване към Java. Или когато започнете да използвате Rust с неговия странно строг компилатор - това е труден преход, въпреки че синтаксисът не е особено уникален.


Отговор 7:

Изучаването на програмни езици може да се сравни с изучаването на естествени езици, но само до точка. Естествените езици имат структура, която се е развила в продължение на хиляди години, за да се справят с * всички * аспекти на живота, а не само да казват на компютъра какво да прави. Тяхната структура не е непременно правилна и дискусиите за семантика и диалект са безкрайни.

Прав си в това, че все още тепърва се занимава с усвояване на много езици за програмиране. Основните понятия обаче често са еднакви. Ако научите добре Python, ще се изложите на повечето от тях. Ще ги имат и други езици за програмиране, но обикновено по-малко от тях.

Наистина ще опознаете само няколко езика достатъчно добре, за да можете да направите сериозна работа с тях. Стремете се да научите поне един език много добре, но не забравяйте другите да се опитате да ги прочетете. Четенето на кода на другия е (много тясно) второ за действителната практика на програмиране.

За да улесня изучаването на няколко езика за програмиране, мога да дам два съвета:

  • Изберете своите битки и научете програмни езици, рамки и библиотеки, които са възможно най-различни една от друга. Всеки от тях има h предназначение, иначе никой не би отделил време и усилия за създаването им. Примери: Lisp, Haskell (функционални езици), C, може би Pascal (процедурно, ръчно управление на паметта), SQL и Prolog (база данни и логическо програмиране). MIPS сглобяване, Brainfuck и други езотерични езици (малко практическа употреба, но с инструкции). Всеки от тях ще ви покаже пространството за дизайн и ще ви накара да разпознаете за какво всъщност става дума за програмиране.
  • Въведете преводач и съставител за езика на играчката сами. Освен това ще ви научи много на програмирането като цяло.

Винаги имайте предвид, че езиците за програмиране са там, за да комуникират и с вашите колеги програмисти, които могат да прочетат вашия код!


Отговор 8:

Синтаксис

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

algos, структури от данни

и така нататък. По същия начин се съмнявам дори да не са в състояние отдалечено да напишат някакъв специфичен за езика код, например

избройте разбирания

в Python.

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

Тогава реших да се "принудя" да кодирам някакъв проблем, който реших в Python, използвайки други езици, и той направи чудеса за няколко седмици: постепенно свикваш с "

превключване на песни

"в съзнанието ви се нуждаете от все по-малко използване на Google или SO, за да намерите как да направите X в Y и като цяло ставате по-добър програмист, тъй като този вид практика поддържа ума ви еластичен и не е пристрастен към единствен език. Дори

укрепване на вашия предпочитан език в дългосрочен план

:)

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

Дано това помогне и щастливо кодиране :)