Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Потяг до програмування

with 7 comments

Звідки він береться, і де його взяти більше. Для тих хто читає мій блог пропускаючи статті з програмування – не бійтесь, тут не про програмування, тут про освіту та інші види людської діяльності. І є ви програмістом чи ні – у вас з’явиться шанс трохи краще зрозуміти звідки в них стільки фанатизму.

Переклад-переказ статті Деніела Хаггарда How to learn to learn Python (його Google plus), кандидата наук в філософії (чи як там перекладається a PhD student in philosophy). Він правда так і не став доктором філософії, бо зрозумів що то все суєта, але багато років навчання свій слід залишають. Самі побачите.

Крок 1: Знайдіть собі Проект

Спершу вам потрібно придумати яку проблему ви хочете вирішити програмуванням. Якщо ви ще не вивчили програмування, вам може бути важко здогадатись чи вона взагалі вирішувана. Та й проблема може бути нечіткою. Але не переживайте, так на початках має бути.

Коли починаєте вчитись програмуванню, постійно питайте себе:

– Що я можу за допомогою цього створити?
І
– Що я хочу створити?

Якщо вчитись і постійно задавати собі ці питання – з часом відповіді на них стануть цілком однаковими. Поки відповіді не однакові – для того щоб рухатись вперед потрібна деяка сила волі.

Це старий конфлікт між головою і серцем. Одна каже що варто було б слухати вчительку і отримувати п’ятірки, інше каже що за вікном весна і дівчата починають носити короткі спідниці. Ці дві сили рідко працюють разом. Але це так здається тільки тому, що нас виростили в суспільстві, яке вміє дресирувати собак краще ніж виховувати власних дітей. Ви даєте собаці те що він хоче (свою ласку і можливо щось смачненьке) коли він використовує свою свідомість щоб обмежити свої імпульси. А в школі і університеті вам що давали? Квіточку чи смайлик під твором? Циферку в заліковці? Обіцяння гарної кар’єри в далекому майбутньому, хоча ви просто хотіли повернутись до свого комп’ютера і пройти наступну компанію в героях меча і магії?

Той факт що наші бажання зазвичай розходяться з нашими свідомими намірами – результат нашої збоченої культури, яка переважно не цікавиться задоволенням наших бажань.

Тому щоб бути дуже вмотивованим програмістом, потрібно вміти швидко знаходити ланцюжки зв’язків, між рядком коду який ви прямо зараз пишете і задоволенням якогось свого бажання. Потрібно щоб код цілком входив до ваших амбіцій.

І саме коли ми бачимо яким чином код який ми пишемо задовольняє наші амбіції, відповіді на питання збігаються, і ми отримуємо оце приємне відчуття що наша кора головного мозку та інстинкти під нею працюють в повній гармонії. Це справді чудове відчуття, і саме тому багато програмістів – такі маньяки.

Але більше того (і раджу вам тут зібрати увагу, тому що це дуже важливо), коли ви почнете задавати собі друге запитання, “Що я хочу?”, ваша відповідь буде нечіткою і розмитою. Коли ви почнете проводити зв’язки від того що ви робите, до того що ви хочете – вона ставатиме чіткішою і чіткішою. Поки не стане майже реальною. А все тому, що насправді…

… У вас немає ніяких справжніх (реальних, в оригіналі real, виходить гарна гра слів) бажань. (Чи є, але не так вже й багато).

Тепер задумайтесь над цим на хвильку.

CQ ©  MGM

Кадр з фільму CQ © MGM

Як він може таке казати? Звісно я маю бажання! Я хочу заробляти великі-превеликі гроші, бо хоч вони погано пахнуть, але такі хороші! Кататися по місту в блискучому довгому лімузині, й купувати речі в дорогому магазині. Я хочу щоб мене любили високі фотомоделі, щоб з ними розважатися в п’ятизірковому готелі, повісити на шию три кілограми золота і щоб в житті не брати в руки ні серпа ні молота ©. Чи, наприклад, хочу написати щось краще і корисніше за Facebook, хочу щоб мене знали всі на світі.

Але пробачте, це насправді ніякі не бажання. Це тіні бажання – нечіткі абстракції повністю від’єднані від конкретної реальності. Краще називати їх – потяги. Справжнє бажання – це суперпозиція всіх цих потягів. Ви хочете звабити одногрупницю, але боїтесь запросити її на побачення через страх відмови. Ваші дії (чи їх відсутність) визначає суму в якій страх бути приниженим і відкинутим віднімається від потягу до тієї одногрупниці. Ви насправді не хочете її звабити, тому що не готові заплатити ціну, потрібну для досягнення цієї цілі.

