Интенсив «Шаблоны и анти-шаблоны дизайна». Загрузка прямо в мозг разработчика.

FAQ. Подскажите студенту. С чего начать?

Форум ДОУ наполнен приблизительно похожими вопросами новичков. Убедитесь сами www.developers.org.ua/search/?q=начать.
Сформулирую свою точку зрения по некоторым из них.

Мне 28 лет, работаю [поставьте свое], хочу попробовать программирование, у меня есть шансы?

Программирование можно сравнить со спортом. В спорте, чтобы были результаты, нужны годы усиленных тренировок. Чем раньше начнешь, тем лучше.
У вас есть время на тренировки?

Хорошо ли платят?

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

Правда ли, что нужно быть очень умным?

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

Я студент 4-го курса, хочу стать программистом. Какую технологию выбрать?

Прежде, научитесь пользоваться поисковиком, это важно.
Потом научитесь работать с кодом, этот навык один из самых главных. Достигается с помощью многих часов практики, чтения чужого кода и книг. Ключевые слова: ООП, паттерны, рефакторинг, тесты.
Книги. Читайте книги по программированию до тех пор пока не заметите, что информация в них уже начала повторяться и стало не интересно. Потом читайте другие книги (психология, дизайн, интерфейсы).
Развивайте и разгоняйте мозг. В этом, опять же, книги помогают. Мозг программиста — механизм для структурирования информации. Научитесь превращать хаос в продуманные логичные структуры.
Еще анлийский язык нужен обязательно.

По поводу технологий. Затрону мейнстрим.
Java и C# (энтерпрайз) популярны у аутсорсинговых контор. Теоретически будет проще найти работодателя (предлагаю в комментариях высказаться тех кто знает насклько просто с этими технологиями найти работу).
Python, Ruby, PHP — гораздо больше вероятность пойти работать в продуктовые компании, стартапы. Стартапы чаще всего берут именно эти технологии. Например, ДОУ написан на Python/Django.
Для меня лично, (я около 2-х лет на C#/ASP.NET работал) энтерпрайз технологии более тяжеловесные и менее эффективные, в отличии от скриптовых языков.

Objective C. Сейчас яблочная тема на пике, специалисты нужны, так что могут взять даже без опыта, лишь бы учились быстро.

JavaScript/HTML/CSS — то что нужно всем веб-проектам. А еще есть возможность писать десктопные и мобильные приложения и даже сервер-сайд. Короче, тут все бурлит и развивается, очень интересно. Мой фокус на этих технологиях. Присоединяйтесь.

У меня нет опыта, что делать?

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

Заведите себе Твиттер. Узнайте твиттеры самых крутых топовых программистов, фолавьте их.

У меня нет высшего образования, возьмут ли меня?

Да. Сделайте самостоятельно проекты и у вас гарантировано будет работа. Если вы школьник, не ходите в институт тут, сразу получайте опыт работы. Если очень хочется ВО, найдите возможность учиться за границей, там учат лучше. У нас в стране убогое, деградирующее образование.

Как узнать тяну ли я на Джуниора?

В аутсорсинге популярны различные звания: синиоры-помидоры всякие, тимлиды, систем архитекторы третьи и прочая ересь. Постарайтесь не воспринимать их всерьез. Они ничего не означают. Значение имеет только то, насколько знания и опыт позволяют вам создавать классные вещи.
Представьте, что вас вбросили в новый проект и вы за все отвечаете, вы знаете что делать? Оценивайте себя с этой точки зрения. Сделайте так, чтобы знали, что делать.

Может настать момент когда вы станете считать себя достаточно крутыми. Погуглите, там будут проекты, которые вам и не снились (есть, конечно, шанс, что вы будете автором одного из них, тогда да, поздравляю, Гвидо).

Сколько часов работать?

Все крутняки, которых я знаю, работают 24/7, ни минутой меньше. Человеческий организм творит чудеса. Поверьте, вам очень далеко до износа, так что, пока молоды — вкалывайте. Многие не знают, что так можно. А вот вы знаете, можно, я вам сказал.

И последний важный вопрос.

Виндовс или Мак?

Мак

Читателям предлагаю в комментариях предложить свои наставления новичкам.

  • Популярное

Лучшие комментарии пропустить

Я бы добавил, что программирование — это операции над абстракциями. Все, что делают программисты — это мыслят абстрактными категориями и управляют их поведением с помощью кода.

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

Вне мира IT ближе всего к этому математики, у них в этом смысле жизнь точно такая же. Неудивительно, что «математические» факультеты по сей день являются «поставщиками» программистов. Также сюда относятся и прочие физики, химики и другие естествознатели, им не привыкать пользоваться абстрактными категориями. Именно поэтому, кстати, очень важно закончить университет. Потому что это развивает мозг для операций над абстракциями (по меньшей мере). Утверждать, что ВУЗ — отстой, и туда не надо ходить, на мой скромный взгляд, крайне недальновидное суждение. Типа того, что если ты собрался боксировать — не надо заниматься бегом, бег не научит тебя бить кулаками. Надо, ребята, надо. Не только бегать надо, конечно, но это же базовая подготовка — без нее «высоко» не взлететь, «дыхалки» не хватит.

Джоел пишет, что есть две абстракции, которые «ниасиливают» большинство людей со слабым абстрактным мышлением — это динамическое программирование (динамические структуры данных — стеки, очереди, списки) и рекурсия. Таким образом, он считает, что это хорошие индикаторы для понимания способностей в абстрактном мышлении, и мне кажется, что это неплохая идея.В современном мире програмирования эти абстракции потеряли былой блеск, уже подросло поколение тех, кто никогда этого не делал, и считает, что это все унылый старческий отстой, типа ассемблера, к которому схожее отношение испытывало мое поколение выпускников. Этим людям я предлагаю занятся изучением абстракции под названием ООП, и их следствий — паттернов. Это, я считаю, абстракции нового времени, в которые надо обязательно хорошо «врубаться», если не хочешь всю жизнь быть «ремесленником» и пришивать какие-то левые плагины к сомнительным CMS и все такое, что вроде как делает тебя программистом, но только что-то никуда тебя в серьезные места не берут.

117 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
Извините, если подобное уже высказывалось, но вопросы вроде — что мне делать, чтобы работать у вас или как мне устроиться на работу программистом — считаю, что задают глупые люди. Те, которые прекрасно понимают суть профессии, могут самостоятельно понять, что все дело в знаниях и в опыте. Опять же и то, и другое — приобритаемые вещи, но не стоит сидеть, сложив руки, и ждать, пока вам прийдет куча предложений по работе. К сожалению, да, в настоящее время рынок программистов несколько перенасыщен, вернее спрос превышает предложение действительно качественных ресурсов. Как следствие, многие девелоперы считают себя талантливыми, но не представляют собой ничего существенного. За свою рабочую практику я видела разных специалистов: опытных при относительно молодых годах, вечных девелоперов и даже «старых» джуниоров. Поэтому считаю, что в отрасли нет никаких стандартов развития и оценивания ребят для того или иного повышения.

Сама я пришла в менеджмент проектов, не обладая практическими навыками. Более того за три года проектной деятельности я освоила бизнес-анализ (оказалось довольно легко) и менеджмент, прочитав по сути пару статей и одну книжку по управлению рисками. Я, конечно, не пропагандирую данный способ развития, но все же считаю его реальным. То есть у каждого в IT-сфере собственная дорога, нельзя заранее сказать, какая из них успешна и судить за отсутствием каких-то объективных критериев.

Все крутняки, которых я знаю, работают 24/7, ни минутой меньше. Человеческий организм творит чудеса. Поверьте, вам очень далеко до износа, так что, пока молоды — вкалывайте. Многие не знают, что так можно.

глупость полнейшая. Обязательно нужно отдыхать и высыпаться. Потому что долгий износ — приводит к хроническому недосыпу, если не хотите превратится в овоща — нужно спать по режиму. Кому-то нужно 8 часов сна, кто-то может обойтись 4-ю часами. Ни в коем случае нельзя игнорировать сон — это очень важно для здоровья и ума. Ну и не забываем, что в здоровом теле — здоровый дух.

Это обычная, стандартная, тривиальная, но переоцененная специальность.

Нет, это просто другие специальности _в нашей стране_ недооценённые.

>>Виндовс или Мак?
>>Мак
автор явно на своей волне, хотя некоторые вещи вполне правомочны и логичны. А еще есть такой язык — русский с пунктуацией, не сложнее явы или цпп, — но, увы, под силу не всем; зачастую жаль работодателей, которые берут на работу вот таких вот «человеков», знающих сиэсэс, хэтэмэлэ и уже решающих, как должен выглядеть веб-ресурс с его ляпами, за каторые никому не стыдно... ))). Как по мне — «к стенке» тупо за неграмотность и выставленный наружу «пофигизм».

Мак или ПиСи? Афигеть....А может, ни то, ни другое? Почему не Фря? Почему не Линух?

Статья сплошь юношеское блатовство, не более, хотя поулыбался — спасибо, вспомнил юность и «те ще» проекты.

Горю издательством и автоматизацией этой сферы. Уже лет 8 как занимаюсь только этим. Помнится, даже книжка (в журнале) вышла, читал свое же недавно — смеялся как сейчас))

Почему Ява? Почему Мак?

Фигня какая-то (хотя связка ПиСи-Мак — конъюнктура моего текущего проекта... Это интересно, но пуп Земли не в этом... хотя... я бы апеллировал бы скорее к заявленным перспетивам Adobe, нежели оставался бы голословным приверженцем собственных комплексов): где-то прокатит даже дохлый VB6 или идеал примтитивизма JS, так самоотверженно продвигаемый Адобой, где-то — PHP, а где-то — вообще VBA в виде макросов в рамках рабочего пространства организации — решают не амбиции подростка, а техзадание со сроками жизни составляющих этого проекта, а также незыблемый и скупой оун-кост и ретерн-он-инвестмент: достаточно хотя бы раз сесть за стол переговоров при оформлении проекта с необходимостью жесточайшей аргументации каждого решения, чтобы понять, что указанными платформами и/или ЯПВУ дело вряд ли ограничится, и не нужно вводить молодежь в заблуждение: каждому овощу — свое время, и даже горячо нелюбимый автором Си Диез прокатит (это я формально), лишь бы это было оправдано технологически или явно говорено ответсвенным за проект лицом (честно — такой ситуации еще не было). Решают следующие вещи:

— время разработки (это чуть ли не самый важный фактор для заказчика, господа — не баблосы, а тупо время реализации его, заказчика, планов)
— качество продукта/соответствие ТЗ и требованиям кастомера (требования кастомера «читаются» по тенденциям рынка энтерпрайз-ПО — CRM/ERP/MRP, а также вся эта иная ахинея типа QM, SCM и пр.), но не все озвучивается закказчиком: следует предвидеть, ну хотя бы на пару лет вперед... ИМО, программер вынужен «вшивать» гибкость изначально исходя из потенциала «взросления» клиента.
— стоимость проекта (сразу умножаем на 1.5-2.0); знание конкурентного рынка в эквиваленте казначейский билетов и идентичного функционала
— «восприимчивость» пользователем/фактор саботирования/умение с этим бороться (у меня — свое решение вопроса))).

— умение продать себя (или проект)....)))

Ну и причем тут язык? Важно (автор прав!!!) мыслить «программистски», а вот диалект — вторичен: повторюсь: всему своя ситуация...

>>

разработчик способен управлять потоком своих задач, отчасти — быть менеджером проекта по достижению некой цели путем реализации N фич

100% истина. Прописная)) Почему-то автор при провозглашаемом опыте не учел элементарной вещи: программирование — способ мыслить, язык программирования — не более чем инструмент материализации программерской мысли... Следование какому-то одному языку — признак девственного ребячества, ИМХО.

+1, по поводу блатовства, вон когда айпадик прикуплю, ваще пациком буду

Я тоже запланировал нечто подобное))

Я считаю, что нужно четко понимать зачем. Не программировать ради программирования, а представлять конечную цель и выбирать соответсвующие инструменты. Ориентация на цель очень поможет, например, при определении набора фич, распределении приоритетов задач и багов. Пробовать языки, технологии, анализровать и критически воспринимать получаемую информацию. Не слушать с открытым ртом, что язык XX — круть, а, хотя-бы, спросить почему.

ЗЫ: Не верю про 24/7. Быть продуктивным 24 часа в сутки — не реально, можно сгореть за короткое время, а потом лечить нервный срыв. Может, подразумевалось, что человек доступен 24/7 для решения срочных вопросов (телефон, мессенджеры и тд)?

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

FAQ. Подскажите студенту. С чего начать?
Считаете, что закладывать с начала проф карьеры ориентацию на цель не стоит? Наобезъянить технологию и язык бездумно?

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

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

Фокус на цели, сам по себе, так же бесмысленнен как и замыкание на средтсвах. Мое высказывание сводилось к тому, что выбор средтсв должен определяться целью и, следовательно, важно понимать цель до выбора средств, а тогда большая часть вопросов «что?» и «как?» могут отпасть сами собой.

В какой вашей отрасли нужны только разработчики? Неужели так критично набирать только высококвалифицированных, дорогих специалистов-разработчиков на все роли проекта? И в ка��ой отрасли могут тогда работать простые программисты?

ответ на ваш комментарий был в поддержку оного, конкретно — высказанного тезиса:

Не программировать ради программирования, а представлять конечную цель и выбирать соответсвующие инструменты.

насчет пересечения-непересечения — абсолютно непонятно, откуда вы это взяли :)
фокус на цели позволит выбрать оптимальный путь её достижения в русле потребностей (именно потребностей, не требований) заказчика. ну или у нас тогда совсем разное понятие фокуса :)

в отрасли разработки ПО нужны разработчики :) почему я разделяю программистов и разработчиков? разработчик способен управлять потоком своих задач, отчасти — быть менеджером проекта по достижению некой цели путем реализации N фич. программист в основной массе — не способен это делать, ему нужно целеуказание, помощь в принятии решений (связанных с бизнесом) и т.д. надеюсь — позиция понятна :) один квалифицированный разработчик эффективнее связки менеджер + несколько программистов, илилили?ли?менеменеджера — как раз

Не верю про 24/7. Быть продуктивным 24 часа в сутки — не реально, можно сгореть за короткое время,

поддерживаю.

if (job==life) {

ты = проц;
boolean sad = true;
}

в целом, статья очень нужная и назревшая.

Я знаю умных инженеров, химиков и физиков, которым платят порой в несколько раз меньше чем посредственным программистам

Это в нашей ... стране, поскольку наука не нужна государству, а коммерческих предприятий, основанных на этих областях знаний не так уж и много, и им хватает по три с половиной химика на предприятие. Зато в программисты можно пойти с девятого класса, как в ПТУ, или даже прочитать три книжки и два туториала и спокойно себе фрилансить.

Выскажусь и я :-)

По п.1 я бы ответил так: если в 20 лет ты ещё не программируешь — лучше поищи себе другое занятие. Ибо чтобы быть хорошим программистом, нужно постоянно учиться и развиваться, а это возможно только когда человека «прётъ» программирование, а значит, к этому возрасту он уже хоть что-то пробовал писать.

Ну и отдельным пунктом бы вынес: учите английский. Ибо даже в украинских серьёзных компаниях в требованиях к кандидату — English.

Зачем такое пишите? 20 лет, 20 лет.... А чё не 13 например?

Топикстартер — пробуй и всё получится.

Лозунгов «Пробуй и всё получится» недостаточно для ДЛИТЕЛЬНОГО результата. Требуется ещё постоянный упорный труд. Когда есть УВЛЕЧЁННОСТЬ, упорный труд — не в тягость. Таким образом, увлечённость (то, что я назвал «прётъ») является важным фактором. Так я думаю, и это ответ на вопрос «Зачем такое пишЕте?» :-)

На второй вопрос: 20 — это значит, что человек уже закончил школу, начал взрослую (или вроде того) жизнь, принимает какие-то решения. :-) А в детстве и юности («в 13») увлечения меняются довольно часто, и я не считаю, что их стоит воспринимать как окончательные и «судьбоносные».

«Мы в 14 лет знаем все, что нам надо знать».

В 13 у меня еще не было своего компа, но я хотел писать. Поэтому ходил в кабинет информатики после школы и ковырялся в турбо паскале.

Еще в 13 я начал слушать рок, и до сих пор. Так что, про судьбоносные решения — очень спорное заявление.

Вот об этом я и говорю. Даже если компа нет, но есть УВЛЕЧЁННОСТЬ — то и возможности найдутся, и лень преодолеется, и повышать свой уровень будешь.

В принципе аналогично, за исключением рока, вместо которого у меня окалася конкретный тяж. С возрастом вкусы мутировали, но тенденция, заложенная в 13-14 лет, сохраняется до сих пор.

Насчет судьбоносности решений: +1

повышать свой уровень будешь.

Я ж говорю — счастлив тот, кто увязал хобби с профессией. Это — наиглавнейший стимул: Желание развиваться, неподвластное никаким рамкам и стереотипам. Увлеченность порождает здоровый фанатизм, а он — достижения.

Провтык с «пишете» вышел ;)

А если чел. в 20 еще чего-то не начинал так что? Тоже искать другое занятие? А в 30 например своего дела не было. Забить и на это?

Нет, я говорю только о программировании. Компьютеры — это то, с чем мы сталкиваемся практически каждый день. Если до 20 лет они человека не увлекли, то вряд ли увлекут вообще. Хотя, конечно, есть и исключения.

P.S. Оффтопик, но всё же напишу, насчёт своего дела. Рекомендую книгу Бакшта «Как загубить собственный бизнес», в ней описаны типовые ошибки, т.е. книга может помочь избежать их :-)

спасибо! найду — прочитаю

хорошая книга

еще у него есть хорошая книга про то как управлять временем и деньгами, называется «Вкус жизни.»

я бы ответил так: если в 20 лет ты ещё не программируешь — лучше поищи себе другое занятие.

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

ПыСы ту сэконд сентенс: Программинг прет!

А тут не о чем спорить. :-) В п.1, о котором идёт речь, человек задаёт вопрос: «хочу попробовать программирование, у меня есть шансы?». Если тебя «прётъ» программирование, то ты будешь заниматься ним, несмотря на возраст, и уж тем более не будешь задавать указанный в п.1 вопрос :-)

Форум ДОУ наполнен приблизительно похожими вопросами новичков.

Вы думаете если они не в состоянии найти подобные темы на форуме, которых сотни, то они заглянут в Ваш FAQ? :D

Виндовс или Мак?

Linux.

«„„Если вы школьник, не ходите в институт тут, сразу получайте опыт работы. ““»

Категорически не согласен — ВО нужно. Но паралельно с ним можно и нужно работать, если есть возможность. Особенно хорошо, если программист в вузе участвует в различных олимпиадах — тогда и на практике он справляется с задачами намного быстрее своих коллег.

Поддержу. Так как ВО, особенно полученное в нашей стране, дает базовые академические знания направленные восновном на решение задач «сферического коня в вакууме». И не имея нужного, такого ВО которое сейчас я бы хотел иметь, периодически сталкиваюсь с тем что не хватает у меня каких то глубинных базовых знаний. Хотя опыта работы уже и не мало, но всеравно попадаются такие задачи с которыми раньше и приблизительно не сталкивался. И решения приходили бы намного быстрее если бы было спец. ВО. А так приходится учить все кусками на ходу в сжатые сроки.

Классная статья! Мотивирует. А что на счёт C и C++? Про них не сказали. И, да, если я только школьник, ко мне всё это подходит? Или пока мне сидеть изучать теорию и писать «для души»?

не уверен, что начинать стоит с С и С++

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

Нет, начал я не C++, а с Basic’а. А за совет спасибо. Сейчас изучаю алгоритмы.

<p>Жалеть будешь, если зациклишься на философии и пофигизме «барсика» )))</p>

как раз C/C++ довольно хороший вариант, если разберешься с ним без труда переходишь на любой другой язык
сам с 10 лет на нем сижу, в районе 17 лет легко освоил PHP, JS, C#, AS3, Perl и вообще стало не важно на чем программировать, соглашусь с тем что язык программирование всего лишь диалект программистской мысли

А каким образом проект можно придумать? А то совсем идей нет.

мда...постановка вопроса уже хороша)))

Думаю, должно прийти само... Ну хотя бы в процессе изучения языка.

Это офигенная статья! Уж точно за долгое время не видел ничего лучше.

Обалденная статья!
Прямо энергией еще больше зарядила!

Пошел писать код.

24/7 — правда. Mac и Linux, ибо да.

Английский — обязательно. Читать книги, изучать тренды, делиться опытом.

Не, ну а в чем прикол вот обязательно провоцировать читателей? Ну в чем понт «Виндовс или Мак». Конечно Мак, на нем так удобно девелопить на .NET! Ну или конечно, Windows, пока сможешь на нем поднять apache, git, php, mysql, натрахауешься так. что уже почти станешь сениором. Ну или конечно Mac — один запуск его и осознания его клевости повысит твои скилы и мотивацию во всем до +20.

ну, те кто поняли, что это провокация, не поддались :)

Я до сих пор не могу найти адекватную замену N++ для мака... =)

очень правильно все написано.

Виндовс или Мак?

Linux! Программист не дизайнер, там и софта полно (бесплатного) и работать удобней :)

руби на винде — адский ад.

Надо «закрепить» эту статью первой строкой на форуме, что бы не плодить такие темы раз в 2 месяца.

Виндовс или Мак?

Вот тут конечно же что бы понять как оно все работает лучше Линукс (это будут лучше для профессионального роста), при этом какой-то федора или генту. А после года двух можно пересесть на более дружелюбные к пользователю Убунту или Мак, на Винду не захочетсо :)

Ну Ви порівняли Федору з Генту. Тоді вже Gentoo, Slackware, LFS. Хоча я б радив для початку менш радикальні: Дебіан, Федора, Арч — в залежності від особистих вподобань. А після року-двох на них точно не захочеться пересідати на Мак чи Убунту.

А взагалі розуміння «як воно працює» потрібно тільки системним програмістам. Решті потрібен зручний інструмент.

Да, это немного не корректно.
Я имел ввиду брать самый “НЕ юзерфрендли” (с точки зрения простого пользователя, не программиста). Наверное, ваша рекомендация

Дебіан, Федора, Арч
лучше.
А після року-двох на них точно не захочеться пересідати на Мак чи Убунту.
Ну мне захотелось после нескольких лет.
А взагалі розуміння “як воно працює” потрібно тільки системним програмістам.
То есть веб-деву не надо понимать, хоть базово, как настроить апач, или СУБД, или как организована ФС?

> Ну мне захотелось после нескольких лет.

Звідки куди? Якщо Убунту, то це просто глючний Дебіан. Мак — ОК, можу зрозуміти, але такі речі, як відсутність славнозвісного ШГ мені байдужі.

> То есть веб-деву не надо понимать, хоть базово, как настроить апач, или СУБД, или как организована ФС?

Треба, взагалі треба вміти налаштувати веб-сервер, я неправильно Вас зрозумів. Я вів мову про LFS-like чи kernel developer-like розуміння системи.

До речі, я люблю Дебіан за те, як там добре розподілені файли різних призначень. Порівнюю з Федорою, більше ні з чим особисто справи не мав.

Звідки куди?

С федоры, на убунту (в 2008 году), потом на Мак (недавно).

Якщо Убунту, то це просто глючний Дебіан.

Тут я немного не согласен, но это уже совсем другая тема.

Я вів мову про LFS-like чи kernel developer-like розуміння системи.

Нятно. Кстати, хоть пару зраз руками собрать и обновить ядро тоже помогает в достижении просветления ;)

> Кстати, хоть пару зраз руками собрать и обновить ядро тоже помогает в достижении просветления ;)

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

Offtopic

Кнопка «F like» глючить начала под маковским Хромом (это к вопросу о предпочтениях)

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

> Ключевые слова: ООП, паттерны, рефакторинг, тесты.

Уточню: це ключові слова сучасних технологій і способів розробки (це не стосується патернів взагалі, але стосується конкретних патернів). Ключові слова програмування: алгоритми та стуктури даних (Д. Кнут). Що не означає, що перелічене не потрібно знати професійному програмісту, особливо поширені патерни та ООП.

> Если вы школьник, не ходите в институт тут, сразу получайте опыт работы.

“хо́дите”, а то дехто зрозумів як заклик до всіх не отримувати вищу освіту.

> Сколько часов работать?

Доки працєте продуктивно, якщо це творча робота. Робити перерви, особливо коли “не йде”. Найчастіше програмісти говорять, що працюють 4-5 годин на день. Лінус Торвальдс пише про сон не менше 10-ти годин. Але все залежить від індивідуальних особливостей.

> Виндовс или Мак?

Це як “десктоп чи ноутбук”. Якщо розроблювати під Мак або продукцію Еплу — Мак (вони інструменти випускають тільки для Mac OS X). Під вінду — вінда. Під сервери — серверна операційна система (Linux (CentOS, Debian) або FreeBSD). Веб-програмування — що зручніше (Debian GNU/Linux :-) ). А для ігор A-класу — вінда або ігрова консоль.

> Python, Ruby, PHP

PHP користується значно більшим попитом, має багато готових CMS, багато готового коду для копіпасту і вимагає менше знань для початку. Python та Ruby набирають попит, але готового конструктору з компонентів на них зараз не знайти, тільки фреймворки для власного коду. Але якщо саме фреймворк для чогось складнішого за сайти-візитки і потрібен — у PHP жодних переваг. Python до того ж часто застосовується поза веб-програмуванням.

> HTML/CSS

Цей напрямок (називається простою мовою “HTML-верстання”) користується попитом, але цим можна займатись і без програмування або з зовсім початковими знаннями JavaScript на рівні мавпи.

Яку мову вчити першою?

Якщо через короткий проміжок потрібно заробити на цьому якісь гроші — PHP. Швидко вчиться і користується попитом, хліб буде з маслом. Якщо є трохи часу на академічний підхід — Pascal. Бажано не Delphi і не FreePascal, тільки Borland Turbo Pascal і command-line interface. Раджу книгу Фаронова, можна з Turbo Pascal 7.0 (з підтримкою ООП), цю версію його книги вже радили вище. Це спрямовано на те, щоб відразу привчитись до хорошого стилю в усьому — інакше потім програмісти пишуть добре тільки тоді, коли за ними слідкують.

Далі по коментарям.

> > В мире пока что дефицит на программистов.

> Я бы сказал “на хороших программистов”.

Навіть прийнятних програмістів. Часто бачу код неприйнятних.

> Из книг только основы, книги не успевают за новыми технологиями, читайте Хабр, ЛОР, гугл и прочие ресурсы

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

> Джоел пишет, что есть две абстракции, которые “ниасиливают” большинство людей со слабым абстрактным мышлением — это динамическое программирование (динамические структуры данных — стеки, очереди, списки) и рекурсия.

У нього це “покажчики (pointers) та рекурсія”. Це вже якийсь тест на професійну придатність, але якщо це зрозуміло, це може означати тільки потенціал стати хорошим програмістом. Зауважу, що рекурсія актуальна для всіх і завжди, іноді навіть з’являється несподівано для непідготовленого програміста при обробці подій.

Сорі за довгий пост, не чекав від себе.

>> Python та Ruby набирають попит, але готового конструктору з компонентів на них зараз не знайти

ересь

Це добре, якщо я написав єресь. Може підкажете щось рівня Drupal: реальні типові проекти можна наклацати у веб-інтерфейсі?

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

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

не спора ради, существует spree для создания интернет-магазинов, вполне себе.

Не можу знайти, Ви не могли б дати посилання, будь ласка?

Дякую!

Якось я його у DuckDuckGo пропустив, тупію.

конструктор для людей, которые не умеют программировать, ага?

Rails + gems решают.

Ага. Саме це і потрібно (не мені, а взагалі, для деяких категорій проектів).

Ніколи не мав сумнівів у тому, що Rails+gems вирішують (проблеми), але не знав, що є достатня кількість gems, які можна об’єднати без програмування. Ви ж про це вели мову?

які можна об’єднати без програмування

я не понимаю, вы пишете код или собираете сайты за 300 гривен? Вопрос стоит некорректно. В стандартном rails-приложении уже задействовано минимум 5 джемов, а я ведь только запустил одну команду.

Вы, пожалуйста, определитесь, что вы хотите. Использовать библиотеки под конкретные задачи или долбить в джумлоподобные “плагины”, которые “скачал и ничего делать не надо”

Я багато чим займаюсь, в тому числі і «сайтами за 300 грн.» Це не важливо, йдеться про FAQ, і я намагався розписати ситуацію для новачків. Ви сказали, що я помилився, але мені починає здаватись, що Ви у такий спосіб просто нав’язуєте свою термінологію. Пояснили б відразу, що Ви вкладаєте в поняття «конструктор» сенс «конструктор з напилком» і ми б не втрачали даремно час і записи у БД цього сайту.

Python та Ruby набирають попит, але готового конструктору з компонентів на них зараз не знайти

разница в подходе. Вы говорите, что нет конструкторов. Нет тех конструкторов, которые привыкли использовать в джумле-друпале и прочих монстрах.

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

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

OK.

Python та Ruby набирають попит, але зараз немає написаних на них аналогів до популярних конструкторів з готових до використання компонентів, на зразок Drupal та Joomla, тільки фреймворки для власного коду.

Це виправлення було варте дев’яти постів?

Тільки питання про 28 років трішки двозначне. Стати професійним спортсменом, почавши у 28 — неможливо (просто через фізичний вік), а програмістом — абсолютно спокійно, якщо «тренуватись».

28 для тяжа или лучше пример — регбиста — это совсем не возраст.

снукер и шахматы тоже спорт)

в процессе чтения комментариев появилось еще одно дополнение — читайте комментарии и критику к статьям, избегайте «синдрома утенка» :)

За время учёбы и своей уже 6-тилетней карьеры в IT, я _полностью_ прочёл только одну книгу непосредственно по «технической» стороне программирования (не считая всякой лёгкой беллетеристики типа «Лучшие примеры разработки ПО») — это «Turbo Pascal 7.0» Фаронова (её зато до дыр зачитал в самом начале обучения). Считаю, способ обучения путём «чтения огромного числа книг по программированию» сильно переоцененным. Знаю множество примеров людей, которые читали Страуструпа, Александреску и Кнута от корки до корки, но пользы им это не принесло ни грамма (не стали программистами, или стали посредственными программистами). Наиболее эффективным способом обучения считаю постановку практической задачи и последующую работу по её выполнению, с тем, чтобы получать необходимые знания в процессе. Конечно, искать эти знания можно и в книгах, но куда лучше для этого подходят отдельные статьи, посты на форумах и stackoverflow в Интернете. Книга изначально может дать какой-то толчок, но тупо читать и читать, даже только общепризнанные бестселлеры, во-первых, никакого времени не хватит, во-вторых, куда важнее набивать собственные шишки.

Но, оговорюсь, что люди, конечно, бывают разные: кому-то может как раз и нужно Кнута читать до полного просветления.

нужно было читать таких авторов как Фаулер, Макконнел, Мартин, Гамма и Эванс

Вот я ж и говорю, никакого времени не хватит :)

Лучше сократить Хабры, видео-касты и прочие «быстро-обучающие» материалы, ибо всё это постоянно меняется. А вот алгоритмы, паттерны, книги типа «Effective C#» и проч. — можно, сказать, вечны (в масштабах «программистской карьеры»). :-)

«Effective C#» вечен, но вечен ли C#? :-D

Поймите, в чём ваша роль в бизнесе, зачем вы нужны, за что вам будут платить эти деньги. Забудьте за деньги и поймите, в чём ваша ценность, что вы делаете такого исключительного или выдающегося, что приносит предприятию ПРИБЫЛЬ, ну или по крайней мере, значительно сокращает убытки. Именно так на вас будет смотреть достойное руководство.

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

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

Я знаю умных инженеров, химиков и физиков, которым платят порой в несколько раз меньше чем посредственным программистам

Ну а асенізаторам в Європі платять більше ніж програмістам (там же).

І чесно я не бачу прямого звязку між оплатою праці та IQ.

Это обычная, стандартная, тривиальная, но переоцененная специальность.

Тут важливо розуміти відмінність між «кодер» і «програмер». Перший — це високотехнологічна печатальна машинка з тисячами років еволюції «за спиною». Такому скажеш: «потрібен парсер» і він за день напише CSV парсер.
Другий — це та сама машинка, але з функцією «думати». І парсер так просто не напише, тому що захоче дізнатись який саме формат (а може у нас і не CSV?), де і як він буде використовуватись і т.д. В результаті часу витрачено більше, але продукт буде тим чим він і має бути, а не просто «прикольним кодом з усіма існуючими паттернами в одному класі на 200 строк».

В розробці _обовязково_ потрібні і перші, і другі. АЛЕ у кодерів максимальна зарплата буде нижчою, так як існує висока конкуренція.

Все крутняки, которых я знаю, работают 24/7, ни минутой меньше. Человеческий организм творит чудеса.

Чудеса — це круто, але такими порадами краще не розкидуватись. Я можу привести декілька прикладів (включно з собою), коли організм просто «задовбався» творити чудеса :( Тоді стає зовсім не весело і це ніяк не можна вилікувати простим прийомом вітамінок на вихідних.

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

Я бы добавил, что программирование — это операции над абстракциями. Все, что делают программисты — это мыслят абстрактными категориями и управляют их поведением с помощью кода.

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

Вне мира IT ближе всего к этому математики, у них в этом смысле жизнь точно такая же. Неудивительно, что «математические» факультеты по сей день являются «поставщиками» программистов. Также сюда относятся и прочие физики, химики и другие естествознатели, им не привыкать пользоваться абстрактными категориями. Именно поэтому, кстати, очень важно закончить университет. Потому что это развивает мозг для операций над абстракциями (по меньшей мере). Утверждать, что ВУЗ — отстой, и туда не надо ходить, на мой скромный взгляд, крайне недальновидное суждение. Типа того, что если ты собрался боксировать — не надо заниматься бегом, бег не научит тебя бить кулаками. Надо, ребята, надо. Не только бегать надо, конечно, но это же базовая подготовка — без нее «высоко» не взлететь, «дыхалки» не хватит.

Джоел пишет, что есть две абстракции, которые «ниасиливают» большинство людей со слабым абстрактным мышлением — это динамическое программирование (динамические структуры данных — стеки, очереди, списки) и рекурсия. Таким образом, он считает, что это хорошие индикаторы для понимания способностей в абстрактном мышлении, и мне кажется, что это неплохая идея.В современном мире програмирования эти абстракции потеряли былой блеск, уже подросло поколение тех, кто никогда этого не делал, и считает, что это все унылый старческий отстой, типа ассемблера, к которому схожее отношение испытывало мое поколение выпускников. Этим людям я предлагаю занятся изучением абстракции под названием ООП, и их следствий — паттернов. Это, я считаю, абстракции нового времени, в которые надо обязательно хорошо «врубаться», если не хочешь всю жизнь быть «ремесленником» и пришивать какие-то левые плагины к сомнительным CMS и все такое, что вроде как делает тебя программистом, но только что-то никуда тебя в серьезные места не берут.

Лёша — плюс 1000!

Не ходить в ВУЗ, это очень модная и мало чем оправданная тенденция для программеров.

Оправданная, ещё как. Дело не в ВУЗе, как таковом, а в конкретных украинских ВУЗах. После 2-го курса, мой ВУЗ не дал мне почти ничего, кроме навыков по сочинению пояснительных записок, не имеющих ничего общего с действительностью, симуляции научной деятельности, которой у нас в ВУЗах в основном и занимаются (конечно, есть и исключения), и других полезных навыков по вешанию лапши, замыливанию глаз и «решения вопросов» ради получения зачёта и оценки. Этому всему в ВУЗах Украины учат хорошо, справедливо полагая, что именно эти навыки востребованы в стране в текущий исторический момент. Выполняют, так сказать, общественный запрос.

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

Ну так может есть еще какие-то варианты? Может, раз ВУЗ не может предложить, так сходить в школу еще или в ПТУ? Может люди, которые в этом понимают и готовы делиться знанием — они где-то в других местах тусуются? Не в ВУЗах?

Так надо туда идти, конечно!

Ах, как остроумно. Я всего лишь озвучил свой и не только свой опыт. Какая-то стартовая площадка, конечно, нужна, и ВУЗ для этих целей вполне подходит. Но 5 лет там точно нечего делать.

Самое главное, что дал вуз лично мне за 5 лет (хотя скорее за 3, дальше я уже работал) — это сообщество людей, которым программирование было интересно так же, как и мне. В группе, на потоке, в общаге. Эти дружеские связи помогали нам всем расти и двигаться вперед, мотивировали нас. Мы и сейчас поддерживаем отличные отношения. Так что вуз — это не только базовые знания или «дыхалка» (отличная аналогия!), которые вбивают(ся) в голову, а еще и плодородная почва, в которой может прорасти зерно вашей профессии.

украинский ВУЗ — отстой, с крайне низким КПД, если учиться, так учиться серьезно, а не терять время

если постараться, можно изыскать возможность поехать учиться в зарубежный институт

«ВУЗы отстой, нечего в них ходить»

и

«Украинские ВУЗы отстой, лучше учиться в зарубежных»

есть разница?

в статье было

не ходите в институт тут

возможно, слово «тут» не совсем очевидно транслируется в «на Украине», но подразумевалось именно это :)

Я и говорю — глупость, в институт надо ходить, понятно, что они не все одинаковые, надо постараться попасть тот, что получше. В какой уж получится — это дело такое.

А то складывается впечатление, что «не ходить в ВУЗ вообще» — это такой другой ВУЗ, где вас научат лучше, чем в любом украинском ВУЗе. Так что не ходите в институт тут.

Виндовс или Мак?

Линукс:)

Сколько часов работать?

Больше ~6 часов, именно работы, уже не продуктивно, лучше отдохните

... книги ... книги ... книги

Из книг только основы, книги не успевают за новыми технологиями, читайте Хабр, ЛОР, гугл и прочие ресурсы

... Твиттер ...

Твиттер не нужен, Google Reader лучше зеведите

Насчет мака — не согласен. Даже под iOS можно писать в VS.
Скорее вопрос в том, что удобнее — стоит попробовать Win, OSX, Linux, чтобы выбрать удобный инструмент для себя(да, ОС тоже инструмент, имхо)

P.S. Если бы я не попробовал работать на маке, я бы не перешел на убунту :)

P.S. Если бы я не попробовал работать на маке, я бы не перешел на убунту :)

То есть мак оказался настолько плох? ;-)

мак оказался настолько неудобен для меня :)
сейчас использую три системы — мак на работе(такова селява), убунту — дома для работы и винду — дома для игрушек(хотя планирую купить консоль и снести винду КЕМ :)

Даже под iOS можно писать в VS

и как же? =)

VS бралась как наиболее известная IDE под Win — удобный редактор кода и т.д.
а сборку можно настроить практически чем угодно

P.S. смысл в том, что разрабатывать под любую конечную платформу можно на любой платформе: Win, OSX, Linux. Это вопрос удобства и привычки

> В мире пока что дефицит на программистов.

Я бы сказал «на хороших программистов».

> Если вы школьник, не ходите в институт
Смело. Нормальные конторы смотрят на наличие диплома (хотя бы бакалавра).

ИМХО. Институт важен для развития человека. Даже с тем уровнем, что в Украине.

> пока молоды — вкалывайте

Больше похоже на шутку. Вообще то без отдыха долго и эффективно работать вряд ли получится.

Во-первых, обьясни зачем ты тогда учишься в ВУЗе?

Во-вторых, ты наш питонодевелопер интерестед ин хайлоад системз, ты бы хоть узнал как пользоваться декоратором staticmethod в питоне — github.com/...e807630c8#L2R52 а потом уже рассказывал о тысячах предложений о работе из-за рубежа (небось эпамчик написал, они сейчас на ключевое слово Python реагируют безоговорочно). И это, признаюсь честно, был твой первый коммит в который я тыкнул. Страшно продолжать.

Наверное это другой Павел Бэгвелл — pbagwl.moikrug.ru

Я, между прочим, ткнул тебе на конкретную ошибку, которую ты даже не потрудился заметить. И что такое fork я знаю получше твоего, видимо, пушо pull request ты так и не сделал. Ну и мопэд не твой, а патч твой. И код неверный тоже твой.

У меня много где хелоуворлды, но при этом я тут не бросаюсь фразочками хайлод, носкуль, монга, скейл и прочее, хотя мог бы.

«Обучаюсь заочно», оказывается, = «я еще думал о поступлении». Тогда, наверное, «я сейчас работаю» тоже означает совсем другое? ;-)

Давайте все таки не травить парня.

Всë равно немного странно с уверенностью раздавать советы налево и направо в 18 лет. Ну т.е. я понимаю, мозг — он и в 18, и в 25 работает, но есть еще такая штука, как опыт. Каждый решает для себя, но советы всë же надо давать на основании опыта, а не умопостроений, правда? На основе умопостроений можно высказывать мысли, давать какие-то идеи, что ли.

Я, например, считаю, что наша вышка — это не так и плохо, откровенно говоря. Если б я не провтыкал весь универ, я б сейчас куда лучше знал те области, в которых разбираться по блог-постам напряжно; но это уже отдельная тема, каждый сам изобретатель своих проблем.

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

Да, но рейтинги — очень странная вещь. Кроме того, это очень усреднëнная вещь. Можно судить на основании опыта, и вот чего бы я хотел от своего универа (пообщавшись немного с чуваками из голландии) — это курса по структурам данных, базовым алгоритмам и латыни (sic). Но это не так сложно, можно и самому разобраться, а остальной математики было довольно немало, хочешь — можно многое узнать. И дискретки хватало, и теорвера (гореть бы ему в аду ;), и численных методов, и теории оптимизации.

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

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

в нашем образовании не хватает актуальности. Базовые дисциплины — без вопросов, по-моему я только в универе выучил физику.

А так, когда предлагают писать под какой-то КР580, который в 90м году уже перестали выпускать, а твои одногодки в Европе изучают особенности написания кода под новые Интелы, то как-то разница очевидна.

Мне разница совсем неочевидна. Зачем учить актуальную жабу (как делают в Европе), когда она — полный отстой? На жабе ни ФП, ни основ не поймëшь, ООП там очень однобокое и всë такое.

Короче, нет смысла гнаться за новьëм, ИМХО. Это легко разбирать в процессе и это задача техникумов, а не ВУЗов.

Я, например, считаю, что наша вышка — это не так и плохо, откровенно говоря.

Абсолютно согласен.

Универ полезен не столько знаниями которые дает, сколько полученными навыками искать правильную инфу и знанием ключевых слов по которым надо искать (типо что четвертая нормальная форма, никакая не четвертая)

Всë равно немного странно с уверенностью раздавать советы налево и направо в 18 лет.

То же согласен (хотя пока не поработаешь с человеком, о нем можно мало чего сказать), но я предложил просто не превращать тему в крики типо «пошол вон астуда школота».

То же согласен (хотя пока не поработаешь с человеком, о нем можно мало чего сказать), но я предложил просто не превращать тему в крики типо «пошол вон астуда школота».

Опять же человек сам мог сказать «отчорд, я протупил», а не отмазываться. Не так бы это смешно выглядело, откровенно говоря. Кроме того, если бы мне что-нибудь настойчиво парил какой-нибудь Армин Ронахер (который тоже не так чтоб сильно старше Павла, на пару лет), то я б менее скептически отнëсся — я уже 4 года наблюдаю за ним и его проектами. Но, простите, Павла я первый раз вижу, и потому немного скептичен — я не отрицаю, что у него может быть куча мозгов, но я по дефолту не верю ни одному слову человека, которого я не знаю, если этот человек склонен так категорически выражаться. Тяжëлое детство, LOR, всë такое.

Давайте всё-таки писать грамотно.

Это вы гугло-хрому расскажите. А я, между прочим, горжусь своей «3-» по русскому языку, но это уже совсем другая история.

Не знаю чей там продукт, но коммит точно ваш, Павел.

100%. А то точно придется тратить на работу 24/7, чтобы хоть чего-то достичь в этой жизни.

Подписаться на комментарии