Как сменить PHP на технологии посерьезней?

Привет. Работаю php разработчиком и совсем не горжусь этим :)) Язык не нравится, шанс попасть на хипстерский стартап или приятный проект низок, зарплаты ниже, чем у джавистов-питонщиков-рубиистов, поэтому задался вопросом смены. Смотрю на Ruby on Rails, Python, даже пробую что-то писать на android java.

Кто-то проходил тернистым путем смены технологии? Делать это постепенно, или радикально — бросить работу, поучиться месяцок и тыкаться джуниором в компании? Есть ли шанс, что, учитывая прошлый двухлетний опыт веб-разработки и некоторые начальные знаний технологии, возьмут не на джуниорский оклад?

Давайте делиться опытом.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

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

Что то мне вспомнился джун который грустил по поводу «полной смены стиля жизни при переходе на .NET»
Вобщем как это это все не серьезно звучит и вызывает кучу вопросов:
1 — Если тебе не нравится пых — нафига ты на нем пишешь?
2 — Если тебе нравится питон — почему ты до сих пор на нем не пишешь?
3 — Уверен ли ты что говнокод на питоне, жабе, нете, руби тебя будет радовать больше чем говнокод на пыхе?
4 — Уверен ли ты что ты не попал в тренд — пых говно а все остальное круче?
5 — На каком основании и каком опыте ты счиатешь что пых говно? Может говно это проект на котором ты работаешь или люди которые вокруг? А может проблема ещё глубже?

— Всем привет, я — Рома. И я пишу на php.
— Привет, Рома!

Епт, ну язык программирования это всего лишь ИНСТРУМЕНТ. Какая разница на чем писать?
Интересно, можно ли найти тему на строительном форуме, звучащую как-то так: «Посоны, я всю жизнь сверлил дерево дрелью Bosch, как мне перейти в сверление бетона перфораторами DeWalt? Меня хоть на младшего помощника заместителя подсобника возьмут?»

Я перейшов з ПХП на Node.js) Трошки повезло, що в попередній конторі появились js задачі, на яких я освоював нові технології.
Як я бачу твій перехід: по вечорам за чашечкою чаю ти клепаєш собі пет\трейні проджект в своє задоволення і потім ломишся з кодом в руках в якусь контору на хіпстерських технологіях. Валиш співбесіду) вертаєшся додому, допилюєш проект, читаєш теорію на яку тобі було пофіг до співбесіди. Repeat untill success.
Роботу краще не кидай, хз скільки часу в тебе піде на пошук нової роботи, і тобі не доведеться погоджуватись на що попало.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Автор, перестань лайнокодить, устройся в другую контору, где тебе будут платить больше и не надо ничего менять.

А почему бы не переписать на пых по-нормальному?

Начальству проще объяснить переезд с пыхи на руби, чем с пыхи на пыху :)

Тут уже писали кучу раз — язык это только инструмент для решения задач. И разные языки удобны для решения разных задач.
Очень сильно поражает этот карго-культ о крутости Руби и Питона и говняности ПХП. Покрути Симфони 2 и может откроешь для себя другой мир и на пхп.
Да Питон классный язык, он красив по своему. Но сейчас и на ПХП можно писать красивый поддерживаемый, тестируемый код.
Лучше прокачивай общие знания. А всякие трендовые технологии RabbitMQ, Mongo можно и с ПХП юзать.

эта та

Симфони 2
 что тут на первом с конца месте? www.techempower.com/...ec2&test=db

Очевидно, то чего ни разу не наблюдается на первых 46 ))

