163

Будущим и начинающим программистам посвящается :)

Наверное я переживаю некоторый профессиональный кризис, но мне нестерпимо хочется поговорить об идеологии программирования, об опыте разных людей, а в Дании это не очень получается. Не заинтересованный там народ. Можно я тут немножко попишу? :) Комменты к другим постам как бы говорят о том, что людей, связанных с IT, на пикабу очень много.


Что бы вы стали говорить начинающим программистам, если бы вас попросили поделиться с ними своим опытом?


Я думаю, что вот мой список:


Не обязательно заниматься этим с пелёнок. Да, большинство людей в профессии - это те, кто в 10 лет на бейсике писал, но это не значит, что если вы этого не делали, от вас не будет толка. Для меня "способность к программированию" - это какой-то мифический зверь. Вам нужна способность к работе, готовность тратить много сил и времени и любовь к своему делу. А способности... не, ну здорово, если они есть.



Очень важно найти хорошего наставника/руководителя. Такого, который поверит в вас и даст вам задачи не просто, чтобы дырку заткнуть, а найдет такие, которые будут способствовать постоянному повышению квалификации. И если ради хороших задач вам придется ругаться с кем-нибудь (ну не до мордобоя конечно), лучше так, чем просидеть несколько лет, делая репорты. Удивительно, но за интересную работу нужно бороться. Сложнее всего вырваться из рутины первый раз, дальше в эту рутину вас уже не загонят.



Раз и навсегда забудьте о вражде между программистами и тестерами. Тестеры должны быть вам лучшими помощниками и товарищами. Именно они согласятся перепроверить в третий раз то, что вы должны были сделать еще вчера, именно они подскажут, как удобней и приятней работать с приложением. Именно они вместо того, чтобы писать гневные комментарии к критикал багам, придут и скажут вам "поправь быстренько еще вот это". И это совсем другие ощущения.



Это очень весело и здорово добровольно поработать 20 часов в сутки в молодости, коль проект интересный и захватывающий. Это даст огромный толчок и ни с чем не сравнимый опыт. А вот когда вы стали руководителем, вы должны сделать всё, чтобы ваша команда отдыхала, в том числе и такие бравые студенты :)



Никогда не используйте в спорах аргумент "надо делать так, потому что так написано в книге". Словами не передать как раздражают теоретики, прочитавшие очередной IT-бестселлер и теперь сующие прочитанное куда надо и куда не надо. Пока еще не написано ни одной книги, которая была бы панацеей. Всё должно применяться с поправкой на ситуацию



Очень важно понимать, что вам НЕ нравится в работе. Мой бывший коллега датчанин всегда задавал на собеседованиях вопрос "чем бы вы НЕ хотели заниматься?". По его словам его неприятно удивляло, когда человек не могу ответить или когда говорил "да мне всё норм". Если вы состоявшийся специалист, то не может быть такого, что вам нравится всё. Поэтому смело отвечайте "глаза б мои UI не видели", "настройка инфраструктуры - только не это", "алгоритмы - могу, но мне это не особо интересно".



Если к вам пришли с вопросом по проекту, не отвечайте "а хз, это вообще не моя ответственность". Пусть вашей ответственностью хотя бы станет поиск правильного человека, который сможет ответить на вопрос. Вам очки в карму капают и за грамотное перенаправление.



Рисуйте побольше. Для себя, без всяких там конкретных UML сущностей, просто для себя. Как взаимодействуют части системы, как передаются данные, всё рисуйте. И складывайте в ящичек, в какой-то момент это пригодится. И не только вам. Чем лучше и шире вы представляете систему, тем больше у вас шансов грамотно разруливать любые проблемы.

Дубликаты не найдены

+9

Пост любопытный, но это скорее субъективный опыт, который был успешным.

Дословно цитировать не буду, но с большего:


- найти хорошего наставника: наставник не панацея, насколько бы крутым он не был. Нужна тяга к знаниям, когда ты выуживаешь по крупицам полезную информацию из различных источников, не боишься сложных/непонятных поначалу задач. Собственно, самый главный/полезный совет, который можно от наставника получить - ты всегда должен суметь обосновать, почему этот код написан именно так, а не как-либо иначе. Ключевое слово тут - "почему". Ответ, что это копипаста первого ответа со стэковерфлоу не принимается:)

Также, в случае "менторства", неизбежно возникнет 2 серьёзные проблемы в будущем:

  1) Наставник опытный, он знает о возможных проблемах и предупреждает заранее, ты послушно усваиваешь и стараешься недопускать этих ошибок. Но этих подводных камней у каждого языка/технологии тысячи, и через какое-то время ты просто "закапываешься", пытаясь обойти все возможные будущие ошибки, начинаешь мыслить шаблонами, появляется так называемый "паралич анализа" и его очень непросто пересилить.

  2) Наставник тоже может ошибаться (и наверняка будет, идеальных людей пока не удалось сделать никому) и эти ошибки могут глубоко укорениться в твоём мышлении в будущем. Исправить то это можно, но переучиваться зачастую неприятно:)


- не используйте в спорах аргументы из книг - да, зачастую это так, но не все книги написаны теоретиками:) По джава, например, книге Джошуа Блоха можно доверять безоговорочно, так как к каждому тезису по несколько страниц объяснений этого самого "почему". Мне ещё учебники Блинова/Романчика понравились, хотя уже там при прочтении много и самому пришлось подумать.


- для программирования любой возраст подойдёт - да хрен там, чем старше становишься тем медленне скорость усвоения/понимания новой информации. Да, попытаться в 30+ можно, но без особой надежды на успех в коммерческой сфере. Разве что-то для себя писать для удовольствия. Но тут ещё и нужда играет роль - можно и в 50 за год стать профи, если кушать нечего:)

раскрыть ветку 7
+4

Я в 27 ушел из сисадминов в программисты. До этого только простейшие батники писал, да в студенчестве делфи изучали.

Сейчас пару лет, как участвую в разработке сайтов на php. Не исключаю, что потом перейду в другие сферы разработки. Оглядываясь назад, могу сказать, что я был так себе сисадмином. А программирование у меня вполне получается и приносит намного больше удовлетворения.


>чем старше становишься тем медленне скорость усвоения/понимания новой информации.

Вот не согласен. Это может измениться через 10 или 20 лет, но пока я с каждым годом только увеличиваю свою скорость обучения и все быстрее начинаю применять новые знания на практике.

раскрыть ветку 1
+3
участвую в разработке сайтов на php.

Программирование бывает разным. Из гуманитариев в наукоемкие сферы разработки вылезти действительно будет сложно, например.

+2

Наставник не панацея, я согласна. И я больше воспринимаю наставника не как технического наставника, точнее не только, как технического наставника. Очень важно и полезно, когда тебя в принципе направляют куда-то. Чуть выше ответила на другой коммент более подробно.


Может быть какой-то книге и можно доверять безоговорочно - конкретно про Блоха ничего не могу сказать, я в джаве ноль без палочки. Но опять же, можно сказать "вот, я там читал, там был дан такой пример, нам должно подойти потому-то". А можно сказать "я там читал". Вот второй вариант лично меня сильно раздражает.


Про возраст согласна. Я имела в виду больше такой момент: у меня на курсе практически все начинали программировать в младшей школе. А к первому курсу уже за плечами были олимпиады, относительно серьезные алгоритмы на С++ и.т.д. А я приперлась из школы (не Питерской даже) с экономическим уклоном, где самым сложным заданием на информатике было текст перепечатать в ворде. Ну вот в принципе первый курс - это еще допустимый возраст :)

раскрыть ветку 3
0

Автор, добрый день! Я сейчас студентка технического ВУЗа и с огромным трудом осваиваю программирование на Perl. Можно Вас спросить, сведущи ли Вы в этом вопросе и можете ли оказать некоторую помощь в этой области?

раскрыть ветку 1
0

Наверное первым пунктом было бы найти мотивацию и самоцель.

Ментор нужен только в ключе "направить" в нужную сторону, имхо.

0

По рукам будет бить и объяснять почему не нужно делать так как ты сделал. Лучше один раз по рукам получить, чем 10 раз об  этом прочесть ;)

+6

Согласен насчет наставника (а вот найти его отдельная проблема).

А так же насчет того, что не нравится (прям выделил мою проблему - UI, я тебя ненавижу)

+5

Кто хочет стать моим наставником? )) Я как раз только начал изучать Питон )

раскрыть ветку 10
+6

О, дай 5, дружище :)

+2

Присоединяюсь!

Иллюстрация к комментарию
раскрыть ветку 2
+2
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку 1
+1

По наставничеству не помогу, но книгу посоветую:

Beginner to Pro - Murach J., Urban M. - Murach's Python Programming (2016)


Сталкивался с книгой этих авторов по java - не самый плохой учебник (хотя и говнокодец малость присутствовал). Имхо, для старта в языке самое оно:)

0
Могу помочь, если есть реальное желание изучить язык :)
раскрыть ветку 4
0

можешь мне помочь (советом)?
Я изучаю HTML->CSS->Javscript.

раскрыть ветку 3
+3

Спасибо! Пишите, конечно, ещё статьи по ИТ! Было бы интересно узнать о различиях в ИТ сферах России и Дании.

+3
Очень интересно, спасибо :) Ну и конечно же продолжайте в то же духе, думаю так же будет интересен какой нибудь пост про Данию
+5

ИМХО главное в обучении программированию делать реальный код.
Не важно насколько он плох, если его используют то это принесет намного больше пользы. Чем писание академических программ по всем канонам.
Хотя наличие старшего товарища часто выручает.

раскрыть ветку 10
0
Тыщу раз плюсую
-1
Не важно насколько он плох, если его используют то это принесет намного больше пользы.

Заказчику - едва ли. Вы хотели бы попасть к врачу с таким подходом к своей работе?


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

раскрыть ветку 8
+1

Если код плох и не работает хочешь не хочешь придется его править и понимать как оно работает. Понятно, что с ментором все проще, но не всегда есть хороший ментор.

раскрыть ветку 5
0
То есть в тех проектах, в которых вы работали, вы всегда писали хороший код.. повезло, чего я могу сказать.
раскрыть ветку 1
+2

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

Сейчас один товарищ (профессиональный программист на С++ и С#) ради лулзов начал изучать Unreal Engine. Ну и, памятуя о моих попытках, меня позвал за компанию. Он, конечно, благодаря опыту очень быстро продвинулся. А я грызу вступительный мануал по движку на английском и потихоньку осваиваюсь. Пока получается, потом буду ему с играми помогать.

раскрыть ветку 1
0
понял, что ниасилю без наставника

Просто вам это не интересно.


Зачем вам нужно уметь программировать? Какие проблемы вы бы хотели решать с помощью этого?

+1

Большое спасибо за советы! Как раз плавно погружаюсь в IT

+1
> Раз и навсегда забудьте о вражде между программистами и тестерами
Не слышал о такой. В индустрии >10 лет.

> Для меня "способность к программированию" - это какой-то мифический зверь.
А если человек не может понять после нескольких часов разжёвывания, что такое scope of temporary, это таки есть способность или нет?
раскрыть ветку 10
+4
Вам значит повезло )

Я куда чаще сталкивалась с плохими объяснениями, чем с откровенно ничего не понимающими студентами. Я не говорю про случай, когда человеку это в принципе нафиг не надо
+1
QA - это прекрасная и необходимая профессия в современном мире. Но часто туда идут те, кто не потянул разработку. Это правда.
раскрыть ветку 8
0
Порог вхождения в QA гораздо ниже чем в разработку, и из QA потом часто выходят потрясающие девелоперы, они видели столько багов, сколько один кодер за всю жизнь не настрогает. =) Смотря в каком порядке приходить в IT
раскрыть ветку 2
0
Может быть. Но их задача ловить баги в твоём коде, чтобы сделать продукт лучше. Я не вижу причин враждавать по этому поводу. Оба работают на одну компанию, т.е. цель одна как бы.
раскрыть ветку 4
0

Добрый день!


Спасибо за пост.


Хочу, в частности, изучить Unreal Engine 4. Хочу творить комп. игры.

Но...где найти наставника? :)


Есть маленькая-большая мечта. Хочу руководить созданием комп. игр в будущем, т. к. у меня есть определенные идеи, но для их реализации нужны люди и деньги.


По какому пути мне лучше пойти?

0
"Раз и навсегда забудьте о вражде между программистами и тестерами. Тестеры ..." - не тестер, а пробник.
раскрыть ветку 1
+1

Калька с инглиша же.

0
В интересах учащегося в том числе увидеть, как осуществляется реальная разработка. И ощутить, когда, где, чем и ради чего можно жертвовать. Это ничуть не меньше, чем знание самого языка.

Ещё раз повторю, это мой личный опыт. Я в 17 лет на знала, чего в принципе можно пробовать. Поэтому мне такой человек был нужен
раскрыть ветку 3
0

Вы, должно быть, мне отвечали на #comment_79921944 ?


Вы правы, конечно. Но жертвовать - это не то, чему нужно учиться) Необходимость этого постучится извне уютного мирка сознания, по этому поводу можно не беспокоиться.


Я ни в коем случае не пытаюсь доказать что-то вам. Просто привожу свои аргументы и надеюсь услышать ваши. В такой дискуссии всегда есть возможность взглянуть на мир глазами и опытом другого человека и чему-то научиться. Срачи программистов в интернете могут быть не так глупы, как кажется с первого взгляда =)

раскрыть ветку 2
0

Эта необходимость постучится, тут вопросов нет, а вот как человек будет справляться с этой необходимостью - это другой вопрос. И мне кажется, что эта задача ничуть не проще, чем написание кода и решение конкретной девелоперской задачи.


На одном собеседовании (в T-systems, тут могу сказать куда, потому что собеседование было просто образцовым) меня спрашивали:
Представьте стандартную ситуацию: заказчик приходит к вам и говорит "мне срочно нужно вот эту задачу, через 2 недели, просто позарез", а вы понимаете, что эта задача на месяц. Что вы будете делать?


Если вопрос про то, чем жертвовать, задают на собеседовании в крупной адекватной компании, это как минимум значит, что он неочевидный.

раскрыть ветку 1
0

Ну, пост актуальный для любых профессий, подставь вместо "программировать" любое другое название работы. Прям универсальный шаблон.

раскрыть ветку 1
0

да, похоже на то :)

0

Спасибо за пост, только начинаю осваивать программирование.

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

Как быть, если такое невозможно?

раскрыть ветку 20
0

Если вы пишете реальный продукт, просто загружайте себя самыми сложными задачами. Найдите человека, с которым можно обсуждать решения, говорите, спорьте.. Мне кажется, что очень важно не сидеть в гордом одиночестве. Это не значит, что нужно рабочий день тратить на митинги, мать их за ногу, но обсуждать то, что вы делаете, очень важно

раскрыть ветку 19
0

Спасибо за совет! Пока еще ничего не пишу, а начинаю с азов, различных курсов и учебников. Много раз попадалось мнение, что в одиночку это все освоить довольно трудно.

раскрыть ветку 18
0
Ищу наставника ;)
Прошёл курс Python на Codeacademy, не знаю куда двигаться дальше
раскрыть ветку 1
0

Найдите самую толстую и современную из популярных книг по языку и...читайте ;)

0
Комментарий удален. Причина: данный аккаунт был удалён
0

Всё должно применяться с поправкой на ситуацию

и даже...... goto?

раскрыть ветку 11
+1

Для освобождения ресурсов, финализации, уничтожения объектов при ошибке и нормальном выполнении в С, постоянно использую.

0
Вот про goto я-то и забыла )) а в каких книгах сейчас про него пишут?
-1
Да - выход(переход к началу внешнего) из вложенных циклов.
раскрыть ветку 8
+1
Break, пожалуйста..
раскрыть ветку 7
0

дайте, дайте мне настроить вам инфраструктуру и ресурсы для нее, ДАЙТЕ!

не понимаю как от этого можно отказаться, любой говнокод прекрасен в прекрасном CI.

раскрыть ветку 2
0

а что делать, таким как я, у которых руки из жопы и которые Visual Studio ставят с пятого раза? ))

раскрыть ветку 1
+1

"У которых руки ......" За то вам удобно в нехороших людей какахами кидаться.


nobody's perfect

Иллюстрация к комментарию
-1
Зачем нужен наставник? Это тот, кто заменит книгу, интересную конференцию, ответит на глупые вопросы или заставит делать то, что не интересно?
Нет, я согласен, что общение с умными людьми - это прекрасно и мотивирует, но зачем возводить это в официальный статус и считать это чуть ли не залогом успеха? У вас же есть ютуб, стековерфлоу, куча доступной литературы и опенсорс наконец! Самое главное - это тяга к решению проблем. Без этого не помогут ни супер-наставники, ни интенсивы, ни сказки про сотни нефти в окладах крутых сеньоров.
раскрыть ветку 2
0

Если наставник толковый, то увидит, где стоит подкинуть задачку, где стоит наоборот сказать "не трать пока время". Такой человек может увидеть сильные стороны и очень мощно их развить. Может помочь найти то, что интересно, осознать, кем ты вообще хочешь быть и чем хочешь заниматься. Таких, правда, очень мало. Я встречала за свою карьеру троих

раскрыть ветку 1
0
наоборот сказать "не трать пока время"

Как такое возможно и зачем? Что значит "пока"? Знания программиста ценны полнотой и чем они глубже, тем лучше. Поэтому если есть желание, то всегда лучше впилиться и понять всё, это никогда не будет во вред.

Но если же наставник действует в интересах задачки на работе, а не в интересах учащегося, то тут такое верно (нужно "ехать", а не закладывать прочный фундамент), но к плюсам такое я бы не относил.


Может помочь найти то, что интересно, осознать, кем ты вообще хочешь быть и чем хочешь заниматься.

Ничего такого, что не мог бы осилить ученик самостоятельно. В этом даже есть недостаток: пробуя разное и собирая грабли ты расширяешь свой профессиональный кругозор и это ценно.

Похожие посты
Возможно, вас заинтересуют другие посты по тегам: