LINUX.ORG.RU

Выбор первого языка

 , , ,


0

3

Вечер добрый, господа! Пожалуй подобных вопросов было уйма, но помогите выбрать первый язык. Всего у меня 3 варианта:С++, Goolag(Go) и Python. Хотелось бы узнать преимущества и недостатки каждого их них, а также какой из них способен выработать хорошие привычки в написании кода которые помогут избежать быдлокодинга в будущем? Какой из них, по вашему мнению, будет востребованным в будущем, какой с самой высокой оплатой, а какой с низким порогом входа? Также интересен один момент, сколько необходимо времени изучать язык чтобы после попробовать заняться фрилансом?(Естественно перед этим изучив алгоритмы и работу с базами данных(Ну и посоветуйте пж книжек на эту тему)). Буду работать в основном под Linux и писать программы под него соответственно



Последнее исправление: ZeeCaptain (всего исправлений: 2)

Pascal -> C/C++ -> Asm -> Lisp -> Rust, Go, Python, C#, Java, JavaScript, Haskell, ...

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

Как только почувствуете уверенность и Pascal начнет раздражать - можно переходить к C (или C++ в некотором минимальном его подмножестве). Для ваших требований это будет самый короткий и правильный путь.

Дальше, работая с C/C++ обязательно нужно коснуться темы языков ассемблера. Хотя бы в общих чертах понять, как работает процессор, как исполняются команды, что такое регистры и пр. Написать прару-тройку простеньких программ на ASM или сделать оптимизации с ассемблерными вставками.

После того, как закрепитесь на уровне C, нужно обязательно посмотреть Scheme (или вообще любой Lisp), чтобы понять, что можно и по-другому.

Теперь, от этой точки, можно двигаться в любом направлении: Go, Python, C#, Java, Rust, Haskell и т. д. что душе угодно.

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

Мы бродили по СПб. В Москве с этим получше, да. Но опять куда-то ехать и быть «на птичтьих правах» не хочу. Хотя в последнее время я и так много времени в Москве провожу.

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

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

и быть «на птичтьих правах» не хочу.

А не надо быть на птичьих правах. Надо правильно оформлять документы и всё будет пучком.

может где-то менее бестолково процесс разработки организован

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

ugoday ★★★★★
()

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

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

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

А если я специально хочу скомпилировать и запустить дичь, чтобы увидеть, как она упадёт на определённых данных?

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

А если я специально хочу скомпилировать и запустить дичь, чтобы увидеть, как она упадёт на определённых данных?

А если не упадёт? А если на твоих данных не упадёт, а в общем случае упадёт? А если на твоей архитектуре не упадёт на любых данных, а на другой упадёт(всякие невыровненные чтения, которые на X86 сработают, а на ARM дадут ошибку шины)?

Зачем учиться писать плохо, если можно просто запомнить: «так, тут компилятор ругается, так писать нельзя»?

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

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

Также, как в рисовании: чтобы нарушать базовые принципы, сначала нужно научиться ими пользоваться. Чтобы это было сознательное, управляемое нарушение, а не бессознательное, по неопытности.

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

Надо правильно оформлять документы и всё будет пучком.

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

Kogrom
()

Удивляюсь вашим комментам коллеги. Автору топика забиваете баки неизвестными ему выражениями-питон прожорлив, си запутан, авторов ООП казнить...:) Если он робит с линукса то он Уже начал изучать азы sh. А на диване нельзя изучить программирование. Это будет как есперанто знаешь а поговорить с нескем. Надо устроится на работу где есть Цель чегото сделать. Тогда появляется интерес к программированию в целом. Хочется сделать самому и круто :)

Можете конечно меня критиковать. Я сам третьеклассник: sh, Tk/Perl, Tk/Tcl. Админу больше не надо.

Bootmen ☆☆☆
()
Ответ на: комментарий от fsb4000

А если не упадёт?

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

А если на твоих данных не упадёт, а в общем случае упадёт?

См. выше. Чем больше фактов для анализа, тем лучше.

Зачем учиться

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

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

Это вы будете делать уже после того, как узнаете, что есть дичь.

Допустим, в процессе рефакторинга вы хотите запустить программу, чтобы исследовать её поведение на определённых данных. А компилятор ругается, потому что ломаются типы у какой-то функции (которая вас сейчас не интересует) на каких-то данных (не на тех, с которыми вы проводите ваши проверки). Как быть?

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

Апартаменты снимать дороговато

с частником связываться не охота.

Вот тут не понял. Аппартаменты — это квартира, т.е. тип жилища. Частник — это тип организации, которая сдаёт жилища (дом, квартиру, койко-место в общаге, картонную коробку) и т.д.

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

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

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

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

Самый адекватный ответ в этом холиваре… Посоветуй годной литературы, можно и на английском, пж. Также хочу спросить: есть ли у него LSP?

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

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

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

Можете конечно меня критиковать. Я сам третьеклассник: sh, Tk/Perl, Tk/Tcl. Админу больше не надо.

Что тут критиковать? За tcl зачёт - очень годная тема. Но товарищ в dev хочет, тут такого не достаточно.

anonymous
()

помогите выбрать первый язык

Тебе для учебы или для работы?

ya-betmen ★★★★★
()
Ответ на: комментарий от ZeeCaptain

Научная деятельность в области физики

Очевидный пистон. Если будет медленно, спастишь C со stackoverflow. Научники всё равно на большее не способны.

написание приложений под линукс

Не ответ. Неважно, подо что ты там пишешь, вопрос был «что?».

возможно дров и игр(Как вариант)

Взаимоисключающий с первым вариант. Чуствуется, что ты не понимаешь, чего хочешь.

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

Не только можно, но и необходимо, ибо с «физикой» и «играми» это опять никак не вяжется.

Учи кресты и питон. Потом, уже поработав несколько лет, поймёшь, что именно тебе нужно.

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

Лучше всего подходит julia, но питон популярнее в настоящее время.

yvv ★★☆
()

Выбор первого языка

Первый язык не вибирают. Первый язык изучают в добровольно-принудительном порядке.

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

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

anonymous
()

первый язык

FreePascal. В качестве учебного идеален, годится и для прикладного программирования (но не очень распространён, поэтому во фриланс с ним соваться не особо хорошая идея). Главное вовремя понять, что одного ЯП тебе на всю жизнь всё равно не хватит. Сделаешь средний проект «для себя» на паскале — научишься проектированию структур, объектов и модулей.

После паскаля хорошо заходит C++. Питон знать полезно, но лучше его оставить на последнюю очередь — если с него начинать, это вырабатывает дурные привычки. :)

Go должен быть неплох, но я его, считай, не знаю.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: FORT от anonymous

Fort

Это нечто среднее между Forth и Fortran?

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

Rust

Самый адекватный ответ в этом холиваре

помогите выбрать первый язык. Всего у меня 3 варианта:С++, Goolag(Go) и Python

так ты просто потроллить сюда пришёл?.. Тогда давай, до свиданья!.. :)

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

Всегда пожалуйста. Главное понимать, что _можно_ выучить языки, которые тебе нравяться, но _нужно_ выучить языки, которые тебя будут кормить как минимум в ближайшем будущем. + побольше практики, именно на работоспособный результат.

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

Советую писать на паскаля. Из личного опыта.

Владимир

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

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

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

Pascal? Ты школьник? Go современный практичный язык

anonymous
()
Ответ на: This от anonymous

Н. скВирт говорил что ада в сравнение с паскалем плоха

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

О себе в третьем лице говорят только куколды.

Гарик Харламов

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