С чего начать?
| |
Archido | Дата: Пятница, 17 Августа 2012, 11:26 | Сообщение # 21 |
Сэнсэй
Сейчас нет на сайте
| Quote (shaman4d) Да вы что?! Только я вот уже 9 лет жалею что не сделал именно так Есть и обратный опыт. Начинать программирование с нуля на С++ - плохая затея.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
GeForceVolume | Дата: Пятница, 17 Августа 2012, 11:32 | Сообщение # 22 |
почетный гость
Сейчас нет на сайте
| Лично я начинал с Basic, затем перешел в Pascal, позже освоил HTML, ну а потом, как начал юзать Game Maker - GML.
Я думаю, что можно начинать с любого ЯП, главное - желание и хороший учебник. Вот Basic и Pascal я изучал в школе, поэтому изучить мне было не сложно, а HTML я решил освоить по собственному желанию и нашел отличный учебник, там довольно понятно и доходчиво объяснялось. И за три дня я неплохо усвоил HTML. GML усвоил также. В интернете есть отличный сайт, где есть по нему справка. Пруфлинк.
P.S. Раз решил выбирать среди Basic и Pascal, то бери Pascal, ибо с Basic ты потеряешь время, имхо.
Guitar Hero - Blur
|
|
| |
odment | Дата: Пятница, 17 Августа 2012, 11:51 | Сообщение # 23 |
был не раз
Сейчас нет на сайте
| Quote Начинать программирование с нуля на С++ - плохая затея. Уж не с делфи то начинать? Я начал сразу с С++ и ни чего страшного.
Сообщение отредактировал odment - Пятница, 17 Августа 2012, 11:52 |
|
| |
Archido | Дата: Пятница, 17 Августа 2012, 12:13 | Сообщение # 24 |
Сэнсэй
Сейчас нет на сайте
| Quote (odment) Уж не с делфи то начинать? А почему бы и нет? Какие то проблемы?
Quote (odment) Я начал сразу с С++ и ни чего страшного. Начинать можно с чего угодно и как угодно, вопрос в том, будет ли с этого толк. Есть много людей, кто считает, что они "знают С++", но в реале они знают лишь 5-10 процентов в лучшем случае и совершенно не умеют строить алгоритмы.
Тут уже каждый насоветовал со своей колокольни, спорить о том, что лучше здесь смысла не вижу. Поэтому на вопрос атора темы отвечаю: Quote (Orochimaru) Решил выучит яп от их разнообразия голова кругом.Выбор остановился на Basic и Pascal какой лучше начинать учить? Pascal и как по мне, для начала - неплохой выбор.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
IIyxMASTER | Дата: Пятница, 17 Августа 2012, 13:18 | Сообщение # 25 |
постоянный участник
Сейчас нет на сайте
| Начинайте с ассемблера, ёпа... С++,Паскаль, джава,бейсик, с#,питон, перл - господи, да какая разница то? Можно подумать что человек всю жизнь будет к этому языку привязан. Ему надо узнать основы, язык тут не главное, почти у всех современных языков суть одна. Канечно с++ тяжеловат для начинающего, его всетки стоит учить с наставником, который сможет рассказать о подводных камнях типа утечки памяти и прочего, но всетки для получения основ и он пойдет на ура. Один хрен окончательный выбор языка можно сделать только опробовав на своем опыте львиную часть из них, полагаться только на советы других - глупо. ЗЫ яб всетки на с# остановился :-) с решарпером в вс такая прелесть работать, он и код правильно оформлять научит, и сам по себе язык не сложный. ЗЫЫ Главное чтоб не с пхп начинал, отсутствие в нем строгой типизации будет серьезным геммороем при изучении языков с ней... ЗЫЫЫ Я в институте начинал с паскаля. В принципе - не плохо, плохому не научит, грех жаловаться. Но, оглядываясь назад, думаю, что лучшеб мне с# преподавали с первого курса ))
Сообщение отредактировал IIyxMASTER - Пятница, 17 Августа 2012, 13:19 |
|
| |
RUNGOGET2THECHOPAH | Дата: Пятница, 17 Августа 2012, 14:26 | Сообщение # 26 |
участник
Сейчас нет на сайте
| Самое главное - не думай, что ты зря потеряешь время, изучая какой-то язык (как тебе тут некоторые говорят). Почти все перечисленные в теме языки (кроме разве что ассемблера, лол) в общем-то похожи, просто многие здешние прогроммисты думают, что использование, например, фигурных скобок вместо begin и end - принципиально важное различие.
|
|
| |
DeusEx-12 | Дата: Пятница, 17 Августа 2012, 16:11 | Сообщение # 27 |
постоянный участник
Сейчас нет на сайте
| Зашел в тему почитать "советы". Грустно, друзья мои. Почитав Ваши "советы" и последовав им, новичек сломает себе мозг и никогда не научится ничему путному. При этом очевидно, что "даватели советов" никогда не преподавали программирование, не выпустили хотя бы десяток специалистов, да и сами разбираются во многих ЯП и алгоритмике "где то около", иначе бы они не писали то, что написали.
Еще хуже то, что новичку не понятно на чьи слова ориентироваться. "Умные дядьки" пишущие тотальную фигню допущены ко всем темам, и могут выступать в роли экспертов по любому поводу - от выбора ЯП до обсуждения роли гейм-дизайнера (которым они ни дня не работали). В этой ситуации (да простят меня модераторы) ресурс скорее вреден, чем полезен, и наносит ущерб тем, кто приходит с нормальными, реальными вопросами (пусть и с непониманием спрашиваемого). Зато даёт раздолье желающим "блеснуть знаниями".
Что интересно, интернет полон статей о грамотном обучении (и последовательности обучения) языкам. Никто, ни один специалист не рекомендует начинать с объектно-ориентированных языков типа C++, Java и т.д. Даже те, кто дают первым языком C# подтверждают, что порог вхождения в него крайне высок, и требует понимания очень многих вещей (в частности, что такое и как работает .Net Framework, и с первых же строк кода - основы объектно ориентированного подхода). Да, писать то на нём потом человек будет (чаще как мартышка), но будет ли он понимать, и вызовет ли сие обучение понимание алгоритмов? Скорее всего нет.
Quote (shaman4d) Только я вот уже 9 лет жалею что не сделал именно так - вместо этого учил и испольщовал всякие JS Java PHP Basic ActionScript Delphi И только это дало Вам в последствии возможность нормально подойти к языкам типа С++. Это нормальная практика.
Для "экспертов" С++ напомню, что все творения id-software до DOOM-3 были написаны на чистом С. Там не было С++. Почитайте интервью и книги про игрострой. Еще я им советую ознакомится с тем, как пишется их любимый Linux, и на каком языке пишется не только ядро (в версии Линуса Торвальдса), но и масса прикладных программ. Это тоже... Си, а не С++.
С++, преподанный человеку без подготовки порождает УЖАСНЫЕ алгоритмы и очень плохой стиль программирования. Попытка научить человека без базы С++ - это попытка дать технику нейрохирурга в руки человека, не умеющего накладывать бинт. Действительно, зачем ему бинты, он ведь хочет делать операции на мозге! Бинтует пусть медсестра!
Есть стандартный подход к обучению. Есть, между прочим прекрасная статья: "Как стать хакером" Эрик С. Рэймонд http://volgograd.lug.ru/library/hacker-howto.ru.html , которая обновляется с 1998 года. И почему то реальные эксперты в области ПО не видят ничего проблемного в обучении Basic, Pascal, Python. Почему то регулярно появляются новые версии "никому не нужного" бейсика. Ребята, Вы сами то в состоянии написать на Бейсике коммерческий продукт? Или Вы считаете, что круче уметь писать "Hello, World" на С++ - это делает Вас программистами?
Сейчас обучение значительно облегчено. Появились нормальные книги типа Петцольда "КОД", где полный новичек может узнать подноготную вычислительной техники и основы алгоритмики. Есть масса книг по QuickBasic 4.5 и Pascal. Почему до сих пор выпускаются книги по TurboPascal 7.0? Вам не приходило в голову, что это не мировой заговор?
Сначала изучаются обычные языки без всякого ООП: это Basic или Pascal. Лично я отдаю предпочтение Basic, но это сугубо вопрос личных предпочтений (как вопрос "что лучше - синий или зелёный"). Очень неплохо освоить оба: программист, знающий 1 или 2 языка - это несчастье а не программист. Потом желательно обучить человеку основам ассемблера. Да, вкратце, но он должен знать что это такое. И на базе всего этого разбирать с ним простейшие алгоритмы. Потом человеку можно дать Си.
(Альтернативный вариант предполагает Python-PHP-JavaScript-Java, но это не программистский вариант, а скорее курс рассчитанный для вебмастеров, которым сейчас не обойтись без программирования. Там не идет речь о сложной алгоритмике и скорее речь о программировании интерфейсов. Там такой подход простителен.)
И вот после того как человек научится обращаться с алгоритмами (с алгоритмами, а не выучит операторы!) ему можно дать ООП. Да, тут уже можно дать ему С++.
На счет споров С++ vs C# в последовательности обучения. Я лично обожаю С# и не притрагивался с С++ (за редкими исключениями) со времен Borland 3.1, но правда состоит в том, что программист должен уметь читать код на С++, так как большинство имеющегося сейчас кода написано на нём. Огромная часть литературы по геймдеву так же ссылается на алгоритмы С++. А научиться читать код не писав его - нереально. Кроме того, обратная пересадка (с С# на С++) редко происходит безболезненно. Есть много нюансов, из-за которых будто бы правильный код оказывается неработоспособен. Поэтому, при всей моей любви к C# я бы рекомендовал после Си выучить (неглубоко) С++, достаточно одного простого курса С++, а потом уже переходить к планомерному изучению С#. В этой ситуации необходимость иметь дело с С++ не вызовет проблемы.
Если человек чистый "прикладник" или нацелен на разработку игр на какой то конкретной платформе (Unity3D), то я понимаю желание выучить сразу С#. Тем более, что понятные и доступные книги для этого есть (Петцольд "программирование в тональности С#"или книга "HeadFirst C#").
Однако, как только человек столкнётся с чем либо сложнее программирования "Сапёра" и "Арканоида", он убедится, что решение нетривиальных задач лежит не в области знания операторов С#, а в области алгоритмизации, и вот тут начнется свистопляска.
Поэтому если мы говорим об обучении программированию (а не о том, чтобы геймдизайнер подучился скриптингу) то вышеописанная последовательность - единственная, после которой можно рассчитывать на получение вменяемого специалиста.
Добавлено (17.08.2012, 16:01) --------------------------------------------- В зависимости от конкретной ситуации могут быть отступления. Некоторые параллельно с Си могут изучать разработку баз данных (Access, FoxPro и т.д.), веб ориентированные программисты могут осваивать Ruby или что-либо ещё. Тот же С# нужен далеко не всем, и мы о нем говорим так как речь идет о гейм-деве. Не надо забывать и о том, что есть еще и программирование под MacOS. Но это уже детали. Повторюсь: программист должен знать и уметь пользоваться разными языками. Потому что разные языки это не тоьлко набор операторов или подключаемых библиотек - это разный СТИЛЬ решения задачи. И для С, С++, SmallTalk и FORTRAN он будет разным.
Добавлено (17.08.2012, 16:11) --------------------------------------------- Модераторам: чую, вопрос будет подниматься регулярно, поэтому если есть желание, то пост можно доработать в статью и вывесить отдельно. Конечно, если администрация ресурса сочтет это нужным.
Ищем партнёров в РФ для реализации (продажи) и поддержки ПО
Сообщение отредактировал DeusEx-12 - Пятница, 17 Августа 2012, 16:26 |
|
| |
-Mikle- | Дата: Пятница, 17 Августа 2012, 16:17 | Сообщение # 28 |
Изобретатель велосипедов
Сейчас нет на сайте
| DeusEx-12, хотел плюсануть, да не работают скрипты под восьмым эксплорером после последней переделки сайта. Полностью согласен.
|
|
| |
daun | Дата: Пятница, 17 Августа 2012, 17:03 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| Quote (DeusEx-12) чую, вопрос будет подниматься регулярно, поэтому... Э, руки убери от традиции форума (шутке).
|
|
| |
Saitei | Дата: Пятница, 17 Августа 2012, 17:04 | Сообщение # 30 |
старожил
Сейчас нет на сайте
| Quote (DeusEx-12) Еще я им советую ознакомится с тем, как пишется их любимый Linux, и на каком языке пишется не только ядро (в версии Линуса Торвальдса) Хочу заметить что ядро действительно написано на С, но всякие подстройки для него необязательно написаны на С. DeusEx-12, абсолютно согласен. Спасибо, для себя извлёк некий кусочек "науки" :-) Плюсую
|
|
| |
Archido | Дата: Пятница, 17 Августа 2012, 18:57 | Сообщение # 31 |
Сэнсэй
Сейчас нет на сайте
| DeusEx-12 Классно и очень правильно написано, +1.
Надо бы и правда оформить такой пост и прикрепить к разделу (либо как статью), после чего "отправлять" новичков читать, если у них возникнут подобные вопросы.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
PBPROG | Дата: Пятница, 17 Августа 2012, 20:30 | Сообщение # 32 |
постоянный участник
Сейчас нет на сайте
| Quote (Orochimaru) Выбор остановился на Basic и Pascal какой лучше начинать учить? Учи бейсик, только один из современных, например, PureBasic. http://purebasic.com Древние языки, типа qbasic или turbo pascal, учить не рекомендую, под DOS сейчас почти не пишут, а для программирования под винду они не подходят.
Quote (DeusEx-12) написании операционных систем или драйверов, то тут круг предпочтительных языков сужается Во, как раз на PureBasic можно писать драйвера. В сети есть примеры.
Quote (GeForceVolume) Раз решил выбирать среди Basic и Pascal, то бери Pascal, ибо с Basic ты потеряешь время, имхо. Вы сильно ошибаетесь насчет бейсика. Я уже некоторое время слежу за развитием одного проекта на бейсике - торрент клиента. http://pbtorrent.ucoz.ru/ Как вы считаете, можно ли написать что-то подобное на языке, как вы выразились, изучая который только потеряешь время?
Сообщение отредактировал PBPROG - Пятница, 17 Августа 2012, 20:30 |
|
| |
Red_Squirrel | Дата: Суббота, 18 Августа 2012, 09:34 | Сообщение # 33 |
участник
Сейчас нет на сайте
| jiumx60rus, шарпом намного проще сломать мозг, чем джавой
|
|
| |
Тихий | Дата: Суббота, 18 Августа 2012, 11:09 | Сообщение # 34 |
постоянный участник
Сейчас нет на сайте
| Хочешь начать изучать ЯП, то начинай с VB 6. Не жалею, что начал именно с его. В данный момент учу JavaScript и он мне очень легко дается из-за знаний VB. Те кто говорит, что Бейсик плохой, портит человека, то так рассуждают только неудачники. Ведь главное не какое оружие ты держишь в руках, а как ты им умеешь пользоваться. Знаю человека, который с бейсиком такие чудеса делает, что мне плевать на какой-то там С++. Главное как ты им пользуешься. Ну да, учи С++, потратишь 3 года на изучение сложного языка и не факт, что ты выучишь. Умные люди начинают с малого. Я VB за 4 месяца выучил и учил даже по ночам с большим старанием. Если ты хорошо сможешь писать на бейсике, а не просто "Hello World" выводить, то тебе тот С++ и даром не надо будет. На счет работы программистом VB. Это где там работы нету таким программистом? У нас на Украине любая есть работа. Искал именно вакансии по VB и нашел в одном районе более 10 штук. говорят что бейсик медленный, чем С++, ведь потому, что большинство не пользуется таймерами и не правильно использует его технологию. На бейсике можно написать все, что на С++, кроме драйверов и мощной мего DLL. Но ведь не каждый будет драйвера писать. Тем более VB поддержует ОПП. Незнаю, какой "программист" такое мог ляпнуть
После бейсика очень хорошо учить другие языки, ведь основы программирования ты знаешь и язык учить уже легче. Сам учу так JavaScript. Pascal учил и скажу честно (комментировать его не буду), что если будешь учить его, то потом ты будешь не сильно рад, что его учил. Думаю понимающий поймет кто-то.
Проходил медоосмотр, захожу к психологу, стоит 4 стула, он говорит сядь на средний...и кто из нас псих?
Сообщение отредактировал Тихий - Суббота, 18 Августа 2012, 11:13 |
|
| |
PBPROG | Дата: Суббота, 18 Августа 2012, 12:17 | Сообщение # 35 |
постоянный участник
Сейчас нет на сайте
| Quote (Тихий) На бейсике можно написать все, что на С++, кроме драйверов Вот не пишите того чего не знаете. Если драйвера нельзя писать на VB, то это еще не значит что нет такого диалекта бейсика, на котором можно создать драйвер. Я выше писал что на PureBasic можно создать драйвер. http://purebasic.mybb.ru/viewforum.php?id=18
Опять ошибаетесь. Ваша ошибка в том, что вы не учитываете другие диалекты бейсика. В VB это эталон, есть диалекты бейсиков и по круче него. Вообще в VB плоховато дело в работой с памятью, указатели не очень развиты. Это действительно ограничивает возможности программиста. Да и проверка ошибок в VB 6 организована через одно место! http://www.cyberforum.ru/visual-....3269747
|
|
| |
Тихий | Дата: Суббота, 18 Августа 2012, 12:47 | Сообщение # 36 |
постоянный участник
Сейчас нет на сайте
| PBPROG, как по мне, я отдаю предпочтение именно VB 6. Язык очень развит. Кстати, проблем с памятью не замечал вообще.
Quote (PBPROG) Опять ошибаетесь Тут верно. DLL можно написать на VB с правильным использованием его технологии. Другие диалекты не упоминал из-за того, что с ними не знаком, по этому и не хотел говорить про них. Я говорил именно о VB
Проходил медоосмотр, захожу к психологу, стоит 4 стула, он говорит сядь на средний...и кто из нас псих?
|
|
| |
PBPROG | Дата: Суббота, 18 Августа 2012, 13:11 | Сообщение # 37 |
постоянный участник
Сейчас нет на сайте
| Quote (Тихий) я отдаю предпочтение именно VB 6 На вкус и цвет.... У каждого диалекта бейсика есть свои достоинства и недостатки. И то что а одном диалекте бейсика реализовать сложно или даже невозможно, на другом диалекте бейсика, реализовывается без проблем.
Quote (Тихий) Кстати, проблем с памятью не замечал вообще. Цитата из википедии. Quote Отсутствие указателей, низкоуровневого доступа к памяти, ASM-вставок. Без указателей сложно разрабатывать более или менее сложную программу и приходится реализовывать некоторые вещи через одно место.
Quote (Тихий) На бейсике можно написать все, что на С++, кроме драйверов и мощной мего DLL. Вы пишите в место VB - бейсик и может сложится впечатление что не бейсике это сделать нельзя, но на самом деле, этого нельзя сделать на VB, но на некоторых других диалектах, задача реализовывается легко и просто. Пример приводил в предыдущем сообщении.
PS. Не напрягает ли необходимость декларации в VB всего что связано с WinAPI? Не возникает ли мыслей что хорошо бы если об это позаботились разработчики VB и тем самым упростив создание программ и исключив возможные ошибки при декларации?
Сообщение отредактировал PBPROG - Суббота, 18 Августа 2012, 13:11 |
|
| |
Тихий | Дата: Суббота, 18 Августа 2012, 13:26 | Сообщение # 38 |
постоянный участник
Сейчас нет на сайте
| Quote (PBPROG) Не напрягает ли необходимость декларации в VB всего что связано с WinAPI?
Декларация API очень простая. С ней легко работать. Вот к примеру код декларации API на реагирование нажатий клавиши:
Code Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Private Sub Timer1_Timer() If GetAsyncKeyState(32) = -32768 Then MsgBox "Нажат Пробел"' Функция GetAsyncKeyState(ASCII код клавиши) возвращает -32768, если нажата клавиша, ASCII код которой находится в скобках, и возвращает 0, если не нажата If GetAsyncKeyState(vbKeyF1) = -32768 Then MsgBox "Нажат F1" End Sub
Бейсик - мощный язык, но по отзывам людей, я выбрал именно VB. Кстати, у VB прекрасная работа с DirectX
Проходил медоосмотр, захожу к психологу, стоит 4 стула, он говорит сядь на средний...и кто из нас псих?
|
|
| |
PBPROG | Дата: Суббота, 18 Августа 2012, 13:50 | Сообщение # 39 |
постоянный участник
Сейчас нет на сайте
| Quote (Тихий) Декларация API очень простая. Конечно, ведь функция требуем минимум обвязки.
Вот вам интересная функция. [url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms725506(v=vs.85).aspx]ZwQuerySystemInformation().[/url] В добавок к функции вам нужно декларировать еще парочку структур и констант. Уже сложнее, правда?
А теперь представьте что нужно задекларировать сотню различных WinAPI функций и используемых ими структур, интерфейсов и констант. Сделайте это и посмотрим что вы тогда напишите о простоте декларации.
Quote (Тихий) Кстати, у VB прекрасная работа с DirectX DirectX это системная библиотека и прекрасная работа будет на любом современном ЯП, поддерживающем вызовы системных функций винды. Так что не аргумент.
|
|
| |
-Mikle- | Дата: Суббота, 18 Августа 2012, 13:58 | Сообщение # 40 |
Изобретатель велосипедов
Сейчас нет на сайте
| Quote (PBPROG) Без указателей сложно разрабатывать более или менее сложную программу и приходится реализовывать некоторые вещи через одно место. Вот как раз указатели - это и есть то самое "одно место" в языке высокого уровня. Не нужны они тут, они ОПАСНЫ. Quote (PBPROG) Не напрягает ли необходимость декларации в VB всего что связано с WinAPI? Не возникает ли мыслей что хорошо бы если об это позаботились разработчики VB и тем самым упростив создание программ и исключив возможные ошибки при декларации? А разработчики, между прочим, позаботились - в состав дистрибутива VB6 входит API декларатор, где уже есть объявления функций, констант и структур.
Сообщение отредактировал -Mikle- - Суббота, 18 Августа 2012, 14:00 |
|
| |
|