LINUX.ORG.RU
ФорумTalks

с какого языка начинать программирование

 ,


1

2

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

Так, теперь ответ ТС.

с какого языка начинать программирование

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

seiken ★★★★★
()
Ответ на: комментарий от qanon

те про изучение линукса, терминала и команд тожи?

Линуксы и терминалы для малолеток-красноглазиков, и для тех клоунов, которые мумедию и недоИИ тащат в автомобили. Если на кусок хлеба можно заработать C# и виндой, нафига страдать этой ерундой с ляликсом…

seiken ★★★★★
()
Ответ на: комментарий от mister_VA

Так-то британские… американские ученые уже выяснили, что лучше всего получается программировать тем у кого способности к языкам. Я когда-то смотрел чьи-то лекции по программированию, и там препод студентам говорил, мол для вас странно видеть форму записи x = x + 1 вы же привыкли в математике видеть формулы иначе и какую-то чушь еще минут 10 рассказывал…

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

в америке давно Python его вытеснил

Нулевику изучить программирование до уровня прохождения испытательного срока на работе быстрее чем за 2-3 года просто нереально

я в свое время похапе освоил за 2-3 месяца и начал заказы на фрилансе брать, но… в моем случае оно не очень показательно, так как я в школе на ваське писал программки. потому я не знаю сколько реально времени нужно на освоение

qanon
()
Последнее исправление: qanon (всего исправлений: 1)
Ответ на: комментарий от seiken

Если на кусок хлеба можно заработать C# и виндой, нафига страдать этой ерундой с ляликсом

Это та же java только вид сбоку. Не получится сразу взять так и заработать. Там учиться еще дольше надо. Конторы которые пишут на сисярпе предъявляют более высокие требования к погроммистам, так как это интерпрайз, так как вакансий на порядок меньше, а соискателей больше (сейчас лабы можно и на сисярпе писать и на трупопаскале)

qanon
()
Ответ на: комментарий от qanon

Конторы которые пишут на сисярпе предъявляют более высокие требования к погроммистам, так как это интерпрайз

а для Линукс-разработки требования типа низкие?

seiken ★★★★★
()
Ответ на: комментарий от lovesan

никого вообще не волнует тьюринг полнота, вообще вот

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

Мне например вообще безразлично, кто, где, и на чём пишет. Я лично, например, вообще ни на чём не пишу уже. Других учу.

VIT
()
Ответ на: комментарий от qanon

в америке давно Python его вытеснил

Есть разница между «в … программирование изучают на …» и «изучать программирование удобнее и быстрее всего при помощи специально созданного для этого ЯП».

Пистон не подходит для ИЗУЧЕНИЯ программирования уже с a=int(input("Введите число a: "))

Пистон подходит, чтобы научится программировать на Пистоне. На Си учатся программировать на Си. На Фортране учатся программировать на Фортране. Все 3 перечисленных используют очень разные подходы что для записи, что для организации алгоритма.

Не надо смешивать изучение программирования с изучением конкретного рабочего инструмента. Арифметике вас учили начиная со счёта на полочках, а не с аксиоматики Пеано, да и вещественные числа сечениями Дедекинда не вводят.

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

mister_VA ★★
()
Ответ на: комментарий от anc

Ну вообще-то, в 3 классе изучают. Официально оно, правда, называется делением столбиком, но что в мои времена, что сейчас, «уголком» — общепринятое название, в т.ч.у учителей.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

«уголком» — общепринятое название, в т.ч.у учителей.

Поинтересовался у другана у которого сыну 14 лет, получил недоуменный ответ от его сына «что значит уголком?». Похоже это или местячковое или совсем из «новояза».

anc ★★★★★
()

с какого языка начинать программирование

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

sbu_shpigun
()

Столлман плохого не посоветует, ведь так?

If you are a beginner to programming, we recommend you first learn a language with automatic garbage collection and no explicit pointers, rather than starting with C. Good choices include Lisp, Scheme, Python and Java. C’s explicit pointers mean that programmers must be careful to avoid certain kinds of errors.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 2)
Ответ на: комментарий от mister_VA

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

anc ★★★★★
()
Ответ на: комментарий от lovesan

а вот макросы без homoiconicity ты нормально не сделаешь, а это как раз вот важная практичная вещь, и хоть ты упорись но не сделаешь

Чем плохи макросы Scala или Rust или Nim? Квазицитирование есть, произвольная логика при компиляции есть.

monk ★★★★★
()
Ответ на: комментарий от no-such-file

Настоящие макросы под названием «шаблоны» есть в крестах, но это кровавый ужос по сравнению с реализацией в ЛИСПе.

Зато на этом ужасе легко делается то, что сложно сделать в лиспе. Например, попробуй сделать простейший template<class… Types > class tuple, чтобы на каждую используемую комбинацию типов создавался один и только один defstruct (пусть даже defclass).

monk ★★★★★
()
Ответ на: комментарий от qanon

макросы - зло и не нужны, да и в интрепрретируемых языках их не встретишь

Tcl, Picolisp … Да и в bash eval позволяет макросы писать.

monk ★★★★★
()
Ответ на: комментарий от monk

на каждую используемую комбинацию типов создавался один и только один defstruct

А в чём проблема? Пихаем уже готовые defstruct в хэш по ключу на основе символов типов. При запуске макроса проверяем, есть ли уже готовая реализация в хэше, если нет, то конструируем. Не?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

При запуске макроса проверяем, есть ли уже готовая реализация в хэше, если нет, то конструируем. Не?

Да. Но на фоне тривиального однострочника на Си++ это выглядит очень громоздко. Если же будет шаблон с частичным определением реализаций, то хэши для аналогичной лисповой реализации становятся многоуровневыми.

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

monk ★★★★★
()
Ответ на: комментарий от monk

это выглядит очень громоздко

Это выглядит очень прямолинейно и явно. Не нужно догадываться как это работает и что значат эти закорючки. А если это нужно постоянно то можно намутить макрос для таких макросов и будет почти как в крестах.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Не нужно догадываться как это работает и что значат эти закорючки.

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

А если это нужно постоянно то можно намутить макрос для таких макросов и будет почти как в крестах.

Я когда-то пытался. После чего понял, что в Common Lisp надёжную систему я вообще не сделаю. В Racket c его syntax-local-lift-module и define-for-syntax вроде можно, но очень трудозатратно.

monk ★★★★★
()
Ответ на: комментарий от IvanRia

вкатиться в it в 31 год, предположительно, тестировщиком, так как самый низкий порог вхождения

Python тогда, или Java. В связке с HTML, JavaScript (немножко) и Selenium. И будет не только счастье, но и место под Солнцем.

Хотя даже если просто скриптовый язык Selenium IDE освоить, то будет и толк, и прок. С этого скриптового языка можно, наверное, начинать. И потом двигаться в Java/JS/Python.

aist1 ★★★
()
Последнее исправление: aist1 (всего исправлений: 1)
Ответ на: комментарий от sbu_shpigun

я и вышмат без калькулятора сдавал.

Не было калькулятора? Сочувствую.

anc ★★★★★
()
Ответ на: комментарий от sbu_shpigun

На экзаменах по математике нет сложных арифметических вычислений, на физике калькулятор разрешён.

mister_VA ★★
()
Ответ на: комментарий от sbu_shpigun

На вышмате и арифметики нет. Во многих разделах математики и чисел нет, кроме натуральных, которые даже не надо складывать и вычитать.

mister_VA ★★
()

С Сей можно. Асм, кстати, вполне пригоден для начинания. Лучше него никакой другой ЯП не даст представления об архитектуре ЦПУ и ПК в целом.

sparkie ★★★★
()
Ответ на: комментарий от seiken

+1

Вообще на инженерии ни денег не заработаешь, ни карьеры не сделаешь. Ну и с внешним уважением тоже не очень.

sparkie ★★★★
()
Ответ на: комментарий от sbu_shpigun

Спорное заявление.

Когда писал, был слегка не в себе. Нахлынуло что-то. Бывает.

sparkie ★★★★
()
Последнее исправление: sparkie (всего исправлений: 1)

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

Кому-то нравится техничность без всяких абстракций, кому-то математичность, кому-то «простота» и «элегантность» в различнейших интерпретациях.

В детстве моё воображение захватил именно Си, но с другой стороны - программистом то я не стал 😋

eugrus ★★★★★
()

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

То есть, важен не сам язык, а подход к созданию программ, к саморазвитию.

Что касается Паскаля, то он был хорош для первого языка только во времена Доса. И тут дело даже не в самом языке, а в модулях Crt и Graph, которые позволяли быстро создавать программы «for fun». Вот с этим быстрым «фофаном» у современных языков проблема. Всё рассчитано на профессионалов.

Kogrom
()
Ответ на: комментарий от Kogrom

Что касается Паскаля, то он был хорош для первого языка только во времена Доса. И тут дело даже не в самом языке, а в модулях Crt и Graph, которые позволяли быстро создавать программы «for fun».

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

Сейчас во freePascal можно использовать сишные графбиблиотеки, тот же xlib.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

Новичок не должен рассредотачивать внимание на второстепенные детали. Зачем ему со старта в xlib разбирать, что там за дисплей, окно и диспетчер событий, если он просто хочет нарисовать квадрат или надпись? Это всё ненужно. Для начала надо разобраться с циклами, функциями, операторами ветвления и т.д. и рисовать узоры в цикле с минимальными усилиями.

С другой стороны, если Crt в Free Pascal также хорошо работает, как в Turbo Pascal, то этого может хватить для начала. К сожалению, даже по документации не всё так же хорошо работает:

Sound sounds the speaker at a frequency of hz. Under Windows, a system sound is played and the frequency parameter is ignored. On other operating systems, this routine may not be implemented.

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

Kogrom
()
Ответ на: комментарий от Kogrom

он просто хочет нарисовать квадрат или надпись?

ЗАЧЕМ? Вот ЗАЧЕМ начинающему рисовать квадрат или делать надпись не из «врителн» в терминале?!

Это всё ненужно. Для начала надо разобраться с циклами, функциями, операторами ветвления и т.д. и рисовать узоры в цикле с минимальными усилиями.

Вот именно, чтобы разобраться с циклами и пр. рисовать узоры вообще не нужно, поскольку рисовать узоры Паскалем – это скрупулёзный мартышкин труд.

Sound sounds the speaker at a frequency of hz

А вы в курсе, что на современных самосборных компах пися-спикер может вообще отсутствовать?

mister_VA ★★
()
Ответ на: комментарий от mister_VA

ЗАЧЕМ начинающему рисовать квадрат или делать надпись не из «врителн» в терминале?!

Начинающий - это не значит убогий. Почему он не может рисовать?

рисовать узоры Паскалем – это скрупулёзный мартышкин труд

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

на современных самосборных компах пися-спикер может вообще отсутствовать?

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

Kogrom
()
Ответ на: комментарий от Kogrom

Почему он не может рисовать?

Не «не может», а зачем это делать?! Это сложно и долго организовывается в Паскале.

узор, в цикле через рандом, меняющий направление.

Зачем?! Начинающий - это не значит убогий.

Ещё лучше - динамически, через задержку из Crt.

Это бессмысленно для начинающего ещё во времена ДОС. Начнём с простого: объяснить начинающему, что такое модуль, функция и процедура.

И о чём это говорит?

О малой нужности заставлять писю-спикер пищать через уже лет как 25 устаревшем модуле.

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

ЗАЧЕМ?! У вас крайне извращённый взгляд на введение в программирование.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

ЗАЧЕМ?! У вас крайне извращённый взгляд на введение в программирование.

Почему у Вас вызывают негативные эмоции мои сообщения? У меня есть точка зрения. У Вас другая. Ваше право. Нет повода переходить на капс и называть чужую точку зрения извращенной.

Начнём с простого: объяснить начинающему, что такое модуль, функция и процедура.

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

В Turbo Pascal рисование было самое простое и из коробки, что удобно начинающему. Сравнимо, наверное, было только в ActionScript. Возможно, сейчас в каком-нибудь Godot-е есть что-то подобное.

Kogrom
()
Ответ на: комментарий от Kogrom

Почему у Вас вызывают негативные эмоции мои сообщения?

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

Это всё абстрактные понятия.

Которые надо объяснить, а не ссылаться на некую магию, которая станет (может быть) потом.

Наверное есть люди, которым для радости достаточно написать факториал или решето Эратосфена. Но для большинства - это скучно.

Это достаточно написать 1 раз и занимает 20 мин, тогда как организовать «веселые картинки» из графических примитив паскалевского модуля работа не одного часа и кучи перекомпиляций.

В данном конкретном случае «с чего начать программирование для взрослых» неработоспособный модуль тридцатилетней давности явно не лучшая рекомендация.

mister_VA ★★
()
Ответ на: комментарий от DummyBoy

Да, по документации PascalABC содержит то, что надо. Оно, конечно, на .Net, но какая разница начинающему.

Kogrom
()
Ответ на: комментарий от mister_VA

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

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

Не говоря уже о том, что никогда не преподавали введение в программирование.

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

неработоспособный модуль тридцатилетней давности явно не лучшая рекомендация

Кто же виноват, что ничего лучшего не придумали? Ну вот DummyBoy советует PascalABC с GraphABC. Вполне просто всё, если верить примерам, типа:

uses GraphABC;

procedure MouseDown(x,y,mb: integer);
begin
  MoveTo(x,y);
end;

procedure MouseMove(x,y,mb: integer);
begin
  if mb=1 then LineTo(x,y);
end;

begin
  // Привязка обработчиков к событиям
  OnMouseDown := MouseDown;
  OnMouseMove := MouseMove
end.

или

Program Figurka; 
uses GraphABC;
begin
   SetWindowSize(500, 500); //задаем размер графического окна
   SetPenWidth(3); //устанавливаем стиль пера
   SetBrushColor(clFuchsia); //устанавливаем цвет кисти
   Circle(225,160,50); //рисуем окружность
   Line(225,160,225,180); //рисуем линии
   Line( 210,190,240,190);
   Line( 225,210,225,250);
   Line( 100,100,200,260);
   Line( 200,260,400,260);
   Line( 210,350,200,480);
   Line(240,350,250,480);
   Rectangle(200,230,250,350); //рисуем прямоугольник 
   SetBrushColor(clLime);
   FillRect(0, 480,500,500); //рисуем закрашенный прямоугольник
   SetBrushColor(clWhite);
   Circle(205,150,10);
   Circle(245,150,10); 
end.
Kogrom
()
Ответ на: комментарий от Kogrom

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

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

Я вот как программист — самоучка. Я, конечно, много читал. Но у меня остались пробелы, о которых я периодически жалею: теория компиляторов с грамматиками и парсерами, функциональное программирование…

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

И я против того, чтобы начинать обучение с Питона.

hobbit ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)