В Харькове работал на одного PHP программиста-фрилансера по удаленке. Та жа история. Надоело ему на PHP(его 2000$-2500$), решил заняться проектом на С++(мои 600$-800$).
Такие перлы в коде были сгенерированы им. Инкапсуляции там нет, полиморфизма тоже(хотя оно там нужно было как никогда). Антипаттерны: "Паблик Морозов«(тотально, чуть ли не в каждом классе), «Спагетти код», «Божественный обьект».
Кароче ООП там нет. Как и процедурного. Там даже с абстракциями туго. Но тем не менее заплатил все до последний копейки наличкой, когда я отказался от такой ЗП. Деньги гребет будь здоров и всех все утраивает. Если б не привычка врубать на всю громкость звук в колонках, когда идет общение по скайпу ждо сих пор бы работал. А так нормальный человек. Вставал бы с кровати в 7 утра и сразу за комп. И в 15:00 уже свободен как ветер. Не теряя времени на перерывы, на других, и на поездку.
Немного жалею теперь. Но фрилансером становиться пока ссыкотно. Английский устный не очень, а репутации нет никакой, чтобы заказчиков на себя ловить. И иметь стальные нервы для общения.

я просто оставлю это здесь: www.udemy.com/...-language-wars
уже довольно старо, но все еще наглядно и задорно

А Вы разберитесь чем же _действительно_ РНР плох, в сравнении с теми технологиями, куда Вы собрались переквалифицироваться. И, я уверен, в процессе разбора узнаете для себя много нового, а также, сможете сделать логический и очевидный вывод, нужно ли менять платформу.

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

Хороший пхп-шник в Киеве зарабатывает 3-4 тыс,многие джависты зарабатывают меньше.Так что лучше стать хорошим специалистом на пхп,чем гов*окодером «не очень»,но на джаве.

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

8 и бонусом команда помощников для разгребания.

зарплаты ниже, чем у джавистов-питонщиков-рубиистов, поэтому задался вопросом смены.
Хороший пхп-шник в Киеве получает 3-4 тыс,многие джависты зарабатывают меньше.Так что лучше стать хорошим специалистом на пхп, чем «не очень» говнкодером но на джаве.

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

Хочется чего-то серьёзного на PHP — собеседуйтесь в Mamba, из Magento вон товарищи ниже. В какой-нибудь Highload проект. Или в любой проект длительностью больше года (вряд ли это будет wordpress).
Но вообще поговаривают что да, PHP это не то чем стоит гордиться, особенно если junior или плохой middle php. Есть такие PHP программисты (они чаще Senior), которым есть чем гордиться (поищите их блоги и выступления).

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

Есть нюанс: знать на одинаковом уровне два языка, вернее две экосистемы автоматически означает большую квалификацию.

очень спорно — денег єто не прибавит. а вот более глубокое понимание стека — lamp,js,css,sphinx, amqp и прочий навес — вполне

Фейсбук — в принципе ничего так хипстерский стартап, парниша кучерявый пошарашил чуток на пхп

Я перейшов з ПХП на Node.js) Трошки повезло, що в попередній конторі появились js задачі, на яких я освоював нові технології.
Як я бачу твій перехід: по вечорам за чашечкою чаю ти клепаєш собі пет\трейні проджект в своє задоволення і потім ломишся з кодом в руках в якусь контору на хіпстерських технологіях. Валиш співбесіду) вертаєшся додому, допилюєш проект, читаєш теорію на яку тобі було пофіг до співбесіди. Repeat untill success.
Роботу краще не кидай, хз скільки часу в тебе піде на пошук нової роботи, і тобі не доведеться погоджуватись на що попало.

Когда нода выйдет из моды — будешь так же переходить в что-то другое?)

Андрей, твой пример явно не о том, что ты хотел перейти на что-то «по-серьезнее» :) Скорее о том, что надоело вариться в одних и тех же задачах. Или я не прав?

Когда нода выйдет из моды — будешь так же переходить в что-то другое?)
Когда чуваки (а может и автор вместе с ними) наг*внокодят настолько, что и на Node.js будет куча глючных проектов, нужно будет срочно переходить на новую СЕРЬЕЗНУЮ технологию/язык.

судя по опыту нода течет даже на безглючных проектах

Когда нода выйдет из моды — будешь так же переходить в что-то другое?)
Ну звичайно ж) Взагалі то я фанат CoffeeScript. Переконання команди що CoffeeScript круче js в процесі)
Или я не прав?
Так, не прав.

Появиться крутіший ІНСТРУМЕНТ, я заюзаю крутіший інструмент по можливості і необхідності, не бачу в цьому нічого поганого.

пфффф ) все еще гоняешься за псевдокрутизной. Я думал ты уже выше этого :)

Что-то я не понял. Проблема в PHP или в том, что ты не гордишься своей работой?
Не нравится саппортить гавнокод — смени работу.

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

Кто-то проходил тернистым путем смены технологии?
Когда-то сменил c++ и asm на php, ничего сложного :)

Что мешает не браться за говнопроекты? А, квалификация не позволяет?

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

скажем так — это не выпад, а реакция на то, что вы написали :) Если вы считаете, что перейдя с PHP вы перейдете на что-то «серьезное» — то вам тут уже указали на то, что врядли. Говнокод везде говнокод.

Если вы не имеете выбора и работаете только на аутсорсеров — то смена платформы не поможет ничем.

> работаю с тем, что дают.

От этого не уйдёшь сменой стэка.

непонятно твоё решение сменить платформу, при том что бегать из конторы в контору не можешь. По-моему python/ruby-вакансий ещё меньше и твоём городе работу будет найти ещё сложнее.

ИМХО, оставайся пока PHP-шником и изучай смежные области — js, mysql и/или postgresql, linux, сетевое программирование, да и вообще теорию программирования. Как php-шник ты станешь от этого лучше (и возможно станешь получать больше), а если уйдёшь в питон/руби/жаву — там тебе эти знания пригодятся тоже.
Ну и если уж действительно хочешь, параллельно учи например питон и делай свой pet-project на нём.

Три пути:
1. Нарабатывать опыт/портфолио любой ценой (мелкий фриланс, опенсорс, свои проекты, пускай никому включая самого себя ненужные) в свободное от основной работы время
2. Активно искать вакансии, где нужно и то, и то (вот буквально на днях приглашали — нужен пехепешник, но хотя бы начальные знания питона будет большим плюсом).
3. Активно искать вакансии, где главное потенциал и общий бэкграунд, а не конкретные знания. Единственное приготовьтесь, что будут проверять очень жестко те знания, которые заявляете: скажем, если говорите что знаете http, а основной язык долгое время был php, то будьте готовы за час написать простейший веб-сервер на php. Именно сервер, который висит демоном, слушает 80-й порт и более-менее корректно (включая обработку HEAD запросов и заголовков if-modified-since) раздаёт статические файлы с диска и записывает-модифицирует их. Вообще, будьте готовы показать, что проблемы у вас могут быть только с синтаксисом и сигнатурами библиотек/фреймворков, но не со знанием того чем фабричный метод отличается от абстрактной фабрики и нужны ли они если у нас есть ФВП.

Советую подписаться на тематические гугл-группы, посещать форумы и т. п. и проявлять там активность, время от времени добавляя что вообще-то вы пэхепешник, но в * влюблены и ищите возможность «сбежать» — могут быть личные предложения.

Скорее имеет смысл не менять, а дополнить, и если уж вам там почему-то стыдно за то, что вы PHP-кодер, тогда просто перенесите акценты в сторону например Java, но и с PHP, имхо, полностью прощаться не стоит. С другой стороны, возможно, вы просто не обращали внимание на новые, современные философии растущей PHP-отрасли, тогда, возможно, следует сменить сферу деятельности: забыть про натяжку тем на WordPress, Joomla и т.д. и обратить внимание например на Symfony и иностранный аутсорсинг.

бросить работу, поучиться месяцок и тыкаться джуниором в компании?
месяца точно не хватит, просто говорю исходя из своего опыта Java-девелопера (в данный момент): на уровень стронг джуна в Spring / Android, но уже достаточно неплохо зная Java SE и до этого имея программерского опыта на разных языках под разные платформы около 10 лет, лично у меня ушло около 6-7 месяцев.

