Здається, треба запам'ятати всілякі синтаксиси, щоб мати можливість програмувати. Якщо у вас немає гарної пам'яті для запам'ятовування імен, чи буде складніше навчитися програмувати?
Здається, треба запам'ятати всілякі синтаксиси, щоб мати можливість програмувати. Якщо у вас немає гарної пам'яті для запам'ятовування імен, чи буде складніше навчитися програмувати?
Відповіді:
Синтаксис мови не такий складний, як ви думаєте запам'ятати, якщо ви використовуєте його щодня. Врешті-решт це стає дуже легко. Запам'ятовування всіх різних функцій бібліотеки може бути набагато складніше, і я не думаю, що більшість людей можуть запам’ятати більше, ніж найпоширеніші, які вони використовують, але це нормально, якщо у вас є доступ до Інтернету, книги чи чогось іншого, що " пам'ятає "всі інші деталі для вас.
Здається, треба пам’ятати всілякі синтаксиси, щоб мати можливість
програмуватирозмову на природній мові.Якщо у вас немає гарної пам’яті для запам’ятовування
іменнихслів, чи буде складніше навчитисяпрограмуватирозмову?
Не може бути правдою, що люди мають "природний" об'єкт з мовами, чи не так?
Це не може бути правдою, що у нас є нейронна апаратура низького рівня лише для придбання мов, чи не так?
У програмуванні використовуються штучні мови, які відповідають багатьом правилам природних мов.
Природні мови мають трохи більшу гнучкість, ніж мови програмування.
граматика ще сувора. правила є дуже які Але
Якщо ви можете говорити, ви можете навчитися програмувати, не запам'ятовуючи нічого іншого, ніж те, що ви запам’ятали, коли навчились говорити.
Якщо ви говорите про короткочасну пам'ять, то так . програміст повинен вміти жонглювати декількома бітами інформації одночасно під час програмування / вирішення проблем.
Якщо ви говорите про довгострокову пам’ять, то не дуже. Існує багато посібників та довідок + інструментів, які можуть суттєво допомогти у виклику інформації. Безперечне запам'ятовування цієї довгострокової інформації зробить вас більш швидким розробником (загалом), але це не є обов'язковою умовою.
Гарна пам’ять абсолютно необхідна, але не з очевидних причин.
Запам'ятовування деталей про конкретні алгоритми, бібліотеки, назви змінних тощо, дуже зручно, але це не дуже важливо. У вас є Google, DuckDuckGo, довідкові сторінки, спеціальна для мови документація та розумні редактори, які допоможуть у всьому вищезазначеному. Це допомагає, якщо вам не потрібно покладатися на ці милиці, але ви добряче отримаєте, якщо час від часу вам знадобляться.
Там, де важливо пам'ять, - це зберігати детальну інформацію про те, що ви працюєте, в активній, короткостроковій пам'яті. Можливість візуалізації дизайну, потоку даних, алгоритмів, структур даних та того, як вони взаємодіють, щоб робити все, що це ваш продукт, відокремлює програміста ОК від великого програміста. Коли ви активно це робите, відчувається, що ви успішно жонглюєте великою кількістю кульок під час їзди на велосипеді.
Це часто називають зоною . Перерви, дурні питання, начальники, які потребують звітів TPS, всі стрибають вас із цієї зони.
Чим краще ваша пам’ять, тим простіше потрапити в зону, тим простіше там перебувати, і легше повернутися в неї після перерви.
Якщо у вас є проблеми з таким видом пам’яті, я б запропонував вивчити методи медитації та хитрощі пам’яті, чим чим більш приємною стає ваша пам’ять, тим більший успіх ви матимете як програміст.
Я збираюся йти проти течії, і скажу так . Гарна пам’ять - це приголомшливий актив програміста. Моя пам’ять я завжди сприймав як програмову відповідальність, тому я підібрав кілька хитрощів, щоб компенсувати свій гандикап:
Ви повинні мати можливість запам'ятати, як написана ця змінна (яку ви використовували 3 рядки раніше). Якщо ви не можете навчитися користуватися Intellisense (або будь-якою формою автозаповнення є у вашому редакторі чи IDE).
Ви повинні мати можливість швидко пригадати, чим ви займалися востаннє, коли працювали над цим проектом. Це могло бути днями тому, можливо, це було лише до обіду. Якщо ви не можете, навчіться писати речі . Тримайте зошит біля себе і записуйте те, що ви робили (або робите), елементи TODO та речі, які вам потрібно пам’ятати про те, як поточний код, над яким ви працюєте, укладається разом.
Налагодження та забезпечення якості - це важко. В ідеалі вам слід вести дуже докладний зошит про кроки, які ви здійснили, намагаючись відтворити помилку чи щось налагодити. Це те, що я знаю, що я повинен робити, але все ще борюся.
Сподіваюся, це допомагає!
Посібник з партизанських інтерв'ю (версія 3.0) є загальною посиланням на те, що важливі моменти програмування - відмітка розумності та виконання завдань. Смарт включає деякі навички пам'яті, але не обов'язково стільки, скільки вам здається.
Intellisense може дуже допомогти, коли справа доходить до синтаксису, якщо ви хочете отримати допомогу з того боку. Знання того, як ви навчаєтесь, щоб ви могли швидко застосувати те, що ви дізнаєтесь, змістовно важливіше, ніж вміти відповідати на дрібниці.
Я вважаю, що запам'ятовування імен є досить різною пізнавальною функцією від запам'ятовування процесів, яка відрізняється від запам'ятовування словникових запасів. Були випадки людей, які отримали травми мозку, які повністю знімали здатність запам'ятовувати імена, в той час як вони в змозі чудово функціонувати в іншому випадку.
Тому я б сказав, що здатність запам'ятовувати імена, не пов'язані з вивченням мов програмування.
Однак було б корисно мати можливість запам'ятати логічні закономірності, правила та словниковий запас.
Ні. Глибина пам’яті інструментів (Intellisense, Google, компілятори, генератори коду) нескінченна порівняно з людською пам’яттю. Тож програміст з хорошою пам’яттю не набагато кращий за одного з отвором у голові.
Що програмістам насправді потрібно, це "пікова швидкість фокусування", коли вони перемикаються між рівнями абстракції. Чим швидше ви можете, тим краще ви програміст. У деяких спостерігається швидкість серцебиття, як 500 мс, з приходом першої хвилі крові до мозку ви зосереджені. Деякі з них орієнтували годинник на цикл куріння, приблизно 2 години. Деяким потрібен ранковий душ, тож близько 24 годин. і т. д. Різниця між хорошим і поганим програмістом колись була оголошена 1:80 разів назад, і розрив лише зростає.
Ні, вам просто потрібно зрозуміти, як Google працює, щоб отримати те, що ви хочете
У мене жахлива пам’ять, але мої навички гуглінгу - приголомшливі ^ _ ^
Якщо говорити серйозно, поки ви знаєте, де знайти синтаксис, вам не потрібно його пам’ятати. Саме для цього призначені intellisense, довідкові файли, довідники, Інтернет тощо.
Перш за все, навчитися програмувати важко для всіх. Маючи добру пам’ять, я впевнений. Але цілеспрямованість і любов до навчання протягом усього життя є більш цінними. Навчання синтаксису - це як і все інше, повторення.
У майстерності програмування немає нічого магічного чи надлюдського. Просто витратьте на це близько 10 000 годин ... і ви будете майстром, як і будь-яка інша майстерність. Звичайно, це 10 000 годин тренувань, а не сліпо і розумно повторюючи минулі помилки.
Ви написали цю публікацію англійською мовою з належним синтаксисом. Ясно, що ви можете запам'ятати, як користуватися мовою. Вам просто потрібно вивчити нову мову і користуватися нею досить часто, щоб ви її завжди правильно розуміли. На відміну від мов, орієнтованих на людину, комп'ютерні мови програмування завжди повідомлятимуть вам про те, що ви використовуєте неправильний синтаксис, так що насправді це простіше. :-)
Я погоджуюся, що існує величезна різноманітність речей, про які середній програміст може знати для виконання своїх завдань, просто продумайте всі слова, синтаксиси, методи, якими ви в основному повинні керувати, щоб створити простий веб-сайт (на передньому кінці: html, css, javascript (ви також можете вважати деякі Js-фрейми як jquery), ajax, на зворотному кінці: Php або ASP або ASP.Net, і не забувайте про бази даних, mySql або SqlServer, Oracle або MongoDB тощо). Існує величезний перелік мов, парадигм, синтаксисів, зразків тощо, не можна запам’ятати все про них.
Думається, що те, що робить хорошого програміста, це практика, практика з алгоритмами більше, ніж з мовами, і з цим ви зрештою запам’ятаєте речі, якими ви найчастіше користуєтесь, для решти, завжди є google = P
Чудова пам’ять може вирізати обома способами.
Якщо ви зможете одразу жонглювати десятками бітів інформації, у вас буде набагато простіший час, коли можна зрозуміти (і, сподіваємось, переписати) той жахливий фрагмент спадкового коду, який є критичним для проекту, але такий складний, що всі інші бояться доторкнутися до нього.
З іншого боку, той жахливий фрагмент коду, який критично важливий для проекту, але настільки складний, що всі інші бояться його торкнутися, ймовірно, написав хтось із приголомшливою здатністю жонглювати десятками бітів інформації. Якщо у вас чудова пам’ять, докладіть великих зусиль, щоб виховувати вдячність за витонченість простоти.
Вивчення синтаксису мови програмування не потребує великої пам’яті. Як говорили інші, синтаксис настільки сильно зміцнюється у вашій пам’яті, що швидко стає другою природою. Ви коли-небудь забудете, на якій стороні дороги ви їдете? Які арифметичні символи являють собою додавання і віднімання? Якщо ні, ви без особливих труднощів освоїте найпоширеніші частини синтаксису обраної вами мови, і ви зможете шукати менш поширені біти, коли вони з’являться.
Деякі бібліотеки мають сотні чи тисячі функцій, класів та / або методів. Сторонній людині це здасться неможливим завданням навчитися використовувати всю цю функціональність. Але в бібліотеці майже завжди є якась основна структура. Замість того, щоб намагатися запам'ятати всі ці функції, розумний програміст намагається зрозуміти, як організована бібліотека і що вона може робити. Зробивши це, як правило, досить легко знайти потрібну функцію, коли вона вам потрібна.
Словом, пам'ять набагато менш важлива, ніж розуміння.
Це залежить. У межах Java та .NET стандартні бібліотеки знаходяться у своєрідній ієрархії та добре задокументовані. Тому, якщо ви знаєте, що маєте справу з мережами, тоді ви переходите на system.net в C # і звідти можете перейти до конкретних об'єктів / викликів, які вам потрібні. Тож з цього приводу вам не потрібно запам'ятовувати деталі і там.
У вашій власній програмі йдеться про те, як ви впорядковуєте / називаєте речі. Якщо ви використовуєте такі імена, як $, b $, c $ ... або g $ від Basic старих, то удачі. якщо ви називаєте речі так, як ви будете думати про них, як FirstName, LastName, це набагато простіше. Багато мов мають стандарти іменування, які також допомагають. Наприклад, у Java існує умова setX, getX для отримання / встановлення конкретних атрибутів класу, а також конвенцій про використання великих літер. Тож якщо ви знаєте, що людина має ім'я, то її, ймовірно, називають firstName, а getter / setter - це, мабуть, getFirstName та setFirstName ..... Тож ці конвенції дуже допомагають ...
Також більш короткі методи / функції допомагають вам менше тримати голову за один раз. А використання власних імен допомагає вам не потрібно шукати. Наприклад, якщо ви називаєте речі для того, що вони роблять, то, читаючи одну процедуру, яка викликає getMaximumValue, вам, ймовірно, не потрібно буде читати getMaximumValue, щоб зрозуміти, що це робить ... Але оскільки функції / методи стають довшими та вкладеними, то краща пам'ять однозначно допомагає.
Пам'ять - не все так важливо. Якщо ви взагалі переживаєте про це, я регулярно вранці забуваю свій гаманець або ключі в будинку. Я називаю всіх невірним іменем хоча б раз (включаючи мою родину та дівчину). Я просто забуваю постійно робити речі навколо будинку.
Зрештою, принципи програмування все ще залишатимуться у вашій голові так само, як "ви ніколи не забудете, як їздити на велосипеді". Конкретні деталі та деталі впровадження - не все так важливо. Ви завжди можете їх використовувати Google.
Від Joel On Software про продуктивність програміста -
Продуктивність залежить від того, що ви зможете одразу жонглювати безліччю дрібних деталей у короткотерміновій пам'яті .
Отже, короткочасова пам'ять дуже важлива для програміста, якому надається критичне завдання.
Але я не думаю, що довгострокова пам’ять має велике значення.
Швидко прочитавши, я не бачив, щоб хтось говорив про пам'ять у загальному розумінні програмування, а не про окрему задачу написання програми.
Пам'ять корисна для двох речей:
Запам'ятовуючи основні семантики / бібліотеки:
Це легко витісняється повторенням і Google. IOW, об'єм пам'яті, з якою ви народилися, повинен бути смішно низьким, щоб не в змозі подолати цю проблему.
Запам'ятовуючи контекст у великих програмах:
Ось де хитрість. Оскільки програми стають все більшими (і ви старіші), рішення, які ви приймаєте, повністю залежать від обсягу ваших знань про систему та здатності отримати її за лічені мілісекунди, якщо вона буде корисною для обговорення проектів, налагодження, реагування на оперативні надзвичайні ситуації тощо. Коли наштовхнеться на поштовх, жодна кількість документації / вікі-записів не допоможе вам - ваш "майстер" команди буде вашим єдиним варіантом. Це одна з причин, чому головні інженери так цінують / платять. Більшість з них, можливо, не витрачають весь час, фактично кодуючи в цей момент, вони витрачають більше часу, підтримуючи повну картину та застосовуючи її для будь-яких проблем / удосконалень. Хороші лише підтримують зв’язок, роблячи тону CR та змінюючи кодування тут і там / прототипуючи новіші редакції.
IOW, Ви можете бути розумним програмістом поодинці №1, але якщо ви коли-небудь будете наступним Лінусом, вам краще мати багато пам'яті, принаймні достатньо, щоб охопити проблему, яку ви вирішуєте.
Зі своїх спостережень я навіть міг сказати, що робоча пам’ять майже прямо пропорційна вартості людини.
Невелика відмова від завершення: Якщо у вас є Eidetic пам'ять, але нульова / низька інтелектуальна сила в застосуванні цієї логіки, вам буде не корисніше для проекту, ніж камера.
Якщо вам важко запам'ятати імена людей, яких ви зустрічаєте, ви все одно можете стати чудовим програмістом.
Я весь час забуваю імена людей. Я старший програміст з майже десятирічним досвідом. У моєму випадку моя страшна слухова пам’ять компенсується чудовою зоровою пам’яттю.
Незважаючи на це, найважливішою вимогою хорошого програміста є вміння абстрагуватися. Незалежно від того, скільки і як мало ви можете запам'ятати, якщо ви не можете зрозуміти поняття змінної та як її використовувати в програмі, ви не станете хорошим програмістом.
Я пропоную вам спробувати один короткий курс програмування або виконати підручник Python, щоб побачити, як вам це подобається.
Це має дати вам гарне уявлення про те, чи є програмування кар'єрою, яку ви могли б зацікавити.
Я кажу категорично ТАК!
В даний час я вивчаю JAVA & C #. Всі тести - це закрита книга, тому для JAVA - це всі 100% пам’яті, що кодує всі програми на іспитах.
Більше того, стає все складніше і складніше. Я зараз в тому місці, коли мені потрібно почати використовувати хитрощі пам’яті, як мнемоніка тощо.
Я б сказав, що високий IQ, хороші загальні знання, хороший словник, поліматизм, більш високі знання з математики, сенсорне введення тексту та хороша пам'ять - все це для програміста.
Я знаю дуже розумних програмістів, які не можуть торкатися типу або займатися вищою математикою тощо. Це вони зробили, вони могли бути набагато кращими.