LINUX.ORG.RU

Прошу помощи с определением

 , , ,


0

5

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

Итак, вот первый вопрос. Без пристрастий и без холивара, но на какой системе стоит начинать обучаться? Одинаково уютно чувствую себя как на GNU/Linux, так и на оффтопике. Где это делать правильнее и удобнее?

И второй вопрос. Я понимаю, что каждый язык для отдельной цели, что программист должен знать далеко не один язык. Но с чего начать? Сейчас 3 фаворита: c++, java, python. Я больше склоняюсь к сишке, как языку с большим потенциалом и большего порога вхождения.

Ну и заодно ко второму вопросу спрошу - каким ide вы пользуетесь и почему именно им?

Если кто сам когда-то так начинал - очень надеюсь на ваши объективные советы.

В фавориты написал c++, а склоняешься к си. Ты определись. Это разные языки.

P.S. Учи c#. /thread

anonymous
()

С ходу неверный подход.

Иди от задачи к ЯП, а не наоборот, и вопрос со средой разработки и платформой уйдёт сам собой.

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

Да, извиняюсь, склоняюсь к с++, про разницу знаю, но думал, что из контекста будет понятно.

А почему начинать именно с C#? Знаю, что он востребован, но разве не правильнее ли будет изучить язык, ставший классикой?

KrasnoGlazik
() автор топика
Ответ на: комментарий от vvn_black

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

KrasnoGlazik
() автор топика
Ответ на: комментарий от fluorite

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

KrasnoGlazik
() автор топика

По своему, пока еще очень скромному опыту могу сказать, c++ чересчур и неоправдано эклетичен и сложен, собрал всю коллекцию костылей и компромисов из 90 годов, зачем на нем писать я не поняла. Питон призводит впечатление какого-то игрушечного языка, без типов в больших проектах работать - плакать горькими слезами. Остается ява, я пробовала нетбинс, нормально для изучения. Но потом надоело, решила фтыкать в функциональщину и выбрала кложу (современный вариант лиспа на jvm), в яву там тоже можно. Для кложи имакс+сидер. Только учти, у меня физмат образование и наработанная привычка к абстракциям, может тебе питон лучше подойдет, тебе лучше видно.

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

C++ объективно сложный язык, поэтому лучше начать или с pure C, или с чего-то вроде джавы. IDE на начальном уровне практически не имеет значения, я писал в виме и был вполне доволен :)

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

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

Смотря для чего. Для ремесла (читай зарабатывания на жизнь), необязательно.

Но что делать, если цель на данном этапе именно изучение ради изучения

Pascal

дальнейшего применения, к примеру, в сфере того же фриланса

Идёшь на профильный ресурс и смотришь востребованные вакансии. Опять же, твои вопросы уйдут сами собой.

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

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

KrasnoGlazik
() автор топика

вопрос № 1: какую задачу ты собрался реализовать?

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

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от KrasnoGlazik

какое-то нашествие школоты на мой лор. Сам себе ответил, сам себя похвалил. Чо приходил то?

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

учи лисп. А борща и мамка сварит.

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

Pascal

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

Идёшь на профильный ресурс и смотришь востребованные вакансии. Опять же, твои вопросы уйдут сами собой.

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

KrasnoGlazik
() автор топика
Ответ на: комментарий от anonymous

Школоты да не школоты. Сколько слежу за ЛОРом, не могу понять вас анонимов. Вы против того, чтобы появлялись молодые специалисты? Ну уж очень это консервативно.

KrasnoGlazik
() автор топика

И снова м наблюдаем драму под названием «как стать мамкиным какиром, осилив какой-то очень крутой языГ».

Учи алгоритмы. Язык вторичен.

капча silos always намекает.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Пользователь EVA расписал действительно раскрыто и объяснил все за и против. Поэтому я согласился. Других развернутых ответов я пока не увидел, а тыкать пальцем в небо, я и сам умею.

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

Ну нет, такое бесполезное самообразование ни к чему.

Программировать можно с карандашом и листком бумаги. Паскаль - отличный вариантов, чтобы учиться.

Если это непонятно, то, наверное, ещё рано разговаривать.

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

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

Главное не начинай с С. Пользы тут никакой, а дурные привычки на всю жизнь. Это как курить начать в школе, бросать будешь всю жизнь.

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

дурные привычки как раз после явы и прочего абстрактно обмазанного го-на.

Потом приходят вот такое вот дурки с «физ-мат образованием» и не знают чем список от массива отличается.

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

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

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

Может, для разнообразия посмотреть что и как просят у фрилансеров? Как раз, наоборот, рамки технологий Заказчик определяет.

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

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

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

... и учиться уже в боевых условиях

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

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

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

Там с паскаля начинают, но если особо в тонкости именно паскаля не вдаётся.

Могу ещё предложить язык Tcl, у него мощная парадигма и его легко изучить.

Или Scheme отличный логичный язык и по нему есть классический курс SICP. Если освоишь его, то сможешь проектировать приложения.

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

рабочий и актуальный язык

Актуальнй где? у меня актуальный это R У соседнего отдела D и С++

в каком месте он должен юыть актуальный у посонов с твоего двора?

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Простите, упустил вопрос из виду. Итак, что я хочу сделать:

Получить азы в работе с синтаксисом, а может и уровня глубже, как минимум 2-3х языков, чтобы в дальнейшем я, получив задание, мог взглянуть и сказать: я напишу это на %Язык_нейм%, так как он в этих задачах намного лучше себя показывает.

KrasnoGlazik
() автор топика

Язык тебе пофиг пока. Главное это алгоритмическая и информационная база.

Без сторонней помощи, проще всего пойдет Python, потом Java и только потом C++.

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

А на Java есть тонкий момент - там ООП без вариантов. Чего тебе в начале пути не нужно от слова совсем.

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

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

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

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

KrasnoGlazik
() автор топика
Ответ на: комментарий от anonymous

чем список от массива отличается

А нафига? Есть более общее понятие «последовательность» которая реализует интерфейс iterable. В 21 веке живем, а вы все с указателеми небось колдуете.

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

Объясню. Есть языки, которые требуют, к примеру, 50% работодателей, а есть языки, которые нужны для 1%. Так вот, хотелось бы для начала изучить то, что нужно массам, а после и эксклюзивы.

KrasnoGlazik
() автор топика

Итак, вот первый вопрос. Без пристрастий и без холивара, но на какой системе стоит начинать обучаться? Одинаково уютно чувствую себя как на GNU/Linux, так и на оффтопике. Где это делать правильнее и удобнее?

Оффтопик принципиально непригоден для разработки из-за отсутствия пакетного менеджера, поэтому если ты пишешь что-то сложнее hello, world! с внешними зависимостями, каждую придётся индивидуально качать и раскладывать по директориям, или вообще собирать. А в *nix это делается одной командой, кроме того из коробки идут нормальные компиляторы (gcc, clang) и документация (man страницы на всё). IDE, если оно тебе нужно, ставятся везде одинаково.

Сейчас 3 фаворита: c++, java, python. Я больше склоняюсь к сишке, как языку с большим потенциалом и большего порога вхождения.

В общем, правильно. Так-то у каждого свои ниши - python - web, java - мобилки, c++ - десктоп, числодробилки, системное и низкоуровневое.

Ну и заодно ко второму вопросу спрошу - каким ide вы пользуетесь и почему именно им?

Никакими, особенно при обучении. Подсказки IDE располагают к тому чтобы забывать используемые API, а встроенный отладчик - к тому чтобы не понимать код который сам пишешь. Тебе нужен редактор кода, из оных vim - самый эффективный.

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

Решил изучать программирование

получив задание, мог взглянуть и сказать: я напишу это на %Язык_нейм%, так как он в этих задачах намного лучше себя показывает.

Для тебя это может быть парадоксальным, но для экспертного мнения «что на чём» писать, уметь программировать даже вредно.

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

Так-то у каждого свои ниши - python - web, java - мобилки, c++ - десктоп

Каково это, мыслить надуманными стереотипами?

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

Ура, комментарий, затрагивающий тему ОС. Благодарю вас, обязательно прислушаюсь к совету касательно отсутствия Ide.

KrasnoGlazik
() автор топика
Ответ на: комментарий от vvn_black

Функционал - числовая функция

Незачет, прийдете в другой раз.

Функционалом называется любое отображение из произвольного множества в произвольное кольцо.

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

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

KrasnoGlazik
() автор топика
Ответ на: комментарий от slovazap

Оффтопик принципиально непригоден для разработки из-за отсутствия пакетного менеджера, поэтому если ты пишешь что-то сложнее hello, world! с внешними зависимостями, каждую придётся индивидуально качать и раскладывать по директориям, или вообще собирать.

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

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

Тогда Java C++ C# и Python, а может и другие языки, ЛЮБЫЕ подходят для такого. Вот ты знаешь язык X - вот на нём и будешь делать 99% задач, но 1% не подойдет - и тогда ты просто будешь пропускать такие проекты и работы - что не беда.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от vvn_black

И какого это, жить в своём мере, реагировать на любую несовпадающую с собственной точку зрения как на красную тряпку и клеймить всё стереотипами?

На самом деле, и в моём встречается. Но «встречается» ≠ «норма» и «встречается» ≠ «надо так же делать». Хотя в данном случае принципиальных проблем не вижу, кроме того что вход, например, в python/flask куда проще чем в java'вские фреймворки, и запускать то что получится можно будет на копеечных VPS с 512 памяти, и на питоне можно писать далеко не любые игры, хотя вход в pygame тоже очень прост.

slovazap ★★★★★
()

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

Softwayer ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.