×Закрыть

Front-end vs Android

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

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

Что знаю в вебе — нативный JS (относительно неплохой уровень), jQuery, Backbone.js (писал на нем коммерческий проект по удаленке), умение верстать (HTML, CSS, SASS), знание REST, AJAX. Есть опыт в бекенде (PHP), но небольшой, на уровне принять запрос — вернуть данные из MySQL.

Последние полгода занимаюсь Андроидом, сейчас заканчиваю двухмесячный проект с Апворка. Есть скилы в Java, UI, Volley. Могу создать службу, написать свой элемент управления, подтянуть данные GPS / скачать что-то из интернета, интегрировать АПИ социалки, примерно на таком уровне.

Английский upper-intermediate, разбираюсь в математике и computer science.

Сама проблема такова — проект заканчивается и продолжать фрилансить не хочется, при этом изучив рынок труда понял, что Андроид разработчиков нужно не так уж и много, при этом большинство вакансий уровня Middle-Senior, до чего я пока не дотягиваю по опыту. С другой стороны, во front-end сейчас без знания фреймворков типа react/angular и соваться нечего, а идти верстать лендинги, если честно, уже не хочется. И выбор я вижу такой:
1) Пытаться устроится джуном в андроиде, что тяжело, так как очень мало вакансий, да и джун сейчас должен иметь год опыта, а фриланс большинство компаний опытом не считают.
2) Потратить пару месяцев на изучение фреймворков типа React/Angular, написать неплохой pet-проект и пытаться с ним пробивать стены, благо вакансий больше.

Уповая на коллективный разум DOU, формулирую вопрос — в какой области при таких исходных данных и вариантах шанс найти достойную работу выше? Возможно, я что-то упустил, что вы посоветуете в такой ситуации?

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

Возможно, кто-то из людей с похожей на мою ситуацией будет читать эту тему, поэтому хочу подвести итоги. Если коротко — я устроился front-end разработчиком (react), с ближайшей перспективой перейти на проект с react native.
Получилось так из-за нескольких причин — в первую очередь, предложили хорошее место, которое устраивает меня по всем параметрам. Также, мне нравится писать на JS, а такой возможности в последнее время практически не было, соскучился, что-ли :) Ну и плюс в том, что front-end сейчас действительно довольно востребован и проблем в случае смены работы точно не возникнет. Большую роль сыграли личные и семейные моменты, но думаю их описание будет здесь лишним.
Советовать ничего никому не буду, кроме одного — выбирайте то, чем хотите заниматься. Сейчас я пишу на React и хотя иногда рву волосы на голове (и не только), мне это нравится. И всем, кто сомневается как я, советую бегло ознакомиться со всем, что сейчас есть на рынке, возможно пообщаться и разработчиками в каждой области, и потом выбрать к чему душа лежит. Как-то так.

Если коротко — я устроился front-end разработчиком
Sold :D

Неплохо, за неделю справились, поздравляю)

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

На самом деле, основным фактором стало еще то что в моем городе на данный момент Андроид вакансий нет от слова вообще
на самом деле, с этого анализа надо было начинать ставить выбор

Готов был бы переехать ради работы, даже вначале целился на это (хоть и есть серьезные факторы, удерживающи пока на месте). Но изначально по комментариям и своим догадкам, а потом уже и по небольшому опыту в офисе понял, что особо большой разницы на чем писать нету, так что переезд смысл потерял.
P.S. Иногда когда решаешь задачу, стопоришься и рассказываешь её другому человеку — даже просто поделившись этим и проговорив вслух, понимаешь что надо делать. Вот тут получилось нечто похожее. Прочитав свой пост через пару дней, решение пришло в голову само собой, просто тема стала довольно популярной и решил поддерживать её на случай, если кто-то окажется в моей ситуации — возможно, она будет ему полезной. Однако, спасибо всем кто принял в ней участие и помог советом — это однозначно сыграло весомую роль при принятии решения.

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

Выбирай то, что нравится, тогда будет мотивация.
А работу найдёшь и там и там.

В Европе(Берлин) вижу такой тренд — разработчики на мобайл получают больше. Складывается впечатление что Senior Java/Front End == Android/iOS(не senior). Простой мобильщик получает на 10-20% больше остальных простых разрабов.
Сам в шоке. Сижу с React/Java и смотрю в сторону Android и облизываюсь.

Так может вы зп не сильно то высокую попросили, вот и облизываетесь ))

ну скажем так, знаю свой потолок, а для iOS/Android это обычная зп

джаву еще не советовали ? забей на фронет энде и андроид — пили джаву

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

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

С каждым годом веб догоняет нативную разработку. Т.е. отснавание сокращается. А именно:
— доступность нативных API через браузер растет
— скорость работы браузерного кода растет и приближается к нативному, появляются оптимизации, улучшаются движки
Т.е. все минусы веб-разработки постепенно уходят. Также добавлю, что Android и Webkit (основной движок для mobile web) разрабатываются и продвигаются одним и тем же вендором (Google), который будет стремиться подружить их по возможности. Т.е. скорее всего упадок направлений будет в такой хронологии Android, IOS, Mobile Web.
В доказательство, все больше крупных компаний выпускают свои приложения в Play Market на базе WebKit (вам уже не нужен Cordova или что-то такое для этого)

Хотел бы не согласиться, но те тренды что сейчас есть говорят о вашей правоте.

Какие тренды? Прогнозы от ыкспердов различных? Берите что нравится и забейте на них. А то так чуши можно начитаться и пойти грузчиком работать. Обе технологии в расцвете.

Правота в Ваших словах есть, но этот упадок будет ой как не скоро. Если вспомнить как несколько лет назад профи кричали что андроид умрет в течении ближайших 2-3 лет.

Который год читаю и ору в голосину.

Люди просто путают веб сайт и ап. Делать веб апы вместо нативных апов на мобайл нет смысла.

П.С. даже десктоп апы возрождаются в вин 10

Если нужна просто аппликуха для мобильных, то да. А если нужен вебсайт для десктопа и аппликухи для мобильных с такой же или близкой функциональностью, что и на сайте, то можно нанять 3 команды, которые будут по отдельности пилить это все на десктоп, андроид и иос, а можно сделать все силами одной команды на реакт/реакт нейтив.

Вообще то реакт нейтив придется учить включая особенности Андроид и иОС. С большой вероятностью даже реакт сам по себе придется учить, ибо он не везде распространен, и ясно что не все его знают, до сих пор огромное количество сайтов на джейквери. Кроме того нужен хороший фронтендщик иначе выйдет полное гуано, а фронтендщики хорошие часто попадаются? Наверно не всегда, а что хуже говнокодера на платформе? — Говнокодер на нескольких платформах. Плюс не во всех проектах есть фронтендщик. А да, мобайл ап это не веб ап, там свои особенности кроме того. Вообщем так и есть:

1. отдаем профессионалам и получаем хороший ап
2. отдаем веб разработчикам и получаем, ну, что то там получаем.

Это все сродни спорам CMS vs Framework. Многим хватает CMS.

П.С.

по отдельности пилить это все на десктоп

Две команды. Десктоп апы нужны далеко не всем. Возможно вы имели ввиду веб сайт? ©

П.С. П.С. хороший мобайл дев знает гидлайны операционки, я уж не говорю об СДК и кое где НДК. Таки вседелкин их тоже знает? Аж взял и поверил. Ну нельзя взять и соединить РАЗНЫЕ профессии. Это все такая же чушь как и говорить джава веб деву сделать андроид ап, так как он тоже на джава.

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

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

Вы как всегда в своем стиле пишете =)

Откуда у вас постоянно такая информация прикольная? Делитесь источниками.
Я только в своей сфере новенькое сканирую, но вот статистика про мобайл апы даже меня стороной не обошла: qz.com/...load-zero-apps-per-month

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

П.С. и при чем та левая статья к статистике использования?))

Как всегда?)) Снова обидел?)
Я не так часто на DUO бываю, но ваши прикольные посты просто сложно не заметить =)
Это факты, погуглите юзейдж.
Гуглить факты чего? Не совсем понятно. Юзейдж может быть хоть 90% от всего времени, но если это 90% в facebook всяких, то что мобайл девам от этого? Если только они не работают в этих самых facebook. Сейчас народ очень неохотно ставит что-то новое на свой телефон кроме игрушек и апликух, в раскрутку которых вложили миллионы. Не очень популярной фирме сложно впарить людям свою апликуху, а даже если выходит, то потом ее люди удаляют после первого неожиданного push-уведомления.
А у вас стоит на телефоне, например, приложение Rozetka? Или Olx? Или Борисполь? У меня — нет.

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

А у вас стоит на телефоне, например, приложение Rozetka?

Стоит. Если у вас чего то нету это не значит что его никто не использует. У меня уже бомбить от вашего бреда начинает.

А да, все тупые, заказывают разработку мобайл апов когда ими никто не пользуется, ога ога =)

Ах да, где ваши даказательства))

www.smartinsights.com/...ile-marketing-statistics

Хватит?) Или снова я буду неправ и всеврети?)

все верно, десктоп падает, но на мобайле растет количество гибридных аппов, где большая часть контента — веб, т.е. без фронт-енд не обойтись, о чем и спрашивает автор топика.
Крупные компании, такие как Amazon, Walmart, Aliexpress развивают как мобильный сайт, так и нативный апп. В итоге при необходимости мобильная страница просто встраивается в нативный апп. При хорошем интернете с большинством страниц проблем нет, а если есть руки у разработчиков, то и при плохом тоже. Если говорить про сам стек знаний, а не про применение, то javascript имеет гораздо большее покрытие горизонтально и вертикально. Если это важно автору, то пусть выбирает javascript, иначе пусть выбирает Android, java тоже применяется во многих местах.

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

П.С щас вижу как все вдруг бросили апы и начали пользоваться сайтами а производители смартфонов урезали внутреннюю память до 2 гига.

П.С. тут говорят что гошники упоротые в своем фанатизме. По моему более упоротых чем джаваскриптеров еще нет.

Конечно мобайл апп лучше в этих аспектах. Поэтому компании выбирают гибридные приложения. Откройте Amazon, Aliexpress, отключите интернет и вы увидете, что это всего лишь браузер внутри нативной обертки, причем браузера там до 90%. Можно обновлять как нативный, так и веб контент, все мгновенно появится у пользователя.
Я не говорю голословно, я привожу примеры и анализ рынка.
Джаваскриптеры может и упоротые, но это никак не влияет на аргументы за\против.
Автор спрашивает, я ему привожу доводы. Я также могу привезти аргументы против джаваскрипта, но их меньше.
П.С. у меня создается впечатление, что люди, работающие с нативным андроид, просто не интересуются вебом, называя его «костылями» по умолчанию. Не хорошо говорить о том, чего не знаешь. Костыли были 5 лет назад. Я работаю с обоими технологиями. В общем как всегда история рассудит.

Ну сделали пару апов гибридными. Все теперь, все будут так делать?)) Помнится когда то фейсбук сделал ап на хтмл5 и все орали что все теперь, нативу пришел конец) А потом бац и переделали под натив)))

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

Так понятно, что работы и в frontend, и в android куча. Специалисты точно с голоду не пропадут, даже если популярность чего-то снизиться. Выбирать однозначно надо то, что больше нравится и не переживать.

Человек троллит, а вы серьезно отвечаете) Если его послушать, то через пару лет «прослойка в виде браузеров» перестанет существовать. Все будут пользоваться нативными апами, а вэб будет весь написан на C++/Java включая frontend через webassembly, что уже говорить про «так и не ставшим популярным» какой-то React. Я практически цитирую, не прикола ради.

Мне конечно пофик и даже забавно такое читать, но вдруг кто из новичков серьезно это будет воспринимать.

Человек троллит

Пфф. Где?)) Вам привижается уже, это плохой знак.

«Мне что-то не нравится — это троллинг!1111»
«Мне что-то нравится — это истина!1111»

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

Кстати это так, веб сайты в эру Internet of things не нужны =) И это опять же факт, смотрим мою ссылку про пике десктоп трафика по сравнению с мобайл. Десктоп и ноуты останутся сугубо рабочими машинами, ну и игры поиграть еще, сомневаюсь что консоли полностью вытеснят их.

а вэб будет весь написан на C++/Java

Хм, где я такое писал?))

включая frontend через webassembly

Ну если вебасембли разрабатывают значить фронт начнут нативно писать на с++, с#. И что там еще. Джавы вроде в планах нет. Ну это на будущее.

Ну, где троллинг?) Только факты) Другое дело что они вам не нравятся и потому надо обвинять во всех страшных грехах.

Интересная статья про React Native и вообще использование JS в мобайле arielelkin.github.io/...act-native-developer.html

Я не думал, что JS настолько убогий по сравнению с Java, Swift и Objc.
Пример:


console.log(0.1 + 0.2) //0.30000000000000004

console.log(0.1 + 0.2 === 0.3) //false


var a = 0

var b = −0

console.log(a === b) // true

console.log(1/a === 1/b) // false

var x = Math.sqrt(-2)

console.log(x === NaN) //false

console.log(isNaN(x)) //true

console.log(isNaN(’i like pumpkins’)) //true

Меньше знаешь — крепче спишь. Мне хватило точечных примеров когда надо было что то элементарное сделать а в ответ на стьоковерфлов давали самописные функции, каждый свою)) Типа зафигачь ее где то там глобально и юзай. Поистину мощный язык. Кстати, integer — не про джаваскрипт, тоже забавно было когда узнал. Но вы такое не пишите, набегут волны зомби =)

Тю, в javascript есть страшилки намного веселее. Вы даже не верхушку айсберга тронули.
Хотя с первым примером вы немного позоритесь конечно. Можете затестить код на плюсах:
double a = 0.2, b = 0.1;
if (a + b != 0.3) {
std::cout << «oops»;
}

Вообще-то я про плюсы не говорил.
Пожалуйста, пример на Java и Objc:


float a = 0.2f, b = 0.1f;
float c = 0.3f;
if (a + b != c) {
System.out.println("oops");
} else {
System.out.println("js is shit");
}

float a = 0.2, b = 0.1;
float c = 0.3;
if (a + b != c) {
NSLog(@"oops");
} else {
NSLog(@"js is shit");
}
Угадайте, что выведет в консоль?))

-

Я же не зря написал через double, думал вы может заинтересуетесь почитать про стандарт «IEEE 754» и захотите разобраться наконец в этой «магии», т.к. и в Java (как и в C++, и в JS и еще в пачке языков):
if (0.1 + 0.2 != 0.3) System.out.print("oops"); // понятно что выведет
И это основы основ, стыдно не знать.

www.compilejava.net

Вывело

js is shit
:/

Но знаете, это все на самом деле мелочи которые встречаются раз на миллион наверно и кто пишет финансовые апы навернека знает как обойти. Все таки вы правы на счет

в javascript есть страшилки намного веселее

Там мне попадались практичные страшилки.

А нет, теперь понял прикол. С дабл да, получается то же что и в джс.

Хотели подловить — не вышло.
Ваш пример элементарно фиксится:


if (0.1f + 0.2f != 0.3f) System.out.print("oops"); // ничего не выведет
и
Я же не зря написал через double
вот этим вы и позоритесь. И то, что в JS насколько я понял (я на нем не пишу) все числа с плавающей точкой являются double — это не хорошо.

double a = 0.2d, b = 0.1d;
double c = 0.3d;
if (a + b != c) {
System.out.println("oops");
} else {
System.out.println("js is shit");
}

Ну тут выведет упс. Хотя конечно если привести к флоат то будет ок. Вся суть что дабл имеет бОльшую точность(ну тут все понимают) И в конце там не ноль похоже... Интересно зачем так сделано.

Суть в том, что в JS насколько я понял (я на нем не пишу) все числа с плавающей точкой являются double. В этом и заключается один из факапов этого языка.

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

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

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

console.log(isNaN(’i like pumpkins’)) //true
Нет, ну в самом деле, кто бы мог подумать?

А можно совместить полезное (веб) с полезным (мобайл) — Apache Cordova. :)

Плюсы:
+ Cordova (насколько я знаю) учиться быстрее, чем Java для андроида.
+ Cordova — это не только ценный мех... т.е. не только андроид, но и другие мобильные платформы (iOS, Windows Phone, и проч.), и кажется даже десктоп (хотя для десктопа на джаваскрипте основное — это electron).
+ можно пилить не только с помощью реакта/ангуляра (Native Script, React Native), но и с помощью других js фреймворков и библиотек (даже на jQuery), думаю на Backbone.js тоже есть плагины для мобайла.

Минусы:
— скорость работы самого приложения на Cordova по сравнению с приложением на Java/Swift/objective-c/C# будет ниже (т.е. какие-то крупные приложения писать на кордове не комильфо).
— многое надо будет делать через консоль (сборка, компиляция и т.д.)
— для кордовы нет готовых «родных» иде-шек — в основном это плагины для редакторов (или плагины для иде-шек), которые еще отдельно устанавливать и настраивать надо.

Спасибо за совет, думал об этом. Просто как мне кажется, гибридные приложения не являются ни хорошим мобильным приложением, ни хорошим сайтом (условно). Цель написать код один раз и использовать его везде — это бизнес-цель по оптимизации расходов и увеличению аудитории, но в разрезе программирования это сплошной костыль. Мое ИМХО — если уж писать на JS, то писать веб, где он хорош. Если делать Андроид приложения, то писать нативно и качественно. Это ИМХО программиста. На месте бизнесмена, мне конечно похер на такие моменты и если стоит выбор сделать хорошо, но разрабатывать и поддерживать 3-4 платформы или похуже, но всего одну, то конечно я выберу второе (в большинстве случаев).
А возвращаясь к поиску работы, то выбрав Cordova, боюсь что если потом захочу найти работу то не буду своим во front-end, ни в мобайле, как говорится, за двумя зайцами (в данном случае 3-4). То есть буду либо привязанным к ней (а ваканский по поиску не так много всплывает), либо переучиваться на классический front-end/android, что означает возвращение в исходную точку :)

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

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

То есть буду либо привязанным к ней (а ваканский по поиску не так много всплывает), либо переучиваться на классический front-end/android, что означает возвращение в исходную точку :)
ну переучиваться в классический фронтэнд там вроде несложно, а вот переучиваться в классический андроид (на джаву) действительно будет геморрно.
С другой стороны, если ты например стартапер, то ты сам волен выбирать платформу, на которой будет твой проект работать.

и еще — можно также посмотреть на язык Kotlin. Его JetBrain позиционирует в т.ч. и для мобильной разработки kotlinlang.org/...rials/kotlin-android.html , и для веба ( у него например есть компилятор в javascript).

Не слушайте этот совет. Если и кроссплатформенная разработка то реакт нейтив, кордова убожество.

Вроде аппликухи, написанные на реакт нэйтив, не должны уступать по скорости, на то он и нэйтив, разве нет?

Немного уступают. Если я не ошибаюсь, то вся логика написанная на JS в React Native выполняется в отдельном потоке и просто общается с UI для обновления state. Если говорить о среднем показателе, то скорость приложения на react native ~ Java. Но хорошо написанное и оптимизированное нативное приложение всегда обыгрывает написанное на фреймворке, так как использует все возможности языка и платформы, как говорится, as designed.
Если писать небольшое приложение без особых фич, то react native отличный выбор — сразу две платформы + готовый к реюзу код на JS, что означает менее затратное написание веб-версии.
Если писать крупный проект с платформо-специфичными требованиями, то Java подойдет лучше, так как все равно прийдется писать в js вставки на java, а гомогенная архитектура всегда выигрывает в долгосрочной перспективе (это одна из причин, если я не ошибаюсь, появления node.js и все остальных js фреймворков «для всего»).
Все выше описанное только мое мнение, возможно я не прав.

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

Тут же ещё нюанс в том, что это не только «нэйтив», но ещё и React, который автор, по его собственному утверждению, пока не изучал.

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

Понимаю о чем вы говорите, сам немного удивлен от экосистемы веба на данный момент, но в реальности на крупных проектах разве не выбирается один раз стек и потом на нем все пишется? Да и технологии новые, а принципы старые — ничто не ново под луной. Солидный опыт во front-end, как мне кажется, дает понимание того насколько все эти уникальные фреймворки одинаковые, и после пары недель изучения деталей грамотный человек будет выдавать свою обычную продуктивность.

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

Тут надо будет именно что один раз преодолеть «потенциальный барьер» перехода к функционально-реактивному мышлению. На android, кстати, слышал, что тоже есть фреймворки, построенные на базе этой парадигмы, причём я НЕ про React Native сейчас.

Да, RxJava (RxAndroid). Я не работал с React (Native), но в одно время подробно изучал концепции и архитектурные решения того, что есть сейчас в мире фронт-енда. Ангулар, если честно, зашел плохо — наверное, там надо сидеть и делать, а не читать. А вот читая гайды по реакту и документацию, мне очень понравилось как он организован и сама парадигма ухода от строгого императивного подхода к реативности. С архитектурой Flux это вообще мощнейший инструмент, и классно что в Java и Андроиде есть библиотеки которые позволяют частично это перенять (не флюкс, а реактивность).
Насчет одинаковости — согласен, реакт выделяется. Но в этом случае, как мне кажется, исключение подтверждает правило.

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

а то в мире андроида такой проблемы нет :)

В точку :) Но Google достойно с ними работает — инструментарий для работы с разными экранами, locale’ми и девайсами достаточно солидный. Как и в вебе, собственно.

я скорее про фрагментацию версий и всякое проприетарное АПИ

Про фрагментацию версий понятно, проблема неприятная, но решаемая. А что вы имеете в виду под проприетарным АПИ?

плохо выразился. вообще имел в виду интеграцию с чем-то в системе, для чего нет «стандартного апи». а то, что есть — документированно почти никак.
ну, типа, работа с двусимочными аппаратами.
или перехват USSD не так давно(может, сейчас уже и лучше). VR.

Если честно, не думаю что может хуже веб фронтенда — насчет Андроида — мне тут баг на хромиум андроид недавно попался — Math.sqrt не работал как нужно, правда это было связано с битым CLang компилятором у которого тоже функция sqrt из math.h не работала :(

А еще есть плагины в браузерах — которые иногда уничтожают стандартное поведение весьма базовой функциональности....

поддерживать приложение под вторую версию китайской сборки и 6.1 некус — это как если одновременно поддерживать последний хром, IE6 и какой-нибудь Netscape Navigator на компьютере без мышки вообще

Возможно у меня было мало проектов, но требования

поддерживать приложение под вторую версию китайской сборки и 6.1 некус
мне еще не встречались. Думаю, если заказчик такое скажет, то можно обоснованно загибать рейт, а за достойную оплату — любой каприз. Как и в вебе, поддержка ИЕ6 в стандартный пакет входит редко :) + в вебе есть полифиллы, которые немного решают такие проблемы, а в андроиде до этого, к сожалению, далеко.

да, но мажорные версии андроида ощутимо отличаются. Намного сильнее, чем ФФ 40 и ФФ 39.
А обновляются — никак. Если у тебя ИЕ6, то ты сам себе буратино(корпоративные приложения не трогаем — там кроссбраузерность редко ожидается). А вот, если у тебя Андроид 2.2, в лучшем случае сможешь обновиться до 2.3 и то — не факт.
Вот, и получается, что распределение по версиям без явных пиков. И если не прикладывать усилий, а концентрироваться только на одной-двух версиях, то рынок сильно сужается.
UPD developer.android.com/...out/dashboards/index.html
насчет второй версии, наконец-то, чуть получше. А вот 4, 5 и 6 ветки примерно равномерно распределены.

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

Привет.

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


У меня была похожая история. Закончил по специальности универ, поклацал на удаленке пол года на C#, чуток задел JS и решил заняться фронтом. Думал не тяну даже junior js, но первая компания, в которую я отправил резюме(кстати продуктовая) меня взяла. Несколько месяцев поработал, потом в компании произошли изменения и я уволился, и спокойно собеседовался уже на middle. В двух компаниях готовы были сразу брать, третья компания сказала, что по скилам я больше junior, но брать все равно готовы (на позицию middle). В итоге выбрал опять удаленку, стартап, где на проекте нужен был senior (как потом оказалось), но всех все полностью устраивало (кроме меня, т.к. я никак не senior и зп просил не senior-скую :D).

Короче я не совсем понимаю всей этой специфики найма и раздела на jun/mid/senior, но четко понимаю, что не стоит обращать на это внимание. Если ты в универе нормально учился + уже на удаленке поработал, скорее всего ты спокойно будешь справляться с поставленными задачами.
Android или фронт значения не имеет, выбери что больше нравится. Ну и + стоит учесть, что по основному языку JS/Java скорее всего будут спрашивать с пристрастием, а по доп. технологиям чаще всего вскользь.

Добрый вечер! Спасибо за подробный совет, было интересно читать :) Честно говоря, я тоже не понимаю специфики разделения по этим грейдам, если один человек может за полгода выучить то что другой будет учить годами, а третий виртуозно освоит за месяц. У всех есть свои слабые и сильные стороны, и их нельзя все описать одним словом — джуниор или миддл. Просто в большинстве вакансий я сразу же наталкиваюсь на строчку — минимум 2 года коммерческого опыта в Андроиде. Стоит ли откликаться на такие вакансии?

Есть вакансии, в которых такой строчки нет. Начните с них.

Вообще можете на djinni оформить свой профиль, указать опыт «До года» или «Год», сколько вы в сумме наработали, поставить адекватную зарплату, описать вкратце над чем работали. Велики шансы, что вам кто-то да напишет. А еще лучше показать там свои работы. Тем более, что Android и фронт, это именно те сферы, где их можно показать. У меня на данный момент совсем небольшое и скромное портфолио на codepen, которое я почти нигде не свечу, но тем не менее иногда через него на меня выходят.

Если честно, сейчас много противоречивой информации по тому, на какую зарплату кто может претендовать. Если говорить об исключительно вашем мнении, какую вилку можно использовать дабы не быть и слишком жадным, и слишком альтруистичным при моих навыках/опыте? Город — допустим, Киев или Львов, пока планирую переезжать и рассматриваю все варианты.
П.С. Насколько я понял вы спец по JS и можете назвать цифру только в этой области, но я думаю что от Android она будет отличаться несущественно.

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

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

И какое предложение на 7к принял?)

Делать что угодно, только не попадать на галеру.

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

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

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

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

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

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

Не галера галере, а даже проект проекту на одной и той же галере, если точнее.

А чего фрилансить не хочется? Как по мне, прекрасный вариант. Вполне возможно найти проект, который перерастет в удаленку.

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

выбирай веб — больше шансов свалить отсюда.

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

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

а спрос на веб-приложения — увеличивается.

шанс найти достойную работу выше
Однозначно фронтенд.

Тим більше, якщо ви уже працювали з Backbone, вивчення React/angular не має стати проблемою.

Спасибо за совет. Если честно, мне больше нравится экосистема и workflow Андроида, то что все делает одна компания дает огромный прирост в качестве инструментов разработки. Насчет изучения React/Angular — я в одно время изучал концепции и того, и другого, и в принципе уверен что за месяц-два смогу написать вещь, за которую не будет стыдно.
Вопрос в том, будет ли такой проект достаточным чтобы не просто попасть на стажировку или должность trainee, что я, как мне кажется, перерос. Возможно, я просто слишком высокого о себе мнения :)
Но не хочется после проектирования АПИ, написания архитектуры (может и не самой лучшей, но всё-же), интеграции модулей и работы с эстимейтами, короче достаточно интересной, разноплановой и высокоуровневой работы возвращаться на этап фикса примитивных багов и верстки (в свое время и этим занимался, конечно). Думаю, вы меня понимаете :)

Ну, якщо освоїте react/angular і потрапите в хорошу компанію, то

этап фикса примитивных багов и верстки
не буде.

А там уже можна і в node.js піти, або, якщо подобається мобайл, — ReactNative.

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

За android такого сказати не можу..

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