В общем, личное имхо: Java — основная, LAMP — фриланс после основной работы, но выкидывать одно ради другого смысла не вижу.

Взять Node.js, да и сменить.

Полные доки по Node.js API — nodejs.org/api/index.html
Видеолекции (скринкасты) — learn.javascript.ru/...dejs-screencast
Репозиторий с поиском модулей — npmjs.org
Поисковик Node.js модулей — node-modules.com
Каталог модулей — nodejsmodules.org

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

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

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

Опять двадцать пять

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

Це аксіома. Вона повинна бути вбита в підкірці.

Вы хотя бы знаете, что такое аксиома? В этом случае это вообще ни причем.

вопрос не в смене технологий, а в надуманной сложности этого изменения.

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

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

Абсолютно согласен. Джависты в 90% случаев пишут просто ужасный JS (и это я даже преукрасил).

Епт, ну язык программирования это всего лишь ИНСТРУМЕНТ. Какая разница на чем писать?
Интересно, можно ли найти тему на строительном форуме, звучащую как-то так: «Посоны, я всю жизнь сверлил дерево дрелью Bosch, как мне перейти в сверление бетона перфораторами DeWalt? Меня хоть на младшего помощника заместителя подсобника возьмут?»

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

Какая разница на чем писать?
— чи не свідчить це про знайомство лише із двома-трьома найпоширенішими мовами, з якого робиться висновок, що всюди одне й те саме?

Это совсем так. Во времена интернета и доступности информации говорить что перейти с какого-то абстрактного пхп на какую-то абстрактную джаву сложно, весьма странно. Что там что там пишутся серверные приложения, используются одни и те же БД, похожие подходы, паттерны и тп. Всякие GoF-ы, MVC и тп не привязаны к какому-то языку, сортировки и прочие алгоритмы тоже одинаково пишутся. То что в каком-нить питончике нужно писать for i in range(n) и не ставить кавычки, а в джаве for (int i =0; i<n; i++)="" и="" ставить="" кавычки="" не="" делает="" алгоритм="" другим.="" Да,="" успешный="" переход="" это="" не="" дело="" одного="" дня,="" но="" это="" уж="" точно="" далеко="" не="" самая="" сложная="" процедура="" и="" ничего="" невыполнимого="" тут="" нет.="" <blockquote="">— чи не свідчить це про знайомство лише із двома-трьома найпоширенішими мовами, з якого робиться висновок, що всюди одне й те саме?

Ну я не могу говорить что сталкивался и использую кучу языков. Но начинал я становиться программистом с того, что писал диплом на С++ под OpenGL, потом в работе активно использовал и использую Java, JavaScript, ActionScript, немного использовал PHP, писал шейдеры на ассемблерподобном AGAL, знаю немного Scala и Groovy, сейчас вот взялся за изучение Python. Так вот, если отбросить специфические штуки типа агала, не вижу особо большой принципиальной разницы в построении алгоритмов (!) и организации структуры приложения в этих языках.

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

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

Интересно, что за хрень с моим комментом приключилась? О_о

Что то мне вспомнился джун который грустил по поводу «полной смены стиля жизни при переходе на .NET»
Вобщем как это это все не серьезно звучит и вызывает кучу вопросов:
1 — Если тебе не нравится пых — нафига ты на нем пишешь?
2 — Если тебе нравится питон — почему ты до сих пор на нем не пишешь?
3 — Уверен ли ты что говнокод на питоне, жабе, нете, руби тебя будет радовать больше чем говнокод на пыхе?
4 — Уверен ли ты что ты не попал в тренд — пых говно а все остальное круче?
5 — На каком основании и каком опыте ты счиатешь что пых говно? Может говно это проект на котором ты работаешь или люди которые вокруг? А может проблема ещё глубже?

Товарищ будучи senior PHP перешел на iOS внутри своей компании по ее же инициативе без потерь в з.п.
За 3 месяца уже дорос до iOS-джуна, сейчас растет до миддла.
Товарищ не ленится ничего учить и не ждет, когда ему заплатят 50$ сверху, чтобы он что-то выучил для работы, я думаю в этом секрет его успеха.

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

Если компания та же самая, то такое бывает.

Странный вопрос — как будто, если вы выучите Джаву, то у вас резко атрофируется способность писать на пыхе. А вот если поставить вопрос как «хочу освоить новые технологии» — то и ответ сразу ясен — «осваивайте».

P.S. Вы б уточнили, чем пых не угодил. А то вдруг все таки не в «штанах» дело.

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

Сам-то язык не так уж и плох (php 5.3+), совсем уж негативно про него отозваться я не могу.

Так похоже, что дело не в пыхе, а в необходимости разгребать чужое г-но (вместо написания с нуля своего, которое не пахнет). Думаете на Java или Pithon все будет иначе?

Особенно в ентерпрайзнутых проектах, которые ещё в cvs хранятся.

В Python так да, немного иначе. Почему? Потому что PEP-0008. Потому что очень-очень много задач решаются с помощью команды pip install (а не путем написания очередного говновелосипеда). Ну и много еще всякого. Просто поверьте — разница есть. :)

Разница есть, если предыдущий разработчик всё это использовал, а если нет... А так и в пхп есть PSR, есть composer (да и PEAR ещё используется).

...и в итоге сводится к тому, какие методологии, валидаторы и настройки средств разработки используются. а не к тому, «фигурные скобки или TABы». поддерживаю!

Нужно быть совсем упоротым идиотом, чтобы это не использовать. :)

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

Да. Pear, pecl, composer, пакеты на уровне системы — 3 системы включающие зависимости, это всё часто в одном проекте. Поэтому пехепе г..но.

дык учите брейнфак asm — там порог вхождения ого-го.
А вообще, «нормальный» php — это zend/symfony/yii. И особой разницы в высоте «порога» с той же Джавой — ну хоть убей не вижу.

P.S. низкий порог входа и высокая скорость разработки всегда были плюсом для языка. А говнокодеры есть везде.

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

Для того чтобы писать на асме, нужно как минимум знать железо, под которое ты пишешь. Что уже не привычно для любителей php/java

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

Вообще говоря правильно пугают. Ведь сейчас задачи стоят такие, что мало чтобы программа работала, нужно чтобы она работала заметно лучше чем аналогичная программа хотя бы на Си с использованием всех оптимизаций современного компилятора. То есть железо нужно знать лучше чем разработчики компилятора — явно не для новичков. Вообще субъективно 90% решаемых сейчас на ассемблере задач (я про PC-платформу если что) — это включение в Си-библиотеки использования различных фич новых процессоров типа хардварного шифрования в случае если процессор их поддерживает, а компилятор не додумался.

Вы так говорите, будто на друних ЯП пишут сплошной helloworld. :)

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

Ну дык это и есть высота порога: мало просто выучить синтаксис, нужно ещё дополнительно учить матчасть.

С этой точки зрения, асм похож на sql — у каждого вендора своя придурь.

Попадётся вам проект, который я на питоне писал и питон перестанет нравиться.

Особенно, когда для некоторой особенной автоматизации потребуется слегка переписать событийный цикл состояний мышинных событий в вебките, затем накатать к этому новые байндинги и SIP-ом прикрутить к многопоточному PyQt-приложению ))
Это я к тому, что для каждого проекта следует подбирать наиболее подходящую платформу, а для этого следует более-менее ориентироваться в нескольких технологиях одновременно, то есть то, что и предлагалось автору топика: не менять технологию, а дополнить )

Вообще зависит от возможностей в текущем окружении.
Я работал над проектом на oDesk, писал на JavaScript и PHP (по моим скромным оценкам довольно неплохо), хотел переквалифицироваться на Python. Поэтому начал понемногу писать для проекта всевозможные консольные утилиты на Python вместо PHP. Освоился немного и взял проект на том же oDesk с имеющися кодом (Python/Flask + JavaScript/Backbone). Разобрался с кодом (на имеющемся коде учиться легче). Через 3 месяца получил оффер опять на Python + JavaScript. А был вообще случай, когда пришел в компанию на позицию Sr. Front-End Engineer (JavaScript/HTML5/CSS, etc.), а заказчик захотел, чтобы мы вместо SPA писали обычное приложение на RoR — ничего, быстренько освоил все, что нужно было для работы, в Ruby и RoR — сделали все качественно и в срок. Слегка напряжно было, конечно, зато получил опыт еще и в этой области — если нужно будет, могу уже использовать эту технологию. В общем, если есть желание, нужно искать возможности. Книги читать лично для меня довольно скучно — я иду сразу в бой с документацией под мышкой. Если не помогает документация — есть SO и множество блогов, где обсуждаются тонкие моменты. Еще, если интересен именно Python, рекомендую поиграть на www.checkio.org. Если не знаешь, что делать, делай хотя-бы то, что тебе по силам на данный момент и, главное, регулярно.
Успехов в дальнейшем развитии!

Спасибо за ответ!

Освоился немного и взял проект на том же oDesk с имеющися кодом (Python/Flask + JavaScript/Backbone).
Трудно было найти проект на оДеске? Заказчик не требовал опыта работы конкретно с этим стеком (flask+backbone)?

Нет, не трудно — меня пригласили. Вообще я искал проект на одеске всего однажды — мой первый контракт. А дальше уже меня приглашали. Поэтому не могу ответить. Заказчику нужно было, чтобы все было ок, я ему сделал все ок и качествнно. Все довольны.

Горячо рекомендую посмотреть на Django. Хотя бы по официальному туториалу — он вполне помогает понять, насколько Python не PHP. :) Я подобную «вылазку за пределы PHP» сделал достаточно давно, и не перестую радоваться, удивляться и восхищаться до сих пор. Очень, очень хороший вариант, если вы хотите не только хорошо зарабатывать, но и получать от работы удовольствие.

Спасибо! Я писал небольшую поделку на питоне, и протащился миллион раз от языка. Я подозреваю, что есть свои недостатки, но черт возьми!

Долго ли изучали Django, что бы владеть им достаточно комфортно?

django єто типа smarty если вы понимаете о чем я

Типа смарти в питоне джинджа, а типа джанги первый зенд или кодеигнитер, если вы понимаете о чём я :)

ну я очень давно на это все смотрел. мог забыть названия
но суть вы поняли

А сами вы понимаете, о чем вы?

ахахаха — джанго это типо смарти — ЭТА ПЯТЬ!!!

О, это очень хороший вопрос. И наверное вам понравится мой ответ. :)

За 2 месяца до НГ 2012 я решил посмотреть Python. Впечатлился. Решил посмтореть, как на нем делают проекты под веб, открыл для себя Django. Еще больше впечатлился, решил попытаться написать на нем информационную систему, которая помогла бы решить одну задачу, которая на текущей работе пила очень уж много крови (учет всех вопросов по сопровождению большого, сложного и глючного стороннего проекта — оборудование, подрядчики, проблемы, заявки и т.п.). В феврале 2012 года проект был запущен в эксплуатацию. И, черт побери, это была самая красивая, логически стройная, легко поддающаяся доработке/расширению штука, которую я сделал за всю свою карьеру. Используется по сегодняшний день, экономит кучу времени и нервов.

Т.е., по моему опыту, начав изучть Python и Django с нуля, за 3-4 месяца можно начать и закончить свой первый достаточно сложный проект. По-моему, это очень круто.

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

это так сказать оказался подходящий язык для вашего проекта

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

— Всем привет, я — Рома. И я пишу на php.
— Привет, Рома!

Каждый язык для разных задач. Меня удивляет эта мода на конкретный язык. Facebook и vk на php писаны и ничего так — живут. Лучше не париться и просто изучать языки последовательно. А погоня за языком ради большей зарплаты — это точно не мотивация для хорошего программиста. Хороший программист владеет несколькими языками и не зацикливается на моде.

В том же vk многие вещи были переписаны на С++.

Извините, так и хочется сказать — да ВЫ ЧТО!:) На самом, и вконтакте даже разработали свой компилируемый вариант php — и даже обещали выложить его в открытый доступ. Но задумайтесь — где вы (не лично вы) а где VK или Facebook — какие у них нагрузки и какие у большинства проектов?

Но задумайтесь — где вы (не лично вы) а где VK или Facebook — какие у них нагрузки и какие у большинства проектов?
вот где
Меня удивляет эта мода на конкретный язык. Facebook и vk на php писаны и ничего так — живут. Лучше не париться и просто изучать языки последовательно.

Язык обычно не многое значит, можно писать говно на любом языке. Так что может сначала научиться правильно писать на чем-то определенном, на том же пхп? Почитать там про паттерны, рефакторинг, алгоритмы и прочие полезности.
Так же стоит сконцентрироваться на определенном языке, а не все сразу, обычно в каждом языке есть несколько книжек мастрид, javascript — the good parts, java — после всяких коров Effective Java и прочее, на stackoverflow много подобных вопросов со списком литературы.
Дальше самый главный этап на котором сыпятся 99% «хочу сменить язык» — написать БЕСПЛАТНО для себя какой-то минипроект и желательно его куда-то запустит, поучавствовать в опенсорсе, если повезет, то можно схватить какой-то фриланс, но денег на нем много не заработаешь в силу того, что не много писал на этом языке.
Обычно после того как есть пару проектов и толковый человек — нет проблем на собеседованиях в компании, программистов везде нужно много. И обычно теряешь что-то в деньгах при смене языка(~30%), но всех денег не заработаешь, если действительно хочешь поменять — то думаю это не проблема.

П.с. прошел путь джедая php->python->javascript/java

ага. и алгоритмы. и циклы. и переменные.

я всетаки спрошу — паттерны это что за фигня ?

я практически уверен, что вопрос с подвохом. сложно поверить в человека, который про такое не слышал, гуглом не пользуется, и при этом тусит на DEVELOPERSorgua.
потому начну — что именно не нравится в формулировке?
что «паттерны», а не «шаблоны»? дык, под шаблонами понимают и templates тоже. А так, вроде как, никакой путаницы.
Сорри, если это, внезапно, так, обидеть не хотел.

php это приговор. теперь только в мордокнигу уезжать работать

Я тоже не фанат пхп, но вот с фразой

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

Мне почему-то кажется, что из большого спроса на пхп совсем не выплывает вероятность попасть на хороший проект. Мне попадались проекты, написанные в рамках какого-то MVC-фреймворка, но при этом с загаженным кодом, просто потому что ребята писавшие код, не очень-то умели его писать, или просто не старались.
Проектов много — это да, но концентрация проектов со спаггети-кодом в пхп намного выше, чем в RoR или Python. Эти факты я достаю из задницы на самом деле, но мне так показалось из собственного хоть и совсем небольшого опыта :))

Я вначале был php разработчком. Проработав год решил все радикально: тупо уволился и пошел на курсы, через 3 месяца уже работал в епаме (за зп джуна), еще через 8 месяцев уже был мидлом. Правда мне тогда было не критично бросать работы, так как это было начало четвертого курса.

Делать это постепенно, или радикально — бросить работу, поучиться месяцок и тыкаться джуниором в компании?

Есть приятель, 4 года на php, решил уйти в java. Уволился с работы, около полугода учится, говорит — трудно учиться. hr-ры за ним не гоняются. Даже на трейни пока не взяли.

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

если будешь блистать знаниями, возможно получишь 200-300 баксов и позицию трейни.

А вот по питону — есть знакомый, фрилансил месяцев 9, потом его пригласили сразу на нормальную ЗП. На питон спрос повыше кажется, по крайней мере такое рассказывали знакомые девочки — рекрутеры.

Есть приятель, 4 года на php, решил уйти в java. Уволился с работы, около полугода учится, говорит — трудно учиться.
Ээээ, то есть чувак 4 года кодил, а теперь за пол года джаву выучить не может так, чтоб укр. собеседование пройти (еще и не работая)? Бува...

Возможно кому-то просто будет слишком сложно сменить профиль. Я думаю это индивидуально.

а что такого принципиально разного в джаве и пхп ?

фабрики абстрактных фабрик и тонны XML?

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

Это есть в PHP :)

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;

$container = new ContainerBuilder();
$loader = new PhpFileLoader($container, new FileLocator(__DIR__));
$loader->load('services.php');
И конфиг
<parameters>
    <!-- ... -->
    <parameter key="mailer.transport">sendmail</parameter>
</parameters>

<services>
    <service id="mailer" class="Mailer">
        <argument>%mailer.transport%</argument>
    </service>

    <service id="newsletter_manager" class="NewsletterManager">
        <call method="setMailer">
             <argument type="service" id="mailer" />
        </call>
    </service>
</services>

— Армяне лучше, чем грузины.
— Чем?
— Чем грузины.
Аргументы будут какие-то?

Нормальная поддержка Юникода и параметрический полиморфизм навскидку.

параметрический полиморфизм — так в РНР слабая динамическая типизация. Зачем ему дополнительный механизм? Там и так можно написать код, которому будет плевать на классы своих параметров. Он просто будет вызывать методы с указанным именем.
про юникод согласен, хотя, кроме strlen и еще парочки операций, которые просто заменяются на mb_* варианты, больше ничего жить не мешало.

Кроме классов есть скаляры, массивы и ресурсы. Проверка их типов с помощью gettype() ухудшает читаемость, да и у объектов надо проверять существование метода, чтобы не свалиться с фаталом. А ещё функции с необязательными параметрами. Не, средствами PHP реализовать параметрический полиморфизм можно, но сахарку в виде поддержки его на уровне синтаксиса часто не хватает.

А существует хотя бы один объектно-ориентированный язык со слабой динамической типизацией, поддерживающий параметрический полиморфизм ?

чет странное я только что прочитал

Проверка их типов с помощью gettype() ухудшает читаемость, да и у объектов надо проверять существование метода, чтобы не свалиться с фаталом
А как бы это разрулил параметрический полиморфизм в условиях динамической типизации?

Типа такого
public function setSmth(integer $value) {}
public function setSmth(array $values) {}

Эм. при статической типизации — да. При type hinting + динамике все равно для «не учтенных типов данных» будет вываливаться рантайм еррор.
к слову, параметрический полиморфизм разруливает передачу неинициализированной переменной? т.е. никакого nullPointerException быть не может?

А при статической — компайлтайм. Плюс для динамической можно предусмотреть «фоллбэк» типа public function setSmth($unknown_type).

В текущей реализации тайп-хинтинга в пхп если указывать какой-то обязательный параметр с классом, то ничего кроме экземпляра этого класса передать нельзя. Если указывать его как необязательный со значением по умолчанию null, то можно передать null, являющимся отдельным типом и тогда проверять его нужно в теле, чтобы ненароком не получить «NPE». Если делать параметрический полиморфизм то могут возникнуть неоднозначности при наличии двух методов с сигнатурами вроде loadUser(integer $user_id, Group $group = null) и loadUser(integer $user_id, integer $group_id = null), но думаю легко решаемые на уровне компиляции в байт-код по типу как сейчас решается проблема повтороного объявления метода.

В текущей реализации тайп-хинтинга в пхп
меня интересовала Java. как в РНР — в курсе.

А-а, не понял. Про Java точно не скажу, но вроде null сочетается с любым объектным типом.

[blockquote]

Есть приятель, 4 года на php, решил уйти в java. Уволился с работы, около полугода учится, говорит — трудно учиться. hr-ры за ним не гоняются. Даже на трейни пока не взяли.
[/blockquote]
Один в один я, только 5 лет админил.

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