Архив за месяц: Октябрь 2012

С чего начать изучение программирования, общее.

     Много народа хочет стать программистами. Хороших в итоге немного. Сам не то чтобы профессионал топ-класса, но с учетом набитых ошибок захотелось немного систематизировать набранный опыт. Куда податься новеньким, как учить. В общем, что бы делал я «с белого листа».

   — Где учить. 

Тут достаточно просто. Профильный университет, который соверемнный, «дышит» в ногу — идеал. Университет дает базу и дает навыки самостоятельного обучения. Это идеальный ВУЗ в вакууме. Теперь о непростом — такой универ практически нереально найти на территории эксСССР, насколько я понимаю. Это не MIT. В моем универе 80% преподавателей были ну очень старой закалки. Один из них как то зарубил мой курсовой, так как в качестве CPU был выбран PIC, который преподаватель не знал. Зато он знал КР580ВМ80А, который мне и надо было использовать. Другой пример — рассказывали, что наши ребята ездили в США для обмена опытом. Поехали крутыми перцами, приехали —  а там только BSD системы, которые наши тогда в глаза не видели. 

В итоге — в универе надо параллельно учитсья самому. Благо, для этого есть все возможности. Вообще, это хорошая практика — учиться самостоятельно параллельно, постоянно. Учите основной предмет — учите параллельно что то еще. Пусть не в полную силу, но учите. Я какое о время назад изучал вопросы цифровой фильтрации сигналов. Математика. Казалось бы, но в недавнем прошлом это пригодилось. Исправлял в проекте. Удачно ввернул пару умных сдлв про IIR и FIR в общении с работодателем = ко мне совершенно другое отношение.

Курсы / учить самостоятельно — второе / третье по предпочтению. Но! Курсы — выбираются внимательно. Обычно хорошие курсы — это достаточно дорого. Но тут, как говорится, или по 5 но большие, или по 3 на маленькие 🙂 Правильные курсы вам здорово сократят время на изучение. Дадут работу в группе, общение.

     —  Что учить

Вопрос на самом деле неоднозначный. Тут есть два варинта. С одной стороны, можно изучать что то, что не востребовано на рынке особо, но вам ОЧЕНЬ нравится. Например, программирование QNX, скалу или что то подобное. Из профитов — когда вы станете крутым профессионалом (это не один год) — вы найдете очень высокооплачиваему работу. Предложений мало — но спрос, хоть и небольшой, есть. Небольшая конкуренция — вы на коне. Но кто вас будет кормить все это время? Поэтому вариант два, он же правильный — учить надо мейнстрим. Находим что то, где работу найти легче — и изучаем. C#, VB.NET, Java — без разницы, выберете, что нравится. И учите. Ищите опенсорсные проекты и делайте с кем то, делайти сами. Лучше — в команду с кем то, то есть опенсорс. Это научит читать чужой код, писать понятный код для других людей. Опыт работы с разными системами контроля версий и прочее. Кстати, в качестве такой системя я использую Mercurial, который меня вполне устраивает.

Отдельной строкой — не учите то, что используется ТОЛЬКО у вас. Классический пример — 1С. Если вы планируете пожить в другой стране или поработать на забугор — забывайте о таком сразу. Потерянное время, которое — ваш самый ценный капитал.

     — Как учить

Для начала находим хорошую базовую книгу с азов. Читаем и делаем примеры. Хорошо, если в книге написано, как собрать ваше приложение без использования IDE. Это позволит вам понять, что происходит на самом деле при сборке. То есть командная строка и блокнот (Notepad++ / Sublime Text). Заодно найчитесь правильно настраивать переменные среды, очень часто без этого ваша программа просто не скомпилируется. После того, как станет ясно, что происходит, работаете из чистой IDE без решарперов или других улучшайзеров. Используете мейнстирм. Для .NET это Visual Studio (спокойно можно использовать Express). Для Java — Eclipse. Лучше Indigo, Juno имеет какие то странные для меня проблемы. Для С++ сложнее — тут или VS Professional, или Qt, или DevExpress ИМХО. В порядке предпочтения. Единственное — в VS 2010 был сломан autocomplete для C++, починили или нет — не знаю.

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

Какие платформы будут перспективны в будущем — думаю, Java и .NET никуда не денутся. Мир вовсю скатывается в облака и мобильный платформы — то есть копая туда, вы буз работы точно не останетесь. Насчет HTML5 — будет точно, но наверняка будет допиливаться очень быстро. JavaScript — тоже. Этот язык для меня тяжелый. Не как сам язык (он на самом деле имеет простой синтаксис) — я не предсталяю, как на нем писать сложное корпоративное ПО. 

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

В конце можно напомнить, что быть специалистом мало. Надо уметь себя продать на рынке труда правильно и грамотно. Я в этом не спец, к сожалению. Можете посмотреть доклад Якова Фаина, там есть по теме — http://jeeconf.com/materials/java-developer/

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

Проблема Chrome Extensions Webstore в Virtualbox

Одна из особенностей VirtualBox, которая мне не нравится — очень сырая поддержка 3D. Если вы включите поддержку 3D в гостевой системе, то хром откажется нормально открывать гугл вебстор (там лежат расширения для хрома). Рендерится страница попросту не будет. Много народа, ругаясь, предлагают отключать 3D в настройках на это время. Однако есть более изящный способ — добавьте ключик —blacklist-accelerated-compositing для запуска хрома. Работает отлично, визуально хром даже побыстрее работает.

 

Еще небольшие лайфхаки для VirtualBox 3D:

— Не ставьте WDDM 3D драйверы (по крайней мере сейчас, версия 4.2) Тормозное и глючное (да и каким ему еще быть — выдрали кусок Wine3D насырую).

— Для 2D не ставьте объем видеопамяти больше 64 метров. Этого хватит на все. У меня, например, ютуб накрывается тазом и вешает систему, если выставляю 128 метров и только 2D.

— В свойствах виртуальной машины уберите перерисовку окна при перемещении.

— Если вам надо полноценное 3D — используйте VmWare Workstation. Там 3D работает прекрасно.

Мошенники борзеют

Сегодня получил интересный звонок. Компьютер мне говорит, что мол звонок с вашего банка (действительно, в этом банке у меня есть счет). Ваша карта заблокирована, нажмите 1 чтобы разблокировать. Нажимаю 1 — далее введите ваш номер счета. Здравый смысл подсказывает, что пора рвать когти 🙂 Сбрасываю звонок, ввожу номер в гугл — реально, мошеники. Такой звонок получило уже немало народа. Некоторые ввели номер карты и пин код. Сразу звоню в банк — предупредить, и сразу автоответчик сообщает, что мы все знаем и принимаем меры. Это все земечательно, только откуда у мошенников в базе мой номер телефона? Банк мягко говоря не крупный — явно где то была утечка.

В итоге — приятно, что не повелся и неприятно, что мой телефон кто то слил.