Showing posts with label Мысли вслух. Show all posts
Showing posts with label Мысли вслух. Show all posts

Sunday, October 2, 2011

C++ на первом курсе это жестоко

После перерыва в 6 лет снова начал писать на C++ (раньше писал на нем больше 10 лет). После C# впечатление шага назад.

Одно не пойму - зачем на 1 курсе давать C++. Язык сложный, очень гибкий...

На C# я могу объяснить, что вывод на консоль это Console.WriteLine. А на C++ мне надо объяснять что такое using namespace, что такое include и т.д. и т.п. И дальше выбор - или идти с cout и объяснять модификаторы, либо с printf, что ничем не проще.

А ввод с консоли это вообще отдельная песня...

Или вот вызывают pow(i, 2). Если i типа int, то компилятор говорит что не может выбрать метод между параметрами double и float. Студенты от этой ошибки просто шалеют. Или pow(i, 1/3) - тут другая радость. Разумеется что 1/3 приводится к целому и ничего не работает. Объясняю что надо писать (float)1/3, чтобы им было понятно что это дробь и компилятору тоже. Мне это понятно, но человеку только пришедшему... хорошо если с pascal в запасе... вот так вот по голове...

Рассказал что if (a=1) это типовая ошибка. Что & и && это разные опреаторы. Разумеется не помогает. Все равно ошибаются.

Friday, September 2, 2011

Название

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

Tuesday, August 30, 2011

Adobe

Люблю такие продукты... Хочу поставить триал Adobe Illustrator. Захожу на сайт, нашел кнопоку скачать, жму... Скачивается программа скачивания триала. Всего-то 3 Мб. Запускаю - она говорит что ей надо чтобы был установлен Adobe IAR. Сама при этом скачивает его и не собирается - вываливат обычный message box - типа тебе надо, ты и качай. И это только чтобы запустить скачивание триала. Ну мы не гордые, закачал его. Думаете все? Неа. Надо еще завести аккаунт на Adobe и получить Adobe ID. Вот тогда мне дадут скачать триал.

Вот так все круто и очень любезно для пользователей.

Thursday, May 19, 2011

Программирование это...

Программирование это творчество или бизнес? Вроде творчество, но мы хотим за него получать денег... Вроде бизнес, но мы говорим что сегодня нет настроения :) Не прет...

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

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

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

Так творчество или бизнес?...

Wednesday, May 4, 2011

Зачем переписывать у соседа код?

Замечаю что многие студенты вместо того чтобы писать программу сами, переписывают ее у соседа с экрана. Я не возражаю - если хочется работать секретарем/секретаршей, то почему не поучиться быстро набирать на клавиатуре текст? Но какое это отношение имеет к программированию понять не могу.

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

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

В той же качалке - берем сразу огромный вес, который придавит. Зовем здоровенного качка, просим "подними за меня, я не могу". Ну он-то понятно поднимет, может даже и не вспотеет, здоровый он. А вам-то что с этого толку? Даже морального удовольствия нет...

Saturday, January 22, 2011

Про олимпиадные задачи

Нашел на форуме сообщение, что типа я говорил, что олимпиадные задачи это плохо. Не говорил я такого… Придется написать что я про это думаю, а то ж беда с помехами на каналах связи… Говоришь одно, понимают другое, а потом пишут вообще ерунду…
Олимпиадные задачи – это круто! Вот. Это сложно, это интересно. Научиться их решать  требует большой, каждодневной, постоянной работы. Но – это ДРУГОЙ навык, чем промышленное программирование. Не хуже, не лучше. Просто другой.
Для примера – есть обычный водитель, есть водитель такси, а есть Формула-1. Что у них общего? Общего у них машина, 4 колеса, руль и т.д. и водитель. Но у них разные цели, разные навыки. И одного водителя нельзя заменить другим. Попробуйте водителя формулы (для полноты картины назовем его так) посадить таксистом… Результат будет печальный. Как собственно и наоборот – таксист просто не проедет трассу. И цели у них разные. Таксисту зарабатывает на довольно монотонной работе – взял пассажира, отвез, ждем, взял, отвез… Конечно тут не все так просто – и дороги разные (то пробка, то труба где-то рванет, воды полно, то снегу по колено, а дороги не чищены…) и пассажиры разные… Но такая у него работа. А формула-1 - тут все по-другому. Тут водитель учится долго-долго, оттачивает мастерство и тот единственный заезд довольно редко, но зато как он едет и на какой скорости! И вся подготовка только ради этого одного, редкого “броска”. Это его заработок. Правда тут есть еще одна “засада” – реально зарабатывающих таких единицы. Остальные идут в таксисты J
Собственно я к чему  - олимпиадные задачи это здорово. Думаю что и заработать этим навыком можно – например, задачи оптимизации иногда возникают, обходы деревьев и т.д. Но это другой навык, чем писать коммерческий код и зарабатывать на жизнь таким способом. И тем кто привык и наработал навык мгновенного броска очень сложно потом монотонно “ездить”. Нужны конечно же и те и другие, но супер-задач обычно очень мало, а монотонной работы – очень много.

Friday, January 21, 2011

MVC и дизайн

Использование чистого MVC кажется очень не удобным в реальных проектах. Если у меня есть дизайнер/верстальщик, который делает прототип (включая jQuery и т.д.), то потом перепахать это вот в такой код:

<%
.RowAttributes(row =>
.Columns(column =>
{
column.AutonamedFor(m => m.Year).Visible(filter.Year ==
.Attributes(width =>
column.For(m => m.WeekNumber).Named(
.Attributes(style =>
column.AutonamedFor(m => m.Project)
.Attributes(width =>
column.AutonamedFor(m => m.Manager).Visible(Page.User.IsAdministrator())
.Attributes(@class =>
column.AutonamedFor(m => m.GeneralState);
column.AutonamedFor(m => m.ResourcePlans).HeaderAttributes(@class =>
.Attributes(cell =>
column.AutonamedFor(m => m.QuestionsToIT).HeaderAttributes(@class =>
.Attributes(cell =>
column.AutonamedFor(m => m.Risks).HeaderAttributes(@class =>
.Attributes(cell =>
}).RenderGrid(header)
%>
= Html.Grid(Model, header)new Hash(style => "height : 50px; background-color:" + row.Item.ProjectColor))null)"4%", style => "text-align: center").HeaderAttributes(width => "4%");"Week").Visible(filter.WeekNumber == null)"width: 5%; text-align: center").HeaderAttributes(width => "5%");"9%").HeaderAttributes(width => "9%");"width15").HeaderAttributes(@class => "width15");"width15")new Hash(@class => "width15"));"width15")new Hash(@class => "width15"));"width15")new Hash(@class => "width15"));
Весьма затруднительно. И наоборот - попробуйте дизайнера или верстальщика попросить пофиксить тут стили... В результитующем HTML он конечно пофиксит. А вот кто будет это обратно перетаскивать в код... В общем не нравится. Хочется чтобы код разметки был максимально близок коду HTML-прототипа. Может razor спасет...

Update: может это не MVC грид...