Як знайти наставника з програмування? [зачинено]


46

Я вирішив навчитися програмуванню. Я читав SO кілька днів, і думаю, що почну з C ++, коли читаю деякі статті. Я мало обізнаний з циклами, масивами, логікою програми та об'єктами, і мені потрібно, щоб хтось переглянув мене та допоміг мені з невеликими запитаннями, які виникають під час моїх перших проектів.

Тож ось питання - де я можу знайти такого хлопця? У мене немає друзів, які програмують і все.

EDIT: Через 2 роки я все ще шукаю наставника. Я не активно кодував, тільки почав 3 місяці знову. Я працюю над програмуванням Objective-C та iOS та програмуванням ігор з Cocos2d. Якщо ви хочете стати моїм наставником, киньте мені коментар чи коментар.


1
також придбайте хорошу книгу "для початківців" на обраній вами мові
Дем'ян Касьє

2
Просто спілкуйтеся з цими користувачами . Запропонуйте їм пиво-два. Прочитайте їхні пости. Задайте їм питання.
WernerCD

1
Ось перелік імен (і карта), які підписали Маніфест програмного майстра програмного забезпечення: manifesto.softwarecraftsmanship.org
губка

1
Моя відповідь була трохи нерозумною, але я рекомендую вивчати JavaScript або Python, коли ви вивчаєте більш строго набрану мову. В обох парадигмах є переваги, залежно від того, що ви маєте на увазі, але в мовчазних мовах ви можете виправити речі прямо в консолі, а у випадку JS - викрутити макет веб-сторінки та поведінку інтерфейсу. інструментів для розробників Chrome. Також функції, які ви можете обходити в парамах; люди, які пу-пу, навіть не знають і ніколи не будуть (дякую, джибу, тому що я працював з тими хлопцями); є нецензурно потужними.
Erik Reppen

1
Через два роки все, що вам потрібно, - це дискліпін. Ви готові до цього?
ott--

Відповіді:


31

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

Для чого ви хочете навчитися програмуванню ? Відповідь на це визначить, що вам слід шукати і де. Ось деякі загальні відповіді, і мою професійну думку про те , як їм слідувати (мати на увазі , що це просто думка, хоча ІМХО, точно):

Просто сказати, що ви знаєте, як це зробити.

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

Просто спробувати це і побачити, чи сподобалось тобі.

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

Однак у такому випадку не намагайтеся використовувати C ++ як свою першу мову програмування. Оволодіти основами не важко, але C ++ є достатньо низьким рівнем, щоб ви могли отримати серйозні та дуже важкі помилки у своїх програмах. Якщо ви вже не знаєте, що любите програмування, або ви не такі вперті, як поспільний вол, або вже знайшли наставника, який може направити вас у правильному напрямку, це вб'є будь-який цікавий досвід у вас у цій галузі. Дивіться вищевказану відповідь про Python, це краще підходить для цього.

Тому що у вас є ідея для конкретної програми, яку ви хочете написати.

(Я не думаю, що ОП в цій категорії, я пропоную це для наступних читачів.)

Чи маєте ви уявлення про час, необхідний для освоєння програми та реалізації програми? Як натяк, це вимірюється роками. Ви зможете придумати напівпристойний дизайн лише через кілька місяців навчання, якщо ви і розумні, і надзвичайно пощастило, але кожен, хто має невеликий досвід, хто повинен над цим працювати (включаючи вас, пізніше) Бажаю, щоб ти ніколи не народився - я кажу з досвіду. :-) Якщо ідея не є настільки секретною, що ніхто більше не може про неї знати, поки вона не буде здійснена, не турбуйтеся. Найміть досвідченого програміста, щоб зробити це за вас, або якщо ви не можете дозволити собі його, але все-таки хочете програму досить погано, запропонуйте співпрацювати з одним - ви поводитесь із діловою стороною і дозволите йому обробляти частину програмування. Більшість хороших розробників вважають за краще програмувати, тому така пропозиція може бути їм вартим.

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

Тоді ви на правильному шляху. :-) Незалежно від того, чи хобі це чи щось, що ви можете згодом перетворити на кар'єру, якщо у вас є така особистість, яка вважає її нескінченно захоплюючою, найкраще, що ви можете зробити - це зануритися в неї. У такому випадку мова C ++ є такою ж доброю мовою, як і будь-яка, і наставник обов'язково допоможе (і більше, ніж просто розвивати ваші навички; він може стати самотнім без друзів, які поділяють вашу пристрасть).


4
Питання полягало в тому, як знайти наставника, а не якщо він повинен / не повинен його шукати.
marktani

4
Відповідь спочатку містила пропозицію наставника для всіх, хто справді зацікавився C ++. Після знайомства восьми людей, які заявляли, що справді зацікавлені, але які не могли потрудитися продовжувати розмову, я зняв цю пропозицію.
Head Geek

23

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

Групи користувачів - це, ймовірно, місце для пошуку наставника, але ніхто не хоче допомогти комусь, хто там думає "Я шукаю наставника". Але якщо ви там думаєте: "Мені б подобалося, якби хтось міг допомогти мені навчитися писати хороші тести JavaScript-модуля", або "Я хотів би рано чи пізно провести пару з ким-небудь і випробувати тест-ката в Clojure". ви знайдете когось, який поділяє ваші інтереси і трохи далі.


14

Типи людей, які роблять дійсно хороших наставників, зазвичай мають десяток і більше юніорів, які в будь-який момент поскакують за свій час. Отже, "пошук" потрібного наставника - це лише початок, ви також повинні зробити наставництво більш привабливим / корисним, ніж наставництво когось іншого.

Отже, перший крок - приєднатися до громад, де ви, ймовірно, зустрінете хороших наставників.

Крок другий - стати гідним наставником. Деякі речі, які я особисто шукаю в наставника:

  • Інтелект поруч, рівний чи більший, ніж мій власний.
  • Інтерес до речей, які я можу запропонувати, і викладаю насолоду.
  • Сумісність особистості (тобто ми добре ладимо, насолоджуємось спілкуванням один з одним).
  • Готовність бути цінною для проекту / спільноти, в якій я його / її наставляю, шляхом:

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

12

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


1
Гаразд, я можу звучати нерозумно, але як ви приєднуєтесь до проектів з відкритим кодом? Який найкращий веб-сайт для відвідування?
Містер Мураха

1
gnu.org/help або деякі сховища відкритого коду (код Google, github ...). Шукайте цікавий проект, у якому бракує людей, щоб надати документацію та надіслати електронний лист.
cbrandolino

2
Я твердо вірю, що немає тупих питань. Хоча існує багато веб-сайтів проектів з відкритим кодом, sourceForge все ще є одним з найпопулярніших.
Джим C

1
@Ant: найкращий проект з відкритим кодом для роботи - це програма, яку ти часто використовуєш або очікуєш використовувати.
Ларрі Коулман

7
-1: Приєднання до проекту ОС - хороша відповідь, але, безумовно, не на цьому етапі навчання (тобто день 1). Це занурення в глибокий кінець, перш ніж колись навіть намокне. Структуроване навчання за допомогою книг чи класів - набагато краща ідея.
Стівен Еверс

6

Що ви очікуєте від наставника? Пропозиції проекту з відкритим кодом або локальної групи користувачів розроблені для того, щоб розібратися в роботі з мережею та знайти когось, що знаходиться на кілька кроків далі, до чого ви хочете бути, щоб вони могли допомогти вам певним чином. Подумайте про це як про те, щоб намагатися навчитися готувати від Джеймі Олівера або Гордона Рамсая, це може бути досить цікавим і корисним наприкінці дня.

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

По-друге, тепер, коли ти знаєш, чого хочеш, ти повинен його знайти. Це може бути досить складно, оскільки це не так, як є багато місць, присвячених демонстрації розробників, які використовують свої навички, як у нас є мистецтво в Канаді та США, тому я запропонував пропозицію. MentorNetбув би прикладом програми, яка може працювати, хоча я не пробував її, я досліджував її ще раз і не думав, що це для мене і чого я хотів. Ще одна думка тут - наскільки добре ваші друзі та родина знають, що ви хочете тут? Вони можуть знати когось або якесь місце, яке може вам допомогти, якщо ви запитаєте. Хоча це не є вичерпною відповіддю, те, що ви запитуєте, є дещо невиразним, і, сподіваємось, ви можете додати більше цього, і тоді я продовжую перевірку, як тільки ви дасте детальну інформацію про те, що ви хочете, і як ви цього хочете. це не Бургер Кінг, але ми могли б спробувати працювати так.


Експертів із компонентів із сервера C ++ може бути досить важко знайти. Чи є поблизу середні заклади? У них може бути хтось, хто має ті навички, які, можливо, перетворюються на щось інше як можливу ідею. Успіхів у пошуку цього наставника.


+1 з мого боку. Схоже, співпраця з кимось - це шлях йти вперед.
Fanatic23

4

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

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


3

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

Публікацію в Craigslist, можливо, варто спробувати, але я не став би на це робити ставку.

Крім того, якщо ви базуєтесь у Німеччині, є кілька місць, які я можу запропонувати, зокрема.


а як в Каліфорнії, Бейс?
greatwolf

@Victor, я насправді не знаю, але, здається, їх небагато: google.de/…
cbrandolino

3

З огляду на те, що ви зареєстровані на Stack Exchange, у вас уже є багато неформальних наставників. Ви можете легко задати питання або переглянути свій код багатьма людьми, мотивованими допомогти.

Більш локально, якщо ви хочете особистого наставництва чи викладання, великі варіанти включають:

  • Групи користувачів - плюси: безкоштовні або дешеві, відкриті для всіх. Мінуси: рідкісні, не систематичні, можуть бути недоступні у вашій громаді.
  • Кооперативи - плюси: відкриті, безкоштовно / дешево. Мінуси: менш поширені, спеціальні, швидше для Інтернету, ніж C ++.
  • Ступінь університету / коледжу - плюси: систематичність, висока якість, шанобливість, відкриває двері, як правило, забезпечує доступ хоча б до викладачів високої якості. Мінуси: конкурентоспроможний вступ, основні зобов'язання, дорогий, високий рівень вимивання, тому це дорогий спосіб дізнатися, чи хочете ви зробити програмне забезпечення своєю професією, програма навчання може бути гнучким, але можуть знадобитися теми, які вам не подобаються чи не будуть знайти важко.
  • Класи коледжів або програми вищих навчальних закладів. Плюси: недорогий, хороша цінність, більше індивідуальної уваги з боку інструкторів, легко приймати. Мінуси: Менше престижу, ніж університет, але хороший студент - хороший студент, куди б вони не поїхали.
  • Професійні організації - плюси: може бути хорошою мережею та постійною освітою. Мінуси: вам може знадобитися ступінь або робота на місцях, щоб отримати право на членство. Щомісячні зустрічі можуть бути спеціальними темами про інновації, а не систематичним висвітленням тем, що сприяють кар'єрі.
  • На роботі з однолітками, вищим персоналом чи керівниками - плюси: часті, цілеспрямовані, вдячність / ентузіазм / подальші дії дозволять побудувати вашу кар’єру, як ніхто інший не зможе. Мінуси: може піти не так, якщо ваш наставник роботи перейде в режим судження, і ви дозволили йому все відмовлятися, такий наставник може бути недоступним, поки у вас немає роботи, що може означати після отримання ступеня через глобальну конкуренцію.
  • Коворкінг - плюси: приємні ресурси, чудові люди, як правило, перехрес між комуною та кімнатою майбутніх керівників. Мінуси: можливо, вони не доступні там, де ви проживаєте, може включати грошові зобов’язання, щоб допомогти сплатити оренду за спільний простір, багато хто в космосі будуть самозайнятими, тому ви повинні поважати їх час і знаходити творчі способи зробити вигоди взаємними.

2

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

Ознайомтесь із сайтами c ++ в google або, можливо, наш дорогий друг stackoverflow, де багато c ++ ніндзя, готових відповісти на ваші запитання!


1

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

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

Такі сайти, і онлайн-підручники, книги та все інше - це частини головоломки. Освіта складає прикордонні частини.

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


1

Якщо ви працюєте в компанії, ви можете шукати наставника.

Щодо проекту з відкритим кодом, я сумніваюся, що ви знайдете наставника для створеного вами проекту, але ви можете знайти його в проекті, який вони створили.

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


0

"Як я можу знайти програміста-програміста? Це все, що я хочу. Я просто хочу створити величезну армію роботів, щоб захопити світ. Я розумний, і я написав AI. У мене є гроші, вплив, я просто не можу потрудитися мати справу з цією огидною дурістю .NET або JVM ... Хм ... як ... як! Блін! "

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

Вирішіть ці проблеми коник.

Або ні. Це інформаційна епоха. Зробіть мій друг. Зверніться до громад, таких як Stack, щоб сказати вам, коли ви дурні чи мудрі щодо чогось, що стосується коду, або чогось, що нам не так легко подобається махінаціям того інвестора, який готовий накрутити вас, а потім якийсь.

І поділіться тим, що знаєте. Участіть трохи в колективі, як тільки знайдете свою групу. Це не ковальство у 1700-х роках. Ваші батьки не повинні були нікого знати (хоча, безумовно, всі цінують, коли ви не прив'язуєте до себе майстерності та ділитесь з гільдією).

Ви просто вирішите, що вам цікаво, і ви йдете. Досить нахабне розширення прав і можливостей, коли він занурюється. Це займає деякий час (я знаю), але довіряй мені (якщо тільки на цьому, здавалося б, абсурдному - мені знадобилося більше десяти років, щоб зрозуміти, що так, я був вигадливим програмістом), все це Насправді важливо те, що у вас є базовий рівень талантів і що ви насправді зацікавлені. Якщо вас немає, ласкаво! @ # $ Off та знайдіть щось, що вас цікавить.

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

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


О, і діліться рішенням, звичайно, так що ми всі можемо пу-пу-бити, які нам не сподобалися.
Ерік Реппен

-2

Для наставника перейдіть на freenode (irc). Я клянусь, ви можете отримати більшість ступенів CS з цього місця, корисних на будь-якому рівні навичок. Саме там я багато чому навчився. Не має значення, чи людина перебуває на цьому каналі один раз або 24/7, це в реальному часі, і саме це враховує.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.