В оригіналі бажання – desires, а потяги – urges. Я не знав які ще відповідники підібрати. Він так пише про бажання, що я б назвав їх Наміри, але це все таки дуже потужне слово.

Те що більшість з нас плутають справжні бажання і потяги – цілком зрозуміло. Наше суспільство влаштоване так, щоб провокувати в нас потяги. Вся наша кіноіндустрія, ігрова індустрія, телебачення, глянцеві журнали – створено для того щоб дозволити вам жити нескінченним еротичним сном, переповненим примарними потягами. Нащо навантажувати себе якимись діями що вимагають справжніх зусиль, якщо ми можемо політати на мітлі разом з Гаррі Поттером і дивитись як він махає фалічною паличкою в напрямку Волдемортового члена? (Тут мені знову здалось що аби розуміти деяких філософів, мені таки треба прочитати Фройда, і напевне “Симулякр і симуляцію”)

Все це існує для того щоб приглушити ваші справжні бажання. Щоб ви ходили на роботу щодня і не задумувались про те, для чого вам це потрібно. Більше того, всі інтерфейси за допомогою яких ми будь-що робимо (наприклад протокол оплати за проїзд в маршрутці) були надані нам кимось іншим, з вищих щаблів інституційної ієрархії. І враховуючи те що ми зазвичай дотримуємось соціальних правил, які визначають як правильно поводитись в певній ситуації, виходить що наша поведінка найчастіше визначається силами зовнішніми відносно наших власних мотивів. А так як бажання (ок, тут наміри таки дуже підходяще слово) визначається тим що ми робимо а не тими потягами про які ми маємо фантазії, виходить що ми маємо дуже мало власних, ненав’язаних бажань.

Але як це пов’язано з вивченням програмування? Як тільки ваші відповіді на два вищезгадані питання почнуть співпадати, ваші бажання перестануть бути розпливчастими і стануть конкретними як бетон. А все тому що вони будуть прив’язаними до абсолютних і фундаментальних законів фізики поверх яких побудовані комп’ютерні науки. Ви не обов’язково знатимете ці закони, але знатимете що вони діють, тому що через них комп’ютери і працюють. А ви писатимете код, який змусить комп’ютер робити те що хочете ви. Тому коли відповіді на ваші запитання співпадатимуть, і ви знаєте який код ви хочете написати і знаєте що ви можете його написати, залишається найпростіше – написати код.

Тут я звісно трохи перебільшую. Якщо ви не вундеркінд типу Моцарта, який може візуалізувати всі ноти симфонії (читай рядки програми) ще до того як їх зіграє (читай напише і згодує транслятору), то ваші відповіді не співпадатимуть цілковито, поки ви нарешті не напишете той код. Тому що завжди є якісь білі плями, і можливо ви щось забули, тому написати код буде неможливо. І ви не дізнаєтесь про це поки не спробуєте. Проблеми більші за ваші можливості обов’язково зустрінуться.

Але трюк полягає в тому щоб не переживати через проблеми завчасно. Якщо ви намагатиметесь щоб у вашій голові з’явилась вся симфонія до кінця, то ви ніколи так і не напишете жодного рядка. І також потрібна гнучкість в адаптації ваших бажань до ваших можливостей. І в той же час важливо мати деяку впертість в їх досягненні. Вміння знаходити баланс в цьому питанні – одне з найважливіших для хакера, і приходить з досвідом.

Це також пояснює конфлікт між програмістами і замовником. Замовник не тренувався все життя перетворювати свої бажання на чіткі залізобетонні конструкції, тому програмісти мусять грати роль посередників для бажань клієнта (і дуже це не люблять). Їм дають розпливчаті специфікації програм які неможливо написати, після чого програміст має витратити купу часу аби пояснити що можливо зробити а що ні. Вони постійно мають вгамовувати нестримні бажання клієнта, який відмовляється приймати реальність. Клієнт дратується через програміста який постійно хоче змінити його бажання, а програміст знає що якби клієнт розумів хоч трохи про те чого він хоче, він цього б не хотів.

Навчаючись програмувати, ви вчитесь уникати своїх нечітких потягів, і працювати над своїми конкретними бажаннями. І ця звичка може вдосконалити інші аспекти вашого життя. Програмування фундаментально змінює людей.

Програмісти вони такі.

Крок 2: Ну власне почніть вчити мову

Тепер до самої роботи. Ви вже зрозуміли філософію і психологію що стоїть за програмуванням, і треба взяти книжку і чогось таки навчитись. Це найбільш небезпечний період, тому що у вас ще не сформувалося ядро мотивації. Тому потрібно якомога швидше перейти до наступного етапу. І секрет в тому, аби вивчити якомога менше.

Що конкретно вам потрібно знати? Як встановити Python, як запустити інтерпретатор і давати йому код, як імпортувати модулі, як встановлювати додаткові бібліотеки (а ви це робитимете частенько).

Вам потрібно розуміти основи синтаксису, змінні, базові типи даних (числа, рядки, списки, словники, файли), і базові оператори контролю ходу виконання (умови і цикли). Треба розуміти функції, і для додаткових балів – мати приблизне поняття того що таке клас (навіть якщо ви не розумієте їх достатньо, щоб використовувати самим).

Секрет в тому щоб рухатись якомога швидше, при цьому вивчаючи якомога менше. Звучить незвично, але повірте мені, краще саме так. Вам потрібно отримати загальне поняття про мову і перейти до наступного кроку. Ви звісно можете витратити два тижні і вивчити на пам’ять всі методи що працюють з рядками. Тоді ви зможете круто працювати з рядками, але не матимете зеленого поняття для чого вам ці методи в реальному житті.

Для цієї мети вам потрібна якась довідкова книжка не перевантажена вправами і прикладами (цілковита протилежність Learn yourself a Python the hard way) (На зразок четвертого видання Learning Python). Читайте все аж до частини п’ять. Але це ж понад п’ятсот сторінок! Ну, не читайте кожну. Вам не знадобиться кожен розділ. Вам не знадобиться кожна сторінка розділу. Якщо щось для вас нудне – пропускайте. Якщо чогось не розумієте – пропускайте. Спробуйте кілька прикладів в інтерпритаторі але не надто багато.

Не заморочуйтесь високими абстракціями. Вам потрібно знати що 2 + 2 == 4, а '2' + '2' == '22', а розуміння динамічної типізації прийде саме собою пізніше. Вам потрібно знати що змінна оголошена всередині функції, невидима ззовні, а детальне поняття просторів імен прийде пізніше. Якщо вас зацікавлять класи – вивчіть наслідування, і особливо не заморочуйтесь інкапсуляцією. (Я не кажу що ви не повинні це знати взагалі. Якщо наткнетесь на помилку, вам доведеться розібратись зі всіма пов’язаними з нею поняттями).

Просунуті програмісти вже напевне почали хмуритись.

Як він може таке казати? Не робити прикладів? Не вдумуватись в динамічну типізацію? Ігнорувати інкапсуляцію?! Як можна таке пропагувати? Треба вивчити основи, інакше в майбутньму доведеться довго відучуватись від поганих звичок. І треба робити багато прикладів, тому що програмувати – це єдиний спосіб вивчити програмування.

Але це неправильний підхід, принаймі для нас, новачків що вчаться самостійно. Над нами нема викладачів які б погрожували нам поганими оцінками. Нам потрібно мотивувати самих себе, і тому це гонка щоб досягти певної мети, до того як мозок вирішить що програмування не варте тієї енергії яку ви на нього витрачаєте, і увімкне режим нудьги (це така оптимізація).

І система яку я пропоную – набагато краща за ту яку використовують в школі. А все тому, що в школі ігнорують принципи за якими мозок працює. Щоб це зрозуміти варто розібратись з мозком детальніше.

Почнемо з того що мозок дуже погано працює з деталями. Особливо з ізольованими непов’язаними. Запам’ятовування дат, формул, методу знаходження коренів рівняння в алгебрі, методу сортування списків в Python. Щоб вивчити такі речі, потрібно повторювати їх знову і знову. І мозок не тільки погано працює з такою інформацією, він активно посилатиме вам прохання припинити. Це суть нудьги. Єдина причина через яку ми це все таки вивчили – тому що є інституції які обіцяли покарати нас, якщо ми не будемо зубрити це нескінченно. Суспільство знайшло спосіб надати зовнішню мотивацію, що робить всіх нас нещасними. Хоча, я погоджуюсь з тим що це все таки краще ніж взагалі ніякої освіти.

Але ця нудьга – це лише мозок що оптимізовує свою роботу. Ми навчились уникати вивчення речей які ми не зможемо застосувати. Тому що зайві витрати часу та енергії заважають виживанню. Мозок уникатиме вивчення таких речей, і якомога швидше їх забуде щоб звільнити ресурси для важливіших речей. Але мозок може дуже просто знайти зв’язок знання з його використанням в реальному житті, що задовольнить якесь наше бажання. Таким чином ми можемо ефективно запам’ятовувати навіть найскладнішу для розуміння інформацію, якщо хочемо.

І це приводить нас до того, в чому мозок дуже добре розвинутий. Мозок добре вміє помічати шаблони і зв’язки. Він добре вміє розповідати історії. Він добре працює з системами і гештальтом (навіть якщо гештальт – це книжки про Гаррі Поттера). І найважливіше – він дуже добре індексує інформацію. Набагато краще ніж зберігає. І під індексацією я маю на увазі що мозок бере якісь поняття, і прив’язує до них процедуру за якою можна отримати більше інформації про це поняття. Всі з нас вчили в школі ділення в стовпчик. Але мало хто пам’ятає як його робити. Хоча в школі ми виконували цю вправу тисячі разів. Зате, якщо хтось приставить нам до голови пістолета, і скаже “Розділи це в стовпчик, але гм, можеш підглядати чи шукати будь-яку потрібну тобі інформацію.”, ми точно знатимемо що треба буде робити. Ми знайдемо підручник математики для молодших класів, або погуглимо назву методу і таки виконаємо завдання. Індексація інформації напевне вимагає набагато менше ресурсів мозку ніж її зберігання.

Саме тому я рекомендую спочатку вчити мало і швидко. Поки ви читатимете, мозок запам’ятає що існує така штука як рядок, і що з ним можна робити різні операції, як от пошук, заміну, конкатенації, форматування і т.д. Мозок не запам’ятає імена всіх функції, але досить буде того що ви знатимете що це можливо, і знатимете приблизно в якій частині книжки шукати, якщо щось звіди таки знадобиться. Нам потрібно якомога більше занести в індекс. Чому? Тому що для того щоб відповісти на запитання “Що я можу створити?” достатньо лише індексу. Тому що самого індексу достатньо щоб почати створювати зв’язки між бажаннями і знанням що стане потрібним для втілення тих бажань. Як тільки зв’язки будуть побудовані – знаття можна буде отримати без надмірних зусиль.

І що ще важливіше – вашою практикою буде робота над вашим проектом. Ціль – практикувати якомога менше речі, які ми не використовуватимемо. Ми хочемо щоб якомога більше нашої практики вела нас до наших бажань. Це потрібно щоб ми залишались вмотивованими.

І все одно, нашим головним методом оцінки ефективності навчання залишається “екзамен”. Де нас змушують зберігати в мозку фактичну інформацію з деталями, не покладаючись на природню для нашого мозку здатність індексувати та шукати знання в індексі. Це означає тисячі годин штучної практики. Це означає що найкращий час нашої юності витрачається на зазубрювання інформації, яка вивітрюється з голови як тільки мозок усвідомлює чим він насправді займатиметься протягом свого життя. Краща частина юності витрачається на діяльність що робить нас нещасною і залишає після себе лише індекс інформації, який ми могли отримати за малесеньку частку того часу який ми витрачаємо на навчання. Це справжній злочин!

Сподіваюсь я пояснив свою думку. Тепер йдіть і читайте підручник. Постійно задавайте собі два важливі запитання. Зберігайте інтерес доки зможете, а коли вам стане нудно (для більшості нас це досить скоро), переходьте до наступного кроку.

Крок 3: Виберіть фронт-енд

Можливо на цій стадії відповіді на питання про те що ви хочете і що ви можете стали трохи ближчими, але напевне вони все ще досить далеко одне від одного.

Але що робити з мотивацією? – запитаєте ви. Якщо я прочитаю ще хоч слово з документації чи підручника – я напевне вистрибну з вікна.

Все що вам потрібно зараз – трохи ендорфінів. Щоб отримати ці ендорфіни, вам потрібно щоб на екрані з’являлись різні штуки. Цікаві, симпатичні штуки, які з’являються як результат вашого коду. Мозок це любить. Як тільки він бачить що ваша діяльність має якийсь вплив на реальний світ, він винагородить вас солодкими-солодкими ендорфінами. Він навіть робитиме це деякий час поки ще не прив’язав ці події до якоїсь більшої схеми задоволення свого бажання. Нагорода перестане з’являтись якщо зв’язок так і не буде встановлено, але мозок знає що він повенен винагороджувати трохи спроб і помилок, інакше ми ніколи нічого так і не почнемо робити. Тому можливість бачити як речі з’являються на екрані, купить вам трохи часу поки ви шукаєте натхнення для свого проекту.

Тому, для цієї мети, вам потрібно вибрати фронт-енд. Під цим словом я маю на увазі щось, що дозволить речам з’являтись на екрані – це все. Інтерпретатор Python – це один з таких фронт-ендів. Але REPL не задовольнятиме вас довго. Мозок хоче бачити як ви керуєте фронт-ендом що нагадує речі до яких він звик в реальному світі. Для більшості людей це означає певний графічний інтерфейс.

(Є й винятки з цього правила. Якщо у вас вже є ідея якогось проекту, і скажімо, він пов’язаний з обробкою природньої мови, тоді графічний інтерфейс – це останнє за що ви хвилюватиметесь. Мозок пробачить відсутність гарних блискучих речей на екрані, тому що він зможе прив’язати ваші зусилля до якоїсь іншої мети.)

Вибрати фронт-енд буде набагато легше, якщо ви вже маєте певне поняття того що хочете збудувати. Що класно в Python, що незалежно від того який проект ви виберете, вже напевне є якась бібліотека чи фреймворк, що допоможе вам прийти до стадії виводу на екран порівняно швидко. Якщо вас цікавлять комп’ютерні ігри – Pygame. Якщо ви хочете збудувати прикладну програму – ви маєте багато варіантів: http://wiki.python.org/moin/GuiProgramming . Якщо вас цікавить веб – Django, Tornado, Flask – варіантів купа.

Крок 4: Пограйтесь з кодом

Коли у вас є фронт-енд – бажано знайти якийсь готовий код, або іструкцію про те як швидко отримати якісь речі. Бажано щось звідкись скопіювати.

Часто кажуть що копіювати – не добре, треба набирати приклади з книжки символ за символом, щоб працювала м’язова пам’ять, щоб робити помилки і вчитись їх виправляти. Але цим можна зайнятись потім, зараз ваша задача – отримати щось на екрані.

Давайте обговоримо аналогію яку Zed Shaw робить на початку книжки Learn Python the hard way:

Поки ви вивчаєте програмування, я вивчаю гітару. Я практикуюсь щодня, щодайменше дві години. Я годину граю гами і акорди, а далі вчу музичну теорію, треную слух, вчу пісні і все що тільки можу. Іноді я вчу гітару і музику протягом восьми годин, тому що це весело, і в мене є таке бажання. Для мене повторювана практика природній спосіб щось вивчити. Я знаю що щоб в чомусь добре розбиратись, треба займатись цим щодня, навіть якщо того дня нічого не виходить (що буває часто), чи все здається дуже складним. Продовжуйте старатись, і з часом все стане простіше і веселіше.

Я погоджуюсь з тим що якщо у вас є сила волі для того щоб займатися щодня по кілька годин тим що ви хочете вивчити, то рано чи пізно, ви прийдете до своєї цілі. Але я не згоден що аналогія між музикою і програмуванням вдала. Якщо ви граєте на фортепіано і хочете запозичити кілька нот з концертів Моцарта, ви не зможете це зробити, якщо не маєте практики, тому що потрібно спочатку вміти зіграти ці ноти.

Але програмування інакше. Це факт що я можу додати погану ноту в існуючий код, навіть не читаючи його. Маючи лише базові знання мови, можна змінити проект на Django так щоб якась зі сторінок виводила те що вам потрібно. Може це якась жахлива зміна, порівняно з таким чудовим фреймворком, але яка різниця? Головне що це зміна, яка допомагає вам наблизитись до мети.

Крок 5: Виберіть IDE

Автор рекомендує PyScripter. Але особисто я вважаю що немає значення де ви пишете код. В дитинстві я писав його в зошиті в клітинку, і сам інтерпретував. Важке було дитинство. 🙂

Крок 6: Встановлюйте мініцілі

Розбийте свій проект на маленькі задачі. Це мають бути окремі частини функціональності, які ви можете закодити одне за іншим, а потім розібратись як скласти все до купи.

Почніть з найпростішого. Якщо ваша програма повинна робити якісь математичні обчислення – напишіть лише код який виконує ці обчислення. Якщо вона повинна зберігати список користувачів – напишіть код зберігання цього списку. Якщо вона відправляє користувачу якогось листа – напишіть код що створює текст листа. Не переживайте як пізніше все це зінтегрується. Просто робіть задачу, як би ви робили завдання з книжки. Тільки не з книжки, а те що ви самі придумали для свого проекту.

Досягнення міні-цілей дасть вам іншу дозу ендорфінів, і збільшить мотивацію.

Підбирайте наступну мініціль так, щоб вона якомога більше відповідала вашому поточному рівню навиків, але й трохи їх розширювала. Але не надто багато. Вчіться відрізняти маленькі цілі які можна досягнути за день від більших, частиною яких є менші. Постійно думайте про те як мініцілі складатимуться в загальну ціль.

Вміння розбивати задачу на частини – одне з найбільш критичних в розробці програмного забезпечення (як і загалом в житті). Тому вартує почати працювати над своїми здібностями в цьому напрямку з самого початку.

Крок 7: Тримайте погляд на призі

Ура, тепер ви пишете код, і в результаті цього пікселі на екрані розташовуються так як ви того захочете. Пора повернутись до початкового питання: “Що я хочу створити?”.

Кожен рядок коду який ви тепер пишете повинен працювати для цієї мети. Не вивчайте щось лише тому що якийсь авторитетний хакер написав в своєму блозі що кожен кодер який себе поважає повинен це знати. Вивчайте щось, бо це вам потрібно щоб створити те що ви хочете створити.

І відтепер вивчення мови буде ітеративним процесом, в якому ви робитимете експерименти з кодом, підчитуватимете книжки і блоги, задаватимете питання на інтернет форумах і т.д. І навіть якщо ви зустрінете особливо складне місце в документації, то зможете сказати собі “я маю крізь це пройти, бо хочу щоб моя програма робила Х”.

Пишіть якомога менше коду. Серйозно. Для будь-якого шматка функціоналу, який ви б хотіли реалізувати – пошукайте існуючу бібліотеку (бажано з відкритим кодом). Якщо існує бібліотека яка робить більшість з того що вам потрібно – використовуйте її. Лізьте під капот тієї бібліотеки лише тоді коли з’являється якась проблема, чи бібліотека не робить всього що вам потрібно. І якщо таки не робить – не будуйте функціонал з нуля, спробуйте зробити модифікацію того що вже створили до вас.

І хоча ви намагатиметесь писати якомога менше коду, все одно доведеться писати його гори. Але, сподіваюсь ви зможете досягти своєї мети настільки швидко і ефективно наскільки це можливо. Не треба жити щоб програмувати. Треба програмувати щоб жити.

Крок 8: Знайдіть спосіб віддати щось спільноті.

Для цього не обов’язково писати свою бібліотеку. Можна просто повідомити авторів бібліотеки якою ви користуєтесь про помилку в ній. Чи написати розповідь про те як ви використали бібліотеку з власною метою. Ця розповідь може допомогти іншим освоїтись з бібліотекою. Чи допоможіть комусь на StackOverflow чи ще десь. Не обов’язково робити це цілеспрямовано, але якщо з’явиться нагода – не втрачайте її.

Advertisements

Written by bunyk

Лютий 15, 2015 at 14:36

Відповідей: 7

Subscribe to comments with RSS.

  1. круто!

    Max Power

    Лютий 15, 2015 at 18:02

  2. Цікаво, що я на рівні підсвідомості саме так і живу (і це вже біля 10 років). Хоча один мій знайомий пан-програміст дуже сварить мене за такий підхід до програмування. (приблизно як в тій цитаті в тексті). Але маємо, що маємо. Дякую за Вашу працю.

    chemistx

    Лютий 24, 2015 at 20:30

  3. […] способи, то вам потрібно буде зрозуміти кілька речей: Чому йому так подобається програмувати (чи займатись ч…, що хлопець в основі мало чим відрізняється від собаки […]

  4. PhD student – аспірант, PhD(доктором філософії) стають коли захистять дисертацію, у нас це відповідало званню кандидата наук (кандидат технічних наук, кандидати медичних наук і т.д.), але здається за новим законом у нас теж будуть зараз усі докторами філософії.

    volodimirg

    Січень 25, 2016 at 19:49

  5. […] Hangout де люди могли б розказати якісь свої ідеї, чому вони хочуть програмувати, що хочуть створити, і які запитання виникають, щоб […]


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: