воскресенье, 10 ноября 2013 г.

Путь программиста

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


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


Начинал программировать я в возрасте примерно 10лет на замечательном самодельном компьютере ZX-Spectrum. Там что то пытался делать на встроенном интерпретаторе BASIC. Уже тогда столкнулся с тем что графика “тормозила” ))). Хотя сегодня подрастающее поколение вряд ли вообще увидит графику в тех линиях и точках в четырех цветах(или было 16цветов???) . На дворе был примерно 1990г. Слово интернет я тогда вообще не слышал, как кстати и слова типа - флешка, iPhone и даже Apple. Программы тогда хранились и загружались с “обычных” для того времени аудиокассет, через самый “обычный кассетный магнитофон”. Кстати все еще помнят что это такое? Изучал программирование я по каким то книжкам, которые было непросто достать и отцовским журналам “Радио”. Еще помню тогда были популярны книжки типа “Сборник кодов к играм”, которые целиком были посвящены всяким “секретным” кодам и взломом игр.


Потом пришло время т.н. IBM-совместимых компьютеров. На собранном и подаренном мне старшим братом 286 компьютере начал изучать опять таки BASIC. Делал помню англо-русский переводчик, который работал по сверх-примитивному алгоритму - просто искал точное соответствие слова в словаре. Готовых словарей не было, я вручную вбивал наиболее часто употребляемые слова. Естественно это быстро мне надоело - даже думаю сотни слов не вбил. Ну и естественно тогда сразу понял провальность идеи такого перевода - он не учитывал множество форм слов - различные приставки, суффиксы и окончания. И еще отлично помню тогда что меня посетила ошибочная, как показало время, мысль о бесперспективности становления профессиональным программистом. Все программы уже написаны думал я, т.к. легко где то нашел готовый переводчик просто несравнимый с моим.


Потом я изучал Pascal по замечательной книге “Программирование в среде Turbo Pascal 7.0” под ред. А. М. Епанешников, В. А. Епанешников, 1995г. издания. Под DOS читал несжатые *.wav файлы и выводил звук через самодельный ЦАП (цифро-аналоговый преобразователь) подключенный к параллельному порту - т.н. COVOX (http://ru.wikipedia.org/wiki/Covox). Тогда столкнулся с задачей управления памятью, т.к. из под DOS были доступны всего около 500Кб, и звуковые файлы не помещались целиком в память. А если загружать их кусками, то в момент загрузки была очень заметная на слух пауза. Про DMA я тогда слышал, но как то не стал разбираться, а начал копать в сторону популярного тогда менеджера памяти EMM386.exe и научился использовать расширенную память, переключая банки с памятью и загружая предварительно весь звуковой файл по кускам в оперативную память до начала воспроизведения. И в общем то добился приемлемого качества воспроизведения. Хотя впрочем опять же тогда уже были доступны намного более продвинутые плееры музыки, что сильно снижало мотивацию. Про mp3, кстати, тогда еще не слышали вроде.
Интернет от Уралсвязьинформа уже начал появляться, но это была не привычная сегодня выделенная линия с безлимитным траффиком, а т.н. DialUp через телефонный модем. Т.е. когда я вдруг решал что то найти/скачать из интернета, никто из домашних не мог воспользоваться телефоном, линия была занята. Причем телефон у нас был спаренный, поэтому “доставалось” и соседям. Кроме этого оплата была повременная 18-21р в час и поэтому в конце месяца нам приходили счета на тысячу, а то и больше рублей. Да и максимальная скорость по телефонной линии была около 40КБайт/с, что примерно в ТЫСЯЧУ раз меньше, скорости, о которой сегодня заявляет мой провайдер.
Когда впервые увидел Windows, тогда еще это была версия 3.1, я пытался подражать Microsoft и сделать похожий интерфейс, назвав все это “Doors”. Довольно быстро забросив впрочем. Не хватало ни знаний, ни опыта программирования. Графика тормозила, при наложении окна отрисовывались некорректно и т.п.
Потом как то, уже учась в институте устроившись на работу эникейщиком сделал простенькую прогу, для решения проблемы 2000года на старых материнских платах, не поддерживающих такую дату. Этой прогой, кстати, пользовались несколько лет насколько я знаю, пока окончательно не выкинули свои старые компы.
В институте своей дипломной работе делал прогу под Windows, которая считала какие то напряжения в балках и строила эпюры моментов и еще чего то, сейчас уже не помню подробностей. Делал это все на Delphi. Помню тогда наткнулся на очень клевый компонент для Delphi, который “парсил” текстовую строку и на выходе выдавал значение математической функции в содержащейся этой строке.
После окончания института программирование как то забросил совсем на долгое время. И только года три-четыре назад взялся изучать программирование на C#. Сейчас с литературой все хорошо, можно достать практически любую книгу, было бы желание и финансы позволяли(хотя многое можно найти и бесплатно) - поэтому для начала купил Библию C# а затем и Шилдта. Честно признаюсь, ни первую ни вторую так и не дочитал до конца. Поняв, что одного лишь чтения книжек недостаточно занялся практикой, что резко дало некоторые результаты. Причем очень ускоряет изучение - “ковыряния” в чужих исходниках, примерах кода. Например, я взял для начала простой пример со http://stocksharp.com и добавлял в него некоторые свои фишки. Очень мотивирует к изучению то, что некоторый функционал уже работает, можно быстро запустить, проверить, что то изменить под свои нужды и т.п. Ну и конечно, если хотите научится программированию - нужно ставить перед собой какие то реально интересные вам самим задачи и браться за интересные проекты.
Полтора-два года назад заинтересовался программированием для WEB. Для себя сделал прожку на C# для отправки СМС с компа через очень клевый сервис. Сделал модули отправки СМС уведомлений через этот же сервис для популярных CMS(для OpenCart, для Prestashop, для Diafan CMS).
Сейчас занимаюсь тем что осваиваю Drupal. Сайт Клуб любителей Apple сделан именно на этой платформе.
На сегодняшний день для изучения программирования существует просто огромное количество ресурсов. Как платных так и бесплатных. Как для начинающих, кто только хочет определиться надо ли это ему вообще, так и для углубленного изучения более узкой темы. Также вот например хорошая подборка ресурсов для ON-LINE обучения.
А вообще программирование развивается очень быстрыми темпами. Каждый месяц появляются какие то новые библиотеки, фреймворки, языки программирования и т.п. Даже со времен программирования под DOS утекло очень много воды, тогда никто не знал про MVC, MVP и MVVM, не знали таких популярных сегодня языков как C#, Ruby, Java..
А программирование под WEB на мой взгляд вообще самая бурно развивающаяся отрасль. Думаю не каждый профессиональный программист слышал все названия технологий и фрейморков из этой области.
Поэтому чтобы поддерживать свои знания на актуальном уровне нужно учится постоянно. Выбрать свою нишу, то что наиболее интересно и развиваться в этом направлении. Причем направлении нужно выбрать на самом начальном этапе, потому что например программирование микроконтроллеров и WEB дизайн это две параллельных вселенных, существующих независимо друг от друга и практически не пересекающихся.

пятница, 4 октября 2013 г.

Почему люди не любят учится?

Практически каждый день сталкиваюсь с тем фактом, что люди очень не любят учится. Лучше будут ругать власти, политиков, соседа по коммуналке, пялясь каждый день по нескольку часов в телевизор большой диагонали, взятый в кредит на пять лет, чем посвятить хотя бы час в неделю на самообразование. 
Коллеги по работе лучше будут полдня смотреть фотки "друзей" одноклассниках и читать анекдоты и цитаты, чем овладеть элементарными навыками поиска в сети интернет. "Начальник же мало платит.. У власти воры.. Зачем я буду тратить свое время на получение каких то новых навыков. Зачем я буду учится работать в этом сложном и непонятном Word-е. Пустая трата времени, лучше посмотрю новости по телевизору в четвертый раз или Галустяна.."
Причем сегодня вариантов обучения просто огромное количество. В интернете можно найти курсы практически по любой дисциплине, многое можно найти бесплатно или за какую то адекватную цену. Например по программированию существуют курсы где обучение проходит в игровой форме, есть много видеоматериалов, где чуть ли не пошагово расписаны проблемы, с которыми может столкнутся новичок.
И второй момент, который выше моего понимания - это то как люди воспринимают "учителя", если ве таки доходит то некоторого обучения.. То ли от желания выглядеть умнее, то ли собственное эго мешает людям просто воспринимать материал, а не пытаться сопротивлятся типа "да не дурак я, все понятно.. Что это, кто о меня еще учить вздумал".
Кто то может меня не правильно понять и скажет "А не много ли возомнил о себе?". Так вот - гуру себя не считаю, скорее наоборот, часто сталкиваюсь с тем что не могу найти учителя, кто бы помог, подсказал по какому либо вопросу.. И вообще, чем больше узнаю, тем больше понимаю насколько же все таки ничтожно малы мои познания по этому вопросу..

понедельник, 16 сентября 2013 г.

Клуб Любителей Apple

С неделю назад у меня родилась очередная "безумная" идея - сделать "Клуб Любителей Apple". Сам я не являююсь ярым поклонником яблочной компании, мне скорее этот проект интересен в образовательных целях. Большим любителем Apple является мой друган и коллега - Игорь, с ним и решили воплотить идею в жизнь.
После недолгих голосований выбрали свободный домен - proapple.net. Сайт в виде форума мне показался совсем скучным, поэтому решили сделать нечто вроде портала.
Впервые поставил Drupal и удивился насколько все просто и удачно сочетается в этом движке. Огромное количество бесплатных модулей, документация по установке и настройке, причем даже на русском. Так и не понял почему Drupal считают сложным в освоении движком. Может пока еще просто не дошел до этого момента. Некоторые трудности возникли при интегации phpBB форума, но после чтения документации все решилось.
Игорек занимается дизайном сайта, причем его это похоже затянуло - человек наконец то начал осваивать Photoshop и еще какие то графические пакеты)))
Сейчас на сайте запущен форум и блог, где мы описываем все моменты связанные с созданием сайта.
Есть некоторые мысли о дальнейшем развитии проекта - сделать wiki-раздел в котором собрать все что касается компании Apple в одном месте, начиная с истории Apple и биографии Джобса и заканчивая подробными мануалами по Jailbreak и подобному.
Планирую сделать нечто вроде фотомузея техники Apple - поэтому если вы обладатель самого первого IPhone или MCintosh - прошу к нам.
Регионально ограничиваться не планируем, поэтому будем рады пользователям (хотел сказать членам) из любой точки земного шара.

пятница, 6 сентября 2013 г.

Кем быть?

У меня растут года,
будет и семнадцать.
Где работать мне тогда,
чем заниматься?

В. В. Маяковский, «Кем быть?»



В школе все наверное писали сочинения на тему "Кем я хочу быть?" Каждый мечтал о чем то своем, строил планы на дальнейшую жизнь. И вот по прошествии времени интересно вспомнить как же я тогда мыслил, как смотрел на мир и что изменилось с тех пор во мне, как поменялись взгляды, интересы, приоритеты.
Я как сейчас помню, что подошел с этим вопросом к отцу, на что он мне удивленно ответил - так я то тебе чем здесь помогу, это ТЕБЕ решать кем быть.Я писал что стану знаменитым инженером-изобретателем автомобилей, которые смогут передвигаться по любому бездорожью и "немножко летать". До сих пор отчетливо отпечаталась эта фраза, взятая в кавычки, подсказанная отцом то ли в шутку, то ли всерьез..
Интересно, что тогда я выбирал будущую профессию только исходя из своих интересов. Я даже не задумывался о перспективности и прибыльности этой профессии. Кстати, считаю что это очень хорошо.
А что сейчас дети пишут в своих сочинениях? Хоть один мечтает сегодня стать космонавтом, сталеваром или метростроевцем или все сегодняшние дети мечтают стать банкирами, нефтяными магнатами или хотя бы звездами шоу-бизнеса?

Дочери - ГОД!!!

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

среда, 7 августа 2013 г.

SMS оповещения в Diafan CMS

Написать сей пост меня сподвигла следующая ситуация:
С полгода назад я выбирал движок для своего интернет-магазина. Рассматривал как бесплатные (Opencart, Prestashop), так и платные варианты, среди которых был DiafanCMS, который привлекал относительно низкой ценой в 7тр. (на форуме лицензию можно купить и за половину официальной стоимости).
Поставил я этот DiafanCMS на свой сервак посмотреть возможности, и обнаружил что там довольно просто можно заменить встроенный модуль СМС оповещений с не самой гуманной ценой за каждое сообщение модулем отправки через MainSMS с ценой всего 15 коп. за сообщение и еще кучей вкусностей впридачу, о которых можно прочитать на официальном сайте.
Сделал я значит этот модуль, хотя точнее будет сказать подправил десяток строк кода, и как ни удивительно все заработало.
Сам DiafanCMS тогда мне как то не очень приглянулся и я забросил его..
И тут недавно вспомнил про этот свой модуль. Думаю что это он у меня валяется без дела, может быть пригодился бы кому то из приверженцев DiafanCMS, а я бы что то заработал на рефералах.
Вчера выложил на официальный форум DiafanCMS подробную инструкцию и сам модуль, пару человек отписались буквально через полчаса после публикации - один обосрал, второй поблагодарил (в общем как обычно в России и бывает).
А наутро смотрю - моего поста уже и нет, администрация его заблокировала по неизвестным причинам. Видимо решили нефиг позволять юзерам регаться не по их реферальной ссылке встроенной в движок, а на более выгодном сервисе, но по чужой ссылке..

Совок конечно, ну да ладно.. Имеют право..
Выкладываю сам модуль и инструкцию здесь )))