Все знают, что для того чтобы устроиться в крупную it компанию (да даже если не в крупную), нужно пройти страшное и ужасное it-собеседование, где будут ̶в̶а̶с̶ ̶у̶н̶и̶ж̶а̶т̶ь̶ алгоритмы, структуры данных, вопросы по платформе и тд. Многих возмущает именно секция с алгоритмами, мол, зачем вы спрашиваете меня как развернуть LinkedList ведь в реальных задачах я никогда с этим не столкнусь! Зачем вы спрашиваете меня эти непонятные сортировки, когда уже есть готовые функции для этого! Зачем вы задаете мне эти глупые олимпиадные задачки для задротов по алгоритмам! Для чего, почему, зачем, какого черта!!?
Когда я только начинала программировать, я тоже не понимала этого. Но теперь, когда прошло много времени и я научилась со всем этим жить и работать, пришло и понимание. Вы должны знать алгоритмы и структуры данных, потому что это заложено в нашей профессии. Со временем, проведенным за программированием, вы начнете замечать, что у вас просто меняется способ мышления и все эти страшные алгоритмические задачки перестают казаться вам такими уж сложными. Вы поймете, где и как применять паттерны. Ваш код станет структурированным, простым и понятным.
Вопросы, которые задаются на типичных собеседованиях просто позволяют прощупать вашу базу, потому что собеседующим нужно как-то понять, что вы из их “тусовки” и что вы сможете понимать и работать над задачами, которые вам предоставят в данной компании. Это упорядочивание знаний.
Поэтому если вы говорите, что в программировании уже пять лет, но не можете повернуть в обратном направлении долбанный связный список - то возможно, вы занимались чем-то не тем.
За время существования канала меня уже много раз спрашивали о том, как я попала в сферу it, как устроиться программистом, что нужно знать, как готовиться, поэтому я решила собрать все материалы в кучу и предоставить их вам. В основном я буду опираться на Яндекс, так как именно от них у меня накопилось больше всего статей и все таки это большая компания со сложными собеседованиями, которые можно поставить в пример, но по сути, если вы усвоите всю нижеприведенную информацию, проблем с устройством на работу в сфере it у вас быть не должно. Грубо говоря, можете пройти в Яндекс = можете пройти везде.
Так что если вы хотите укрепить свои знания, начать понимать алгоритмы, то изучите данные материалы:
Полезные статьи:
Введение в анализ сложности алгоритмов
Алгоритмы и структуры данных — шпаргалка
Направляю также на небольшой яндекс контест
Там есть 4 задачки, которые очень похожи на задачи с яндекс секций, первая уже решена (чтобы можно было ознакомиться с самой системой).
Контест бесконечный - сроков для решения нет. Можно возвращаться к тренировке в любое время.
Примеры задач так же из яндекса:
12 алгоритмических задач отборочного раунда и их разборы
Какие алгоритмические задачи нужно уметь решать
Немного потренироваться в решении схожих задач, помогут внешние ресурсы:
1. Codeforces
2. Interviewbit
3. Leetcode
4. Hackerrank
5. Topcoder
Теория:
Алгоритмы1
Алгоритмы2
Алгоритм «Палех»
Видео-лекции Стэнфорда - очень доступные и интересные, у них есть курс на Coursera
В наиболее сжатом виде основы
Алгоритмы и структуры данных поиска
Когда я только начинала программировать, я тоже не понимала этого. Но теперь, когда прошло много времени и я научилась со всем этим жить и работать, пришло и понимание. Вы должны знать алгоритмы и структуры данных, потому что это заложено в нашей профессии. Со временем, проведенным за программированием, вы начнете замечать, что у вас просто меняется способ мышления и все эти страшные алгоритмические задачки перестают казаться вам такими уж сложными. Вы поймете, где и как применять паттерны. Ваш код станет структурированным, простым и понятным.
Вопросы, которые задаются на типичных собеседованиях просто позволяют прощупать вашу базу, потому что собеседующим нужно как-то понять, что вы из их “тусовки” и что вы сможете понимать и работать над задачами, которые вам предоставят в данной компании. Это упорядочивание знаний.
Поэтому если вы говорите, что в программировании уже пять лет, но не можете повернуть в обратном направлении долбанный связный список - то возможно, вы занимались чем-то не тем.
За время существования канала меня уже много раз спрашивали о том, как я попала в сферу it, как устроиться программистом, что нужно знать, как готовиться, поэтому я решила собрать все материалы в кучу и предоставить их вам. В основном я буду опираться на Яндекс, так как именно от них у меня накопилось больше всего статей и все таки это большая компания со сложными собеседованиями, которые можно поставить в пример, но по сути, если вы усвоите всю нижеприведенную информацию, проблем с устройством на работу в сфере it у вас быть не должно. Грубо говоря, можете пройти в Яндекс = можете пройти везде.
Так что если вы хотите укрепить свои знания, начать понимать алгоритмы, то изучите данные материалы:
Полезные статьи:
Введение в анализ сложности алгоритмов
Алгоритмы и структуры данных — шпаргалка
Направляю также на небольшой яндекс контест
Там есть 4 задачки, которые очень похожи на задачи с яндекс секций, первая уже решена (чтобы можно было ознакомиться с самой системой).
Контест бесконечный - сроков для решения нет. Можно возвращаться к тренировке в любое время.
Примеры задач так же из яндекса:
12 алгоритмических задач отборочного раунда и их разборы
Какие алгоритмические задачи нужно уметь решать
Немного потренироваться в решении схожих задач, помогут внешние ресурсы:
1. Codeforces
2. Interviewbit
3. Leetcode
4. Hackerrank
5. Topcoder
Теория:
Алгоритмы1
Алгоритмы2
Алгоритм «Палех»
Видео-лекции Стэнфорда - очень доступные и интересные, у них есть курс на Coursera
В наиболее сжатом виде основы
Алгоритмы и структуры данных поиска
Как часто вы задумываетесь о безопасности установленных приложений? Казалось бы — это же всего лишь небольшая программа, установленная на вашем смартфоне, абсолютно безобидная, и она совершенно точно не может убить кого-то.
Это вы здесь беспокоитесь о безопасности ваших данных, о безопасности данных пользователей ваших приложений. А обычный юзер понятия не имеет, что можно сделать с его смартфоном, если какой-то неблагонадежный гражданин получит к нему доступ и у него будет достаточно желания и фантазии повеселиться со всем этим.
Вы знаете, большинство людей до сих пор думают что хакеры смотрят на летящие зеленые цифры в мониторе. А еще они думают, что это брутальные аутисты, которые взламывают банки попивая смузи на Бали. И я абсолютно серьезна. Как-то, когда как раз выстрелил биткоин, я встретилась со своей давней знакомой, она, к слову, врач, умная девочка. Она знает, что я программист и работаю в защите и она на полном серьезе спросила меня: как я понимаю эти летящие цифры? И объяснить ей даже что такое for в принципе на данном этапе просто нереально, поэтому я просто перевела тему. Думаю, сейчас люди уже больше понимают, что такое программирование, чем буквально года два назад, потому что оно заполоняет все сферы с бешеной скоростью.
Но вернемся к тому разговору. Меня обрадовало, что она стала консультироваться у меня по поводу информационной безопасности. Конечно, она не знает что это конкретно такое, но она задавала довольно интересные вопросы. Почему у меня начинает нагреваться и тупить смартфон, когда я разгадываю судоку, пока еду в метро? Это же всего лишь судоку, даже она понимает, что телефон не должен сходить с ума во время такой незатейливой игры.
Вы здесь вроде умные ребята, как вы думаете, почему примитивное судоку с топорным UI грело ей телефон так, что пальцы можно было обжечь?
Вот именно, судоку то майнило. И самое забавное, вполне законно. Это как раз о том, что следует внимательнее читать пользовательское соглашение. При установке этой игрушки автор спрашивал, хочет ли пользователь смотреть рекламу или позволит майнить на своем устройстве. А кто вообще будет скроллить этот скучный текст, а еще ведь и прочесть его надо, и люди просто тыкают “Да-да-да”, отстань, ведь они хотят скорее добраться до контента. Не важно какими путями. И эта тенденция не устарела и ай-яй-яй-разработчики будут эксплуатировать ее еще долгое время. Всем добра:)
Это вы здесь беспокоитесь о безопасности ваших данных, о безопасности данных пользователей ваших приложений. А обычный юзер понятия не имеет, что можно сделать с его смартфоном, если какой-то неблагонадежный гражданин получит к нему доступ и у него будет достаточно желания и фантазии повеселиться со всем этим.
Вы знаете, большинство людей до сих пор думают что хакеры смотрят на летящие зеленые цифры в мониторе. А еще они думают, что это брутальные аутисты, которые взламывают банки попивая смузи на Бали. И я абсолютно серьезна. Как-то, когда как раз выстрелил биткоин, я встретилась со своей давней знакомой, она, к слову, врач, умная девочка. Она знает, что я программист и работаю в защите и она на полном серьезе спросила меня: как я понимаю эти летящие цифры? И объяснить ей даже что такое for в принципе на данном этапе просто нереально, поэтому я просто перевела тему. Думаю, сейчас люди уже больше понимают, что такое программирование, чем буквально года два назад, потому что оно заполоняет все сферы с бешеной скоростью.
Но вернемся к тому разговору. Меня обрадовало, что она стала консультироваться у меня по поводу информационной безопасности. Конечно, она не знает что это конкретно такое, но она задавала довольно интересные вопросы. Почему у меня начинает нагреваться и тупить смартфон, когда я разгадываю судоку, пока еду в метро? Это же всего лишь судоку, даже она понимает, что телефон не должен сходить с ума во время такой незатейливой игры.
Вы здесь вроде умные ребята, как вы думаете, почему примитивное судоку с топорным UI грело ей телефон так, что пальцы можно было обжечь?
Вот именно, судоку то майнило. И самое забавное, вполне законно. Это как раз о том, что следует внимательнее читать пользовательское соглашение. При установке этой игрушки автор спрашивал, хочет ли пользователь смотреть рекламу или позволит майнить на своем устройстве. А кто вообще будет скроллить этот скучный текст, а еще ведь и прочесть его надо, и люди просто тыкают “Да-да-да”, отстань, ведь они хотят скорее добраться до контента. Не важно какими путями. И эта тенденция не устарела и ай-яй-яй-разработчики будут эксплуатировать ее еще долгое время. Всем добра:)
#shkryaba
Я спрашивала вас, интересно ли вам узнать, как работает Android более подробно. И, наконец, добила статью с описанием работы одного из самых главных компонентов системы - SystemUI.
Я спрашивала вас, интересно ли вам узнать, как работает Android более подробно. И, наконец, добила статью с описанием работы одного из самых главных компонентов системы - SystemUI.
Хабр
Как работает SystemUI в Android
В этой статье я разберу архитектуру и принцип работы основного приложения Android — SystemUI. Меня заинтересовала эта тема, потому что мне интересно, как устро...
Уже давно лежат тезисы для статьи как сделать приложение безопаснее. Но все не могу собраться с мыслями и написать полноценный текст. После последней публикации меня уже несколько раз попросили дать рекомендации, потому закидываю это сюда. Я обязательно в будущем разберу все это более подробнее, но пока так:)
1. Стратегия запутывания (запутать код с кодом на китайском языке к примеру). Это делается с помощью proguard
2. Предотвращение захвата экрана приложения. А еще можно определять всяки впны и прокси типа
System.getProperty("http.proxyHost");
System.getProperty("http.proxyPort");
3. Не позволять приложению работать с Hook
4. Запретить отладку (тут все просто, нужно чтобы процесс отслеживался родительским процессом. то есть если родительский процесс всегда должен отслеживать дочерний процесс. Присоединение процесса происходит единожды, если же нет - то значит кто-то дебажит) ну и debuggable = false конечно же нужно поставить и android.os.Debug.isDebuggerConnected() проверить
5. Проверить порт. По умолчанию ида к примеру юзает один и тот же порт. Так что мы можем посмотреть использование tcp порта устройства
6. TracerPid проверить
7. Защита подписи приложения
8. NDK как интрумент не только повышения производительности, но и улучшения безопасности
1. Стратегия запутывания (запутать код с кодом на китайском языке к примеру). Это делается с помощью proguard
2. Предотвращение захвата экрана приложения. А еще можно определять всяки впны и прокси типа
System.getProperty("http.proxyHost");
System.getProperty("http.proxyPort");
3. Не позволять приложению работать с Hook
4. Запретить отладку (тут все просто, нужно чтобы процесс отслеживался родительским процессом. то есть если родительский процесс всегда должен отслеживать дочерний процесс. Присоединение процесса происходит единожды, если же нет - то значит кто-то дебажит) ну и debuggable = false конечно же нужно поставить и android.os.Debug.isDebuggerConnected() проверить
5. Проверить порт. По умолчанию ида к примеру юзает один и тот же порт. Так что мы можем посмотреть использование tcp порта устройства
6. TracerPid проверить
7. Защита подписи приложения
8. NDK как интрумент не только повышения производительности, но и улучшения безопасности
Сегодня поговорим о стандартной безопасности клиент-серверных приложений, которые получают свои json-чики и парсят их во view. Итак, что мы можем сделать чтобы защитить свое клиент-серверное приложение?
Вообще здесь всего два пункта, на которые следует обратить внимание:
1. Идентификация и проверка пользователя как на клиенте, так и на сервере.
Идентификация пользователя включает в себя сбор данных безопасности с использованием клиентского программного обеспечения и предоставление этих данных серверу. Данные безопасности - это идентификатор пользователя, пароль и, необязательно, маркер безопасности.
2. Предотвращение несанкционированного доступа к приложению или его функциям.
После того, как пользователь идентифицирован на клиенте и сервере, права доступа этого пользователя должны быть определены, а приложение защищено в самом приложении. Обеспечение транзакции и ее функций является ответственностью разработчика приложений.
Конечно, я говорю это так что вот, смотрите, если вы будете следовать этим двум пунктам, то вы будете в безопасности. Классно то как!
Конечно же нет. Вы будете обмениваться токенами с сервером, токен вам придется где-то хранить, вы можете шифровать все это перешифровать, но в итоге, если появится человек, достаточно заинтересованный во взломе конкретно вашего приложения. Он вытащит из него все. Вы можете только максимально усложнить ему задачу. Это как с двумя дверьми. Первая выглядит вполне себе миленько, но когда злоумышленник вскрывает ее, его встречает бронебой и он такой: неее, пожалуй я залезу к твоему соседу Пете...
Полезный ресурс для защиты вашего клиент-серверного приложения
Вообще здесь всего два пункта, на которые следует обратить внимание:
1. Идентификация и проверка пользователя как на клиенте, так и на сервере.
Идентификация пользователя включает в себя сбор данных безопасности с использованием клиентского программного обеспечения и предоставление этих данных серверу. Данные безопасности - это идентификатор пользователя, пароль и, необязательно, маркер безопасности.
2. Предотвращение несанкционированного доступа к приложению или его функциям.
После того, как пользователь идентифицирован на клиенте и сервере, права доступа этого пользователя должны быть определены, а приложение защищено в самом приложении. Обеспечение транзакции и ее функций является ответственностью разработчика приложений.
Конечно, я говорю это так что вот, смотрите, если вы будете следовать этим двум пунктам, то вы будете в безопасности. Классно то как!
Конечно же нет. Вы будете обмениваться токенами с сервером, токен вам придется где-то хранить, вы можете шифровать все это перешифровать, но в итоге, если появится человек, достаточно заинтересованный во взломе конкретно вашего приложения. Он вытащит из него все. Вы можете только максимально усложнить ему задачу. Это как с двумя дверьми. Первая выглядит вполне себе миленько, но когда злоумышленник вскрывает ее, его встречает бронебой и он такой: неее, пожалуй я залезу к твоему соседу Пете...
Полезный ресурс для защиты вашего клиент-серверного приложения
Nsoftware
SecureBlackbox 16: Securing Your Client-Server or Multi-Tier Application
Introductory article about security and encryption in distributed applications.
Думаю запилить статью о том, как работает ProGuard. Оказывается, до сих пор многие бояться даже на него смотреть и в лучшем случае пользуются его дефолтной реализацией.
#shkryaba
В этом году это будет моей последней статьей. Она уже давно у меня лежала и, надеюсь, кому-нибудь она сэкономит время. Итак, давайте погрузимся в это чудесное приключение по получению уникального идентификатора устройства. С наступающим!:)
В этом году это будет моей последней статьей. Она уже давно у меня лежала и, надеюсь, кому-нибудь она сэкономит время. Итак, давайте погрузимся в это чудесное приключение по получению уникального идентификатора устройства. С наступающим!:)
Habr
Подводные камни идентификации Android-устройства
Некоторым разработчикам может понадобится идентифицировать Android-устройства своих пользователей. Чаще всего это делается не для того чтобы распознать именно девайс, а для определения конкретной...
Этот год выдался довольно интересным. Я многому научилась, многое сделала, разные люди окружали меня, вдохновляли или, наоборот, вызывали отвращение. У меня сформировались более четкие цели на будущее и я очень рада этому, потому что когда нет конкретных целей, любые движения превращаются в мельтешение. Непонятно, что и зачем ты делаешь. Я давно хотела создать канал, но буквально несколько месяцев назад я не могла даже сформулировать, зачем он мне и как я буду его вести. Сейчас же это представление тоже до сих пор формируется. Потому на этот счет я решила спросить вас:)
Оу, ну ладно-ладно, я все поняла, только технологии, код и хардкор. Те, кто ждет бьюти блоги, вы там поосторожнее, а то от мужественности своего блога в один прекрасный момент я могу слететь с катушек и запилить сто слоев туши. Вот будет нежданчик (*^ω^*)
В 2019 ничего не изменится?
За все время я успела поработать на разных проектах, в разных компаниях, с разными людьми. Каждый мой проект значил для меня много, я приходила на него с конкретной целью и, чаще всего, уходила, когда вбирала в себя все, что он мне мог бы дать.
Есть с десяток статей о том, какие разработчики безответственные и какие менеджеры дураки. Но переходя из компании в компанию, сталкиваясь с разным ведение процессов и взаимодействием людей, начинаешь понимать, что, по факту, менеджеры вводят новые методики, разработчики вводят новые подходы, но очень редко, когда они действительно знают, что делают. Зачастую, это бывает так: мы введем agile потому что я был на конференции и там сказали что это прям классно. И не важно, что та компания занималась разработкой приложения, которое продает пиццу, а мы делаем интерфейс для беспилотника.
У разработчиков так же, все кричат Kotlin, Dagger, RxJava!! А почему бы не запихнуть все это в проект и не важно, что Dagger мы вставим по шаблонам, которые никто так до конца и не понял, а как работает многопоточность из коробки вообще видимо не важно, а если заглянуть под капот Kotlin — польются кровавые слезы (хотя в последнее время стало явно лучше).
И только в очень редких случаях можно встретить людей, которые действительно понимают, что делают. Но, как правило, начинали они все с того же, что я описала выше.
Очень сложно сделать что-то с первого раза, без какого-либо опыта, чтобы оно сразу зашло, взлетело. Люди приходят на проект, от них ждут, что они сделают его лучше, но они учатся на нем и если все идет не по плану, они легко могут просто свалить. А вы со своим проектом останетесь у разбитого корыта.
Сейчас слишком много людей, которые хотят отвечать одновременно за все и ни за что. Они хотят кричать, что это они придумали и сделали, но если что не так, то просто отстраняются. Именно потому очень ценны люди, которые могут вытащить проект с самого дна, потому что мало кто будет даже просто пытаться.
Потому, если вы думаете, что все пошло не по плану и вам хочется уйти прямо сейчас, подумайте несколько раз о том, что вам дал этот проект и что он еще мог бы дать (тут я имею в виду даже не деньги, а скорее опыт и эмоции, которые вы получаете от работы). Потому что любое приложение, софт, система — написана людьми. Это целая команда, не только разработчики, но и аналитики, менеджеры, тестировщики. И если что-то не так с командой, если что-то не так с руководством — каждый начинает это чувствовать и проект разваливается.
За все время я успела поработать на разных проектах, в разных компаниях, с разными людьми. Каждый мой проект значил для меня много, я приходила на него с конкретной целью и, чаще всего, уходила, когда вбирала в себя все, что он мне мог бы дать.
Есть с десяток статей о том, какие разработчики безответственные и какие менеджеры дураки. Но переходя из компании в компанию, сталкиваясь с разным ведение процессов и взаимодействием людей, начинаешь понимать, что, по факту, менеджеры вводят новые методики, разработчики вводят новые подходы, но очень редко, когда они действительно знают, что делают. Зачастую, это бывает так: мы введем agile потому что я был на конференции и там сказали что это прям классно. И не важно, что та компания занималась разработкой приложения, которое продает пиццу, а мы делаем интерфейс для беспилотника.
У разработчиков так же, все кричат Kotlin, Dagger, RxJava!! А почему бы не запихнуть все это в проект и не важно, что Dagger мы вставим по шаблонам, которые никто так до конца и не понял, а как работает многопоточность из коробки вообще видимо не важно, а если заглянуть под капот Kotlin — польются кровавые слезы (хотя в последнее время стало явно лучше).
И только в очень редких случаях можно встретить людей, которые действительно понимают, что делают. Но, как правило, начинали они все с того же, что я описала выше.
Очень сложно сделать что-то с первого раза, без какого-либо опыта, чтобы оно сразу зашло, взлетело. Люди приходят на проект, от них ждут, что они сделают его лучше, но они учатся на нем и если все идет не по плану, они легко могут просто свалить. А вы со своим проектом останетесь у разбитого корыта.
Сейчас слишком много людей, которые хотят отвечать одновременно за все и ни за что. Они хотят кричать, что это они придумали и сделали, но если что не так, то просто отстраняются. Именно потому очень ценны люди, которые могут вытащить проект с самого дна, потому что мало кто будет даже просто пытаться.
Потому, если вы думаете, что все пошло не по плану и вам хочется уйти прямо сейчас, подумайте несколько раз о том, что вам дал этот проект и что он еще мог бы дать (тут я имею в виду даже не деньги, а скорее опыт и эмоции, которые вы получаете от работы). Потому что любое приложение, софт, система — написана людьми. Это целая команда, не только разработчики, но и аналитики, менеджеры, тестировщики. И если что-то не так с командой, если что-то не так с руководством — каждый начинает это чувствовать и проект разваливается.
Жив хоть кто? Я тут собираюсь пробраться на парижский митап мобильных разработчиков. А то тут гуляла по диснейленду и приложение для него меня, мягко говоря, расстроило:С
Должен ли разработчик пользоваться тем, что разрабатывает?
Программное обеспечение представляет из себя десятки миллионов строчек кода, а количество разработчиков, стоящих за ними, достигает миллиона. Каждый программист, который занимается разработкой какого-либо продукта — это человек, у которого есть свои желания и стремления. Он так же покупает технику, как и его сосед юрист/врач/менеджер, водит машину, ходит в кино.
Когда я еще училась в универе, мой друг рассказал мне, как он сходил на конференцию, где был один из разработчиков платформы Windows Phone (мой друг как раз тогда занимался разработкой именно под WP). И когда он, воодушевленный, решил подойти к этому разработчику и задать ему пару вопросов, тот предложил сфотографироваться всем вместе и достал для этого новенький iPhone. Запал моего друга поутих. Так вот, значит ли это хоть что-нибудь?
Сейчас, когда мы уже на несколько лет впереди от этой ситуации, мы легко можем сказать, что этот разработчик просто сам не верил в собственный продукт, а если разработчик не верит в то, что разрабатывает — неудивительно, что это в итоге разваливается.
На мой взгляд, это немного не так. Однако и часть правды в этом так же есть.
Сложно сказать разработчику какой-нибудь космической программы попробовать ее использовать 24/7. Тут я скорее говорю о таких проектах, которыми мы в итоге действительно пользуемся, но по какой-то причине выбираем другой аналог, а не тот продукт, который или для которого мы что-то создаем.
Если вы разрабатываете приложение для автомобиля (карты, сбор статистики, такси), то вы должны уметь водить, потому что это позволит вам сформировать представление о том, как это все должно работать и насколько удобно пользоваться создаваемым вами продуктом другим людям в реальной жизни. Пишите какую-то операционную систему — пользуйтесь ей. Пишите приложения под iOS, используйте iPhone, пишете под Android — используйте Android.
Вы можете сказать, что все это неважно, ведь разработчик зачастую видит только строки кода и задачи в канбане. Какая ему разница, как работает то, что он создает, это задача уже архитектора и проектного менеджера, который пихает задачи и вообще кого угодно, но не его... Задача разработчика — писать код и чтобы его код не падал. И да, это тоже сработает, однако, к сожалению, если вы не имеете достаточного понимания о среде, для которой вы что-либо разрабатываете, вам очень сложно будет делать действительно хорошие продукты.
Я пишу это с полным осознанием, потому что я пыталась пользоваться разными системами и вижу в чем заключается ключевая разница. Если вы не удовлетворены тем, что разрабатываете, если вам наплевать — меняйте свою сферу, потому что вы портите жизнь не только себе, но и людям, с которыми работаете, а еще и сам продукт.
Программное обеспечение представляет из себя десятки миллионов строчек кода, а количество разработчиков, стоящих за ними, достигает миллиона. Каждый программист, который занимается разработкой какого-либо продукта — это человек, у которого есть свои желания и стремления. Он так же покупает технику, как и его сосед юрист/врач/менеджер, водит машину, ходит в кино.
Когда я еще училась в универе, мой друг рассказал мне, как он сходил на конференцию, где был один из разработчиков платформы Windows Phone (мой друг как раз тогда занимался разработкой именно под WP). И когда он, воодушевленный, решил подойти к этому разработчику и задать ему пару вопросов, тот предложил сфотографироваться всем вместе и достал для этого новенький iPhone. Запал моего друга поутих. Так вот, значит ли это хоть что-нибудь?
Сейчас, когда мы уже на несколько лет впереди от этой ситуации, мы легко можем сказать, что этот разработчик просто сам не верил в собственный продукт, а если разработчик не верит в то, что разрабатывает — неудивительно, что это в итоге разваливается.
На мой взгляд, это немного не так. Однако и часть правды в этом так же есть.
Сложно сказать разработчику какой-нибудь космической программы попробовать ее использовать 24/7. Тут я скорее говорю о таких проектах, которыми мы в итоге действительно пользуемся, но по какой-то причине выбираем другой аналог, а не тот продукт, который или для которого мы что-то создаем.
Если вы разрабатываете приложение для автомобиля (карты, сбор статистики, такси), то вы должны уметь водить, потому что это позволит вам сформировать представление о том, как это все должно работать и насколько удобно пользоваться создаваемым вами продуктом другим людям в реальной жизни. Пишите какую-то операционную систему — пользуйтесь ей. Пишите приложения под iOS, используйте iPhone, пишете под Android — используйте Android.
Вы можете сказать, что все это неважно, ведь разработчик зачастую видит только строки кода и задачи в канбане. Какая ему разница, как работает то, что он создает, это задача уже архитектора и проектного менеджера, который пихает задачи и вообще кого угодно, но не его... Задача разработчика — писать код и чтобы его код не падал. И да, это тоже сработает, однако, к сожалению, если вы не имеете достаточного понимания о среде, для которой вы что-либо разрабатываете, вам очень сложно будет делать действительно хорошие продукты.
Я пишу это с полным осознанием, потому что я пыталась пользоваться разными системами и вижу в чем заключается ключевая разница. Если вы не удовлетворены тем, что разрабатываете, если вам наплевать — меняйте свою сферу, потому что вы портите жизнь не только себе, но и людям, с которыми работаете, а еще и сам продукт.
Сейчас очень распространено мнение, что если тебе нечего скрывать, то тебе вроде как должно быть все равно, имеет кто-то доступ к твоим личным данным или нет. Я думаю, что это в корне неправильно, а вы?
Раз уж пошла такая пляска, то вот вам свежая статья о том, как прятать свои данные в Android-приложении. Советую ознакомиться;)
Хабр
6 способов спрятать данные в Android-приложении
Привет, дорогой читатель, уже достаточно давно я изучаю мобильные приложения. Большинство приложений не пытаются как-то скрыть от меня свой «секретный» функциона...
Я очень часто замечаю, что программисты не умеют управлять своими финансами, в плане того же вложения денег в какие-то подручные инструменты или вообще в отношении общих трат. Иногда они не покупают шампунь, потому что он дороже на 30 рублей и в тот же момент с огнем в глазах отдают свои кровно заработанные 80$ за Sublime Text, который имеет уйму бесплатных аналогов. Они даже не задумываются о том, сколько стоит их время и сколько стоят они сами. А темы касательно зарплат и финансов хоть всех и интересуют, но прямые разговоры об этом чуть ли не порицаются. И эта финансовая неграмотность ведёт к тому, что вроде программисты и зарабатывают хорошо, но в итоге деньги куда-то уходят, на что - непонятно, а видимого результата нет.
Запускаю новую рубрику — Подборка хороших материалов
Как работает Android
Android: новый метод рутинга и большое исследование безопасности IPC в приложениях
Разработка библиотеки: от API до публичного релиза
Как научить людей использовать Git
D8/R8 vs DX/Proguard - видео
Акция не регулярная, но периодически, когда у меня самой застой, я буду организовывать что-нибудь подобное:)
P.S. Приходите на MOSDROID - https://habr.com/ru/post/437368/
Как работает Android
Android: новый метод рутинга и большое исследование безопасности IPC в приложениях
Разработка библиотеки: от API до публичного релиза
Как научить людей использовать Git
D8/R8 vs DX/Proguard - видео
Акция не регулярная, но периодически, когда у меня самой застой, я буду организовывать что-нибудь подобное:)
P.S. Приходите на MOSDROID - https://habr.com/ru/post/437368/
Habr
Как работает Android, часть 4
Всем привет! Мы нашли время продолжить серию статей про внутреннее устройство Android. В этой статье я расскажу о процессе загрузки Android, о содержимом файловой системы, о том, как хранятся данные...