Блог C2Architector

Журнал

27 авг 2008

Вчера сорвал телефон с объявления про грущщиков и проч, позвонил, пришёл, сказали, завтра приходи на "стажировку". Сегодня пол дня там (в магазине) пробыл, немного поносил товары, другой грущщик сказал типа завтра приходи (типа ещё на "стажировку"), я сказал что всё и так понял и спросил у главного грущщика берут они меня или нет. Оказалось что нет! Формальная причина - я медленно работаю. Через 2 недели им пришлют хорошего грущщика. Тогда нахера было меня вызывать? Но это вопрос второстепенный. А главный, меня хоть куда-то возьмут, млять? Хоть ассенизатором, или там тоже нужен специалист с дипломом, опытом работы и резюме?

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

Ссылка | Комментарии [4]

21 авг 2008

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

Пришёл на рынок слишком рано, в 6:30, когда он был вообще закрыт. Подождал полтора часа. Пока ждал, видел воздушные шары, мчащиеся в воздухе прямо надо мной.

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

Пришлось ждать ещё раз, пошёл в зоопарк, 15 гривен за вход окупились, получил заряд доброты от общения с животными, вывевший меня по крайней мере на день из депрессии. Гладил больших жывотных. Какого-то буйвола и кого-то типа коня. Но больше всего мне понравился такой большой лось размером с лошадь, только с рогами как у лося. Он был один в вольере (слева от входа в зоопарк), и вольер был не удобный, в яру. Поэтому лосю было скучно и он не долго думая вылез ко мне к забору. Сначала на попытки погладить не поддавался, наклонял голову, угрожая боднуть и яростно сопел носом, но всё же мне удалось с ним подружиться и долго гладить ему спину, пока он щипал траву. Поразило какое это животное величественное и доброе.

Ходил в туалет :) На первый взгляд возмущаещься что он платный (1 гривна) при такой-то цене за билет, но зато злость проходит после его посещения. Соглашаешься, что заплатить рубль за посещение чистого туалета, ну типа как в Макдональдсе, стоит того. Мыло только дешёвое, воняет дешёвым химическим ароматом, да умывальник маловат, еле просунул руки, но всё равно доволен.

Вернулся опять на базар, уже все лотки были заполнены и было много покупателей. Стал ходить, спрашивать про шахматные книги, мне отвечали что нет, но продавец одного лотка указал на спортивный магазинчик в северо-западной части рынка, мимо которого я только что прошел, не заметив. Захожу, спрашиваю "Книг про шахматы нет?" - "Да три полки!". Я радуюсь, подхожу к полкам и вижу много шахматных книг, причём много как раз интересовавших меня, которые я думал и не продаются нигде! Роюсь, выбираю стопку, потом чуть убавил (Карпова, Капабланку, Ананда, по причине цены, что партии не прокомментированы и наличия в электронном виде, у каждой книжки свои причины), в итоге купил 7 книжек на 215 гривен: Филидор, Стейниц, Нимцович, Шпильман, Ласкер, Алехин, Фишер! Жалко только что не было Тарраша и особенно Петросяна. Продавщица кажется была довольна и два раза (не подряд) ласково и на вид искренне сказала спасибо, что было очень приятно.

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

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

Дома убрал книжки по программированию в тумбочку, а в стол положил шахматные.

Ссылка

17 авг 2008

Короче сначала стало вонять, я думал, что то из окна и проигнорировал, потом на мониторе появилась чёрная картинка и я вырубил комп. Раскрутил. Потрогал, он очень горячий. Самая горячая была коробка на которой расположен внешний вентилятор. Я думал что там что-то сгорело, расстроился. Слегка протёр пыль, подождал, потом опять запустил с открытой крышкой, как видите работает. Но мучают сомнения, может там всё же что-то сломалось, ведь за несколько лет от не разу так не вырубался? Неужели от жары? Что теперь придётся врубать только на пол часа? А если всё же сломается то куда нести? Или может пора уже купить новый? Или может это из-за того что пыль не вытирал, но чё он тогда нагрелся? Или может он всё время так нагревался, а я просто не замечал, а видеокарта вырубилась от пыли?

Ссылка | Комментарии [3]

11 авг 2008

На d5 решил играть ферзевый гамбит, расчитывал на маневренную игру, но получился разменный  вариант и быстрый переход в эндшпиль. Я играл вроде не плохо, но всё же проиграл пешку, но исхитрился сделать на мой взгляд ничейный эндшпиль. Время 2 часа на 40 ходов. В эндшпиле после размена пешек, когда начался период тупых ходов слоном дал доигрывать компъютеру с временем 10 секунд на ход, так как там делать ничего не надо было, а играть это несколько часов не хотелось. Вопрос к вам, где я сделал слабый ход, и действительно ли эндшпиль ничейный? Я играл чёрными. Может не той ладьёй походил?

