среда, 15 октября 2014 г.

Жизненные советы

  • Ищи решения до последнего, пока не перепробуешь все возможные варианты.
  • Важно не только знание, но и воображение, без которого знание - пустой лист.
  • Человек, который никогда не совершал ошибок, никогда не пробовал делать ничего нового.
  • Информация в чистом виде — это не знание. Настоящий источник данных — это опыт.
  • Никаких было, никаких будет. Только здесь и сейчас.
  • Глупость — это делать одно и то же раз за разом, и при этом ждать разных результатов.
  • Здравый смысл — это собрание предрассудков.
  • Когда вы проигрываете, постарайтесь извлечь из этого урок, а то и пользу.
  • Уважайте себя, уважайте других, отвечайте за все свои поступки.
  • Правило 80/20 (принцип Парето).
  • Закон Паркинсона.
  • Хватит избегать перемен.
  • Прекрати пытаться контролировать неконтролируемое.
  • Перестань убегать от своих проблем и страхов.
  • Не пытайся быть тем, кем ты не являешься.
  • Везде носите с собой блокнот.
  • Мир пытается оставить тебя тупым.
  • Не теряйте времени на скромность.
  • Выйдите за пределы своей зоны комфорта.
  • Устраивайте себе ежедневный сеанс мозгового штурма на любую тему.
  • Не останавливайтесь на единственном ответе на вопрос.
  • Не старайтесь объять необъятное.
  • Мыслите логически.
  • Выучите определения.
Человек падает с 50 этажного здания. Пролетая каждый этаж он говорит себе: "Пока все идет хорошо". Но главное не падение, главное - приземление.

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



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

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

Высшее образование в IT своми руками

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

Введение

 Мотивация, базовые навыки для дальнейшего изучения.
 Книги: «А я был в компьютерном городе», рандомный советский школьный учебник по информатике, SICP, конкретная математика. Усердно изучаешь английский. Читать лучше на английском. Сложно только первую книгу. Как только разберёшься (вместе с английским это была самая сложная часть курса), тебе понадобится какой-нибудь язык программирования. Ещё не для того, чтобы программировать, а для того, чтобы писать учебные примеры (на схеме это делать достаточно муторно). Чтобы меня не сочли троллем в первом абзаце пасты предлагаю 1) C (Учебник Дейтелов, кресты (c++) долго не используй, зашкваришься) 2) Java («Философия» Эккеля) или Python (DIVE INTO PYTHON из той самой пасты) на выбор. Можно оба.
Всё достаточно лёгкое (C в меньшей степени), всё считается местными говном (C в меньшей степени). После SICPа идти будет очень легко, си тебе сам по себе не понадобится, но скиллы писания на нём пригодятся ещё много раз. Пишешь на выбранном языке 10 простых программ (решение уравнений, перемножение матриц, игры а-ля 90-е, ИИ для какой-нибудь из игр, просто что-нибудь прикольное, что в голову придёт). Вооружившись этой хуйнёй переходишь к изучению матчасти.
Матчасть: Твоя задача на данном этапе — получение фундаментальных представлений по CS. Книжки будут вдвое толще, чем на предыдущем этапе, понимать сразу всё не будешь, но перечитывай мере необходимости.

i2p ресурсы


I2P — открытое программное обеспечение, созданное для организации сверхустойчивой анонимной, оверлейной, зашифрованной сети и применимое для веб-сёрфинга, анонимного хостинга (создания анонимных сайтов, форумов и чатов, файлообменных серверов и т. д.), систем обмена мгновенными сообщениями, ведения блогов, а также для файлообмена (в том числе P2P — Torrent, eDonkey, Kad, Gnutella и т. д.), электронной почты, VoIP и многого другого. Адреса сайтов в сети I2P находятся в псевдо-доменном пространстве .i2p.

inr.i2p — самый известный регистратор доменных имен, который так же собирает имена сайтов с других регистраторов. На нем можно посмотреть весь список зарегистрированных живых сайтов.
hiddenchan.i2p — русскоязычная борда
anch.i2p — тоже борда, здесь собираются анархисты
rus.i2p — русскоязычная wiki всея i2p
pastethis.i2p — аналог pastebin
flibusta.i2p — зеркало Флибусты, созданное Флибустой
lib.i2p — тоже библиотека, но суто внутри i2p
bashorg.i2p — аналог башорга
i2push.i2p — файлообменник
freezone.i2p — да простит мне НЛО, скорее живой, чем мертвый клон хабры с возможностью постинга от имени «anonymous»
nnm-club.i2p — зеркало сайта nnm-club, торренты остались в clearnet
tracker2.postman.i2p — внутрисетевой торрент-трекер
runode.i2p — русскоязычный торрент-трекер
ptt.i2p — торрент-трекер без открытого реестра торрентов.
lenta.i2p — новости
progromore.i2p — wiki для программистов
e-reading.i2p — библиотека

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

Полезные сервисы

paletton.com Сервис для составления палитр.

alternativeto.net Сервис по поиску аналогов программ. Хочешь найти бесплатную альтернативу надоевшей платной программы? Тогда тебе сюда.



sourcetalk.net Простой и понятный сервис для удаленного обсуждения кода между учасниками команды разработчиков.

Ориентировочная программа курса по программированию под Android




  1. Знакомство с инструментами разработки. 
  2. Верстка экранов под разные разрешения экранов. Сложности и способы их решения.


  3. Ресурсы. Строки, картинки и макеты.
  4. Activity и Fragments. Tapbar. View и ViewGroup.
  5. Синхронные и асинхронные процессы. Asynctask и Loader.
  6. Services и ContentProvider.
  7. Стандартные сервисы android. Нотификация, скачивание и геокодинг.
  8. Работа с аппаратными возможностями телефона: использование камеры для фотографирования, гироскоп/акселерометр для определения положения телефона в пространстве, GPS для получения координат пользователя, датчик освещенности, NFC.
  9. Создание виджетов для рабочего стола – динамическое отображение информации прямо на домашнем экране телефона! Например: часы, погода, курсы валют.
  10. Networking. Загрузка ресурсов. Вызов веб-сервисов и обработка результата в форматах: XML, JSON.
  11. Хранение и обработка данных накопленных в процессе работы приложения (настройки, и т.д.): SharedPreferences, SQLite.
  12. Взаимодействие со стандартными Android приложениями: простое получение снимка с камеры, контакта адресной книги, запуск браузера, доступ к СМС и т.д.
  13. Работа с картографическими сервисами: использование Google Maps, forward/reverse geocoding.
  14. Внутренние покупки с Google Play billing.

Основные требования для устройства на работу junior android developer


Основным требованием при устройстве на работу разработчиком Android является наличие готовых проектов на Google Play.  Для добавления своего приложения в маркет вам нужно зарегистрировать аккаунт разработчика заплатив Google $25, что можно сделать на странице разработчиков.
Для того чтобы писать программы на Android вам нужно обладать таким наором знаний и навыков:


  • Java. Нужно знать основной синтаксис языка, хорошо понимать принципы ООП, оперирывать с основными типами данных и уметь писать простые програмы.
  • Многопоточность
  • XML. Верстка визуальной составляющей, подключаемые ресурсы, и многое другое в Андроид производится с помощью XML разметки. 
  • SQL. Вам необходимо знать основные SQL запросы и уметь работать с ними а также уметь работать с SQLite - бд для Андроид.
  • Version Control Systems
  • HTML/CSS
  • Шаблоны проектирования используемые в Android (нелохая шпаргалка по шаблонам)
  • Знание Android SDK и умение работать со стандартными средствами Android.Об этом подробнее.
  • Клиент-серверная архитектура приложений

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


Как программировать правильно. Полезные советы




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

Пункт № 0 — Цель Программирование — не цель, а средство, если бы можно было решать проблемы выстругивая квадратные палочки и выкрашивая их в зеленый цвет так бы и делали. 
Пункт № 1 — Предназначение Людей интересуют они сами, их проблемы и немного другие люди. Все остальное их не колышет. Это помогает осознавать, что если можно сделать за 2 человеко-месяца, не надо растягивать на 50 человеко-лет, ваш заказчик не такой дурачок, он быстро смекнет что к чему и свалит, раструбив на весь мир что ваша фирма — куча муд*ков, вам с вашим эгоизмом может быть пофигу, но если ваше имя засветиться в black-list-е, потом не найдете работу. 
Пункт № 2 — Результат Результат — главное, все остальное не имеет значения. На каком языке/томкате/сборки и что вы делаете, если результата нет — получите лучи гнева в свой адрес, в худшем не выплатят часть денег и поверьте, менеджер с вас не слезет после этого. Не выпендривайтесь перед заказчиком/ихним менеджером умными словами если результата нет. Сравните это поведение с поездкой в автосервис когда вам машину не починили, но вылили на голову ведро умных слов.
Пункт № 3 — Код Код должен делать то, что от него ожидается, ничего другого он делать не должен. Никаких методов про запас, никаких закомментированных кусков. Если вдруг в вашу сторону что-то полетит тяжелое — значит это вы создали getter, который допустим «заодно» подчищает объекты в базе, никаких побочных эффектов. Метод 1000+ строк с 20-ю блоками if-else и циклами 14-го уровня вложенности осилить невозможно. 
Пункт № 4 — Подход Пишите как можно проще, я не призываю на все наплевать и получить сложность O(n*n) где можно обойтись O(1) или O(log(n)), то что вы напишете кто-то должен понимать и поддерживать. Код должен нормально читаться и восприниматься.
Пункт № 5 — Отраслевые стандарты Почитайте, освойте и ПРИМЕНЯЙТЕ отраслевые стандарты по использованию VCS, форматировании кода, деплоя, именования всего и вся, составления документации, создания тасков. Понятно что каждая кухарка мнит себя королевой, но блин вы не представляет как задолбал каждый раз новый flow в JIRA на одни и те же проекты, как задолбало форматирование в 2 пробела в Java коде, задолбал деплой через ж*пу подкидыванием файликов по одному на тестовый сервак. Задолбали отчеты в 4 места по UI-таску. Посмотрите как делаются проекты в Apache и не позорьтесь своими «ноу-хау».
Пункт № 6 — Выпендрежу и закидонам нет места Если бы заказчики почитали хотя бы 10% DOU, они бы вывели большую часть проектов с Украины. Потому что программисты в большинстве своем ведут себя, мягко говоря, неадекватно. Переписать код с Java на Хаскель потому что Хаскель — «тру», а Java — «не тру», линукс — «тру», винда — «не тру», абстрактные фабрики и монады для вывода 5 строк на консоль — «тру», конкатенировать 5 строк 1 раз — «не тру», адское шаманство JVM/среды разработки/инструментальных средств — «тру», чистый билд на Jenkins — «не тру». Задолбали, честное слово. Поймите, заказчику до фонаря, он привык сидеть в IE8 и готов ввалить в вас несколько лимонов долларов, чтобы вы поддерживали этот IE8, задумайтесь — миллионы долларов, его все устраивает и он готов заплатить за этот и тут вы с этим идиотизмом. Так что закройте рот и молча фиксите IE-баги. Если потребуется новые фичи, например полноценные CSS3 — вежливо и развернуто подскажите, что мы бы рады, но IE8 не поддерживает, давайте повысим версию? 
Пункт № 7 — Уважайте коллег по работе На работе в основном занимайтесь работой, а не херней. Не отвлекайте коллег по пустякам, не врубайте музыку на всю комнату, не тролльте и не подкалывайте просто так, особенно в релиз. Не ведите себя как стадо обизян, не устраивайте кукольный театр в опенспейсе в рабочее время. Не разрисовывайте офис целую неделю. Не используйте масляные краски в непроветриваемом помещении и вообще в помещении и вообще рисуйте, с*ка, на дому. 
Пункт № 8 — Документирование Пишите, бл*, комментарии на сложные методы, модули и в коммитах что это делает. Не пишите, бл*, что метод возвращает boolean или бросает проверяемый Exception, я это и так вижу по его сигнатуре. Поверьте 100500 х //TODO в коде не радует и хочется кому-то дать в морду. Составьте wiki как вашего франкенштейна поднять, если не хватает ума сделать скрипт в одну команду. 
Пункт № 9 — Пожелания Делайте работу качественно, с любовью или хотя бы с достоинством, спустя рукава и лишь бы отсидеть и затянуть 2-х дневный таск(на расслабоне) на 4 недели — не надо, пожалуйста. Не стоит делать видимость работы, все прекрасно понимают что к чему и рано или поздно вас «сдадут» ли вы сами сядете в лужу.

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

1. Решайте загадки и головоломки. 
2. Обращайте внимание на неопределенность и двусмысленность. Научитесь любить парадоксы и оптические иллюзии. 
3. Развивайте творческое мышление. 
4. Транспонируйте реальность. Всегда спрашивайте себя: «А что если?..» 
5. Учитесь логике. Решайте логические задачи. 
6. Занимайтесь спортом. 
7. Соблюдайте осанку. 
8. Слушайте классическую музыку. 
9. Читайте классику. 
10. Играйте в шахматы, шашки, нарды… 
11. Развивайте чувство юмора. Придумывайте свои шутки. 
12. Развивайте наблюдательность. 
13. Учите иностранный язык. 
15. Учитесь играть на музыкальном инструменте. 
16. Пробуйте мысленно оценивать течение времени. 
17. Выполняйте арифметические расчеты в уме. 
18. Найдите время для уединения и отдыха.
19. Поставьте себя на чужое место. Представьте, как другие люди решали бы ваши проблемы. 
20. Не нервничайте
21. Примите обязательство постоянно учиться чему-то новому. 
22. Совершите путешествие за границу. Узнайте о различных стилях жизни. 
23. Общайтесь с теми, кто вам близок по интересам. 
24.  Не смотрите телевизор. Он тормозит ум.
25. Развивайте самосознание. 
26. Занимайтесь интроспекцией (анализом своих действий и поступков)