Хочу стать программистом..
От: Vismut Россия  
Дата: 08.04.04 08:17
Оценка: 22 (4)
Всем привет.. немного о себе.. с 18 лет (мне щас 21) большую часть времени провожу за компьютером.. похоже, что у меня паталогическая потребность взаимодействовать с ПК (сижу и под WindowsXP и под FreeBSD и Linux).. и я решил направить эту потребность в выгодное для моего кошелька русло.. а кроме того меня просто в этом мире мало что интересует, за исключением всего что связано с компьютерами, ОС-ми и программированием..

Прочитал полностью книги Б.Страуструпа и Р.Лафоре (по С++).. в ходе изучения научился писать консольные программы (и под Win32 и под Unix).. но это просто учебные программы, бесполезные для окружающих.. Я хочу посвятить свою жизнь программированию, постоянному совершенствованию в этом ремесле.. Есть большое желание писать полезные бесплатные программы.. в то же время нужно на что-то жить, то есть параллельно придется работать программистом где-нибудь.. очень интересует сетевое программирование (для TCP/IP) как под Windows, так и под Unix..
Я уверен, что на этом форуме общается много разных программистов.. и я очень прошу ответить на мои вопросы:

Принимая во внимание затянувшееся вступление, что вы можете мне посоветовать изучать дальше?

P.S. Очень жду ваших советов.. Спасибо за внимание..

08.04.04 12:46: Перенесено модератором из 'Прочее' — _MM_
Re: Хочу стать программистом..
От: LaptevVV Россия  
Дата: 08.04.04 08:54
Оценка: +1
Здравствуйте, Vismut, Вы писали:

V>Всем привет.. немного о себе.. с 18 лет (мне щас 21) большую часть времени провожу за компьютером.. похоже, что у меня паталогическая потребность взаимодействовать с ПК (сижу и под WindowsXP и под FreeBSD и Linux).. и я решил направить эту потребность в выгодное для моего кошелька русло.. а кроме того меня просто в этом мире мало что интересует, за исключением всего что связано с компьютерами, ОС-ми и программированием..


V>Прочитал полностью книги Б.Страуструпа и Р.Лафоре (по С++).. в ходе изучения научился писать консольные программы (и под Win32 и под Unix).. но это просто учебные программы, бесполезные для окружающих.. Я хочу посвятить свою жизнь программированию, постоянному совершенствованию в этом ремесле.. Есть большое желание писать полезные бесплатные программы.. в то же время нужно на что-то жить, то есть параллельно придется работать программистом где-нибудь.. очень интересует сетевое программирование (для TCP/IP) как под Windows, так и под Unix..

V>Я уверен, что на этом форуме общается много разных программистов.. и я очень прошу ответить на мои вопросы:

V>Принимая во внимание затянувшееся вступление, что вы можете мне посоветовать изучать дальше?


V>P.S. Очень жду ваших советов.. Спасибо за внимание..


А учишься ли ты в вузе?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Хочу стать программистом..
От: Vismut Россия  
Дата: 08.04.04 10:27
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>А учишься ли ты в вузе?


Нет.. я предпочитаю самообучение..
Re[3]: Хочу стать программистом..
От: LaptevVV Россия  
Дата: 08.04.04 10:35
Оценка: 94 (8)
Здравствуйте, Vismut, Вы писали:

V>Нет.. я предпочитаю самообучение..

Дело в том, что квалификация в программировании — это отнюдь не только программирование. Тут надо знать, например, обширные разделы прикланой математики.
А это дает только вуз. Или тебе все это по книжкам изучать придется. Теорию графов, например.

Дискретная математика, и просто математика — нужна программистам однозначно!
0. Математическая логика.
1. Исчисление высказываний и предикатов (например, в искуственном интеллекте сильно пригождается)
2. Булева алгебра и булевы функции — ну, сам понимаешь, без этого — никуда.
3. Все, что найдешь по графам — без сомнения, должен прочитать и усвоить. Лучше — алгоритмический подход, чем теоретический (Кристофидеса книжка, например). Без них — вообще никуда. Многие программисты, бывает, изобретают алгоритмы там, где уже все давно написано — в теории графов.
4. Автоматы — сам назвал. "Автоматы всякие важны, автоматы всякие нужны"(с) Михалков, кажется. Там у него мамы. И это в компиляторах тоже много. И не в компиляторах тоже.
5. Формальные грамматики и языки — основа синтаксического анализа в компиляторах.
5. Комбинаторика.
6. Будешь смеяться, но и высшая алгебра — нужна обязательно. Кажется, каким боком? А вот нужна! Теория информации и кодирования — вся на алгебре основана. А кодирование, сам понимаешь — программистский хлеб. Например, zip-архиваторы используют адаптивное кодирование по Хаффмену. А блочный линейный код, знаешь, что такое? ASCII — это блочный линейный код. А с другой стороны есть определение: БЛК — это линейное векторное пространство над полем Галуа. И есть еще много других кодов, основанных, например, на многочленах. Короче, алгебра — обязательно!
7. Теория принятия решений — без нее никак. Многокритериальная оптимизация, например, по принципу Парето — вся принятие решений в экономике на этом стоит — еще с начала века.
8. Вероятность — а экспертные системы многие на этом стоят: шансы, коэффициенты уверенности и так далее. Тут же недалеко и нечеткие множества, логика, отношения, числа, графы.
В общем, математика нужна для понимания и реализации.
Больше никого не слушай, так как
а) я заведующий кафедрой
б) я старше всех на форуме
в) работал и программистом и преподавателем — знаю, что говорю


Это цитата из моего поста
Ты готов этим заниматься самостоятельно?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Хочу стать программистом..
От: Аноним  
Дата: 08.04.04 10:41
Оценка: 6 (1)
Здесь много хороших книг по этим темам.
Re[4]: Хочу стать программистом..
От: nap2k Верблюд есть
Дата: 08.04.04 11:00
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Vismut, Вы писали:


V>>Нет.. я предпочитаю самообучение..

LVV>Дело в том, что квалификация в программировании — это отнюдь не только программирование. Тут надо знать, например, обширные разделы прикланой математики.
LVV>А это дает только вуз. Или тебе все это по книжкам изучать придется. Теорию графов, например.

Ну изучал я всю эту хрень в вузе, а реально большая часть этого мне сейчас не нужна вообще.
<<не против свалить за бугор>>
Re[5]: Хочу стать программистом..
От: LaptevVV Россия  
Дата: 08.04.04 11:21
Оценка: 12 (4)
Здравствуйте, nap2k, Вы писали:

N>Ну изучал я всю эту хрень в вузе, а реально большая часть этого мне сейчас не нужна вообще.

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

Будучи студентом математического факультета я изучал Численные методы. Так получилось, что по данному предмету у меня образовался хвост. Я все лето учил и в сентябре уго сдал. Препод был нормальный, не посмотрел. что сдаю хвост — поставил 5.
Через много лет приезжаю в Астрахань работать преподавателем. Угадайте с трех раз, какой предмет мне пришлость преподавать в первый же семестр?
Так что никогда не знаешь, что тебе в жизни пригодится, а что — нет. Я вот самосоятельно в свое врем БЭСМ-6 изучал — вроде бесполезние знания. А теперь я студеннтам рассказываю систему прерываний и привожу разные примеры реализаций. Естественно, биты рассказывать не требуется, а вот принцип — да, поскольку он совершенно другой, чем в интеле.
А диссер я защищал — чистая теория графов, хоть и приложенная к конкретной задаче. Не изучал бы в университете — фиг бы мне в голову пришло, что ее можно для решения диссеровской задачи применить.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Хочу стать программистом..
От: Виталий Россия  
Дата: 08.04.04 11:37
Оценка:
Здравствуйте, Vismut, Вы писали:

V>Здравствуйте, LaptevVV, Вы писали:


LVV>>А учишься ли ты в вузе?


V>Нет.. я предпочитаю самообучение..

А почему нельзя совмещать? Есть за такая замечательная вещь как экстернат.
Re[5]: Хочу стать программистом..
От: bkat  
Дата: 08.04.04 11:37
Оценка:
Здравствуйте, nap2k, Вы писали:

N>Здравствуйте, LaptevVV, Вы писали:


LVV>>Здравствуйте, Vismut, Вы писали:


V>>>Нет.. я предпочитаю самообучение..

LVV>>Дело в том, что квалификация в программировании — это отнюдь не только программирование. Тут надо знать, например, обширные разделы прикланой математики.
LVV>>А это дает только вуз. Или тебе все это по книжкам изучать придется. Теорию графов, например.

N>Ну изучал я всю эту хрень в вузе, а реально большая часть этого мне сейчас не нужна вообще.


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

Готов спорить, что основная масса рутины в IT в итоге уйдет
в Китай или Индию. Их много и они методом "copy paste" выдадут столько кода,
сколько надо. Тут с ним соревноваться нет смысла.
А задачи сложнее и интереснее потребуют немного уровня подготовки и знаний.

В общем это уже сто раз обсуждалось...
Знания не могут быть бесполезными. Они только дают тебе новые возможности.
Как ты ими воспользуешься и нужны ли они тебе — это зависит только от тебя.
Re[4]: Хочу стать программистом..
От: bkat  
Дата: 08.04.04 11:41
Оценка:
Здравствуйте, Виталий, Вы писали:

В>Здравствуйте, Vismut, Вы писали:


V>>Здравствуйте, LaptevVV, Вы писали:


LVV>>>А учишься ли ты в вузе?


V>>Нет.. я предпочитаю самообучение..

В>А почему нельзя совмещать? Есть за такая замечательная вещь как экстернат.

Угу...
И эта штука, как и заочное и вечернее образование не признается (или признается с большим скрипом)
ни в Европе, ни в Америке ни в Азии.

Буду категоричен, но первое образование должно быть очным.
Уже потом, если будет желание получить другое образование (скажем перейти в управленцы),
то можно (и даже лучше) совмещать с работой.
Re[4]: Хочу стать программистом..
От: Vismut Россия  
Дата: 08.04.04 11:51
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Vismut, Вы писали:


V>>Нет.. я предпочитаю самообучение..

LVV>Дело в том, что квалификация в программировании — это отнюдь не только программирование. Тут надо знать, например, обширные разделы прикланой математики.
LVV>А это дает только вуз. Или тебе все это по книжкам изучать придется. Теорию графов, например.

LVV>

LVV>Дискретная математика, и просто математика — нужна программистам однозначно!
LVV>0. Математическая логика.
LVV>1. Исчисление высказываний и предикатов (например, в искуственном интеллекте сильно пригождается)
LVV>2. Булева алгебра и булевы функции — ну, сам понимаешь, без этого — никуда.
LVV>3. Все, что найдешь по графам — без сомнения, должен прочитать и усвоить. Лучше — алгоритмический подход, чем теоретический (Кристофидеса книжка, например). Без них — вообще никуда. Многие программисты, бывает, изобретают алгоритмы там, где уже все давно написано — в теории графов.
LVV>4. Автоматы — сам назвал. "Автоматы всякие важны, автоматы всякие нужны"(с) Михалков, кажется. Там у него мамы. И это в компиляторах тоже много. И не в компиляторах тоже.
LVV>5. Формальные грамматики и языки — основа синтаксического анализа в компиляторах.
LVV>5. Комбинаторика.
LVV>6. Будешь смеяться, но и высшая алгебра — нужна обязательно. Кажется, каким боком? А вот нужна! Теория информации и кодирования — вся на алгебре основана. А кодирование, сам понимаешь — программистский хлеб. Например, zip-архиваторы используют адаптивное кодирование по Хаффмену. А блочный линейный код, знаешь, что такое? ASCII — это блочный линейный код. А с другой стороны есть определение: БЛК — это линейное векторное пространство над полем Галуа. И есть еще много других кодов, основанных, например, на многочленах. Короче, алгебра — обязательно!
LVV>7. Теория принятия решений — без нее никак. Многокритериальная оптимизация, например, по принципу Парето — вся принятие решений в экономике на этом стоит — еще с начала века.
LVV>8. Вероятность — а экспертные системы многие на этом стоят: шансы, коэффициенты уверенности и так далее. Тут же недалеко и нечеткие множества, логика, отношения, числа, графы.
LVV>В общем, математика нужна для понимания и реализации.
LVV>Больше никого не слушай, так как
LVV>а) я заведующий кафедрой
LVV>б) я старше всех на форуме
LVV>в) работал и программистом и преподавателем — знаю, что говорю


LVV>Это цитата из моего поста

LVV>Ты готов этим заниматься самостоятельно?

дело в том, что я из всего, что вы перечислили некоторые вещи прочитал.. и щас если что забуду я знаю в какую книгу заглянуть и где поискать.. в то же время, когда я изучал С++ и выполнения многочисленные задания.. неволно пришел к мысли, что практикующиму праграммисту (не теоретику) эффективнее потратить время не на изучение многочисленных теорий, а прежде всего на:
— выбор областей в которых предполагается работа
— выбор языка (языков) наиболее полно отвечающего (щих) специфики предполагаемой работы
— выбор необходимых инструментальных средств (всевозможные библиотеки, среды разработки, API, UML (для ООП) и.т.д.)
— практика, практика, практика.. — оттачивание мастерства в использовании избранных инструментов и языка (ов)..

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

Но мой вопрос касался прежде всего инструментальных средств, например для программирования под Win32:
для создания GUI, сетевых программ, программ для манипуляций с файлами, драйверов и т.д.

Что вы можете посоветовать?
Re[5]: Хочу стать программистом..
От: LaptevVV Россия  
Дата: 08.04.04 11:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здесь много хороших книг по этим темам.

Да, спасибо — это библиотека научных книг.
Только вопрос, чем их просматривать?
Там формат мне какой-то неизвестный
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Хочу стать программистом..
От: bkat  
Дата: 08.04.04 11:57
Оценка:
Здравствуйте, Vismut, Вы писали:

V>практикующиму праграммисту (не теоретику) эффективнее потратить время не на изучение многочисленных теорий, а прежде всего на:

V>- выбор областей в которых предполагается работа

Начнем с этого...
Чем ты хочешь заниматься? Какие задачи решать?

P.S. Я не теоретик, а очень даже практик, а с Лаптевым согласен
Re[5]: Хочу стать программистом..
От: LaptevVV Россия  
Дата: 08.04.04 12:02
Оценка: 1 (1)
Здравствуйте, Vismut, Вы писали:

V>дело в том, что я из всего, что вы перечислили некоторые вещи прочитал.. и щас если что забуду я знаю в какую книгу заглянуть и где поискать.. в то же время, когда я изучал С++ и выполнения многочисленные задания.. неволно пришел к мысли, что практикующиму праграммисту (не теоретику) эффективнее потратить время не на изучение многочисленных теорий, а прежде всего на:

V>- выбор областей в которых предполагается работа

V>- выбор языка (языков) наиболее полно отвечающего (щих) специфики предполагаемой работы

V>- выбор необходимых инструментальных средств (всевозможные библиотеки, среды разработки, API, UML (для ООП) и.т.д.)

V>- практика, практика, практика.. — оттачивание мастерства в использовании избранных инструментов и языка (ов)..

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

V>Но мой вопрос касался прежде всего инструментальных средств, например для программирования под Win32:
V>для создания GUI, сетевых программ, программ для манипуляций с файлами, драйверов и т.д.

V>Что вы можете посоветовать?

Ты уже практически ответил на свой вопрос
Смотри на список форумов РСДН.
В каждом задай 4 своих пункта в качестве вопросов. Из ответов будет ясно.
Если о С++ надо два направления: виндовское и никсовское. В одном работаешь, но про второе не забываешь и по крайней мере, материал просматриваешь. То есть в одном АПИ
работаешь, а в другом изучаешь аналоги по книжкам.
В Винде сейчас ИМХО лучше на дотнетовском С++ работать. В никсе — это тебе такм посоветуют.
На перспективу я ИМХО посоветовал бы С# и Яву — похожие языки.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Хочу стать программистом..
От: Vismut Россия  
Дата: 08.04.04 12:11
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Vismut, Вы писали:


V>>дело в том, что я из всего, что вы перечислили некоторые вещи прочитал.. и щас если что забуду я знаю в какую книгу заглянуть и где поискать.. в то же время, когда я изучал С++ и выполнения многочисленные задания.. неволно пришел к мысли, что практикующиму праграммисту (не теоретику) эффективнее потратить время не на изучение многочисленных теорий, а прежде всего на:

V>>- выбор областей в которых предполагается работа
LVV>
V>>- выбор языка (языков) наиболее полно отвечающего (щих) специфики предполагаемой работы
LVV>
V>>- выбор необходимых инструментальных средств (всевозможные библиотеки, среды разработки, API, UML (для ООП) и.т.д.)
LVV>
V>>- практика, практика, практика.. — оттачивание мастерства в использовании избранных инструментов и языка (ов)..
LVV>
V>>И с моей точки зрения, пониманию грошь цена по сравнению с мастерством (навыками).. в то же время незнание некоторых вещей, которые вы назвали действительно может привести к изобритению колеса и к не эффективному коду например..
LVV>
V>>Но мой вопрос касался прежде всего инструментальных средств, например для программирования под Win32:
V>>для создания GUI, сетевых программ, программ для манипуляций с файлами, драйверов и т.д.

V>>Что вы можете посоветовать?

LVV>Ты уже практически ответил на свой вопрос
LVV>Смотри на список форумов РСДН.
LVV>В каждом задай 4 своих пункта в качестве вопросов. Из ответов будет ясно.
LVV>Если о С++ надо два направления: виндовское и никсовское. В одном работаешь, но про второе не забываешь и по крайней мере, материал просматриваешь. То есть в одном АПИ
LVV> работаешь, а в другом изучаешь аналоги по книжкам.
LVV>В Винде сейчас ИМХО лучше на дотнетовском С++ работать. В никсе — это тебе такм посоветуют.
LVV>На перспективу я ИМХО посоветовал бы С# и Яву — похожие языки.

Спасибо.. на форуме дествительно много информации
Re[6]: Хочу стать программистом..
От: Vismut Россия  
Дата: 08.04.04 12:27
Оценка:
Здравствуйте, bkat, Вы писали:

B>Здравствуйте, Vismut, Вы писали:


V>>практикующиму праграммисту (не теоретику) эффективнее потратить время не на изучение многочисленных теорий, а прежде всего на:

V>>- выбор областей в которых предполагается работа

B>Начнем с этого...

B>Чем ты хочешь заниматься? Какие задачи решать?

B>P.S. Я не теоретик, а очень даже практик, а с Лаптевым согласен


Прежде всего сетевое программирование, программы реализующие защиту от сетевых аттак, сканеры уязвимостей, сетевые анализаторы, удаленное администрирование, прокси-сервера с аутентификацией и шифрованием, возможно нестандартные решения распространенных сетевых приложений для фирм.. писать планирую преимущественно под Win32 — для денег... для души — Win32 и Unix..
Re[6]: Хочу стать программистом..
От: FreshMeat Россия http://www.rsdn.org
Дата: 08.04.04 12:34
Оценка: 14 (1)
Здравствуйте, LaptevVV, Вы писали:

А>>Здесь много хороших книг по этим темам.

LVV>Там формат мне какой-то неизвестный

http://www.oznet.ksu.edu/webbuilder/graphics/general/djvu.asp
http://www.djvuzone.org/download/
http://www.lizardtech.com/download/tx.php?dl=/download/files/win/djvuplugin/DjVuBrowserPlugin45.exe
Хорошо там, где мы есть! :)
Re[5]: Хочу стать программистом..
От: Виталий Россия  
Дата: 08.04.04 12:48
Оценка:
Здравствуйте, bkat, Вы писали:

V>>>Нет.. я предпочитаю самообучение..

В>>А почему нельзя совмещать? Есть за такая замечательная вещь как экстернат.

B>Угу...

B>И эта штука, как и заочное и вечернее образование не признается (или признается с большим скрипом)
B>ни в Европе, ни в Америке ни в Азии.
Та ну? Надо будет им об этом сказать, а то они и не знают

На самом деле у меня с этим никаких проблем не было, хотя не исключено, что мне повезло.
Плюс не могу сказать за всю Европу, но вот в Германии их университеты, с моей точки зрения, присто напросто активно поддерживают эту систему. То есть выбирается несколько курсов и по времени их прохождения тебя никто не ограничивает (ну, в разумных пределах, конечно). Можно сдать черех полгода (чаще всего курс расчитан именно на этот срок), можно через год, а можно и на следующий день

B>Буду категоричен, но первое образование должно быть очным.

B>Уже потом, если будет желание получить другое образование (скажем перейти в управленцы),
B>то можно (и даже лучше) совмещать с работой.
Re[7]: Хочу стать программистом..
От: FreshMeat Россия http://www.rsdn.org
Дата: 08.04.04 12:54
Оценка:
Здравствуйте, FreshMeat, Вы писали:

Пара комментариев:
http://www.oznet.ksu.edu/webbuilder/graphics/general/djvu.asp
миниатюрное описание DjVu — что такое и с чем его едят
Самое интересное:

DjVu:

DjVu is a relatively new technology developed by AT&T research labs, and licensed to LizardTech for commercialization. It allows much greater file compression than other formats, and also allows searchable text and image files, similar to PDF. It is supported by browser plugins, available for most operating systems. In order for users to view DjVu information, they need to download and install the plugins. The document then appears in a browser window, similar to PDF files.

Advantages

Small file size — A typical PDF of 200K can be reduced to 50K, saving download time. A 3.75 MB TIF image that would be 160K as a JPG file can be reduced to 65K.
Searchable text & image files. Very similar to PDF documents.

Disadvantages

Needs a special plugin. This plugin is self-installing for Windows, however, so it isn't difficult to configure.
Proprietary format which doesn't have a large user base.
Searchable text is not correctable at this point, whatever the program recognizes as text is inserted into the document.



http://www.djvuzone.org/download/
download часть сайта LizardTech

http://www.lizardtech.com/download/tx.php?dl=/download/files/win/djvuplugin/DjVuBrowserPlugin45.exe
ссылка на плагин IE, для просмотра книг
Хорошо там, где мы есть! :)
Re[4]: Хочу стать программистом..
От: voxel3d  
Дата: 08.04.04 13:23
Оценка: 3 (1) :))
Здравствуйте, LaptevVV, Вы писали:


LVV>Больше никого не слушай, так как

LVV>а) я заведующий кафедрой
LVV>б) я старше всех на форуме
LVV>в) работал и программистом и преподавателем — знаю, что говорю

Бронтозавры не могут ошибаться?

p.s.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.