1. d4 d5 2. c4 e6 3. Nc3 c5 4. cxd5 exd5 5. Nf3 Nf6 6. g3 Nc6 7. Bg2 Be7 8.
O-O O-O 9. dxc5 Bxc5 10. Bg5 Be7 11. Bxf6 Bxf6 12. Nxd5 Bxb2 13. Rb1 Bf6
14. e3 Be6 15. Nxf6+ Qxf6 16. Rxb7 Bxa2 17. Nd4 Nxd4 18. Qxd4 Qxd4 19. exd4
Rfd8 20. Ra1 Be6 21. Rbxa7 Rxa7 22. Rxa7 Kf8 23. Ra8 Ke7 24. Rxd8 Kxd8 25.
Kf1 h6 26. Ke2 Ke7 27. d5 Bc8 28. Ke3 Kd6 29. Kd4 Bd7 30. Bf3 f6 31. h4 Bc8
32. Bd1 Bd7 33. f4 Bc8 34. g4 Bd7 35. Be2 Bc8 36. g5 fxg5 37. fxg5 hxg5 38.
hxg5 Bf5 39. Bd1 Bd7 40. Bh5 Bf5 41. Bd1 Bd7 42. Bh5 Bf5 43. Be2 Bd7 44.
Bd3 Bg4 45. Be4 Bd7 46. Bh7 Bg4 47. Bd3 Bd7 48. Be4 Bg4 49. Bd3 Bd7 50. Be2
Bf5 51. Bf3 Bd7 52. Be4 Bg4 53. Bh7 Bd7 54. Bg6 Bg4 55. Bc2 Bd7 56. Bd1 Bf5
57. Be2 Bd7 58. Ke4 Bc8 59. Bf1 Bg4 60. Bg2 Bd1 61. Bh1 Bc2+ 62. Kf4 Bh7
63. Bg2 Bg8 64. Be4 Bf7 65. Kf5 Bh5 66. Bg2 Bf7 67. Be4 Bh5 68. Bg2 Bf7 69.
Bf3 Be8 70. Bh1 Bf7 71. Bf3 Be8 72. Bh1 Bh5 73. Be4 Bf7 74. Bh1 Be8 75. Bf3
Bf7 76. Bh1 Bh5 77. Be4 Bf7 78. Bc2 Be8 79. Bb3 Bh5 80. Bc4 Be8 81. Ba2 Bf7
82. Bc4 Be8 83. Bf1 Kxd5 84. Bg2+ Kd4 85. Kf4 Kd3 86. Be4+ Ke2 87. Bd5 Kf2
88. Be6 Bc6 89. Bg4 Bg2 90. Bf5 Bf3 91. Bc8 Bh1 92. Bd7 Ba8 93. Be6 Kg2 94.
Ke5 Bf3 95. g6 Bh5 96. Bd5+
{Draw agreed} 1/2-1/2

Ссылка

22 июля 2008

Я уже прочитал немало шахматных книг, но практики мало и играть целые партии не умею. Из достижений только одна ничья с gnuchess и то в разменном варианте, то есть в эндшпиле. Я в дебюте играл за чёрных, а потом не знал что делать и давал доигрывать компъютеру за меня, к моему удовольствию он часто выигрывал. С сегодняшнего дня решил играть полностью партию каждый день. Долго думать. Дебют расставил неплохо, но потом быстро получил мат. Как бы долго я не пытался думать, всё равно нового ничего не придумываю и делаю ход где-то за минуту, а компъютер может думать и 10 минут. Несколько раз переигрывал и пришёл к неплохой позиции которую тоже потом проиграл. Как улучшить её не знал и опять дал доигрывать её компъютеру... и он очень красиво выиграл!

1. Nf3 Nf6 Мешаю ходу e4.
2. g3 d6 Компъютер решил разыграть староиндийскую защиту за белых.
3. Bg2 e5 Эта пешка будет блокировать его e4 и ограничивать его слона.
4. O-O Nc6
5. d3 Be7 Не хотел повторять за ним, но этого слона лучше было бы фианкетировать, так как потом я всё равно это делаю, но похоже с потерей темпа.
6. Nc3 O-O
7. e4 Re8 Я успеваю сделать манёвр слоном и ладьей чтобы защитить поле e5 в случае размена и освободить место для коня в случае продвижения пешки, как и случилось.
8. d4 Bf8
9. d5 Ne7 Обожаю когда центр так замораживается, а ферзевой конь переходит на королевский фланг. Компъютер думал что стеснил меня, а на самом деле он создал мою любимую позицию.
10. Nh4 g6
11. Bg5 Bg7
12. Qd2 Kh8 Теперь я не могу сделать ход h6 и прогнать этого слона. Для этого придётся задействовать ещё и коня.
13. Nf3 Neg8 На g8 идёт этот конь, а не другой, чтобы тот мог погнаться за его слоном.
14. h3 h6 Он делает ход h3 чтобы мой конь не выпрыгнул и не забрал его слона, когда он отступит.
15. Be3 Kh7 Поле h6 защищено королём, чтобы конь мог уйти.
16. a4 a6 Активность на ферзевом фланге не приятна для меня, так как я не хочу на нём играть и не могу так как все мои фигуры находятся на королевском. К счастью удаётся заморозить его и противник не может там устроить диверсий.
17. b4 b6
18. a5 b5
19. Rfd1 Rf8 Я планирую играть по линии f.
20. Bf1 Bd7 Это чтобы пропустить ладью на королевский фланг.
21. Qd3 Ne7 Начинается прорыв пешки f. Я спешу с ним, так как он может сделать прорыв пешки c, который окажется для меня фатальным.
22. Re1 Nfg8
23. Nh4 g5 Этого коня надо прогнать.
24. Nf3 Kh8 Ухожу из-под шаха.
25. Bg2 f5
26. exf5 Nxf5

Дальше я не знал что делать. У меня были варианты только поставить на f6 слона, коня или ладью, я хотел сдвоить ладьи по линии f, так сказать заняться позиционной игрой. Поставил слона и скоро получил мат. И не знал как улучшить игру. Дал доигрывать компъютеру. Надо заметить, что я доиграл аж до 26 хода и создал выигрышную позицию.

27. Bd2 Qf6! Гениально! Ферзь даёт дорогу ладье и защищает важные поля g5 и f5, усиливает диагональ h8a1, готовится к атаке.
28. Kh1 Nd4 Я бы пошёл конём только после окончания строительства, да и не хотелось мне туда, мне казалось, что при его размене я потеряю пешку, но белые уклонились от этого размена, так как он выпускает на свободу слона и продвигает пешку, которая бы им мешала, открывает для чёрных линию e. Вот недостаток моего мышления. Я уже привык к пассивной обороне и даже не рассматриваю подобные ходы. Пассивная оборона необходима для чёрных в дебюте, так как иначе будет плохо, но приходит момент, когда надо переходить к активным действиям, миттельшпиль. И тут нужно совсем другое мышление! Вообще-то лучше переходить к активным действиям после позиционой игры, но тут она не выходила из-за стеснённости положения и угроз сопрника, поэтому надо было играть сразу.
29. Ng1 Qf7
30. g4 c5 Этого хода я бы никогда не сделал. Мне больше нравится когда пешки заморожены. Нет головной боли ни за них ни за фланг. А тут сколько надо учесть. Что будет если он возмёт на проходе, что будет если он позмёт пешкой b. Что будет если он не возмёт. Если берёт на проходе мы берёт слоном, ему не выгодно разменивать своего слона, так как он защищает короля. Кроме того у нас получается центр. Если он берёт пешкой b, то у нас получается хорошо укреплённый конь и он теряет пешку d.
31. Be3 cxb4
32. Ne4 Qg6
33. Ne2 Nf3 Ого куда забрался! Кажется что конь один, положение закрытое, на помощь прийти ему сложно, и эта вылазка плохо кончится. Ну поддержан он ладьёй, но лёгкие фигуры с ней справятся.
34. Bxf3 Rxf3
35. N2g3 Raf8
36. Rab1 Nf6
37. Kg2 Qf7 Король не может взять ладьи! За неё чёрные возьмут коня и 3 пешки, прикрывающие короля и как минимум получат право на вечный шах. У чёрных классно стоят тяжёлые фигуры, готов принять в атаке участие белопольный слон. Проблемы только с другим слоном. Белые фигуры стоят достаточто хаотично.
38. Red1 Nxe4
39. Nxe4 Rxh3!! Вот это да! Жертва ладьи! Она особенно удивительна в виду того, что не видно как продолжать атаку. Я думал, что компъютер заигрался и чёрные проиграют.
40. Kxh3 Bxg4+
41. Kh2 Qh5+
42. Kg1 Bf3!! Компъютер не сразу нашёл этот ход. Сначала он долго думал над Be2 чтобы разменять ферзей и тогда на мой взгляд чёрные бы проиграли, так как если атака кончается, то жертва некорректна. После долгих раздумий он нашёл выигрышный ход. Даже для компъютера это не так просто.
43. Ng3 Qg4
44. Rd2 h5
45. Rb3 h4
46. Qf1 e4 Наконец-то у чернопольного слона появилась переспектива.
47. Bxg5 Qxg5
48. Qh3 Bh6 Но увы ему приходится опять принимать участие в защите, в последний раз.
49. Rd4 hxg3
50. fxg3 Bg4
51. Rd1 Bxh3
52. c4 e3
53. Rxe3 Rf1+
54. Rxf1 Qxe3+
55. Rf2 Qxg3+
56. Kh1 Qxf2
57. cxb5 Qg2#
{Black mates} 0-1

Итак чего не хватает мне чтобы так играть.
1. Смелость выводить ферзя на активные позиции.
2. Переход к активным действиям после пассивной защиты, даже если сначала это один конь. Не лениться оценивать полезность вылазок.
3. Не боятся многочисленных пешечных прорывов и открытий линий. Не лениться оценивать их.
4. Анализировать с точки зрения невыгодности сопернику. Мат, потери, плохая позиция. Чуять атаку.

Я ищу дебют который привёл бы к заморозке центра и накоплению фигур на королевском фланге как в этой партии на ход e4, но не совсем успешно. Придумал разновидность защиты Филидора которая этого достигает, но белые могут не закрывать центр и получается мы жертвуем пешку за развитие. По идее мы должны выигрывать и при такой ситуации, но компъютер один раз сыграл в ничью, один раз проиграл, партии получились достаточно сумбурные, так как он полез сразу отыгрывать пешку, а надо было наверно заниматься позиционной игрой, но у меня пока это плохо получается и я не могу проверить пока этот дебют.

Ссылка

9 июля 2008

Псевдокод готов где-то на 2/3. Вчера ничего не делал. Сегодня тоже не охота. Надеюсь, что доведу всё же псевдокод до совершенства.

Колорайзер решил пока не спешить доделывать, так как больше нравится программировать на С.

Ссылка

8 июля 2008

Подробный псевдокод, который был, я уже перестал понимать. Настораживало то что из него не получились бы комментарии, как советует Макконнелл. Поэтому пришлось переписать его попонятнее и сократить. В результате я стал лучше понимать алгоритм. Переписал даже парсер скобок в автомат. Добавил пустышки и рекурсию, функцию считания, функции с двумя аргументами. Уточнил условия и ошибки. Тёмных мест стал меньше. Но ощущения что алгоритм полностью правильный пока нет. Не могу доказать его правильность. Кстати и не знаю как это делается. Пытаюсь изучать его. Главное продолжать работать каждый день хотя бы немного.

Ссылка

5 июля 2008

Работая над псевдокодом, обнаружил и исправил много ошибок и ещё предстоит много. Это были просто наброски структуры, которую надо доводить до совершенства. Так что реализую калькулятор, как только смогу целый день просматривать его псевдокод и не найду что там исправить скорее всего в конце следующей недели.

Псевдокод никому не интересен, но всё же он сдесь, http://code.google.com/p/wincalc/ . В браузе кракозябры, только качать.

Ссылка

5 июля 2008

Дописал псевдокод парсера калькулятора и распечатки иерархии. Завтра отшлифую его а послезавтра реализую в коде и будет ясно работает или нет. А сегодня буду читать статьи про соединение питона и С и архитектуру.

В калькуляторе это моё первое применение псевдокода. Есть ошибки. Я пишу его слишком детально, как будто на С только на русском языке, потэому выгода от него небольшая. Рутину надо выражать логичесими концепциями, при этом обращать внимание на сложные моменты, устанавливать их и находить решение.

Например рутиной оказалось всё кроме того как реализовывать увеличение уровня иерархии. Создавать при этом пустышку или цеплять ребёнка прямо к другой сущности. Пока остановился на специальной сущности типа выражение (или составное число).

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

Скобки превращаются в лишние пустышки и их надо удалить.

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

Также похожи функции и унарные функции. Стоит подумать о том, чтобы и их объединить.

Может удастся ещё что-нибудь объединить.

Ссылка

4 июля 2008

wglChooseVisual()
Type: Function
Category: Games
License: GNU Library Public License
Language: C

Description:
A function which mimics glXChooseVisual behavior and implements a wrapper around the obscure windows PIXELFORMATDESCRIPTOR. This function should provide a more convinient way to quickly setup a window device context for OpenGL rendering.

https://developer.berlios.de/snippet/detail.php?type=snippet&id=22

Ссылка

2 июля 2008

Книжка старая, в формате doc с ошибками, не интересно.

Проектирую калькулятор. Создал для этого тему Проектирование калькулятора.

Ссылка

2 июля 2008

Даю себе установку работать над проектом хотя бы час в день.

Начну с калькулятора, так как колорайзером буду заниматься после прочтения книжки про регулярки.

Кода на 368 строчек, часть не рабочая. Какая архитектура.

CALC_main
    CALC_parse
    CALC_calc
    CALC_present
   
CALC_parse парсит на вычислительные иерархии.
CALC_calc считает иерархии снизу вверх
CALC_present простая функция, форматирующая результат, например отбрасывая нули.

Я уверен в идее парсить на иерархии.

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

Разбил на несколько модулей и прокомметировал некоторые функции, плохо что не сделал этого раньше. Теперь стало чуть понятней. Есть например модуль calc_parse. У него есть 2 высокоуровневые функции. CALC_parse создаёт корень и вызывает CALC_parse_subexpressions. Она циклом выдёргивает следующее подвыражение которое может быть составным, добавляет его в иерархию и рекурсивно парсит его подвыражения. Проблема в функции которая собственно должна просто выдернуть выражение. Она у меня получилась рекурсивной, хотя теперь понял что не должна. Рекурсия в CALC_parse_subexpressions, а CALC_parse_expression парсит только одно подвыражение. Причём оно должно быть максимально большого уровня. Например скобки самого большого уровня. Эта функция должна принимать строчку выражения, выдёргивать из него подвыражение и возвращать структуру для добавления в иерархию. Например если есть (1*2+3)+(4*5+6), то сначала она вытащит (1*2+3), потом 1*2, потом 1, *, 2. Для этого надо упорядочить операции по приоритету:
()
*/
+-
Какой приоритет функции? Она содержит скобки и может содержать подвыражения. То есть она как скобки, но выше или ниже их? Наверно такая же. Это типа обычные скобки, но над которыми проводится ещё операция, поэтому
() func()
*/
+-
Добавлю сразу и константы, а также собственно числа:
() func()
*/
+-
const и value
Есть ещё унарные операторы +-, которые могут быть перед скобками, функцией, константой, числом, + или -, но не */. То есть перед тем что может быть числом или перед самими собой. Я рассматривал унарные операторы как функцию, которая обозначается как оператор и не имеет скобок. Отличается от оператора тем, что перед ней нет того что может быть числом. Рассматривать все +- как одинарные операторы я отказываюсь, не нравится так потому что не похоже на то как я воспринимаю. Итак подведём резме унарным операторам: приоритет функции, нет скобок, ожидают число, перед ними не число.
(число)    func(число)    +-сколько_угодно_раз затем число
число*число    число/число
число+число    число-число
const    value

Какой может быть псевокод функции?

функция поиск и парсенье выражения
    взять выражения по приоритетам
    для каждого выражения начиная с высшего приоритета
        попробовать на совпадение выражение
        если совпало то
            парсить это выражение
            вернуть структуру с этим выражением
        конец если
    конец для каждого выражения
    вернуть 0 что означает что выражений больше нет
конец функции
   
Как пробовать выражение на совпадение и как его парсить? Этим я займусь завтра.

Ссылка | Комментарии [1]

2 июля 2008

Прочитал главу 29 "Интерграция".
Прочитал главу 30 "Инструменты программирования".
Прочитал главу 31 "Форматирование и стиль".
Прочитал главу 32 "Самодокументирующийся код".
Прочитал главу 33 "Личность".
Прочитал главу 34 "Основы мастерства".

Резюмировать не могу. Разве что, интеграцию делать итеративно, инструментами пользоваться или даже самому сделать, стиль главное чтоб был, код писать чтоб и без комментариев понятен был. А кстати он не поддерживает комментирования каждой строчки, рекомендует прототипирование и потом оставлять это как комментарии блоков. Я каждую строчку всё равно буду комментировать, но прототипироание надо тоже применять. Программист должен признавать свои ошибки, ограниченность своего ума, быть чесным, любознательным, должен читать.

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

Ссылка

30 июня 2008

Потом решил что сам я уже прогрессировать не могу, так просто не могу найти книжки про программирование web, где бы было что-то новое. А новые области типа дизайна я изучать не хотел. Я решил что нужна команда специалистов, где бы я мог бы быть кодером, тут бы опытные товарищи подсказали с тем о чём в книжках не пишут, а другие делали свои части, типа дизайна. Решил попробовать устроиться на работу. Но меня не взяли. Не было портфеля, не учился в вузе, кроме того вёл себя не уверенно, что делать не рекомендую. Если ведёшь себя неуверенно, то работодатель думает, что это ты не уверен так как ничего не знаешь или просто не любит таких. А я был в депрессии из-за предыдущих неудач и сложности жизни. Да и хотел посмотреть как будут вести себя работодатели с волнующимися, просто не хотел перед ними раскрываться. (На самом деле я даже слишком самоуверенный.) Попытаются успокоить, выяснить способности? Щас. Я из-за своей неуверенности после того как сказал что нет портфеля и не учусь сразу был списан в утиль. Думаю, если бы вёл себя уверенно, то мог бы заинтересовать даже без портфеля. Это ж всего лишь людишки, управляемые эмоциями. А я то думал, что будут оценивать объективно и попытаются помочь. В следущий раз приду уже с портфелем. Буду изображать из себя позитивиста, будто бы я уверен в себе, и делать вид что мне очень хочется у них работать и что я готов сделать для этого всё. Отказываться ли выполнять дурацкие тесты ещё не знаю, может стоит выполнить но предупредить что я не считаю, что они оценивают мой уровень поэтому к ним не готовился. Работодатели наверно просто привыкли что всякое быдло просто выгрызает себе эту нещасную работу и ожидают ото всех новичков такого поведения и если видит не такого, то отбрасывает на всякий случай. Видать никакого кадрового голода нет. Если бы был, с кадрами так бы не обращались. Действительно, программирование это ж своего рода элитарная отрасль с большой зарплатой, так что многие туда ломятся и получить место сложно.

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

Но сколько это по сравнению с теми, кто отучился на 2 курсе? Возмём например Найтмареза, спасибо ему за его публичность. Он как я понял уже получил диплом, не знаю, это 4 или 5 курс. Он уже работает, даже женат, с чем его и поздравляю, и у него есть комплекс физических программ. Последнее что он показывал, и что было дипломной работой, это модель движения электронов в поле. Уровень графики там простой. Просто вывод нетекстурированных плоскостей и точек или шариков. Формулы расчёта движения электронов. Это как мне кажется не сложнее формулы движения мяча в football-o-saurus. То есть сказать, что он ускакал от меня на недостижимое расстояние нельзя.

С другой стороны, я как-то наталкивался на интересные и глубокие темы обсуждаемые в вузе типа тут http://ttp.unicyb.kiev.ua/?action=language¶ms=ru (украинский язык).
3 курс
Розробка інструментальних засобів ілюстративної графіки для інтерактивних навчальних курсів
Реалізація підсистеми редагування HTML-сторінок
Реалізація підсистеми контрольованого доступу до табличних БД
Розробка файлового менеджера та під системи спеціалізованої обробки текстів
Система управління WEB – сайтами
e-commerce системи
Портальні системи
Технології пошуку інформації в Internet
Тут ничего особо глубокого нет, но зато показывается что они на 3 курсе учат практические вещи, те же CMS-ки. Про глубокое тоже как-то видел, сейчас найти не могу. Там было системное программирование, алгоритмы, операционные системы, чё-то такое.

Иногда когда натыкаюсь на программу вуза, сожалею, что не могу туда попасть. В такие минуты кажется, что лучше бы пережить недостатки вуза но пройти организованный курс, чем быть сам себе хозяин, но собирать знания по крупицам. Уже не уверен, что сам смогу выучить всё что полагается. Ну язык например это понятно. А вот теорию там какую-то чего-то там, то по такому книжек-то и нет. И может работодатели которые с пренебрежением ко мне относятся и правы, может я никогда не узнаю чего-то важного для программиста.

Если не получится работать программистом, то не уверен, что смогу работать как быдло на какой-то рабочей специальности. Может сделаю какое-то преступление и сяду в тюрьму. Если там еда неплохая, персональная камера и разрешат компъютер с интернетом, то не плохо. Ещё есть идея свалить в село, если там будет интернет, то отлично. Слышал есть даже дома которые можно бесплатно взять, я не требовательный. Но сложно найти такое предложение и нужны будут деньги на интернет, электричество, одежду, средства гигиены и проч. Их можно заработать продавая выращенное, но так меня ублюдки тоже будут эксплуатировать, так как покупают сильно дёшево.

Преимущества, это наверно то, что я трачу на обучение то же или большее время, но меньшими усилиями. Также может я его более эффективно трачу, так как учу то что мне интересно. Выбираю темы, выбираю когда читать когда кодить. Могу тратить 2 часа на еду, 2 часа на спорт, 10 часов на сон, и около 8 часов в день на обучение, особенно когда не пишу такие длинные посты, сегодня исключение. При этом я никуда не спешу и есть время размышлять над жизнью. Когда смотрю на других людей, то чуствую, что они озабочены городской суетой и уверен что многого они не достигнут.

Этот душевный пост разросся на таку длину, что я уже забыл зачем я его писал и какой должен быть вывод. Я хотел проанализировать своё положение и переспективы. Выяснил, что отказ от вуза было не однозначным решением, у самообразования тоже есть проблемы и пока нельзя сказать оно лучше или хуже. Если посмотреть предварительные итоги, то если бы учился в вузе, то я уже работал бы. Но я выбирал этот путь ради больших результатов, так что это не показатель. Так всегда бывает, что большой результат приходит позже. Подождём ещё.

А поводом к этому посту стало моё очередное на этот раз виртуальное общение с работодателями. Откликнулся на объявление где предлагали обучение талантливым джуниорам (опять выискивают себе только лучших, вот гады!), мне сказали пройти у них тест. Я сказал, что не пройду его так как он дураццкий. Они тогда предложили выполнить тестовое задание. Я согдасился но сдуру ляпнул можно ли мне его делать публично на форуме. Похоже что их эта фраза оттолкнула. Или не понравилось что я всё спрашиваю или не понравилась идея делать задание публично. Хотя что тут такого, понятно, что новичёк всё равно спрашивает на форуме. И они не ответили, что меня обидело и натолкнуло на эту длинную рефлексию. С работой мне не везёт настолько, что работодатели от меня уже отворачиваются даже по почте.

Ссылка | Комментарии [13]

30 июня 2008

Не буду пытаться устраиваться на работу раньше чем через год и до того как сделаю хоть 1 большой проект, так как всё равно не возьмут ублюдки. Я понял что у нас неразвитая экономика и жлобьё в фирмах хочет получить максимум, эксплуатировать рабочих как можно сильнее, поэтому предъявляет к кандидатам большие требования. Например у джуниоров php требуют опыт работы и знание html, css. Это что они ещё и дизайн будут делать? Если даже новички должны обладать опытом, то где им его приобретать? Кроме того в тестах спрашивают чепуху, типа точного знания функций, которые можно быстро посмотреть в справке. Короче совсем оборзели.

Кроме того ко мне у них особенное отношение. Чувак, который не учится в вузе и не имеет портфеля, выглядит просто как идиот, который не смог туда поступить, научился выводить "hello world", подумал, что гений и пошёл на работу устраиваться. Хотя, слышал, что студентов 2-3 курсов берут, и не думаю что они программируют лучше меня (хотя это надо доказать наконец проектом).

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

Насколько я понял, для поступления в вуз в Украине надо окончить 11 классов, причём можно  иметь 1 по всем предметам, пасспорт, справку о здоровье, сдать тест по математике, примеры которого можно найти. Все эти процедуры надо выполнить даже если вы хотите учиться за деньги. А я то думал, что если платишь бабки, то тесты сдавать не надо и бюрократической хрени будет поменьше. Обидно, что даже за деньги поступить сложно, я имею в виду не способности, а формальности, при этом вузы забиты иностранцами! То есть государсто в наших вузах учит иностранцев, так как деньги зарабатывает, при этом затруднена возможность обучения собственным гражданам.

Кому-то поступить в вуз было легко, мне тоже было бы легко, если бы я не поумнел. Раньше я был уверен, что буду учиться в вузе. Так как был уверен, что заслуживаю и что это единственный путь. Но потом, когда прошла пора когда учился за оценки и похвалы, и когда задумался какая польза от того, что я учил в школе, то я пришёл к выводу, что после 3 класса я в школе учился зря. В школе преподают много лишнего. 90% тех кто учился плохо и говорили что им это не надо, говорили правду, им действительно это не надо, так как это куча специализированных знаний, которые никогда не пригодятся, а не они так говорили просто по тому что тупые и не могли учится. А я просто доверился бытующему мнению что учится хорошо у учился, интуитивно не ощущая, что это не то что мне нужно, так как думал, что для счастливого будущего нужно хорошее образование и не знал, что если я буду например программистом игр, мне нужна будет только математика (притом не вся, квадратные уравнения например не нужны), физика Ньютона, английский, но не всё остальное.

Я не кончил 11 классов, у меня нет пасспорта, справки о здоровье и я не собираюсь сдавать тесты, хотя с математикой у меня нормально (хуже чем у тех кто учился в спец школах, я им завидую). При этом я не считаю себя кретином, который даже не может получить пасспорт. Я пытался, но когда меня стали гонять по кабинетам несколько дней, то решил не тратить на это своё время, потому что я не хочу чтобы меня нагибали и обращались со мной как с быдлом. Я надеюсь, что когда-то придёт момент и мне дадут пасспорт, пригласят в любой вуз без формальностей и работодатели будут охотиться за мной. Или если такого момента не наступит, то жизнь меня так согнёт, что я побегу за паспортом и прочим, или всё равно никуда не побегу.

Почему я выбрал не учиться в вузе? Потому что я подумал, что там царит такой же дибилизм как и в школе. Я думал, что там будут учить куче лишней хрени, типа литературы, что там вообще не учат программированию, что уровень низок из-за ориентировки на дебилов, что придётся тратить много времени на транспорт, ожидание. Не хотел испортить себе здоровье этим бешенным графиком и плохим питанием. Кроме того в школе учителя говорили, что начиная со старшых классов школы должно быть самообразование. Кроме того пример Билла Гейтса. Я не хотел идти путём большинства, так как большинство рабы и ни к чему хорошему не приходят. Я расчитывал, что сам смогу стать хорошим программистом, что так мой уровень будет выше чем у большинства.

Что я имею. Я потратил несколько лет. Пара это 10-11 классы, пара - 1-2 курсы в вузуе. Может даже 3-4 курс. Не охота считать точно. Какую эволюцию я прошёл:

Сначала бейсик, делфи, потом С++. Потом идея сделать мегаигру, попытка собрать команду, бурное обсуждение, над которым ухохатывался весь форум, облом.  Изучение directX (пытался даже скелетку делать, но не осилил Адамса), winapi,  изучение Ламота, openGL (только затектурированый кубик).

Потом ударился в сеть: php, MySQL, html, CSS, javascript, useability. Тут я больше приблизился к результату. В отличие от игры мне удавалось создавать кое-какие сайты, но это было дерьмо, так как там был плохой дизайн, юзабилити, архитектура и полезность. Я наивно думал, что раз php интерпретируемый язык и у него низкий порог вхождения, то сайты делать будет легко, так как я ж изучал трёхмерную графику... Но оказалось что сделать хороший сайт не легче чем игру, не смотря на то что программировать на php действительно чуть легче.

Пробовал заниматься фрилансингом, за деньги меня никто не заказывал, было 2 бесплатных проекта. Один сайт фотографу. Тут я в первый раз столкнулся с явлением, когда клиент не знает что он хочет. Он заказал мне сайт на php и сказал типа делай сайт фотографу. Потом ему не понравился дизайн и он сказал что хочет модерн. Потом показал дизайн на флеше. Я переделал, но всё равно ему не понравилось. Причины провала были такие:
1. Баги с кодировкой и кешированием. На хостинге была другая кодировка, но хоть я и выставил utf8 ведзе, всё равно глючило. Кроме того клиент жаловался что картинки или не обновляются или каждый раз перезагружаются. Тут сказался мой непроффесионализм. Потом только я выяснил, что лучше не выпендриваться и картинки грузить с диска, а не динамически, а кодировку списал на дураццкий бесплатный хостинг.
2. Низкое юзабилити форматирования сообщений. Клиенту было сложно писать теги. И ему хотелось большей гибкости форматирования при большей простоте (наверно как в ворде). Тут сказалась неопытность в работе с клиентами. Фичалист надо уточнять сначала. Да и плохо я продумал форматирование. Для меня это было второстепенным (типа ну что такое вывод, как нибудь выведем, главное, чтоб работало), а для пользователя это главное. Это был на самом деле самый сложный модуль и я ему уделил недостаточно внимания.
3. Плохой дизайн. Я понял что хороший дизайн никогда не сделаю, так как не умею критически оценивать свой дизайн. То что нраится мне, не нравится другим.
4. Плохая архитектура и отсутствие планирования. Я просто представил сколько мне займёт это времени закодить, и могу ли я это закодить, но не думал о том, чтобы понять лучше задачу, сделать требования, сделать хорошую архитектуру, предугадать сложности, оценить сроки, попытаться удовлетворить клиента.
Хоть проект был и дерьмо, но я вынес из него много пользы. Я не могу сделать полностью сайт, так как это работа разных специалистов, я даже не могу выполнить всё программирование, так как не могу организовать архитектуру и исправить баги. Кроме того я не могу работать с клиентами и вырабатывать требования, тем более если их не может сформулировать сам клиент.

Ещё был один проект с англичанином. Он взял меня кодить магазин. Обещал гонорар сотни баксов, каждый день изливал на меня похвалы типа "Great work!". Но потом не заплатил. Насколько я понял, ему нужен был не сайт, так как он у него уже собственно был, он сказал что надо преписать, а некоторые модули, которые залазят на другой похожий сайт и достают оттуда информацию, а сайт это типа прикрытие, чтобы втереться в доверие. Когда я сделал несколько больших форм ввода данных, корзину, один модуль обработки данных другого сайта, то потребовал часть денег. Он стал выдумывать что не может перечислить, что он всеми силами пытается, но у него не получается, просил продолжать работу. Я отказался, пока не увижу хоть каких-то денег, тогда он меня послал... Тоже полезный опыт, что тебя могут и кинуть. В этом проекте дизайном я не занимался, только программил, причём точные задания, выслушивал комплименты, обещания денег. Было очень приятно, я думал, что фриланс это для меня. Но когда не заплатли, понял, что это не исключение, а что я только такого рода проекты и могу найти. Успешным фрилансером может быть только профессионал. Никаких путей типа чтобы фрилансерская фирма взяла на обучение или аутсорсинг кодера такого нет. Ни клиенты ни фирмы с непрофессионалами не связываются.

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

Ссылка | Комментарии [6]

Архив 

Предыдущие записи