Project Codder. Week #0

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

Цель

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

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

android_icons_preview

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

Background

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

С программированием я познакомился еще во время получения среднего образования. Тогда это был Turbo Pascal и Delphi. Школьная программа была не сильно углубленной, справлялся я с ней хорошо, даже весьма успешно участвовал в олимпиадах по информатике. Самое сложное, что я написал — это игра бильярд-американка с простенькой самописной физикой и интерфейсом. К сожалению, исходники не сохранились.

maxresdefault

Следующая графа была уже в университете, где я учил Python. В основном я писал какие-то не особо требовательные к коду физические симуляции. Сложность была не в коде, а в том, для чего он использовался.

Python-3-3-2-Released-with-Multiple-Crash-Fixes-2

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

Путь

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

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

android-wallpaper5_2560x1600

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

Java-Expoit

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

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

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

Please wait...
Теги: , , , , , , , , , , , ,
0
45 Комментарий
Сначала Новые
Сначала Старые Популярные
guest

Межтекстовые Отзывы
Посмотреть все комментарии
belzeblb
belzeblb
8 лет назад

ИЗБАВЛЯЕТСЯ от НИКОТИНОВОЙ и АЛКОГОЛЬНОЙ ЗАВИСИМОСТИ теперь проще простого и всего за 2 дня! Вот почитайте о моих успехах, и у вас получится!– http://neozblog.gu.ma

Please wait...
aston
aston
8 лет назад

Автор обращайся, думаю смогу помочь!

Please wait...
Aleksandr Olegovich
Aleksandr Olegovich
8 лет назад

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

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

Абсолютно одобряю подобные инициативы! Очень круто, когда люди развиваются.
В качестве результирующего приложения могу поддержать идею НОРМАЛЬНОГО приложения komandda (для всех сайтов) для android — и полезно и достаточно интересно в реализации.
От себя добавлю, что особо не вникайте в советы всяких умников советчиков, для каждого человека подход к обучения индивидуален. Кому-то нравится читать 1000 страниц технической литературы, а кто-то не способен и 10 страниц вытерпеть но зато легко обучается на практике, ничего в этом ужасного нету. Стоит попробовать все.

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

Please wait...
Max Gordey
Max Gordey
8 лет назад

Идея супер!
Сам недавно начал “програмировать” по Андроид, но не хватает времени, пошло не очень. Но надеюсь дальше буде лучше.
Антон, если нет проблем с английским, то на сайте developer.android.com есть ответ на твои 90%. Удачи!

Please wait...
Чешир. Тот Самый.
Чешир. Тот Самый.
8 лет назад

Крутой проект, буду следить, может, все-таки тоже начну учиться этому полезному делу, а то все только собираюсь и никак не соберусь)

Please wait...
Sceptic
Sceptic
8 лет назад

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

Please wait...
Хаппинесс
Хаппинесс
8 лет назад
Ответ  Sceptic

Happiness, Ну это уже к веб разрабам поддерживающих этот сайт

Please wait...
Sceptic
Sceptic
8 лет назад

Хаппинесс, только как же до них достучаться :)

Please wait...
800147
800147
8 лет назад

А почему бы не выбрать какой-нибудь транслируемый язык и не писать сразу под все платформы? Если вы не пишите какую-нибудь игру, в которой крайне важна производительность, то не обязательно писать на чём-то нативном. Сейчас, конечно, можно сконцентрироваться на Андроид, но всегда приятно знать, что ваш код можно с минимальными усилиями скомпилировать и на иОС и на Винду.

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

на правах прошедшего описанный в статье путь (с некоторыми оговорками относительно стартового бекграунда) дам несколько советов:
1. никаких “Java за ** дней”, “программирования на **** для чайников” и т.д. в качестве базовой литературы. Ни в коем случае.
2. начинать нужно не с синтаксиса конкретного языка, но с глубинного изучения алгоритмизации. Крайне рекомендую прочесть для начала многотомник Дональда Эрвина Кнута “Искусство программирования”. Это не даст вам в будущем приравнивать умение программировать к знанию синтаксиса. И считать любого ***нокодера программистом. Это принципиально разные вещи. Вы упомянули в статье о том, что к алгоритмам и качеству кода у вас в ВУЗе были довольно посредственные требования. Потому советую для начала освоить фундамент, а уже потом строить на нем стены синтаксиса.
3. Необходим ментор. Человек, являющийся как минимум middle developer-ом, который бы смог направлять и контроллировать самообучение. Курсы и прочие качалки денег а-ля “компьютерные академии” не дают своим слушателм главного – понимания оптимальных алгоритмов. В результате выходят армии тех самых быдлокодеров. Только конкретный человек из друзей или знакомых, прошедший правильный(!) путь становления, может в этом помочь.
4. Изучение паттернов проектирования и программирования. Без знания данных моментов вы обрекаете себя на то, что в программистской среде называется быдлокодингом. И на изобретение монструозных велосипедов.
5. Читайте чужие исходники. В частности исходники open-source проектов. Но читайте аккуратно и вдумчиво. Помимо красивых и эффективных решений вы наткнетесь там и на дебри того самого быдлокода.
Вот в целом и всё, что могу на данный момент посоветовать.

Please wait...
Sceptic
Sceptic
8 лет назад

Андрей Москалец,

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад
Ответ  Sceptic

Happiness, для начала давайте уясним, что мобильная версия сайта – не мобильное приложение. И для того, чтобы исправить косяки этой самой мобильной версии, не нужно с нуля писать мобильное приложение.
Кроме описанных вами проблем мобильной версии сайта, есть ли какие-либо пожелания по функциональности(!), а не багам для гипотетического приложения?

Please wait...
Sceptic
Sceptic
8 лет назад

Андрей Москалец, упс промазал – немного не в тот комментарий (:
Кроме улучшения юзабельности интерфейса ничего особо и не надо прикручивать
Еще хотелось бы, чтоб подкаст был с RSS, но для этого приложение тоже не нужно
Кстати, или я не нашел, или на сайте и правда нет формы для обратной связи

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад
Ответ  Sceptic

Happiness, ну в таком случае это все по части web-разработчика keddr-а. Но никак не по части мобильного приложения :). Последнее имеет смысл разрабатывать ради каких-либо принципиально недостижимых или в разы более удобных в рамках нативного приложения фич.

Please wait...
Sceptic
Sceptic
8 лет назад

Андрей МоскалецHappiness, просмотр картинок – это просто ад

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

Андрей МоскалецHappinessHappinessАндрей МоскалецHappinessАндрей Москалец,

начинать нужно не с синтаксиса конкретного языка, но с глубинного изучения алгоритмизации. Крайне рекомендую прочесть для начала многотомник Дональда Эрвина Кнута «Искусство программирования»

мой знакомый, программист проходящий практику в Microsoft, победитель множества олимпиад и хакатонов сказал, что осилить Кнута крайне сложно. А сам он этого так и не сделал, и тем не менее, является одним из лучших разработчиков которых я знаю.
Начинать же читать подобную литературу до того как писать код – это обрекать себя на очень скорое завершение путешествия в мир программирования. ИМХО

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Alexander Stepanov, “лячканье г**нокода” без теоретических основ алгоритмизации, пусть и не столь фундаментальных, как у Кнута, обрекает любого на превращение в быдлокодера. И это не ИМХО. Их нужно изучать до(!) кодинга. В крайнем случае параллельно. Чтобы закреплять теорию практикой. Но клеить обои перед тем, как закладывать фундамент – это несусветная глупость.

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

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

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Alexander Stepanov, в ваших словах взаимное противоречие. То ваш товарищ олимпист-рекордист и хакатонщик говорит, что Кнут дико сложен, то вы утверждаете, что алгоритмизация проще кодинга… В большей степени я согласен с вашим товарищем. С вами – в корне нет. Это у нас взаимно. На лицо два разных подхода. Людей с вашим подходом мне, к сожалению приходилось не единожды увольнять. По результатам работы. Я исповедую принцип “нормально делай – нормально будет”. Вы же – ” давайте посмотрим, что получится”. Традиционный русский такой принцип. Народный. Но с высоко классными результатами, увы, не имеющий ничего общего.
Как показывает практика, 99% адептов вашего принципа, единожды научившись писать на уровне “а че? Оно же работает!”, не заинтересованы в том, чтобы научиться писать лучше.

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

Андрей Москалец,

то вы утверждаете, что алгоритмизация проще кодинга…

я никогда, НИКОГДА не утверждал что алгоритмизация проще кодинга.
Но кое в чем я ошибся, а точнее не дописал:

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

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

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Alexander Stepanov,

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

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

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

Андрей Москалец, в моем предложение речь шла про проектирование и рефакторинг, я же отказался от вашего предложения с алгоримизацией.

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Alexander Stepanov, проектирование и рефакторинг – прямые производные знания алгоритмизации. Хватит заниматься словоблудием.

Please wait...
Alexander Stepanov
Alexander Stepanov
8 лет назад

Андрей Москалец, не согласен. Желания спорить нет.

Please wait...
kukakostya
kukakostya
8 лет назад

Неплохо было бы написать приложение для KEDDRa. Давно возникали вопросы типа: «а будет?», «не собираетесь?» и т.д., а тут как раз такой матерьяльчик.

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад
Ответ  kukakostya

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

Please wait...
Виктор Цырфа
Виктор Цырфа
8 лет назад

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

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Виктор Цырфа, во-первых все, что вы написали можно сделать. И сделать без каких либо проблем при помощи wp rest api, который умеет отдавать контент в json. С минимальными допилками. Во-вторых – оффлацновое сохранение статьи или де любого другого контента множит на ноль одну из статей монетизации сайта. Нотификации о выходе новых материалов может обеспечить любой вменяемый rss-ридер. Сервис для отложенного чтения есть. И далеко не в единственном экземпляре. Тот же pocket. В итоге лично для меня необходимость запила нативных приложений с указанной вами мотивацией выглядит мягко говоря неубедительной. Есть ли какие-нибудь принципиально новые киллер-фичи, которые бы оправдывали оное начинание?

Please wait...
Виктор Цырфа
Виктор Цырфа
8 лет назад

Андрей Москалец, у вас контраргументация из разряда “зачем людям айфон? у меня есть Nokia 1100, ноутбук и фотоаппарат, вместе они справляются со всем тем же, даже еще лучше”. но люди почему-то покупают айфоны.
проблема в том, что одно приложение должно заменить все эти костыли. а как прикрутить в wp rest api вот эти вот комментарии я вообще не представляю. а по поводу монетизации – приложение явно направлено на завсегдатаев сайта. они по-любому сюда и так зайдут. а кроме того, на такой публике можно и не экономить, это “золотой фонд” любого сайта. ну и в конце-концов, реклама на сайте, на сколько я погляжу, для кеддра занимает весьма незначительную долю от других видов рекламы.
сам бы я себе такое приложения едва ли поставил бы, но постоянные запросы такого в комментариях (и наличие стороннего клиента) говорят сами за себя

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

Виктор Цырфа, как раз наоборот. Я выступают за унификацию и централизацию. Как адепт смартфонов и “швейцарских ножей” там, где они уместным, я ратую за единое новостное приложение, коим у меня является Flipboard и за единое приложение для отложенного чтения. Для меня это pocket. Но в ваших словах есть зерна истины. Потому благодарю за ваши идеи. :)

Please wait...
Костякука
Костякука
8 лет назад
Ответ  kukakostya

kukakostya, А зачем? Овчинка не стоит выделки. Слишком затратно. Сайт и так адаптирован под разные экраны. Создайте через браузер ярлык для сайта, иконка будет выглядеть как приложение

Please wait...
Юля Рябухина
Юля Рябухина
8 лет назад
Ответ  kukakostya

kukakostyaКостякукаАндрей Москалец, а оно есть!) Не наше фирменное, какой-то добрый человек сделал. “Keddr новости” называется, если любопытно. Но там не отоброжаются комменты

Please wait...
Недуев Тарас
Недуев Тарас
8 лет назад

Юля Рябухина, Keddr новости, это просто парсер вордпресса ) Отдельное приложение можно сделать которое не просто парсит и показывает в приложении(по сути от чтения в браузере ничем не отличается), а в котором можно подписаться на конкретные рубрики, обновления которых демонстрировались бы в виде циферки прям на иконке(или виджете) приложения, сохраняло бы автоматически избранные категории для послечтения и т.д.)

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад

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

Please wait...
kukakostya
kukakostya
8 лет назад
Ответ  kukakostya

kukakostyaЮля РябухинаНедуев ТарасКостякукаАндрей МоскалецВиктор Цырфа, я предположил, что как раз это приложение было бы интересным максимальному количеству читателей. Многие захотели бы принимать участие в этом(советами, идеями, рекомендациями). А уже исходя из результата(то сколько людей скачают, сколько действительно будут пользоваться) можно будет уяснить действительно необходимо оно или нет.

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад
Ответ  kukakostya

kukakostya, то есть сначала сделать что-то, а потом попытаться понять зачем? Wtf? Где же логика?

Please wait...
kukakostya
kukakostya
8 лет назад

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

Please wait...
Андрей Москалец
Андрей Москалец
8 лет назад
Ответ  kukakostya

kukakostya, правильно ли я понял – вы предлагаете сделать приложение для keddr тестовым проектом для данной рубрики, а потом, по результатам посмотреть, нужно ли его развивать? Правильно?

Please wait...
kukakostya
kukakostya
8 лет назад

Андрей Москалец, совершенно верно.

Please wait...
Сыч
Сыч
8 лет назад

Круто, закончу долбаную школу, тоже буду учиться

Please wait...
EMOPLAYA
EMOPLAYA
8 лет назад
Ответ  Сыч

Школа не помеха для учёбы ))

Please wait...
Сыч
Сыч
8 лет назад
Ответ  EMOPLAYA

EMOPLAYA, моя школа не совсем обычная, тем более выпускной класс, надо сначала экзамены сдать

Please wait...
EMOPLAYA
EMOPLAYA
8 лет назад
Ответ  Сыч

id101626767, учебное заведение “закрытого типа”? ))

Please wait...
Сыч
Сыч
8 лет назад
Ответ  EMOPLAYA

EMOPLAYA, именно так

Please wait...
Наверх

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: